From eaedbc375a6620dcc5fe6b8e21bdc2c750321724 Mon Sep 17 00:00:00 2001 From: Sean Parent Date: Wed, 3 Jan 2024 23:51:57 -0800 Subject: [PATCH] Updating site Adding several presentations, papers, interviews, and sightings. --- .ruby-version | 2 +- Gemfile.lock | 43 ++++-- papers-and-presentations.md | 127 ++++++++++++++++++ ...2023-09-28-composing-algorithms-notes.pdf} | Bin .../2023-09-28-composing-algorithms.key} | Bin .../2023-09-28-composing-algorithms.pdf} | Bin .../raw-loops.cpp | 0 tools/docker-tools/Dockerfile | 2 +- tools/docker-tools/README.md | 5 +- tools/docker-tools/VERSION | 2 +- 10 files changed, 163 insertions(+), 18 deletions(-) rename presentations/{2023-08-24-composing-algorithms/2023-08-24-composing-algorithms-notes.pdf => 2023-09-28-composing-algorithms/2023-09-28-composing-algorithms-notes.pdf} (100%) rename presentations/{2023-08-24-composing-algorithms/2023-08-24-composing-algorithms.key => 2023-09-28-composing-algorithms/2023-09-28-composing-algorithms.key} (100%) rename presentations/{2023-08-24-composing-algorithms/2023-08-24-composing-algorithms.pdf => 2023-09-28-composing-algorithms/2023-09-28-composing-algorithms.pdf} (100%) rename presentations/{2023-08-24-composing-algorithms => 2023-09-28-composing-algorithms}/raw-loops.cpp (100%) diff --git a/.ruby-version b/.ruby-version index be94e6f..15a2799 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.2 +3.3.0 diff --git a/Gemfile.lock b/Gemfile.lock index 5564088..f42ccaa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.5) + addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) colorator (1.1.0) concurrent-ruby (1.2.2) @@ -9,14 +9,13 @@ GEM eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.15.5) + ffi (1.16.3) forwardable-extended (2.6.0) - google-protobuf (3.24.2-aarch64-linux) - google-protobuf (3.24.2-x86_64-linux) + google-protobuf (3.25.1) http_parser.rb (0.8.0) i18n (1.14.1) concurrent-ruby (~> 1.0) - jekyll (4.3.2) + jekyll (4.3.3) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -51,25 +50,43 @@ GEM mercenary (0.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (5.0.3) + public_suffix (5.0.4) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.6) - rouge (4.1.3) + rouge (4.2.0) safe_yaml (1.0.5) - sass-embedded (1.66.1-aarch64-linux-gnu) - google-protobuf (~> 3.23) - sass-embedded (1.66.1-x86_64-linux-gnu) - google-protobuf (~> 3.23) + sass-embedded (1.69.7-aarch64-linux-android) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-aarch64-linux-gnu) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-arm-linux-androideabi) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-arm-linux-gnueabihf) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-arm-linux-musleabihf) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-x86-linux-android) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-x86_64-linux-android) + google-protobuf (~> 3.25) + sass-embedded (1.69.7-x86_64-linux-gnu) + google-protobuf (~> 3.25) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) webrick (1.8.1) PLATFORMS aarch64-linux + aarch64-linux-android + arm-linux-androideabi + arm-linux-gnueabihf + arm-linux-musleabihf + x86-linux-android x86_64-linux + x86_64-linux-android DEPENDENCIES jekyll @@ -77,4 +94,4 @@ DEPENDENCIES jekyll-redirect-from BUNDLED WITH - 2.4.19 + 2.5.3 diff --git a/papers-and-presentations.md b/papers-and-presentations.md index edb3905..1ae62fe 100644 --- a/papers-and-presentations.md +++ b/papers-and-presentations.md @@ -18,6 +18,57 @@ comments: true *** +Date: 2023-10-06 + +### Better Code: Contracts + +Coauthored and presented with Dave Abrahams. + +Are you confident that the code you write, and the changes you make, are correct? What does “correct” even mean? How do we know the code we write today won’t become a long-term liability? These persistent questions can be enough to suck all the fun out of programming, but it doesn’t have to be that way. In this talk, we’ll look at the connective tissue of good code and show how to keep it strong and supple. There is no need to wait for language features to start using contracts. We’ll suggest replacing code reviews with something better and charting the path to a more hopeful future of software. + +Note: This talk was presented at the [CppCon 2023](https://cppcon2023.sched.com/event/1Qtgl) conference, 2023-10-06. + +* [Video](https://youtu.be/OWsepDEh5lQ) +* [Slides](/presentations/2023-10-06-better-code-contracts/2023-10-06-better-code-contracts.pdf) +* [Keynote](/presentations/2023-10-06-better-code-contracts/2023-10-06-better-code-contracts.key) + +*** + +Date: 2023-09-28 + +### Better Code: Algorithms - Composition + +Algorithm composition is the process of combining existing algorithms to create new ones that solve complex problems. This talk looks at different forms of composition with different trade-offs. The talk will inspire you to think of algorithms as reusable building blocks that can be combined in novel ways. + +Note: This talk was presented internally at Adobe and will be available on the [C++ at Adobe](https://developer.adobe.com/cpp/training/) site. + +* [Slides](/presentations/2023-09-28-algorithm-composition/2023-09-28-algorithm-composition.pdf) +* [Slides with notes](/presentations/2023-09-28-algorithm-composition/2023-09-28-algorithm-composition-notes.pdf) +* [Keynote](/presentations/2023-09-28-algorithm-composition/2023-09-28-algorithm-composition.key) + +*** + +Date: 2023-06-08, 2023-05-25 + +### Better Code: Algorithms - Preliminaries + +A function is a fundamental building block in software development and a key tool for designing efficient and maintainable systems. This talk looks at the characteristics of a “good” function and provides practical guidance on when and how to refactor and utilize existing libraries to develop _Better Code_. + +Note: This talk was presented internally at Adobe and is available on the [C++ at Adobe](https://developer.adobe.com/cpp/training/) site. + +* [Video](https://youtu.be/wtOkvB_iFw4) +* [Slides](/presentations/2023-06-08-algorithms/2023-06-08-algorithms.pdf) +* [Slides with notes](/presentations/2023-06-08-algorithms/2023-06-08-algorithms-notes.pdf) +* [Keynote](/presentations/2023-06-08-algorithms/2023-06-08-algorithms.key) + +Initial draft version: + +* [Slides](/presentations/2023-05-25-algorithms/2023-05-25-algorithms.pdf) +* [Slides with notes](/presentations/2023-05-25-algorithms/2023-05-25-algorithms-notes.pdf) +* [Keynote](/presentations/2023-05-25-algorithms/2023-05-25-algorithms.key) + +*** + Date: 2023-06-28, 2023-05-08 ### All the Safeties @@ -494,6 +545,20 @@ A plethora of networked devices is changing the software landscape. The infrastr *** +Date: 2023-11-20 + +### indirect and polymorphic: Vocabulary Types for Composite Class Design + +Authors: Jonathan Coe, Antony Peacock, Sean Parent + +Abstract: We propose the addition of two new class templates to the C++ Standard Library: `indirect`` and `polymorphic``. + +Specializations of these class templates have value semantics and compose well with other standard library types (such as vector), allowing the compiler to correctly generate special member functions. + +[Markdown](https://github.com/jbcoe/value_types/blob/main/DRAFT.md) + +*** + Date: 2021-04-14 ### Relaxing Requirements of Moved-From Objects @@ -551,6 +616,18 @@ Note: Paper presented at [GPCE 2015](http://2015.gpce.org/event/gpce2015-generat *** +Date: 2014-10-10 + +### D4128: Ranges for the Standard Library: Revision 1 + +Authors: Eric Niebler, Sean Parent, Andrew Sutton + +Abstract: This paper outlines what support for ranges in the C++ standard library might look like. Rather than presenting a final design, this paper proposes a set of concepts and guidelines for using them to implement range-based versions of the standard algorithms. It draws inspiration from the Boost.Range library, the range algorithms in Adobe Source Libraries, Elements of Programming by Stepanov and McJones (2009), and from N3351 “A Concept Design for the STL” by Stroustrup and Sutton (2012). In addition to presenting the concepts and guidelines, this paper discusses the rationale behind each, weighing different design options. + +* [HTML](https://ericniebler.github.io/std/wg21/D4128.html) + +*** + Date: 2011-10 ### Helping Programmers Help Users @@ -662,6 +739,26 @@ From: The 6th International Workshop on Multiparadigm Programming with Object-Or *** +Date: 2023-12-29 + +### ADSP: The Podcast - Episode 162: Sean Parent on the History of Pascal + +In this episode, Conor and Bryce chat with Sean Parent about Pascal, C, Unix, Modula(-2/3) and more! + +* [Audio](https://adspthepodcast.com/2023/12/29/Episode-162.html) + +*** + +Date 2023-12-15 + +### ADSP: The Podcast - Episode 160: Rust & Safety at Adobe with Sean Parent + +In this episode, Conor and Bryce chat with Sean Parent about the latest on the Hylo programming language, potential limitations to the C++ Senders and Receivers model and the status of Rust and safety at Adobe. + +* [Audio](https://adspthepodcast.com/2023/12/15/Episode-160.html) + +*** + Date: 2023-07-21 ### ADSP: The Podcast - Episode 139: Why Sean Parent Joined Adobe @@ -858,6 +955,36 @@ An interview published in [MacTech](https://en.wikipedia.org/wiki/MacTech). *** +## Sightings + +Random sightings of me on the web. + +*** + +Date: 2023-09-08 + +### Basal Gangster - A/UX: The Long View (2010) + +References my [ADSP interview](https://adspthepodcast.com/2021/06/04/Episode-28.html) discussing how Carbon almost didn't happen. + +[Audio]](https://macfolkloreradio.com/2023/09/08/basal-gangster-a-ux-the-long-view.html) + +*** + +Date: 1992 + +### MacHack 1992 + +Somehow I convinced Apple to allow me to bring a prototype of the RISC based Macintosh to MacHack 1992. This unit used an [M68110 with an emulator written by Gary Davidian](https://computerhistory.org/blog/transplanting-the-macs-central-processor-gary-davidian-and-his-68000-emulator/). We did not yet have a prototype with a PowerPC processor. I offered $100 dollars to anyone who could find a piece of Mac software that would not run on the prototype. Waldemar Horwat won the $100 dollars by finding that the TMON debugger did not run under emulation. The video from MacHack is unwatchable but does capture me presenting payment to Waldemar. + +* [Video](https://youtu.be/MzQgU5IytNw?si=EpeFvpZzqGKWQPwb&t=1351) + +On the same unwatchable video is a clip of me presenting my hack, _Okay, What was that?_ + +* [Video](https://youtu.be/MzQgU5IytNw?si=avV-qL7YslnM6fQd&t=2419) + +*** + ## Older papers and presentation *** diff --git a/presentations/2023-08-24-composing-algorithms/2023-08-24-composing-algorithms-notes.pdf b/presentations/2023-09-28-composing-algorithms/2023-09-28-composing-algorithms-notes.pdf similarity index 100% rename from presentations/2023-08-24-composing-algorithms/2023-08-24-composing-algorithms-notes.pdf rename to presentations/2023-09-28-composing-algorithms/2023-09-28-composing-algorithms-notes.pdf diff --git a/presentations/2023-08-24-composing-algorithms/2023-08-24-composing-algorithms.key b/presentations/2023-09-28-composing-algorithms/2023-09-28-composing-algorithms.key similarity index 100% rename from presentations/2023-08-24-composing-algorithms/2023-08-24-composing-algorithms.key rename to presentations/2023-09-28-composing-algorithms/2023-09-28-composing-algorithms.key diff --git a/presentations/2023-08-24-composing-algorithms/2023-08-24-composing-algorithms.pdf b/presentations/2023-09-28-composing-algorithms/2023-09-28-composing-algorithms.pdf similarity index 100% rename from presentations/2023-08-24-composing-algorithms/2023-08-24-composing-algorithms.pdf rename to presentations/2023-09-28-composing-algorithms/2023-09-28-composing-algorithms.pdf diff --git a/presentations/2023-08-24-composing-algorithms/raw-loops.cpp b/presentations/2023-09-28-composing-algorithms/raw-loops.cpp similarity index 100% rename from presentations/2023-08-24-composing-algorithms/raw-loops.cpp rename to presentations/2023-09-28-composing-algorithms/raw-loops.cpp diff --git a/tools/docker-tools/Dockerfile b/tools/docker-tools/Dockerfile index 3d89da8..9da01d9 100644 --- a/tools/docker-tools/Dockerfile +++ b/tools/docker-tools/Dockerfile @@ -69,7 +69,7 @@ RUN (eval "$(rbenv init -)"; \ rbenv install `cat .ruby-version`; \ gem install bundler; \ rbenv rehash; \ - bundle install) + bundle install --frozen) WORKDIR /home/app diff --git a/tools/docker-tools/README.md b/tools/docker-tools/README.md index fce002e..2e44304 100644 --- a/tools/docker-tools/README.md +++ b/tools/docker-tools/README.md @@ -10,14 +10,14 @@ If you don't already have Docker installed, [install Docker](https://docs.docker To build the docker image, first update the VERSION variable below (please use semantic versioning). Add a [release note](#release-notes). ``` -VERSION="1.0.15" +VERSION="1.0.16" echo $VERSION > ./tools/docker-tools/VERSION VOLUME="sean-parent.github.io" # Specify the ruby version to match the latest stable - https://www.ruby-lang.org/en/downloads/ -RUBY_VERSION="3.2.2" +RUBY_VERSION="3.3.0" echo $RUBY_VERSION > ./.ruby-version # build the base image, no-cache is used so the latest tools are installed @@ -113,3 +113,4 @@ docker run --mount type=bind,source="$(pwd)",target=/mnt/host \ - 1.0.13 - Updating tooling - 1.0.14 - Updating to use github actions - 1.0.15 - Updating tooling +- 1.0.16 - Updating tooling diff --git a/tools/docker-tools/VERSION b/tools/docker-tools/VERSION index a970716..b668c3b 100644 --- a/tools/docker-tools/VERSION +++ b/tools/docker-tools/VERSION @@ -1 +1 @@ -1.0.15 +1.0.16