Ask Why - The Pagination Problem
Evaluating user feedback | Patricia Aas | 17 October 2024
Once upon a time a dev working on a project got an urgent feature request. There are really only two types of priorities in tech: “House is on fire” and “I’ll call you maybe”, and this was “House is on fire” priority.
read moreThe Sofa Problem
A post about management | Patricia Aas | 02 April 2024
Though this is based on a true story, who even knows what parts are true anymore? And it doesn’t really matter for the story anyway.
read moreAn Open Letter to the C++ Community
A Call to Action? | Alice (pseudonym) | 09 January 2023
CW: Sexual harassment and a certain convicted rapist in the C++ community
read moreGetting Your Block-List to Mastodon
Using Debirdify | Patricia Aas | 20 November 2022
You can get a list of Mastodon handles for folks on your block-list from Debirdify, and then you can import that into Mastodon.
read moreMastodon migration
Moving to a new server | Patricia Aas | 18 November 2022
I will try to keep this short and simple. We are going to try to migrate from one Mastodon server to another.
read moreA Twitter Off Ramp
A tutorial for getting on Mastodon | Patricia Aas | 18 November 2022
I’m not one for fluff, and if you’re here you’ve made up you mind, so let’s get to it. Here’s the plan
read moreOn Community Trust and Rehabilitation
A Twitter DM Conversation | Patricia Aas | 14 March 2022
This post is in response to a lot of discussions around the incident involving CppCon and therefore the conversation below should be read in that context.
read moreClassic Vulnerabilities
Keynote, ACCU 2022 | Patricia Aas | 12 March 2022
We keep on thinking we are living in the future, but native exploitation has a rich history, and many times the vulnerabilities and exploitation techniques are decades old.
read morePatricia's Personal Statement
CppCon's Failure to Protect the Community | Patricia Aas | 08 March 2022
Content Warning
read moreProposed - Include Cpp Position on CppCon Safety
CppCon | Patricia Aas | 08 March 2022
Proposed - Transparency Report on CppCon Safety
read moreProposed - Letter of support
CppCon | Patricia Aas | 08 March 2022
The signatories of this letter have reviewed the Proposed Include <C++> Transparency Report on CppCon Safety, and support the steps taken by #include <C++> outlined in their Proposed Include <C++> Position on CppCon Safety and the requirements they outline in the section What Needs to Change therein.
read moreProposed - Transparency Report on CppCon Safety
CppCon | Patricia Aas | 08 March 2022
Proposed - Include <C++> Position on CppCon Safety
read moreIntroduction to Memory Exploitation
Meeting C++ 2021 | Patricia Aas | 12 November 2021
Stack based exploitation has gotten all the fame, but many platform and compiler mitigations have made it very hard to exploit stack vulnerabilities. Heap based exploits are still very relevant, and since this is black magic for most developers I will here give an introduction to the field.
read moreTips For Improving Women's Work Environment
Managers view of Survival Tips For Women In Tech | Patricia Aas | 26 April 2021
After my blog post Survival Tips For Women In Tech surfaced yet again, @e8johan replied “I would love something of a guide to complement the warnings. Like ‘How to manage teams for diversity’”, and in response I posted the thread below, starting with the final one here to keep the thread together.
read moreASan on Windows in CMake in CLion
Quick Notes | Patricia Aas | 01 December 2020
This post is mostly to future Patricia because she will be very annoyed with me if I don’t write it. As usual she gets no nice fluffy text and so you don’t either. Sorry.
read moreTrying to build an Open Source browser in 2020
Meeting C++ Online 2020 | Patricia Aas | 24 September 2020
A lot of things have been developed over the last 15 years that should make the process of making a browser easier. In this talk we will explore a bunch of different tools, platforms and libraries that could go into making a browser in 2020.
read moreTrying to build an Open Source browser in 2020
NDC TechTown 2020 | Patricia Aas | 03 September 2020
A lot of things have been developed over the last 15 years that should make the process of making a browser easier. In this talk we will explore a bunch of different tools, platforms and libraries that could go into making a browser in 2020.
read moreKeynote, DevSecOps for Developers, How To Start
European Testing Conference 2020 | Patricia Aas | 07 February 2020
How can you squeeze Security into DevOps? Security is often an understaffed function, so how can you leverage what you have in DevOps to improve your security posture?
read moreThoughts On Learning A New Programming Language
OOP 2020 | Patricia Aas | 05 February 2020
How should we teach a new language to folks that already know how to program? How do we use what we already know to leapfrog the learning process? Based on my personal experience and snippets of natural language theory, we will try to explore the cheats and pitfalls when learning a new programming language, but also dig into how we can make it easier.
read moreInline Thinking
97 Things Every Java Programmer Should Know | Patricia Aas | 16 January 2020
Computers changed. They changed in many ways, but for the purpose of this text they changed in one significant way: The relative cost of reading from RAM became extremely high.
read moreEverything I Know About Git
Personal Notes | Patricia Aas | 07 November 2019
Ok, fine, I probably know more, and yes, you will probably disagree with some of this, but we both know I wrote this more for me than for you, so you’re welcome :)
read moreKeynote, Embedded Ethics
EuroBSDCon 2019 | Patricia Aas | 21 September 2019
More and more we see technology, both hardware and software, intersect with fundamental issues like privacy, democracy and human rights. The opaqueness of tech makes it a handy instrument of oppression and manipulation. We have taught the population to trust us. We have constructed a world in which they have to exist, with little to no oversight or transparency. We build critical infrastructure on hardware and software that even we cannot audit. How can we wield that responsibility? How do we protect those that speak up? How do we protect the population?
read moreSurvival Tips for Women in Tech
JavaZone 2019 | Patricia Aas | 12 September 2019
Being the only woman on your team can be hard. Many times it’s difficult to know what is only your experience and what is common. In this talk we’ll go through 24 tips (and a few bonus tips) based on well over a decade of experience being the only woman in several teams. If you’re a woman hopefully you’ll walk out with some ideas you can put to work right away, if you’re a man hopefully you’ll walk out with a new perspective and start noticing things in your day-to-day that you didn’t notice before.
read moreThe Anatomy of an Exploit
NDC TechTown 2019 | Patricia Aas | 05 September 2019
Security vulnerabilities and secure coding is often talked about in the abstract by programmers, but rarely understood. In this talk we will walk through simple exploit attempts, and finally a simple stack buffer overflow exploit, how it’s developed and how it’s used.
read moreKeynote - Elections, Trust and Critical Infrastructure
NDC TechTown 2019 | Patricia Aas | 04 September 2019
Free and correct elections are the linchpin of democracy. For a government to be formed based the will of the people, the will of the people must be heard. Across the world election systems are being classified as critical infrastructure, and they face the same concerns as all other fundamental systems in society.
read moreBuilding in Docker with CLion
Personal Notes | Patricia Aas | 22 August 2019
This workflow was inspired by the Windows Subsystem for Linux (WSL) workflow described by Jetbrains here.
read moreTrying to learn C#
NDC Oslo 2019 | Patricia Aas | 21 June 2019
Learning a new language is often colored by the language you come from.
read moreThe Anatomy of an Exploit
CPPP 2019 | Patricia Aas | 15 June 2019
Security vulnerabilities and secure coding is often talked about in the abstract by programmers, but rarely understood. In this talk we will walk through a simple exploit, how it’s developed and how it’s used. The goal is to try to get a feeling for the point of view of an “attacker”, and to slowly start looking at exploitation as another programming tool. We will mainly be looking at C and x86_64 assembly, so bring snacks.
read moreWhy Is Election Security So Hard?
Paranoia 2019 | Patricia Aas | 21 May 2019
What makes the domain and requirements of elections so difficult to solve with computers? In this talk we will go through a lot of the requirements of an election and what motivates them, and show how computers surprisingly often introduce more vulnerabilities than they solve when applied to elections.
read moreThe Anatomy of an Exploit
ACCU 2019 | Patricia Aas | 10 April 2019
Security vulnerabilities and secure coding is often talked about in the abstract by programmers, but rarely understood. In this talk we will walk through a simple exploit, how it’s developed and how it’s used. The goal is to try to get a feeling for the point of view of an “attacker”, and to slowly start looking at exploitation as another programming tool. We will mainly be looking at C and x86_64 assembly, so bring snacks.
read moreReading Other People's Code
NDC Copenhagen 2019 | Patricia Aas | 29 March 2019
Someone else’s code. Even worse, thousands of lines, maybe hundreds of files of other peoples code. Is there a way to methodically read and understand other peoples work, build their mental models?
read more6 DevSecOps Hacks
FemTech 2019 | Patricia Aas | 27 March 2019
How can you squeeze Security into DevOps? Security is often an understaffed function, so how can you leverage what you have in DevOps to improve your security posture? We will reveal processes already in place that can be used to improve security. This fine tuning of tools and processes can give you DevSecOps on a shoestring.
read moreSimple Meetup Recording Setup
Recording Oslo C++ Users Group Meetups | Patricia Aas | 20 March 2019
About a year ago I sent a DM to Olve Maudal asking if we could revive the Oslo C++ Users Group which had laid dormant for several years. He replied cheerfully: “I think that’s a great idea! You should definitely do that!” True to form I thought: “How hard can it be?” and said “Sure, why not?”
read moreC++ The Principles of Most Surprise
Security Researchers meetup 0x07, February 2019 | Patricia Aas | 25 February 2019
Undefined Behavior and Compiler Optimizations can result in programs that display surprising behavior. In this presentation we look at some examples, and I hope to convince you that you should not reason about Undefined Behavior and that you should take care and use your tools.
read moreDeconstructing Privilege, Keynote
C++ on Sea | Patricia Aas | 04 February 2019
Can you describe a situation that caused you to realize you were privileged?
read moreReading Other People's Code
NDC London 2019 | Patricia Aas | 30 January 2019
Someone else’s code. Even worse, thousands of lines, maybe hundreds of files of other peoples code. Is there a way to methodically read and understand other peoples work, build their mental models?
read moreDevSecOps for Developers, How To Start
NDC Security 2019 | Patricia Aas | 25 January 2019
How can you squeeze Security into DevOps? Security is often an understaffed function, so how can you leverage what you have in DevOps to improve your security posture?
read moreLinux Security APIs and the Chromium Sandbox
NDC Security 2019 | Patricia Aas | 25 January 2019
The Linux Security and Isolation APIs have become the basis of some of the most useful features server-side, providing the isolation required for efficient containers.
read moreLinux Security APIs and the Chromium Sandbox
BlackHoodie 2018 and OWASP Norway Day 2018 | Patricia Aas | 20 November 2018
The Linux Security and Isolation APIs have become the basis of some of the most useful features server-side, providing the isolation required for efficient containers. However, these APIs also form the basis of the Chromium Sandbox on Linux, and we will study them in that context in this talk.
read moreDeconstructing Privilege, Keynote
DevOpsDays Oslo 2018 | Patricia Aas | 29 October 2018
Can you describe a situation that caused to realize you were privileged?
read moreSoftware Vulnerabilities in C and C++
CppCon 2018 | Patricia Aas | 26 September 2018
What does a vulnerability using signed integer overflow look like? Or a stack buffer overflow? How does code like this look and how can we change the way we program to reduce our risk? The first half of this talk will show examples of many different vulnerabilities and describe how these are combined to make the first steps of an exploit. Then we will discuss what kind of programming practices we can employ to reduce the chances of these kinds of bugs creeping into our code.
read moreMake It Fixable
CppCon 2018 | Patricia Aas | 25 September 2018
From experience we have learned that almost any surface we expose could have weaknesses. We have to have a plan on how to deal with issues as they arise, and an architecture that allows us to correct and protect in products that are already in use. When security is lifted up to the discretion of the user, however, we often fail to inform their decision properly. The usability of security and the architecture of fixability are closely connected, and both need continued refinement and focus. This talk will describe architectural and organizational features that make it easier to make corrective...
read moreReading Other People's Code
NDC Sydney 2018 | Patricia Aas | 19 September 2018
Someone else’s code. Even worse, thousands of lines, maybe hundreds of files of other peoples code. Is there a way to methodically read and understand other peoples work, build their mental models? In this talk I will go through techniques I have developed throughout 18 years of programming. Hopefully you will walk away with a plan on how to approach a new code base. But even more I hope you walk away with a feeling of curiosity, wanting to get to know your fellow programmers through their code.
read moreSurvival Tips For Women In Tech
Who else is the only woman on their dev team? | Patricia Aas | 06 September 2018
Yesterday I saw a tweet from Erin Fox @erinfoox where she asked a simple question: “Who else is the only woman on their dev team?” When I answered her that I’d been the only woman dev most of my career, she asked me if I had any survival tips, and I wrote her a list of 24 tips. Quite frankly it could easily be 50. I will list the 24 here, with a little more elaboration.
read moreIsolating GPU Access in its Own Process
Composing Using Multiple Processes (NDC TechTown 2018) | Patricia Aas | 30 August 2018
Chromium’s process architecture has graphics access restricted to a separate GPU-process. There are several reasons why this could make sense, three common ones are: Security, Robustness and Dependency Separation.
read moreLinux Security APIs and the Chromium Sandbox
Using Linux APIs to Isolate Processes (NDC TechTown 2018) | Patricia Aas | 30 August 2018
The Linux Security and Isolation APIs have become the basis of some of the most useful features server-side, providing the isolation required for efficient containers. However, these APIs also form the basis of the Chromium Sandbox on Linux, and we will study them in that context.
read moreWhy make a browser?
Learning by Doing | Patricia Aas | 13 August 2018
I understand why it might seem odd that the first thing I make is a browser, especially right after leaving a browser company. The logic behind it is a bit convoluted, but bear with me. I have a plan.
read moreJumping in at the deep end
Learning new things | Patricia Aas | 11 July 2018
I’ve had a secret dream for years of starting my own company. Being my own boss, making something cool and building a great team to do it with. I didn’t tell anyone, but I have mentally refurbished our basement to be a cool office space maybe a hundred times.
read moreDeconstructing Privilege
Being Spared a Hardship (NDC Oslo 2018) | Patricia Aas | 15 June 2018
Can you describe a situation that caused to realize you were privileged? I have asked many people that question now, and what I have learned is that privilege is an Unconscious Incompetence. Being privileged is a non-event. When we become conscious of it we realize that our privileged experience is not applicable to less privileged people. What happens to them does not happen to us. Only when we become Consciously Incompetent do we realize the need to listen. We need to learn. In this talk I hope to make you realize that we all have privilege and to start a...
read moreSecure Programming Practices in C++
NDC Oslo 2018 | Patricia Aas | 14 June 2018
Bjarne Stroustrup, the creator of C++, once said : “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.” He has also said : “Within C++, there is a much smaller and cleaner language struggling to get out.” Both are true.
read moreReading Other People's Code
Web Rebels 2018 | Patricia Aas | 04 June 2018
Someone else’s code. Even worse, thousands of lines, maybe hundreds of files of other peoples code. Is there a way to methodically read and understand other peoples work, build their mental models? In this talk I will go through techniques I have developed throughout 18 years of programming. Hopefully you will walk away with a plan on how to approach a new code base. But even more I hope you walk away with a feeling of curiosity, wanting to get to know your fellow programmers through their code.
read moreMaking a Headless Android Device
Embedded Meetup 2018 | Patricia Aas and Johan Herland | 07 May 2018
Making a Headless Android Device
read moreIsolating GPU Access in its Own Process
Foss-North 2018 | Patricia Aas | 23 April 2018
Isolating GPU Access in its Own Process
read moreMake It Fixable
NDC Copenhagen 2018 | Patricia Aas | 16 March 2018
Trying to prepare your project or organization to be able to receive vulnerability reports is a daunting task. And often far more complex and cross disciplinary than one first expects. This talk describes some of the most common challenges and how to counteract them.
read moreC++ for Java Developers
JavaZone Academy 2018 | Patricia Aas | 06 February 2018
C++ for Java Developers
read moreSecure Programming Practices in C++
NDC Security 2018 | Patricia Aas | 24 January 2018
Secure Programming Practices in C++
read moreMake it Fixable, Living with Risk
NDC London 2018 | Patricia Aas | 19 January 2018
Make it Fixable, Living with Risk
read moreC++ for Java Developers
SwedenCpp Meetup 2017 | Patricia Aas | 16 November 2017
C++ for Java Developers
read moreLinux Security APIs and the Chromium Sandbox
SwedenCpp Meetup 2017 | Patricia Aas | 16 November 2017
Linux Security APIs and the Chromium Sandbox
read moreTrust, Elections and Twitter
Fscons 2017 | Patricia Aas | 05 November 2017
Trust, Elections and Twitter
read moreMaking a Headless Android Device
NDC TechTown 2017 | Patricia Aas and Johan Herland | 23 October 2017
Making a Headless Android Device
read moreC++ for Java Developers
JavaZone 2017 | Patricia Aas | 13 September 2017
C++ for Java Developers
read moreWe’ve got this!
A Thank You to Twitterverse | Patricia Aas | 05 September 2017
This last week has been a harrowing experience for me. I’m an introverted programmer and generally a very private person, and in the space of just a few days I was suddenly in the news, both nationally and internationally. Even though the experience was completely overwhelming, I have rarely been so touched and so grateful.
read moreMaking Inclusive Products
The People In The Room | Patricia Aas | 17 August 2017
I have spent some time trying to explain the issues around the “Googler memo” lately, and it has made some things clear to me. First of all, most of us want to make the best products we can. We also realise that this means that those products have to work for all kinds of people. The problem is: It has become increasingly clear that we are not doing a great job catering to needs we don’t have ourselves. We are creating products that don’t work on people with dark skin, doesn’t cater to the needs of women, are offensive to...
read moreLinux Security and How Web Browser Sandboxes Really Work
Security Researchers 2017 | Patricia Aas | 19 June 2017
The Linux Security and Isolation APIs have become the basis of some of the most useful features server-side, providing the isolation required for efficient containers. However, these APIs also form the basis of the Chromium Sandbox on Linux, and we will study them in that context.
read moreLinux Security and How Web Browser Sandboxes Really Work
NDC Oslo 2017 | Patricia Aas | 15 June 2017
The Linux Security and Isolation APIs have become the basis of some of the most useful features server-side, providing the isolation required for efficient containers. However, these APIs also form the basis of the Chromium Sandbox on Linux, and we will study them in that context. This is the sandbox used in the Vivaldi, Brave, Chrome and Opera browsers among others. The Chromium Sandbox has a very platform specific implementation, using the platform APIs available to construct it. In this talk we will describe the requirements of the Chromium Sandbox in detail and go through how the Linux implementation fulfills...
read moreMake it Fixable, Living with Risk
Paranoia 2017 | Patricia Aas | 10 May 2017
Coming into a code base can be overwhelming. Taking responsibility for the security of a project can be truly terrifying. This talk will describe a set of common scenarios for a project, and how to counteract them. Hopefully, this will help to move your codebase and project to a state where you will be more prepared to handle incoming vulnerability reports. They are down-to-earth everyday scenarios, illustrated by real world software projects and security incidents. Some of the stories are well known, some are anonymized to protect the innocent. Presented at Paranoia 2017
read moreMake it Fixable, Designing for Change
Security Divas 2017 | Patricia Aas | 26 January 2017
Our users trust us. They trust that we will protect them and lead them down the right path. Doing that right the first time is practically impossible. From experience we have learned that almost any surface we expose could have weaknesses. We have to have a plan on how to deal with issues as they arise, an architecture that allows us to correct and protect in products that are already in use. When security is lifted up to the discretion of the user, however, we often fail to inform their decision properly. The usability of security and the architecture for...
read more