No matter if you’re a junior developer just starting your career or a seasoned senior, you’ll run into moments when the software isn’t doing what you’re telling it to do. How you approach the situation when it happens will have a huge impact on your productivity, so in this talk I’ll walk you through both technical tools and solutions as well as some valuable non-technical approaches.
Learning Rust - experiences from a Python/Javascript developerJuha-Matti Santala
I started learning Rust in December last year by building a command-line tool to display NHL results on the terminal. My background before Rust has been mostly on Python and Javascript ecosystems so there's been quite a learning curve that has required activating new parts of my brain.
In this talk, I'll share my early learning journey with Rust. I'll talk openly about the things I struggled with and the things I fell in love with in Rust (like pattern matching).
This document discusses the importance of documentation as a living organism with three branches: commit messages, code reviews, and stories & tasks. Effective documentation includes asking questions, writing details, and focusing on the needs of future readers by considering what would be helpful to know years later. Commit messages, code reviews, and documenting stories and tasks well helps provide valuable context for contemporary and future readers.
The document discusses contemporary documentation practices. It recommends writing documentation as a living organism by focusing on commit messages, code reviews, and stories/tasks. Key aspects include writing commit messages as if talking to your future self, using code reviews to ask clarifying questions, and including details like a story's origin and reproduction steps in tasks. The overall message is that documentation provides long-term context, so write it with the future in mind.
The document contains notes from a presentation on debugging Python. It discusses fundamentals of debugging, tools and techniques like print statements, the debugger, and understanding tracebacks. It also covers non-technical debugging methods such as taking breaks, writing down the problem, assumptions and tried solutions, and talking through the problem with someone.
The document discusses techniques for debugging JavaScript code. It covers fundamental debugging concepts like reproducing issues, using the browser's developer tools, and JavaScript debugging tools like console.log and breakpoints. It also discusses non-technical debugging methods such as writing down the problem, assumptions and steps taken; taking breaks; and talking through the problem with someone else. The overall document provides an overview of debugging strategies and tools that can help locate and fix issues in JavaScript code.
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UXJuha-Matti Santala
Static Site Generators like 11ty (https://www.11ty.io/) are great for building websites and blogs but personally I didn't like writing posts in Markdown nor templating languages.
Ghost provides a great UX for writing posts and an API that combined with 11ty makes an enjoyable experience.
In this talk I'll walk you through how I integrated these two and how 11ty allows for nice pipeline building to gather data from different sources.
No matter if you’re a junior developer just starting your career or a seasoned senior, you’ll run into moments when the software isn’t doing what you’re telling it to do. How you approach the situation when it happens will have a huge impact on your productivity, so in this talk I’ll walk you through both technical tools and solutions as well as some valuable non-technical approaches.
Learning Rust - experiences from a Python/Javascript developerJuha-Matti Santala
I started learning Rust in December last year by building a command-line tool to display NHL results on the terminal. My background before Rust has been mostly on Python and Javascript ecosystems so there's been quite a learning curve that has required activating new parts of my brain.
In this talk, I'll share my early learning journey with Rust. I'll talk openly about the things I struggled with and the things I fell in love with in Rust (like pattern matching).
This document discusses the importance of documentation as a living organism with three branches: commit messages, code reviews, and stories & tasks. Effective documentation includes asking questions, writing details, and focusing on the needs of future readers by considering what would be helpful to know years later. Commit messages, code reviews, and documenting stories and tasks well helps provide valuable context for contemporary and future readers.
The document discusses contemporary documentation practices. It recommends writing documentation as a living organism by focusing on commit messages, code reviews, and stories/tasks. Key aspects include writing commit messages as if talking to your future self, using code reviews to ask clarifying questions, and including details like a story's origin and reproduction steps in tasks. The overall message is that documentation provides long-term context, so write it with the future in mind.
The document contains notes from a presentation on debugging Python. It discusses fundamentals of debugging, tools and techniques like print statements, the debugger, and understanding tracebacks. It also covers non-technical debugging methods such as taking breaks, writing down the problem, assumptions and tried solutions, and talking through the problem with someone.
The document discusses techniques for debugging JavaScript code. It covers fundamental debugging concepts like reproducing issues, using the browser's developer tools, and JavaScript debugging tools like console.log and breakpoints. It also discusses non-technical debugging methods such as writing down the problem, assumptions and steps taken; taking breaks; and talking through the problem with someone else. The overall document provides an overview of debugging strategies and tools that can help locate and fix issues in JavaScript code.
HelsinkiJS: 11ty + Ghost: Static Sites with Great Editor UXJuha-Matti Santala
Static Site Generators like 11ty (https://www.11ty.io/) are great for building websites and blogs but personally I didn't like writing posts in Markdown nor templating languages.
Ghost provides a great UX for writing posts and an API that combined with 11ty makes an enjoyable experience.
In this talk I'll walk you through how I integrated these two and how 11ty allows for nice pipeline building to gather data from different sources.
One of the critique most vocal opposition of code comments use online, is that code comments become outdated and thus harmful. Code comments are a great way to store very specific information of functions, hacks and decisions that gets lost over time.
We often talk about documentation in two forms: either code comments that live with the code or readmes, API docs and other more curated written documentation. But both of them suffer from lack of history. But there’s more!
We often look back at decisions without having the understanding and knowledge of that moment and criticize the code or decisions made hastily. But almost always, decisions are made using the best understanding and knowledge (and restrictions of reality) of that particular moment in time.
In this talk, I’ll explore how you can use issue tracker tickets, git commits and pull requests as a contemporary documentation: something that tells us about the world as it was when decisions were made and that doesn’t change as the project moves on.
--
This version of the talk was given in HelsinkiJS on September 24th, 2019
One of the critique most vocal opposition of code comments use online, is that code comments become outdated and thus harmful. Code comments are a great way to store very specific information of functions, hacks and decisions that gets lost over time.
We often talk about documentation in two forms: either code comments that live with the code or readmes, API docs and other more curated written documentation. But both of them suffer from lack of history. But there’s more!
We often look back at decisions without having the understanding and knowledge of that moment and critize the code or decisions made hastily. But almost always, decisions are made using the best understanding and knowledge (and restrictions of reality) of that particular moment in time.
In this talk, I’ll explore how you can use issue tracker tickets, git commits and pull requests as a contemporary documentation: something that tells us about the world as it was when decisions were made and that doesn’t change as the project moves on.
--
This version of the talk was given in TampereJS on September 5th, 2019
Building side projects can be a great way to showcase your skills before you have work experience.
For experienced people, it can be a great way to experiment, learn new skills and to build something that matters
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...Juha-Matti Santala
This document discusses creating effective data visualizations. It summarizes a research paper on graphical perception and methods for analyzing scientific data. The speaker then outlines several tips for designing visualizations, such as never using pie charts, only stacking bars when it tells a story, graphing what you want to convey, and showing the zero point. Levels of recognition from graphical encodings are also presented. Recommended further reading on information visualization is provided.
In this lightning talk, I went through how my experience of traveling 7 days from Helsinki to Ostrava for PyCon CZ was like a badly executed software project.
There are many ways to improve your skills as a developer. Teaching programming is an awesome but bit under-appreciated one. Becoming a senior developer is about so much more than just technical competency. It’s about helping others succeed, it’s about becoming a leader and it’s about being a good communicator with users, clients and teammates. In this talk, I will share how 6+ years of programming teaching has made me a better developer in the core understanding of topics, communication, and perspective as well as reveal all the additional perks of joy, diversity, and making friends.
These are the slides for my talk "Inspiration, Learning and Experimentation in Codepen" that I gave in HelsinkiJS meetup in November 21st 2018.
These slides won't contain video material that the original did but you can click the links to see individual pens in action.
You should have FOMO: What you're missing out if you're still using Python 2.7Juha-Matti Santala
My slides for a talk I gave in Futurice Tech Weekly on Friday, Oct 19th. I showcase some fantastic features and new things that have come to the language since 3.0 almost 10 years ago.
The document discusses debugging techniques for addressing "little happy accidents", which are software bugs. It recommends using printing and debugging tools to inspect issues, logging to keep track of problems over time, writing tests to prevent bugs from reoccurring, and taking breaks to improve problem-solving. Additional suggestions include using tools like Elasticsearch or Bugsnag to facilitate logging, and developing tests both during and after coding to test for bugs.
Little Happy Accidents discusses debugging techniques such as printing, using a debugger, logging, and writing tests to prevent and fix bugs. It notes that bugs will inevitably happen and these skills help spot, fix, and patch bugs via pull requests. Different languages have different printing syntax like print() in Python 3.0+ and puts in Ruby. Logging provides access to a history of problems while printing only works when actively debugging. Writing tests both during and after development can prevent bugs from reoccurring. Speaking aloud to explain an issue, as with a rubber duck, can also help troubleshoot problems.
This document describes a dream workshop to help participants develop action plans for their dreams. The workshop includes warm-up exercises where participants suggest ideas to each other. It then guides participants through identifying their dreams by considering what they are good at, like to do, and want to change in the world. The workshop culminates in having participants create an action plan canvas to define the metrics, milestones, daily actions, strengths, bad habits, and mentors relevant to achieving their dream. The overall goal is to provide an actionable roadmap for participants' dreams.
My slides for a presentation I gave on Feb 16th in Fraktio's Perjantaipresis. You can find the video and a blog recap for the post at http://hamatti.org/perjantaipresis
This document provides guidance on pitching a startup or business idea. It introduces the presenter, Juha-Matti Santala, and provides an overview of important considerations when pitching, including the situation, target group, and length. It also outlines the key elements that should be included in the structure of a pitch: introduction, problem, solution, market/business model, team, and a request. Contact details are provided at the end.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
One of the critique most vocal opposition of code comments use online, is that code comments become outdated and thus harmful. Code comments are a great way to store very specific information of functions, hacks and decisions that gets lost over time.
We often talk about documentation in two forms: either code comments that live with the code or readmes, API docs and other more curated written documentation. But both of them suffer from lack of history. But there’s more!
We often look back at decisions without having the understanding and knowledge of that moment and criticize the code or decisions made hastily. But almost always, decisions are made using the best understanding and knowledge (and restrictions of reality) of that particular moment in time.
In this talk, I’ll explore how you can use issue tracker tickets, git commits and pull requests as a contemporary documentation: something that tells us about the world as it was when decisions were made and that doesn’t change as the project moves on.
--
This version of the talk was given in HelsinkiJS on September 24th, 2019
One of the critique most vocal opposition of code comments use online, is that code comments become outdated and thus harmful. Code comments are a great way to store very specific information of functions, hacks and decisions that gets lost over time.
We often talk about documentation in two forms: either code comments that live with the code or readmes, API docs and other more curated written documentation. But both of them suffer from lack of history. But there’s more!
We often look back at decisions without having the understanding and knowledge of that moment and critize the code or decisions made hastily. But almost always, decisions are made using the best understanding and knowledge (and restrictions of reality) of that particular moment in time.
In this talk, I’ll explore how you can use issue tracker tickets, git commits and pull requests as a contemporary documentation: something that tells us about the world as it was when decisions were made and that doesn’t change as the project moves on.
--
This version of the talk was given in TampereJS on September 5th, 2019
Building side projects can be a great way to showcase your skills before you have work experience.
For experienced people, it can be a great way to experiment, learn new skills and to build something that matters
“Graphical Perception and Graphical Methods for Analyzing Scientific Data” - ...Juha-Matti Santala
This document discusses creating effective data visualizations. It summarizes a research paper on graphical perception and methods for analyzing scientific data. The speaker then outlines several tips for designing visualizations, such as never using pie charts, only stacking bars when it tells a story, graphing what you want to convey, and showing the zero point. Levels of recognition from graphical encodings are also presented. Recommended further reading on information visualization is provided.
In this lightning talk, I went through how my experience of traveling 7 days from Helsinki to Ostrava for PyCon CZ was like a badly executed software project.
There are many ways to improve your skills as a developer. Teaching programming is an awesome but bit under-appreciated one. Becoming a senior developer is about so much more than just technical competency. It’s about helping others succeed, it’s about becoming a leader and it’s about being a good communicator with users, clients and teammates. In this talk, I will share how 6+ years of programming teaching has made me a better developer in the core understanding of topics, communication, and perspective as well as reveal all the additional perks of joy, diversity, and making friends.
These are the slides for my talk "Inspiration, Learning and Experimentation in Codepen" that I gave in HelsinkiJS meetup in November 21st 2018.
These slides won't contain video material that the original did but you can click the links to see individual pens in action.
You should have FOMO: What you're missing out if you're still using Python 2.7Juha-Matti Santala
My slides for a talk I gave in Futurice Tech Weekly on Friday, Oct 19th. I showcase some fantastic features and new things that have come to the language since 3.0 almost 10 years ago.
The document discusses debugging techniques for addressing "little happy accidents", which are software bugs. It recommends using printing and debugging tools to inspect issues, logging to keep track of problems over time, writing tests to prevent bugs from reoccurring, and taking breaks to improve problem-solving. Additional suggestions include using tools like Elasticsearch or Bugsnag to facilitate logging, and developing tests both during and after coding to test for bugs.
Little Happy Accidents discusses debugging techniques such as printing, using a debugger, logging, and writing tests to prevent and fix bugs. It notes that bugs will inevitably happen and these skills help spot, fix, and patch bugs via pull requests. Different languages have different printing syntax like print() in Python 3.0+ and puts in Ruby. Logging provides access to a history of problems while printing only works when actively debugging. Writing tests both during and after development can prevent bugs from reoccurring. Speaking aloud to explain an issue, as with a rubber duck, can also help troubleshoot problems.
This document describes a dream workshop to help participants develop action plans for their dreams. The workshop includes warm-up exercises where participants suggest ideas to each other. It then guides participants through identifying their dreams by considering what they are good at, like to do, and want to change in the world. The workshop culminates in having participants create an action plan canvas to define the metrics, milestones, daily actions, strengths, bad habits, and mentors relevant to achieving their dream. The overall goal is to provide an actionable roadmap for participants' dreams.
My slides for a presentation I gave on Feb 16th in Fraktio's Perjantaipresis. You can find the video and a blog recap for the post at http://hamatti.org/perjantaipresis
This document provides guidance on pitching a startup or business idea. It introduces the presenter, Juha-Matti Santala, and provides an overview of important considerations when pitching, including the situation, target group, and length. It also outlines the key elements that should be included in the structure of a pitch: introduction, problem, solution, market/business model, team, and a request. Contact details are provided at the end.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
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.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
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.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
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.
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Zilliz
Join us to introduce Milvus Lite, a vector database that can run on notebooks and laptops, share the same API with Milvus, and integrate with every popular GenAI framework. This webinar is perfect for developers seeking easy-to-use, well-integrated vector databases for their GenAI apps.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
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.
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.
3. What are we not talking ‘bout today?
Plugins
How to configure your vim
How to use vim
Things that every editor has
What are we talking ‘bout today?
Vim as a Language
(aka. why using vim is not a memory game)
9. Vim as a Language
<number><command><text object or motion>
10.
11. Motions
h, j, k, l = left, down, up, right
w, e, b = word
{, } = paragraph
f, F, /, ? = search
t = next occurrence
^, $ = start of the line, end of the line
gg, G = start of file, end of file
:[number] = move to line