See http://idratherbewriting.com for more details. This was the third slidedeck I used in my presentation. Most of these slides repeat what I presented as a soap! conference webinar in Poland.
These slides focus on documentation for REST APIs. See http://idratherbewriting.com for more detail. For the video recording, see http://youtu.be/0yfNd7tzH2Q. This deep dive is the second slide deck I used in the presentation.
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Tom Johnson
This is a presentation I gave to the Southwestern Ontario STC chapter on API documentation on Feb 2, 2015. For more details, see my blog at http://idratherbewriting.com. You can listen to the recorded presentation here: http://youtu.be/I8rGe2w1sAo.
API Documentation Workshop tcworld India 2015Tom Johnson
This is a workshop I gave on API documentation at tcworld India 2015. The workshop covers 3 main areas:
- General overview of API documentation
- Deep dive into REST API documentation
- Deep dive into Javadoc documentation
Publishing API documentation -- WorkshopTom Johnson
These slides are from the REST API documentation workshop that I gave at the STC Summit 2015. For more details, see http://idratherbewriting.com/publishingapidocs.
This presentation covers how to document REST APIs. For accompanying notes, see http://idratherbewriting.com/restapicourse. This presentation is geared towards technical writers. The focus is with REST APIs, not platform-specific APIs such as Java.
These slides focus on documentation for REST APIs. See http://idratherbewriting.com for more detail. For the video recording, see http://youtu.be/0yfNd7tzH2Q. This deep dive is the second slide deck I used in the presentation.
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Tom Johnson
This is a presentation I gave to the Southwestern Ontario STC chapter on API documentation on Feb 2, 2015. For more details, see my blog at http://idratherbewriting.com. You can listen to the recorded presentation here: http://youtu.be/I8rGe2w1sAo.
API Documentation Workshop tcworld India 2015Tom Johnson
This is a workshop I gave on API documentation at tcworld India 2015. The workshop covers 3 main areas:
- General overview of API documentation
- Deep dive into REST API documentation
- Deep dive into Javadoc documentation
Publishing API documentation -- WorkshopTom Johnson
These slides are from the REST API documentation workshop that I gave at the STC Summit 2015. For more details, see http://idratherbewriting.com/publishingapidocs.
This presentation covers how to document REST APIs. For accompanying notes, see http://idratherbewriting.com/restapicourse. This presentation is geared towards technical writers. The focus is with REST APIs, not platform-specific APIs such as Java.
Publishing strategies for API documentationTom Johnson
Most of the common tools for publishing help material fall short when it comes to API documentation. Much API documentation (such as for Java, C++, or .NET APIs) is generated from comments in the source code. Their outputs don’t usually integrate with other help material, such as programming tutorials or scenario-based code samples.
REST APIs are a breed of their own, with almost no standard tools for generating documentation from the source. The variety of outputs for REST APIs are as diverse as the APIs themselves, as you can see by browsing the 11,000+ web APIs on programmableweb.com.
As a technical writer, what publishing strategies do you use for API documentation? Do you leave the reference material separate from the tutorials and code samples? Do you convert everything to DITA and merge it into a single output? Do you build your own help system from scratch that imports your REST API information?
There’s not a one-size-fits-all approach. In this presentation, you’ll learn a variety of publishing strategies for different kinds of APIs, with examples of what works well for developer audiences. No matter what kind of API you’re working with, you’ll benefit from this survey of the API doc publishing scene.
- See more at: http://idratherbewriting.com
Process-oriented reactive service architecturePeter Hilton
Reactive application development gives us better ways to build scalable applications, but often together with a micro-services jigsaw puzzle. Decoupled teams can rapidly deliver decoupled services, but you still need to piece together an end-to-end system. This presentation introduces an alternative way to think about and architect reactive applications using workflow tools.
Modern workflow management tools enable a convenient process-oriented approach to service orchestration that is itself reactive. More importantly, process management technology provides two key features that hand-coded applications typically lack: persistent execution state and an editable graphical process representation that you can use to define and adjust service orchestration. After learning how to coordinate micro-services, you will also and how to use the same system to orchestrate micro-service-like human workers. It turns out that with the right platform, human actors can also be reactive services, and participate in the same architecture.
HTTP is the distributed computing API that makes all of the others look bad. HTTP’s popularity is largely due to the simplicity of its text-based format and stateless interaction. Despite this, many web application development frameworks attempt to provide an abstraction layer over HTTP, and only add complexity in the attempt to hide the details.
This short presentation introduces HTTP basics for beginners, and shows what it looks like under the covers. Novice web developers benefit from this introduction by learning to understand where a platform-specific ends and where HTTP and the platform we call ‘the web’ starts.
This is a presentation I did for the Cedar Rapids .NET User Group (CRineta.org). I also presented it at work (Fiserv Insurance Solutions - now StoneRiver) for fellow developers.
Developing an Ember Test Strategy - EmberConf 2019Todd Jordan
Taking lessons from the classic writings on Software Testing, we'll walk through what are industry tried and true approaches for developing a robust and effective test suite.
Many of the Testing philosophies and strategies today have their origins as far back as the 60's, and really got their legs during the advent of "Extreme Programming" and other early "Agile" methodologies from the 1990s.
In this talk we'll take many of these tried and true test strategies and show how one would apply them in a real way to an Ember project.
PiterPy #3 talk (Video: https://youtu.be/bCwSyyygSmM). Some points on RAML, general overview and takeaways based on a real project.
Presented with Dmitry Nazarov https://ru.linkedin.com/in/aspectmkn8rd/en (Part 2, as mentioned in contents)
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
Documenting Code - Patterns and Anti-patterns - NLPW 2016Søren Lund
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
This talk happened at the University of Tarragona (URV) with a lot of students as attendees. It encourages to strive for a learning culture and being better professionals in software development.
Publishing strategies for API documentationTom Johnson
Most of the common tools for publishing help material fall short when it comes to API documentation. Much API documentation (such as for Java, C++, or .NET APIs) is generated from comments in the source code. Their outputs don’t usually integrate with other help material, such as programming tutorials or scenario-based code samples.
REST APIs are a breed of their own, with almost no standard tools for generating documentation from the source. The variety of outputs for REST APIs are as diverse as the APIs themselves, as you can see by browsing the 11,000+ web APIs on programmableweb.com.
As a technical writer, what publishing strategies do you use for API documentation? Do you leave the reference material separate from the tutorials and code samples? Do you convert everything to DITA and merge it into a single output? Do you build your own help system from scratch that imports your REST API information?
There’s not a one-size-fits-all approach. In this presentation, you’ll learn a variety of publishing strategies for different kinds of APIs, with examples of what works well for developer audiences. No matter what kind of API you’re working with, you’ll benefit from this survey of the API doc publishing scene.
- See more at: http://idratherbewriting.com
Process-oriented reactive service architecturePeter Hilton
Reactive application development gives us better ways to build scalable applications, but often together with a micro-services jigsaw puzzle. Decoupled teams can rapidly deliver decoupled services, but you still need to piece together an end-to-end system. This presentation introduces an alternative way to think about and architect reactive applications using workflow tools.
Modern workflow management tools enable a convenient process-oriented approach to service orchestration that is itself reactive. More importantly, process management technology provides two key features that hand-coded applications typically lack: persistent execution state and an editable graphical process representation that you can use to define and adjust service orchestration. After learning how to coordinate micro-services, you will also and how to use the same system to orchestrate micro-service-like human workers. It turns out that with the right platform, human actors can also be reactive services, and participate in the same architecture.
HTTP is the distributed computing API that makes all of the others look bad. HTTP’s popularity is largely due to the simplicity of its text-based format and stateless interaction. Despite this, many web application development frameworks attempt to provide an abstraction layer over HTTP, and only add complexity in the attempt to hide the details.
This short presentation introduces HTTP basics for beginners, and shows what it looks like under the covers. Novice web developers benefit from this introduction by learning to understand where a platform-specific ends and where HTTP and the platform we call ‘the web’ starts.
This is a presentation I did for the Cedar Rapids .NET User Group (CRineta.org). I also presented it at work (Fiserv Insurance Solutions - now StoneRiver) for fellow developers.
Developing an Ember Test Strategy - EmberConf 2019Todd Jordan
Taking lessons from the classic writings on Software Testing, we'll walk through what are industry tried and true approaches for developing a robust and effective test suite.
Many of the Testing philosophies and strategies today have their origins as far back as the 60's, and really got their legs during the advent of "Extreme Programming" and other early "Agile" methodologies from the 1990s.
In this talk we'll take many of these tried and true test strategies and show how one would apply them in a real way to an Ember project.
PiterPy #3 talk (Video: https://youtu.be/bCwSyyygSmM). Some points on RAML, general overview and takeaways based on a real project.
Presented with Dmitry Nazarov https://ru.linkedin.com/in/aspectmkn8rd/en (Part 2, as mentioned in contents)
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
Documenting Code - Patterns and Anti-patterns - NLPW 2016Søren Lund
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
This talk happened at the University of Tarragona (URV) with a lot of students as attendees. It encourages to strive for a learning culture and being better professionals in software development.
Applying a Developer-Centric Approach to API Design from API Architect Ronnie...CA API Management
Designing an API from scratch can be a daunting task, but focusing on developer experience (DX) can act as a guiding light for API designers. In this session, we will explore the topic of interaction design and how it is changing the way we design web APIs today.
We want code that is easy to understand, re-usable, and flexible. But we are always up against deadlines, so we rush, and end up with code that is messy, buggy, hard to maintain, and makes us go slower even though we’re trying to go faster.
What is clean code? In this talk I’ll provide some answers to this question, and introduce you to 10 good habits that will help keep your code clean, such as the use of meaningful names for your variables and functions, and following the “Boy Scout Rule” (leave the code cleaner than you found it). I will even try to persuade you that using a lot of code comments is a sign that there are problems with your code.
Jennifer Rondeau and Margaret Eker presentation from Write The Docs Prague, 2016:
Treating docs as code, an approach that more and more teams and companies are moving toward, involves more than putting the two together in a source repository. We discuss some of the details that often get lost in as dev and docs learn to work together in new ways. Because if all we do is put doc files next to code files in source control, or use parts of the same workflow for code and docs, we're still isolating docs as a separate sort of responsibility, free from the obligations of systematic review and testing without which code would never be accepted into production.
Perfecting the audio narration in instructional videoTom Johnson
This is a presentation I gave Oct 2014 at Information Development World in San Jose. For more information, see idratherbewriting.com or more specifically, this post: http://bit.ly/1sWgdo2. That bitly link contains the audio recording and the slides with the media embedded.
Why users can't find answers in help materialTom Johnson
See this post on my blog for more details: http://idratherbewriting.com/2013/10/23/recording-and-slides-for-why-users-cant-find-answers-in-help-presentation-to-stc-silicon-valley/
Additionally, you can listen and watch the youtube recording here: https://www.youtube.com/watch?v=49F3rBSO_Vs
Producing Professional Sounding Audio in Video TutorialsTom Johnson
I gave this presentation on voice over techniques at Lavacon.org 2012. These four voice over tips cover pitch, speed, tone, and enunciation -- the main qualities of a good voice over reading, in my opinion. I have some sample audio files and video clips. On these slides, the images link to the clips, which are on other websites.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
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.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
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/
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.
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.
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.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...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.
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.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
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.
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.
6. Why add code samples?
• Code samples are in another language. If
audience speaks the language, the code
communicates more clearly to them.
• Examples are much more efficient than trying
to describe syntax and methods in a narrative
way.
• Programmers often skip right to the examples
to see how something is to be done.
7. Which language should the code
samples be in?
"I would say at least half of web APIs do not have
sample code available because once you provide it
in one language, developers will want sample code
in Java, C#, Ruby, Python, Objective-C, PHP, etc.
which is often not practical to provide. (The beauty
of web APIs is that they can be called from almost
any language; this is also a huge problem when it
comes to sample code.) Instead of sample code,
web API documentation often just shows sample
requests and responses." – Peter Gruenbaum, SDK
Bridge, Linkedin thread.
8. Do I need to be a programmer to write
code samples?
"… a writer must know enough programming to both read
(and understand) code samples AND create their own code
samples for the documentation. As others have mentioned,
that doesn't require being a full-fledged programmer, but you
need some solid programming knowledge. It is just like any
other documentation project in my mind -- when I document
software products, I use the product as an end user would to
ensure that I understand what they need to know. For an API,
if I'm writing the doc myself (as opposed to editing doc
someone else wrote), I want to use the API as a developer
would, for the same reason." -- Sara Schertz, Tech Writer /
Bus. Analyst, Linkedin thread
9. If I could write code, wouldn't I be a
developer?
"We don’t need to be code ninjas. The code in an
illustrative sample is not the same thing as the
production-ready code in an application. … A code
sample is a piece of syntactically correct and
semantically useful code, written to illustrate the
functionality and usage of an API or a developer
tool. The code sample provides a stepping stone
between the conceptual overviews in the
developer’s guide, and the complex
implementation required for a production-ready
application." – Sarah Maddox, API technical writer
at Google. Sept 2014 Intercom issue.
10. How do you know what's obvious without
a development background?
flickr
11. Can I just get all code samples from
engineers?
flickr
20. Where do you put code samples?
• Option 1: Separate from the reference
material? Keeps reference material clean and
minimal, but not as integrated.
• Option 2: Integrated within each method or
class? Makes sense from an organizational
point of view, but makes doc bulky.
• Option 3: Brief examples in reference material,
with lengthier examples in a separate area.
21. Can I adopt a playful, irreverent tone
with dev doc?
"Code can always be a little more stressful than we
would like, so don't be afraid to inject some humor
into your comments. As far as brightening up
someone's day when they're eyeballs deep in code,
it doesn't get much better than reading a funny
comment someone left. I've even caught myself
laughing at comments I've written in the past. It's
always a nice surprise and lightens the mood."
-- Chapter 9, Code Design, Learning JavaScript, by
Tim Wright.
29. How can I keep from forgetting it as
soon as I switch projects?
• You have to play
around with
code to learn it.
When you learn
a concept, try to
demonstrate
how to do it in
some sample
code. Without
this, the learning
doesn’t really
sink in.
31. Image credits
Slide 5: Screenshot from Head First Java, 2nd Edition, by Bert Bates; Kathy Sierra. Published by O'Reilly Media,
Inc., 2005
Slide 7: “Which language should the code samples be in?” Quote from Peter Peter Gruenbaum. Linkedin thread.
https://www.linkedin.com/groups/Do-you-need-know-how-4219315.S.5872831609228509188
Slide 8. "Do you need to know how to program to document web APIs?” Quote from Sara Schertz, Tech Writer /
Bus. Analyst, Linkedin thread. https://www.linkedin.com/groups/Do-you-need-know-how-
4219315.S.5872831609228509188
Slide 9. "How to write helpful code samples.” Quote from Sarah Maddox. STC Intercom September 2014.
Slide 10. “Industrious engineering students (undated)” by pellethepoet Licensed under a Creative Commons
Attribution 2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/pellethepoet/12097798504/
Slide 11. Engineers. Photo from Flickr.
Slide 12. "How to Solve Sudoku Puzzles Quickly and Reliably" by Conor Murphy, Accessed 28 May 2014.
http://www.bigfishgames.com/blog/how-to-solve-sudoku-puzzles-quickly-and-reliably/
Slide 13, 14. Head First Java, 2nd Edition, by Bert Bates; Kathy Sierra. Published by O'Reilly Media, Inc., 2005.
Slide 16. “Storyteller” by Kate. Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May
2014. https://www.flickr.com/photos/tylluan/7579135/
Slide 17: “Christmas #30” by Kevin Dooley. Licensed under a Creative Commons Attribution 2.0 Generic.
Accessed 28 May 2014. https://www.flickr.com/photos/pagedooley/5208532605/
Slide 19. “Fireworks” by sj liew. Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May
2014. https://www.flickr.com/photos/sjliew/1286426141/
Slide 21. "Code Design" (Chapter 9). Learning JavaScript, by Tim Wright.
Slide 22 “Engineering” by Saint Louis University. Licensed under a Creative Commons Attribution 2.0 Generic.
Accessed 28 May 2014. https://www.flickr.com/photos/slumadridcampus/6263551146/
Slide 25. “what people throw away” by scorpions and centaurs. Licensed under a Creative Commons Attribution
2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/sshb/3138725794/
Editor's Notes
Screenshot from Head First Java, 2nd Edition, by Bert Bates; Kathy Sierra. Published by O'Reilly Media, Inc., 2005
Web APIs – one example is REST API. Different paths return different kinds of information usually in JSON format.
You access the paths via http URLs, knowing the right options and parameters to add on the end of URLs and so forth.
Code agnostic. However, many APIs have ways to more easily work with the calls in the language someone is programming in. Example: JavaScript SDK.
If code samples are simply curl requests and responses, that's one thing. If the code samples are more elaborate, though, it's quite another challenge.
You need some programming knowledge. The more you know, the more powerful you are.
Code samples are usually rather simple.
You focus on the product, not the programming language.
This is like saying, if I can write a sentence, couldn't I write a novel?
Writing an application is a much more complex endeavor that writing some code samples.
Code samples are simple and focus on the nuts and bolts of how your particular product works.
“Industrious engineering students (undated)” by pellethepoet Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/pellethepoet/12097798504/
Slide 11. Engineers. Photo from Flickr.
You need an awareness. Need to know terminology. The more you know about the particular language, its constraints, etc., the better writer you'll be.
Experience in creating some video tutorials showing how the SDK worked. "call a method" versus "run a method". Getting the language right so it didn't seem odd.
Developers almost always overestimate their audience, so go with gut and err on the side of too much explanation.
Sample story: how to change font in a widget. Product mgr desperately wanted info, while dev said it's obvious to the user.
“what people throw away” by scorpions and centaurs. Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/sshb/3138725794/
Engineers aren't going to hand write every example you'll need.
Engineers may show you the pattern that you can then extract for other examples.
Engineers may give you a chunk of code but then fail to explain much of it, or give a really terse explanation.
Engineers like to work with code a lot more than documentation, so they'll probably be happy to talk through the code. But it may be hard for them to articulate it in a language you can understand if you don't know the programming language.
"How to Solve Sudoku Puzzles Quickly and Reliably" by Conor Murphy, Accessed 28 May 2014. http://www.bigfishgames.com/blog/how-to-solve-sudoku-puzzles-quickly-and-reliably/
Story of the sudoku puzzle.
Code like this: something about it keeps my brain engaged. This can be a lot of fun. Kind of like solving math problems.
Writing code samples can be fun.
Taps more into the "figuring-out" mode of your brain, which makes tech writing more engaging.
Head First Java, 2nd Edition, by Bert Bates; Kathy Sierra. Published by O'Reilly Media, Inc
Head First Java, 2nd Edition, by Bert Bates; Kathy Sierra. Published by O'Reilly Media, Inc
“Storyteller” by Kate. Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/tylluan/7579135/
Build it up as a story.
Divide it up section by section
Can refer to different parts of the code via line numbering.
If users don't get it, they might not be ready for it (the complexity is beyond their level).
“Christmas #30” by Kevin Dooley. Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/pagedooley/5208532605/
This is from Beginning Java 8 Fundamentals.
“Fireworks” by sj liew. Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/sjliew/1286426141/
Working examples of code that demonstrates a full feature in action. More extensive than a simple code sample, but not a production-level application.
Demo app
Our preconfigured visualizations
Tell story about how you created a code samples section, separate from the sdk. There are just so many different scenarios to cover.
REST API didn't need so many code samples, just a getting started section.
Sometimes it's really complicated or at least non-intuitive about how to get certain info. example: suppose you wanted to show a graphic that shows a players current level, their next level, and the progress in between.
"Code Design" (Chapter 9). Learning JavaScript, by Tim Wright.
Prob not recommended but seems like it wouldn't be so out of the expected.
“Engineering” by Saint Louis University. Licensed under a Creative Commons Attribution 2.0 Generic. Accessed 28 May 2014. https://www.flickr.com/photos/slumadridcampus/6263551146/
Syntax highlighters – prettify, highlight.js, etc. manual – stackedit.io applies a syntax highlighter
Format the syntax well. Line up curly braces
Use a consistent style – line breaks, etc.
Not all syntax highlighters are the same.
Lengthy code samples seem beautiful when published.
Then bam, there's an update to the endpoints. Having to redo the code sample is a major pain.
Let this be a reminder to keep code samples simple. If a feature is new, let it settle a bit before doing extensive code samples
Lots of resources online.
Free access via your library.
Community college courses.
A good tech writer learns on his or her own. Otherwise how could you possibly learn all you need to know and stay current in this field?
Lynda.com cool but not always that helpful b/c it's harder to pause, rewind, stop, think about video.
Which language do you start learning? The one you need to know. Lots of jobs for java, c++, .net, javascript. Future languages: clojure, scala
My favorite app and method. The pomodoro method.
Try splitting up your time – 1 in the morning, 1 at lunch, and 1 in the evening. You'll be amazed at how much progress you can make if you keep this pace up.
Start with real contexts – this can be helpful. Start with something you're doing at work. It makes the learning so much more real and relevant.
Head Start books are my favorite – really good intros.
Wake up early. Brain is fresher earlier in the morning.
Carve out a chunk of time at work to learn it – esp. ethical if it relates to something you're doing (rather than just learning some extraneous computer language).