This lecture is the first part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the basic concepts as well as Installation and initial configuration of Git
This lecture goes into basic info about Linux and the GNU Project.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the internals of Linux processes, and its life cycle. This includes its creation, termination, and state transitions during its existence. It also addresses the difference between processes and threads in Linux
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture is an overview for the topics that will be covered in the course along with some course logistics
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different techniques used to install, uninstall and upgrade software packages in Linux and the associated tools
Video for this lecture on youtube:
http://www.youtube.com/watch?v=pFqdupd9wKk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture goes into basic info about Linux and the GNU Project.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the internals of Linux processes, and its life cycle. This includes its creation, termination, and state transitions during its existence. It also addresses the difference between processes and threads in Linux
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture is an overview for the topics that will be covered in the course along with some course logistics
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different techniques used to install, uninstall and upgrade software packages in Linux and the associated tools
Video for this lecture on youtube:
http://www.youtube.com/watch?v=pFqdupd9wKk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
This lecture goes through the different types of Filesystems and some commands that are used with filesystems. It introduces the filesystems ext2/3/4 , JFFS2, cramfs, ramfs, tmpfs, and NFS.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=XPtPsc6uaKY
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S17.shtml
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S18.shtml
Slides for a college course at City College San Francisco. Based on "Hands-On Ethical Hacking and Network Defense, Third Edition" by Michael T. Simpson, Kent Backman, and James Corley -- ISBN: 9781285454610.
Instructor: Sam Bowne
Class website: https://samsclass.info/123/123_S17.shtml
Buildroot is tool Which is useful for minimal linux distribution development.
For Embedded board other then PC(x86) ,like Rpi and Beagle one, Panda you can generate your own linux distribution.
OSI Model Layers and Internet Protocol StackShivam Mitra
1. Advantages of dividing a complex system into layers or modules
2. Taking example of airline system to explain advantage of layering
3. OSI model and Internet Protocol Stack
4. Functions of each layers in OSI model
The eBay-Way Meetup IL - CI/CD with Microservicesyinonavraham
Practices and lessons learned for improving your CI/CD pipelines, from the developer's local environment, through the CI server, and up to deployment to production.
CNIT 126 7: Analyzing Malicious Windows ProgramsSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_S17.shtml
This lecture discusses the concept of Multi-User support in Linux. It discusses how Linux protects user files and resources from other user unauthorized access. It also shows how to share resources and files among users, how to add/del users and groups.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_F18.shtml
This Presentation Speaks about Compiling Linux Kernel from source, How Device Drivers are implemented in Linux,Udev,Loading and Unloading of Kernel modules.
Shreyas MM
www.shreyasmm.com
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_S17.shtml
In this Lab, we go through the steps to prepare the Raspberry Pi board for the projects in the course. this includes selecting the OS and setting it up on the SD card, connecting the Pi, and booting it.
The Lab also goes through setting up the network interfaces (both wired and wireless) and remote connecting into the Pi
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APAhmed El-Arabawy
In this Lab, we go through the steps to build a WiFi Access Point using the Raspberry Pi. The Lab starts by introducing some concepts of Wireless LANs followed by step-by-step procedure to build the AP. The Lab concludes by an evaluation of the performance of the built AP
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
This lecture goes through the different types of Filesystems and some commands that are used with filesystems. It introduces the filesystems ext2/3/4 , JFFS2, cramfs, ramfs, tmpfs, and NFS.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=XPtPsc6uaKY
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S17.shtml
Slides for a college course at City College San Francisco. Based on "The Shellcoder's Handbook: Discovering and Exploiting Security Holes ", by Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte; ASIN: B004P5O38Q.
Instructor: Sam Bowne
Class website: https://samsclass.info/127/127_S18.shtml
Slides for a college course at City College San Francisco. Based on "Hands-On Ethical Hacking and Network Defense, Third Edition" by Michael T. Simpson, Kent Backman, and James Corley -- ISBN: 9781285454610.
Instructor: Sam Bowne
Class website: https://samsclass.info/123/123_S17.shtml
Buildroot is tool Which is useful for minimal linux distribution development.
For Embedded board other then PC(x86) ,like Rpi and Beagle one, Panda you can generate your own linux distribution.
OSI Model Layers and Internet Protocol StackShivam Mitra
1. Advantages of dividing a complex system into layers or modules
2. Taking example of airline system to explain advantage of layering
3. OSI model and Internet Protocol Stack
4. Functions of each layers in OSI model
The eBay-Way Meetup IL - CI/CD with Microservicesyinonavraham
Practices and lessons learned for improving your CI/CD pipelines, from the developer's local environment, through the CI server, and up to deployment to production.
CNIT 126 7: Analyzing Malicious Windows ProgramsSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_S17.shtml
This lecture discusses the concept of Multi-User support in Linux. It discusses how Linux protects user files and resources from other user unauthorized access. It also shows how to share resources and files among users, how to add/del users and groups.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_F18.shtml
This Presentation Speaks about Compiling Linux Kernel from source, How Device Drivers are implemented in Linux,Udev,Loading and Unloading of Kernel modules.
Shreyas MM
www.shreyasmm.com
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_S17.shtml
In this Lab, we go through the steps to prepare the Raspberry Pi board for the projects in the course. this includes selecting the OS and setting it up on the SD card, connecting the Pi, and booting it.
The Lab also goes through setting up the network interfaces (both wired and wireless) and remote connecting into the Pi
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APAhmed El-Arabawy
In this Lab, we go through the steps to build a WiFi Access Point using the Raspberry Pi. The Lab starts by introducing some concepts of Wireless LANs followed by step-by-step procedure to build the AP. The Lab concludes by an evaluation of the performance of the built AP
Embedded Systems: Lecture 4: Selecting the Proper RTOSAhmed El-Arabawy
This lecture describes the different properties of Embedded Systems Operating Systems that would affect the selection of the most appropriate RTOS in an embedded system application
This lecture is the second part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the Git Object Model and Some Git Commands to perform basic operations
This lecture Introduces how Linux Handles Input and Output of its processes. It discusses the TTY/PTY devices and different types of terminals (Physical Terminal, Virtual Terminals, and Emulated Terminals)
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of techniques to use commands output/Input to feed into other commands or into files. It also covers argument expansion and quoting
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the handling of files and file management commands by Linux Subsystems. It also covers creating both Hard Links and Symbolic Links
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=6YL1qjqcR9M
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 25: Devices and Device Drivers Ahmed El-Arabawy
This lecture discusses the concept of Linux device Drivers and Kernel Loadable Modules in general. It shows how to handle them such as loading/unloading ,and querying for their info. It also discusses the role of device files and how it binds to device drivers in the Linux Kernel
Video for this lecture on youtube:
http://www.youtube.com/watch?v=5qhgMyPyvVE
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture describes the virtual filesystems procfs and sysfs.
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=wlxL-iQN6No
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Ahmed El-Arabawy
This lecture addresses the basic concepts of Networking and the associated commands in Linux. It describes MAC Addressed, IP Addresses, Subnets, Routing, Private Addressing and NATing, ARP protocol, and DNS
Video for this lecture on youtube:
http://www.youtube.com/watch?v=IZ5Pz2t-pTI
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 10: Learning About the Shell Ahmed El-Arabawy
This lecture Introduces the shell program, its role, its functionality , and the categories of commands to run on it. It also discusses the different scripts executed at shell startup
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 101: Lecture 2: Introduction to Operating Systems Ahmed El-Arabawy
This lecture goes into an introduction to the role and functionality of operating systems in Embedded Systems and in computer systems in general
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture targets to install Ubuntu on a VM. It starts by describing some info about Virtualization Virtual Machines, followed by installation procedure. The lecture then goes through the UI of Ubuntu.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture provides an overview of the popular RTOS's in the Market along with their main features and common applications
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different Help Commands to get more details about Linux CLI Commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 3: Basic Concepts And Commands Ahmed El-Arabawy
This lecture covers the basic file management commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of Utilities and Commands that will be used in the following lectures and are very useful for CLI Users and Bash Script Programmers
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the use of wild cards in Linux commands, as well as escape sequences
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
GIT is a version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is a open source.
GIT Details for people who:
* don't know what version control means
* don't know what distributed version control means
* Used to work on SVN (Subversion)
In one of our weekly training, we’ve talked about Git. Here is a quick overview of the main concepts, basic commands and branching strategy, how to work with Git, how to contribute to an OSS project, …
One of the biggest advantages of Git is its branching capabilities. Unlike centralized version control systems, Git branches are cheap and easy to merge. This facilitates the feature branch workflow popular with many Git users.
Quick and easy way to get started with Git & GitHubAshoka R K T
(This is a session planned to be taken in Coimbatore .Net User Group(dotnetcbe.com) on sunday 13-oct-2013)
In this session I will talk about the simplest and quickest set of steps needed for getting started in Git & GitHub.
- I will talk a little about the concepts of Git & GitHub
- How to use “GitHub for Windows” and setup a GitHub based distributed source control system
- How Open Source projects on GitHub works
Git provide Distributed version control. Who is the user? Anyone want to truck hi note. Review history log changes. View difference between two versions.
Course 102: Lecture 26: FileSystems in Linux (Part 1) Ahmed El-Arabawy
This lecture introduces some concepts about FileSystems in Linux.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=9jj1QOokACo
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 24: Archiving and Compression of Files Ahmed El-Arabawy
This lecture discusses the different commands and utilities used for archiving and compression of files and directories in Linux
Video for this lecture on youtube:
http://www.youtube.com/watch?v=R6ZQ6PJyy28
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the Use of Signals by the Linux Kernel, and the process behavior upon receiving signals. The popular signals are outlined
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the different commands that are used to monitor the processes running in Linux, and the associated resources used by them. It also addresses the different attributes of processes and the manipulation of process priority
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 16: Process Management (Part 2) Ahmed El-Arabawy
This lecture continues to introduce concepts about processes in Linux. It describes both Automatic processes and Daemon Processes.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the concept of Regular Expressions along with its usage in different tools such as grep, sed, and awk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the commands and tools used to deal with text and text files in Linux. This includes displaying, concatenation, editing, searching, sorting, comparing text files. It also discusses the generation and usage of patch files
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group:
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the Environment Variables concept, usage, and how processes acquire them. It then goes through the most popular ones
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
4. Life before SVC
• We only have the latest snapshot of the code, we don’t know
when a certain feature was added, and who added it….
• What if we don’t want this feature anymore?
• What if we want to maintain the code with and without this feature?
• When was this code modification done, who did it? And what other
modifications need to come with it ?
• We can not revert to the old version of the code, once we added
some change, we can not bring back an old version
• What if the new change caused a problem, and we want to use the
older version ?
• Team collaboration is very complicated
• What if multiple people want to modify the same file at the same
time?
• What if we want to work on different features at the same time?
5. Now…SVC is in Town
• Version Control provides,
• A means to backup different snapshots of the code in case
somebody introduced code that caused problems
• Compare changes between different releases
• Enables team collaboration
• Enables working on multiple issues separately
• Enables maintaining older releases and fixing issues, while
working on new features in the new release, and later migrate
the bug fixes
• Protect the code no matter what happened from users, loss of
data, corrupted drives, malicious handling,…etc
7. SVC Types: Local SVC
• For local use, manually copy old files in a backup folder
• Error prone
• Easy to corrupt data, and overwrite files
• Not suitable for team collaboration
• Takes big disk space
• Only a limited number of snapshots available
• An automated tool to do local SVC is “rcs”
• It keeps record of the patches between the different revisions for
future reference
• However, we still have the problems,
• Does not facilitate team collaboration
• Everything on one computer, a single point of failure
10. SVC Types: Centralized SVC
• The history info is stored in a central server (called the depot, or the
repositories)
• User computers (clients) only checks out a snap-shot from the server
• This setup provides,
• Protection from loss of data upon client data corruption
• Team collaboration
• However, some limitations exist,
• Slow, any file update operation require network access
• Dependency on the connection to the server (can not work when offline)
• The central server becomes a single point of failure
• User can not do his own mini-projects without writing to the central drive
• Examples are,
• CVS
• Subversion (SVN)
• Perforce
12. SVC Types: Distributed SVC
• Each client have the full repo and not just a snapshot of the
files
• No single point of failure, the repo on the client can replace the
one in the server (with minimum loss) in case of a failure in the
server
• Users can perform their work while offline
• Faster response since a lot of the operations are done locally
• Enable distributed (clustered/hierarchical) development which is
useful in huge projects
• Examples are,
• Git
• Mercurial
• Bazaar
14. History of Git
• Git is created by Linus Torvalds, the creator of Linux
• It was developed initially to manage the Linux development
community
• Linux code has been managed,
• 1991-2002: Using an archive of patches
• 2002-2005: Using BitKeeper
• 2005-Now: Using Git
• Target was,
• Speed
• Simple design
• Fully distributed
• Strong support for non-linear development (thousands of parallel
branches)
• Able to handle large projects like the Linux kernel efficiently
17. Git Repo
• A repo is a directory structure that holds all the project history and
events
• The directory name is “.git”
• Git relies on having the full repo local to the user, so the user will
need to copy it over from the server the first time (cloning the
server)
• Then it performs all operations on the local repo (commit)
• When desired, the user can synchronize its repo with the server
repo
• User can push his own changes to the server repo
• User can pull other users changes from the server repo
• The local Git repo is a complete, self contained, independent full
fledged repo
• On top the of the repo (the .git directory), the user will have a
snapshot of the code (working copy)
• User can check out from his local repo the version to work on. This
does not need connection to the server
18. Most Operations are local
• Each user will have his own repository, and he will use Git
tools to do all his work on this repo
• This is different from other tools like SVN where the repo is
centralized in a server, and clients just own a code snapshot
• Git repo on the client is almost a full replica for the one in the
server
• This makes Git very fast, and almost fully operational when
working offline
• This also enables users to build independent teams that work
together and synch their repos together without needing to
connect to the server
21. Git File Integrity
• Each content or object stored in Git repo is goes through SHA1
hashing and the checksum is stored
• The checksum is 40 digits hex string, it is used as an id for the
content/object in the git repo
• Accordingly, any data corruption is detected immediately
(mismatch between the file contents and its SHA1 hash)
22. Repo, Working Directory & Index
• There are three areas in Git,
• Repo (.git directory):
• Contains the history of all file modification
• Working directory (Directory containing the .git )
• Contains the snap shot of files that we are working with
• Index (also called staging area)
• Contains the files that is “staged”, i.e. prepared to be committed to the repo
23. Main Operations in Git
• The main operations in Git are,
• Initialize a Git repo
• Clone a remote Git repo
• Checkout a code snapshot from Git
• Stage a group of files
• Commit a group of files
• Tag a code snapshot
• Pull changes from a remote machine
• Push local changes to a remote machine
• Branch
• Merge two branches
24. Initializing a Git Repo
• This is the first operation to be done to create a Git repo locally
• Assuming you have a group of files that you want to start tracking with
Git
• All you need to do is to go to the top directory of your code
• Then you need to issue the command,
$ git init
• That creates an empty repo, which is a directory named .git in this
directory
• This repo will carry the history of your project
• Any future commands in Git will make changes in this repo
25. Clone a Remote Repo
• Cloning a Git repo means replicating a copy of the full repo at
the local machine
$ git clone <remote project location>
• This means the local machine will have the full history of the
project (the same as the remote machine)
• Normally, clone also checks out the latest from the repo to
prepare the working directory
26. Checkout a Code Snapshot
• We can take a snapshot of the code from the repo into the
working directory
$ git checkout
• The snapshot can be the latest code or any point in the history
of the code
27. Staging Files
• Staging files means prepare these files to be submitted to the repo with
the new modifications
• Files can be added to the staging area (index)
• The first time (to start tracking the files through Git)
• Subsequent times (to submit the new changes in the files to the repo)
• To stage a file
$ git add <file>
28. Committing Files
• Committing a file means submitting the new modifications in
the file to be tracked by Git
• This means the new snapshot of the file is stored in the repo
$ git commit
29. Tagging a Code Snapshot
• Tagging a code snapshot means putting a label for this
snapshot
• This enables us to deal with this snapshot in the future (such
as checking it out, or comparing it to another code snapshot)
30. Pulling and Pushing
• Pulling means bringing updates in the remote machine repo to
the local machine
• Pushing means sending the updates in the local machine repo
to the remote machine
31. Branching
• Branching means maintaining the history of multiple copies of the
code at the same time
• This is useful when working on multiple features at the same time
• Initially, Git provides a single branch named the master branch
• When checking out code from the repo, you will need to specify
which branch you want to check out
32. Merging Branches
• Merging means joining 2 branches into a single branch
• This means merging the changes that was done in both branches in one
code snapshot
• Merging can be simple when each branch modifies different part of the
code
• But it can also be complicated and require manual intervention if the
same parts of the code has been modified in the different branches
33. Files in Git
• When we create a new file in the working directory, it is called “Untracked”
cause the repo does not know anything about it and Git is not tracking changes
into it
• Once the file is committed once to the repo, now it is “tracked”, which means
Git will build a history for it in the repo
• If we modify a tracked file in the working directory, the file is called “unstaged”
cause we did not prepare to commit the changes to the repo yet
• First step to commit the changes is to “stage” the file, i.e. copy it to the index
(staging area). Now the file is called “staged”
• Now a staged file can be committed to the repo
• This means a file is :
• Untracked: It was never committed to the repo, this file is not maintained by Git
• Unstaged: A file that is tracked, but it has modifications and not yet staged (copied
to the index)
• Staged: It is a file that was copied to the staging area (index) in preparation to
commit it to the repo (either for the first time, or because it contains
modifications) but not yet committed
• Committed: A file that is not modified from the version in the repo
37. Installation
• Git mainly runs on Linux (but runs on other OSs as well)
• To install Git,
$ sudo apt-get install git-core
• Git Commands
$ git <command> <arguments>
• To know what version is running
$ git version
• To get help
$git help
$git help <command>
38. First Time Git Setup
• As we first use Git, we need to,
• Identify user identity (name and email); this will be needed for
commits in the future
• Identify which editor to use
• Identify which diff tool to use
• These configurations can be configured for,
• Any user on the machine, by writing it in /etc/gitconfig
• Any project for a specific user on the machine; by writing it in
~/.gitconfig
• For a specific project; by writing it in <project dir>/.git/config
39. Definingthe Author/CommitterIdentities
• Git stores for each commit the,
• Author name/email
• Committer name/email
• Git collects those contact info from (in order)
• User can specify the author name/email in the commit command
$git commit -a --author “Ahmed ElArabawy <aelarabawy@gmail.com>”
• User can specify the environment variables,
• GIT_AUTHOR_NAME
• GIT_AUTHOR_EMAIL
• GIT_COMMITTER_NAME
• GIT_COMMITTER_EMAIL
• User can configure the author/committer info on the
machine/user/project using “git config” command
• Git will collect the info from the EMAIL environment variable
• Git will collect the info from other places by querying the kernel
40. Configuring User Identities
(git config Command)
• The file can be configured manually or via the commands
$git config --global user.name “Ahmed ElArabawy”
$git config --global user.email “aelarabawy@gmail.com”
• The use of --global makes the configuration in ~/.gitconfig
• If --global is replaced by --system, configuration will apply on
the whole machine, and stored in /etc/gitconfig
• If --global is not used, the configuration applies only to the
project in hand, and it is written in ./.git/config
41. Configuring the Editor/Diff tool
• By default, Git will be using the default editor ($EDITOR)
• This can be customized by,
$ git config --global core.editor vim
• The same applies for the diff tool
$ git config --global merge.tool kdiff3
Note that the following diff tools are acceptable:
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
opendiff
• Note that “--global“ can be replaced by “--system“ or
completely removed as discussed earlier
42. Checking the saved Settings
• This can be done via browsing the configuration file directly
• Another way is to check the applicable settings on a specific
project,
$ git config --list
• Git will display all settings in all the files, and hence the same key
may show up multiple times, git will be using the last value
• To check for a specific key
$ git config <key>
$git config user.name