É vero che sbagliare é un buon modo per imparare, ma é ancora meglio
imparare dagli errori degli altri.
Sara` presentata una carrellata di tutti gli errori che ho fatto durante lo
sviluppo del progetto Open Source `trash-cli`. Errori di tutti i tipi:
manageriali, architetturali, di design e di metodologia.
Versione Codemotion Mar 24, 2012
Test-Driven Development e Sviluppo Incrementale (TDD-Milano 2017-01-10)Andrea Francia
Una delle componenti fondamentali del TDD è il concetto di sviluppo incrementale, cioè la capacità di affrontare un problema una pezzo alla volta.
Gli ingredienti di TDD sono:
- Lo Sviluppo Incrementale
- Il concetto di Test First
- Il Design Incrementale (il Refactor)
Applicando solamente Test First senza Sviluppo Incrementale otteniamo solamente un grande test difficile da scrivere e un programma di produzione anch'esso difficile da scrivere tutto insieme e non abbiamo neanche la possibilità di fare un vero Refactor che ci aiuti perché saremmo sempre in barra rossa fino alla fine e potremmo fare Refactor quando ormai non serve più.
Ma qual'è il vantaggio di sviluppare in modo incrementale? La velocità. Sviluppando in modo incrementale si ottiene feedback più velocemente, e il feedback veloce nello sviluppo vuol dire raggiungere affrontare e risolvere problemi più velocemente e quindi essere più veloce a sviluppare.
In questo incontro ci concentriamo nell'uso degli strumenti che ci permettono di affrontare lo sviluppo in maniera incrementale. Lo faremo mettendo direttamente le mani sulla tastiera.
TDD on Legacy Code - Voxxed Days Milano 2019Andrea Francia
In questa presentazione ti mostrerò come affrontare codice legacy non testabile.
Già non è immediato fare testing in progetti greenfield, con il codice legacy diventa ancora più difficile perché di solito abbiamo a che fare con codice non predisposto per i test.
In questa presentazione prenderò un esercizio di Sandro Mancuso chiamato "TripServiceKata" dove si parte da un legacy non testabile e farò vedere come renderlo testabile applicando una tecnica seams per renderlo testabile e poi, tramite il refactor, vedremo come cambiarne il design per rendere il codice pulito.
Alla fine del talk dovresti esserti fatto un'idea dei principi utili e tecniche per aggredire il codice legacy e addomesticarlo con il testing.
Lavorare con codice legacy “non testabile” - Incontro DevOps - 8 marzo 2019 -...Andrea Francia
In questa presentazione farò vedere come affronto il codice legacy non testabile. Eseguiro "live" l'esercizio "TripServiceKata" di Sandro Mancuso. Prenderò un pezzo di codice non testabile, userò una delle tecniche chiamate "seams" per renderlo testabile, e farò vedere come trasformare il codice legacy in codice pulito mantenendone intatto il comportamento ma migliorandone il design. Alla fine della presentazione dovreste esservi fatta un idea di come affrontare il codice legacy e avrete raccolto una serie di consigli su come gestire le suite di test. Svolgerò l'esercizio in un linguaggio specifico (PHP o Ruby devo ancora decidere) ma i pattern che vi farò vedere possono essere applicati pari-pari a qualsiasi linguaggio mainstream (C#, Java, Python, ...), mentre i principi valgono per qualsiasi tecnnologia.
Abstract:
Bash is a fundamental scripting shell and language tied to the core of standard Unix process launching and composition (execve(2), fork(2), and pipe(2)). As being omnipresent, reliable, stable and straightforward to start working with Bash is often used for writing the first version of simple provisioning script. Those initially simple scripts soon can become awkward to maintain mostly due to the language unique idiosyncrasies.
Test-Driven Development is a engineering practice that, among other things, leverages automatic testing to develop confidence with unknown systems and
languages.
Mixing Bash and TDD I’ll demonstrate you how you can discover and deal with Bash quirks and features in order getting a task done.
The talk will be delivered as #noslides performance (a talk where the speaker casts its computer screen while performing the work and explaining what is doing and why). I will develop a Bash script incrementally using TDD but without using any pre-existent xUnit framework: during this session a mini-framework will be developed from scratch using only out-of-the-box system features and tools.
Video: https://www.youtube.com/watch?v=DuQzmuO0BhI
Screencast: https://asciinema.org/a/208470
Repository di partenza su GitHub: https://github.com/andreafrancia/kata-bash
Test-Driven Development e Sviluppo Incrementale (TDD-Milano 2017-01-10)Andrea Francia
Una delle componenti fondamentali del TDD è il concetto di sviluppo incrementale, cioè la capacità di affrontare un problema una pezzo alla volta.
Gli ingredienti di TDD sono:
- Lo Sviluppo Incrementale
- Il concetto di Test First
- Il Design Incrementale (il Refactor)
Applicando solamente Test First senza Sviluppo Incrementale otteniamo solamente un grande test difficile da scrivere e un programma di produzione anch'esso difficile da scrivere tutto insieme e non abbiamo neanche la possibilità di fare un vero Refactor che ci aiuti perché saremmo sempre in barra rossa fino alla fine e potremmo fare Refactor quando ormai non serve più.
Ma qual'è il vantaggio di sviluppare in modo incrementale? La velocità. Sviluppando in modo incrementale si ottiene feedback più velocemente, e il feedback veloce nello sviluppo vuol dire raggiungere affrontare e risolvere problemi più velocemente e quindi essere più veloce a sviluppare.
In questo incontro ci concentriamo nell'uso degli strumenti che ci permettono di affrontare lo sviluppo in maniera incrementale. Lo faremo mettendo direttamente le mani sulla tastiera.
TDD on Legacy Code - Voxxed Days Milano 2019Andrea Francia
In questa presentazione ti mostrerò come affrontare codice legacy non testabile.
Già non è immediato fare testing in progetti greenfield, con il codice legacy diventa ancora più difficile perché di solito abbiamo a che fare con codice non predisposto per i test.
In questa presentazione prenderò un esercizio di Sandro Mancuso chiamato "TripServiceKata" dove si parte da un legacy non testabile e farò vedere come renderlo testabile applicando una tecnica seams per renderlo testabile e poi, tramite il refactor, vedremo come cambiarne il design per rendere il codice pulito.
Alla fine del talk dovresti esserti fatto un'idea dei principi utili e tecniche per aggredire il codice legacy e addomesticarlo con il testing.
Lavorare con codice legacy “non testabile” - Incontro DevOps - 8 marzo 2019 -...Andrea Francia
In questa presentazione farò vedere come affronto il codice legacy non testabile. Eseguiro "live" l'esercizio "TripServiceKata" di Sandro Mancuso. Prenderò un pezzo di codice non testabile, userò una delle tecniche chiamate "seams" per renderlo testabile, e farò vedere come trasformare il codice legacy in codice pulito mantenendone intatto il comportamento ma migliorandone il design. Alla fine della presentazione dovreste esservi fatta un idea di come affrontare il codice legacy e avrete raccolto una serie di consigli su come gestire le suite di test. Svolgerò l'esercizio in un linguaggio specifico (PHP o Ruby devo ancora decidere) ma i pattern che vi farò vedere possono essere applicati pari-pari a qualsiasi linguaggio mainstream (C#, Java, Python, ...), mentre i principi valgono per qualsiasi tecnnologia.
Abstract:
Bash is a fundamental scripting shell and language tied to the core of standard Unix process launching and composition (execve(2), fork(2), and pipe(2)). As being omnipresent, reliable, stable and straightforward to start working with Bash is often used for writing the first version of simple provisioning script. Those initially simple scripts soon can become awkward to maintain mostly due to the language unique idiosyncrasies.
Test-Driven Development is a engineering practice that, among other things, leverages automatic testing to develop confidence with unknown systems and
languages.
Mixing Bash and TDD I’ll demonstrate you how you can discover and deal with Bash quirks and features in order getting a task done.
The talk will be delivered as #noslides performance (a talk where the speaker casts its computer screen while performing the work and explaining what is doing and why). I will develop a Bash script incrementally using TDD but without using any pre-existent xUnit framework: during this session a mini-framework will be developed from scratch using only out-of-the-box system features and tools.
Video: https://www.youtube.com/watch?v=DuQzmuO0BhI
Screencast: https://asciinema.org/a/208470
Repository di partenza su GitHub: https://github.com/andreafrancia/kata-bash
User Stories - Andrea Francia @ WeDev 7 novembre 2018Andrea Francia
Titolo completo:
User Stories: cosa sono, a cosa servono, come si usano e come no - Andrea Francia @ WeDev 7 novembre 2018
Relatore: Andrea Francia
Abstract:
Come si decide quello che dovrà fare un sistema software? E poi, come comunicare la decisione alle varie persone coinvolte? È una problema difficile perché ognuna delle parti in gioco ha visioni e necessità diverse. Project manager, sviluppatori, utenti, tester e clienti hanno bisogni diversi e punti di vista diversi. Come creare un confronto produttivo tra queste persone arrivando ad una singola decisione condivisa che tutti possono supportare e mantenerne l'equilibrio per mesi o addirittura anni? In eXtreme Programming si usano le storie, un metodo per organizzare lo sviluppo semplice e efficace che però spesso viene spiegato complicato e snaturato delle caratteristiche che lo rendono utile. In questa presentazione riprendiamo la definizione originale e vediamo come usarlo come strumento per la pianificazione del lavoro e di supporto alla comunicazione e condivisione di conoscenza.
Video:
https://www.youtube.com/watch?v=dC9G4o-m5X8
Le pratiche ingegneristiche di eXtreme ProgrammingAndrea Francia
Le pratiche ingegneristiche sono il sottoinsieme delle pratiche descritte nei libri di eXtreme Programming che hanno direttamente a che fare con le modalità con cui si scrive/progetta/verifica il software.
Esse sono:
- il Simple Design
- il Test-Driven Development
- la Continuous Integration
- il Refactoring, e
- il Pair Programming.
Sono famose di nome, ma non sempre è possibile venire a contatto con una loro definizione corretta, ed è facile farsi un'idea sbagliata di cosa siano e trovare problemi ad applicarle in modo efficace alla propria situazione.
Spiegherò come ognuna di queste pratiche possono aiutarci nello sviluppo software portando esempi presi dal mio lavoro quotidiano o dal lavoro di altre persone con cui sono venuto in contatto.
Le 12 pratiche - Un introduzione a XP (Mini Italian Agile Day)Andrea Francia
Una introduzione base ad eXtreme Programming per i nuovi arrivati dell'Agile Day che vogliono cominciare a capire di cosa si tratta e vogliono sapere come viene implementata nelle aziende che la praticano. Alla fine della sessione i partecipanti si saranno fatti un idea di come si fa XP in concreto.
Slide della presentazione fatta al Mini Italian Agile Day di Vimercate - 11 febbraio 2017
Test Driven Development su iOS è possibile e persino utile.
Invece di leggere blog post che sottointendono che TDD su iOS sia difficile e inutile venite a vedere chi lo usa sul serio e ha il coraggio di programmare ad una conferenza davanti ad altre persone.
Avvertenze:
questo talk non contiene paternali sul perché si dovrebbe (o non si dovrebbe) fare TDD
in questo talk non verranno usati strumenti complicati
in questo talk verrà scritto ed eseguito codice dal vivo
Dopo una brevissima introduzione passerò a sviluppare guidato dai test una semplice applicazione per iPhone.
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
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/
User Stories - Andrea Francia @ WeDev 7 novembre 2018Andrea Francia
Titolo completo:
User Stories: cosa sono, a cosa servono, come si usano e come no - Andrea Francia @ WeDev 7 novembre 2018
Relatore: Andrea Francia
Abstract:
Come si decide quello che dovrà fare un sistema software? E poi, come comunicare la decisione alle varie persone coinvolte? È una problema difficile perché ognuna delle parti in gioco ha visioni e necessità diverse. Project manager, sviluppatori, utenti, tester e clienti hanno bisogni diversi e punti di vista diversi. Come creare un confronto produttivo tra queste persone arrivando ad una singola decisione condivisa che tutti possono supportare e mantenerne l'equilibrio per mesi o addirittura anni? In eXtreme Programming si usano le storie, un metodo per organizzare lo sviluppo semplice e efficace che però spesso viene spiegato complicato e snaturato delle caratteristiche che lo rendono utile. In questa presentazione riprendiamo la definizione originale e vediamo come usarlo come strumento per la pianificazione del lavoro e di supporto alla comunicazione e condivisione di conoscenza.
Video:
https://www.youtube.com/watch?v=dC9G4o-m5X8
Le pratiche ingegneristiche di eXtreme ProgrammingAndrea Francia
Le pratiche ingegneristiche sono il sottoinsieme delle pratiche descritte nei libri di eXtreme Programming che hanno direttamente a che fare con le modalità con cui si scrive/progetta/verifica il software.
Esse sono:
- il Simple Design
- il Test-Driven Development
- la Continuous Integration
- il Refactoring, e
- il Pair Programming.
Sono famose di nome, ma non sempre è possibile venire a contatto con una loro definizione corretta, ed è facile farsi un'idea sbagliata di cosa siano e trovare problemi ad applicarle in modo efficace alla propria situazione.
Spiegherò come ognuna di queste pratiche possono aiutarci nello sviluppo software portando esempi presi dal mio lavoro quotidiano o dal lavoro di altre persone con cui sono venuto in contatto.
Le 12 pratiche - Un introduzione a XP (Mini Italian Agile Day)Andrea Francia
Una introduzione base ad eXtreme Programming per i nuovi arrivati dell'Agile Day che vogliono cominciare a capire di cosa si tratta e vogliono sapere come viene implementata nelle aziende che la praticano. Alla fine della sessione i partecipanti si saranno fatti un idea di come si fa XP in concreto.
Slide della presentazione fatta al Mini Italian Agile Day di Vimercate - 11 febbraio 2017
Test Driven Development su iOS è possibile e persino utile.
Invece di leggere blog post che sottointendono che TDD su iOS sia difficile e inutile venite a vedere chi lo usa sul serio e ha il coraggio di programmare ad una conferenza davanti ad altre persone.
Avvertenze:
questo talk non contiene paternali sul perché si dovrebbe (o non si dovrebbe) fare TDD
in questo talk non verranno usati strumenti complicati
in questo talk verrà scritto ed eseguito codice dal vivo
Dopo una brevissima introduzione passerò a sviluppare guidato dai test una semplice applicazione per iPhone.
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
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/
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
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.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
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.
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.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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.
25. Debian
25 @andreafrancia #trash-cli
Saturday, March 24, 12 25
26. 26 @andreafrancia #trash-cli
Saturday, March 24, 12 26
27. 27 @andreafrancia #trash-cli
Saturday, March 24, 12 27
28. 28 @andreafrancia #trash-cli
Saturday, March 24, 12 28
29. Fedora
29 @andreafrancia #trash-cli
Saturday, March 24, 12 29
30. Fedora
30 @andreafrancia #trash-cli
Saturday, March 24, 12 30
31. Nota
A quei tempi il progetto si chiamava solo
“trash” (come il comando)
31 @andreafrancia #trash-cli
Saturday, March 24, 12 31
32. Reviewer
“ The name of this package is also a bit
too generic, though not that much.
Saturday, March 24, 12
32 @andreafrancia
”
#trash-cli
32
33. Reviewer
“ Could upstream change it to be less
generic?
https:/
Saturday, March 24, 12
33
”
/bugzilla.redhat.com/show_bug.cgi?id=448122#c1
@andreafrancia #trash-cli
33
34. Developer
“ Ok I’ll change to trash-cli.
Saturday, March 24, 12
34 @andreafrancia
”
#trash-cli
34
35. Reviewer
“ [Ok...but...] The name of the
command should also be trash-
cli.
https:/
Saturday, March 24, 12
35
”
/bugzilla.redhat.com/show_bug.cgi?id=448122#c6
@andreafrancia #trash-cli
35
36. Developer
“ The name of the main command is
'trash' without "-cli".
Saturday, March 24, 12
36 @andreafrancia
”
#trash-cli
36
37. Developer
“
The command is used is this way:
$ trash this-file
That means: "trash this-file in the
trashcan", there is no reason to append the
"-cli" suffix to the main command.
Saturday, March 24, 12
37 @andreafrancia
”
#trash-cli
37
38. Developer
“ You are already using the
Command Line Interface.
Saturday, March 24, 12
38 @andreafrancia
”
#trash-cli
38
39. Developer
“ In my opinion each command name
should reflect what the command
does.
Saturday, March 24, 12
39 @andreafrancia
”
#trash-cli
39
40. Reviewer
“ As far as possible.
Saturday, March 24, 12
40 @andreafrancia
”
#trash-cli
40
41. Developer (and others)
“ There are other programs with
generic names already
included!!
Saturday, March 24, 12
41 @andreafrancia
”
#trash-cli
41
42. samba-common
net
profiles
rpcclient
testparm
42 @andreafrancia #trash-cli
Saturday, March 24, 12 42
44. The Player Project
Free Software tools for robot and sensor applications
$ repoquery -f /usr/bin/player
player-0:2.1.1-5.fc10.i386
44 @andreafrancia #trash-cli
Saturday, March 24, 12 44
45. Reviewer & others
“ Precedent mistakes are not a
good reason to let other
generic names enter the
distro.
https:/
http:/
October/msg00223.html
Saturday, March 24, 12
45 @andreafrancia
”
/bugzilla.redhat.com/show_bug.cgi?id=448122#c17
/www.redhat.com/archives/fedora-devel-list/2008-
#trash-cli
45
46. ... after some months
and discussions ...
46 @andreafrancia #trash-cli
Saturday, March 24, 12 46
47. Developer
“ .... OK
Saturday, March 24, 12
47 @andreafrancia
”
#trash-cli
47
61. Lessons Learned
Non cambiare mai il nome dei comandi
Non cedere alle pressioni dei revisori
(tanto cambiano)
More at: https://github.com/andreafrancia/trash-cli/blob/
master/docs/about-the-generic-naming-issue.txt
61 @andreafrancia #trash-cli
Saturday, March 24, 12 61
63. Acceptance Test
È un test che verifica
una feature.
63 @andreafrancia #trash-cli
Saturday, March 24, 12 63
64. Developer Test
È un test che serve allo
sviluppatore.
64 @andreafrancia #trash-cli
Saturday, March 24, 12 64
65. Usi dei Developer Test
validare il codice
supporto al design (con TDD)
rilevare regressioni
imparare una libreria
documentare l’uso di una libreria
....
65 @andreafrancia #trash-cli
Saturday, March 24, 12 65
66. Developer Tests
A volte sono chiamati: Unit Tests
66 @andreafrancia #trash-cli
Saturday, March 24, 12 66
67. 67 @andreafrancia #trash-cli
Saturday, March 24, 12 67
68. Come ho affrontato
il problema
68 @andreafrancia #trash-cli
Saturday, March 24, 12 68
69. “ Avere i test é bello...
”
69 @andreafrancia #trash-cli
Saturday, March 24, 12 69
70. “ Come li scrivo?
”
70 @andreafrancia #trash-cli
Saturday, March 24, 12 70
71. “ Developer Test --> in python
”
71 @andreafrancia #trash-cli
Saturday, March 24, 12 71
72. “ Acceptance Test --> ?????
”
72 @andreafrancia #trash-cli
Saturday, March 24, 12 72
73. “ devo testare a livello utente
”
73 @andreafrancia #trash-cli
Saturday, March 24, 12 73
74. “ l’utente usa la Bash
”
74 @andreafrancia #trash-cli
Saturday, March 24, 12 74
75. “ gli script in Bash sono facili
”
75 @andreafrancia #trash-cli
Saturday, March 24, 12 75
76. “ esiste già un framework di
test per Bash
”
76 @andreafrancia #trash-cli
Saturday, March 24, 12 76
77. shunit
77 @andreafrancia #trash-cli
Saturday, March 24, 12 77
78. “ IDEA:
li scrivo in Bash!
”
78 @andreafrancia #trash-cli
Saturday, March 24, 12 78
79. Era un buona idea?
79 @andreafrancia #trash-cli
Saturday, March 24, 12 79
80. 80 @andreafrancia #trash-cli
Saturday, March 24, 12 80
81. Risultati
81 @andreafrancia #trash-cli
Saturday, March 24, 12 81
82. Bash Tests are
slooow!
82 @andreafrancia #trash-cli
Saturday, March 24, 12 82
83. Little information in
failure messages
83 @andreafrancia #trash-cli
Saturday, March 24, 12 83
103. GPL v2+
This program is free software; you can
redistribute it and/or modify it under
the terms of the GNU General Public
License as published by the Free
Software Foundation; either version 2 of
the License, or (at your option) any
later version.
103 @andreafrancia #trash-cli
Saturday, March 24, 12 103
104. or (at your option) any later
version.
104 @andreafrancia #trash-cli
Saturday, March 24, 12 104
106. Licenze già fatte?
Comode ma vanno capite.
106 @andreafrancia #trash-cli
Saturday, March 24, 12 106
107. Il papiro all’inizio del file é
una rottura
107 @andreafrancia #trash-cli
Saturday, March 24, 12 107
108. Papiro della GPL
#!/usr/bin/python
# list-trash: list trashed files
#
# Copyright (C) 2007,2008 Andrea Francia Trivolzio(PV) Italy
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
from libtrash import TrashDirectory
for trashed_file in TrashDirectory.trashed_files() :
print "%s %s" % (trashed_file.deletion_date, trashed_file.path)
108 @andreafrancia #trash-cli
Saturday, March 24, 12 108
109. Esistono licenze più semplici!
109 @andreafrancia #trash-cli
Saturday, March 24, 12 109
114. Lessons Learned
Il ser vizo di release é importante
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
115. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
116. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
Si può sempre cambiare
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
117. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
Si può sempre cambiare
sf.net
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
118. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
Si può sempre cambiare
sf.net google
code
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
119. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
Si può sempre cambiare
bitbucket
sf.net google
code
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
120. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
Si può sempre cambiare
bitbucket
sf.net google
code
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
121. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
Si può sempre cambiare
bitbucket
sf.net google
code GitHub
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
122. Lessons Learned
Il ser vizo di release é importante
Feedback barrier
Si può sempre cambiare
bitbucket
sf.net google
code ?
GitHub
113 @andreafrancia #trash-cli
Saturday, March 24, 12 113
123. Una scelta
azzeccata: Python
114 @andreafrancia #trash-cli
Saturday, March 24, 12 114
125. TrashDir: dove sono
nascosti i file cestinati
116 @andreafrancia #trash-cli
Saturday, March 24, 12 116
126. How it works
117 @andreafrancia #trash-cli
Saturday, March 24, 12 117
127. Gnome
KDE
TrashDir
trash-cli
XFCE
118 @andreafrancia #trash-cli
Saturday, March 24, 12 118
128. How it works
$,trash-put,pippo.txt
~/.local/share/Trash/,,,,,,,,,,,,+---------------------------------+
,,,,info/,,,,,,,,,,,,,,,,,,,-----|,[Trash,Info],,,,,,,,,,,,,,,,,,,,|
,,,,,,,,pippo.txt.trashinfo,,,,,,|,Path=/tmp/pippo.txt,,,,,,,,,,,,,|
,,,,files/,,,,,,,,,,,,,,,,,,,,,,,|,DeletionDate=2012-02-29T00:13:54|
,,,,,,,,pippo.txt,,,,,,,,,,,,,,,,+---------------------------------+
,,,,,,,,,,,,,,,,,`.
,,,,,,,,,,,,,,,,,,,`-,original,file,moved,here
119 @andreafrancia #trash-cli
Saturday, March 24, 12 119
129. How it works
$,touch,pippo.txt;,trash-put,pippo.txt,,,,,#,again
$,touch,pippo.txt;,trash-put,pippo.txt,,,,,#,again
$,touch,pippo.txt;,trash-put,pippo.txt,,,,,#,again
~/.local/share/Trash/,
,,,,info/,,,,,,,,,,,,,,,,,,
,,,,,,,,pippo.txt.trashinfo
,,,,,,,,pippo_1.txt.trashinfo
,,,,,,,,pippo_2.txt.trashinfo
,,,,,,,,pippo_3.txt.trashinfo
,,,,files/,,,,,,,,,,,,,,,,,
,,,,,,,,pippo.txt,,,,,,,,,,
,,,,,,,,pippo_1.txt,,,,,,,,,,
,,,,,,,,pippo_2.txt,,,,,,,,,,
,,,,,,,,pippo_3.txt,,,,,,,,,,
120 @andreafrancia #trash-cli
Saturday, March 24, 12 120
130. Gnome
KDE
TrashDir
cli
XFCE
121 @andreafrancia #trash-cli
Saturday, March 24, 12 121
131. 122 @andreafrancia #trash-cli
Saturday, March 24, 12 122
138. Git
129 @andreafrancia #trash-cli
Saturday, March 24, 12 129
139. GitHub
130 @andreafrancia #trash-cli
Saturday, March 24, 12 130
140. No Wiki, solo .txt nei i
sorgenti
131 @andreafrancia #trash-cli
Saturday, March 24, 12 131
141. No mailing list.
132 @andreafrancia #trash-cli
Saturday, March 24, 12 132
142. Nessuno sforzo per
l’inclusione in distribuzioni
133 @andreafrancia #trash-cli
Saturday, March 24, 12 133
143. Ma qualcuno lo usa?
134 @andreafrancia #trash-cli
Saturday, March 24, 12 134
144. Distribuzioni
Debian (e Ubuntu)
Fedora
Arch Linux
Foresight Linux
OpenSuse
... forse altri
135 @andreafrancia #trash-cli
Saturday, March 24, 12 135
145. Altri progetti
LXDE usa trash-cli come libreria
(*) LXDE: Light weight X11 Desktop Environment
136 @andreafrancia #trash-cli
Saturday, March 24, 12 136
147. Grazie
Andrea Francia
http://andreafrancia.it
andrea@andreafrancia.it
139
138 @andreafrancia #trash-cli
Saturday, March 24, 12 138
148. Grazie
Andrea Francia
http://andreafrancia.it
andrea@andreafrancia.it
Libero da settembre 2012
139 @andreafrancia #trash-cli
Saturday, March 24, 12 139