Skip to content

Commit

Permalink
Fifty Years of Ruby: Initial commit
Browse files Browse the repository at this point in the history
I waited **way** too long to commit this. I've got most of the slides
added, lots of them close to finished state, lots of presenter notes.

I'm using [Marp](https://marp.app) this time, replacing
[Remark](http://remarkjs.com/).
  • Loading branch information
booch committed Nov 3, 2024
1 parent fc85a36 commit 0e0d6eb
Show file tree
Hide file tree
Showing 26 changed files with 3,746 additions and 0 deletions.
3 changes: 3 additions & 0 deletions Fifty-Years-of-Ruby/.tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Sadly, Marp 4.0 and 3.4 binaries don't support X86; using Homebrew version for now.
# marp-cli 4.0
node 20
81 changes: 81 additions & 0 deletions Fifty-Years-of-Ruby/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Fifty Years of Ruby

This is a talk that I've been thinking about for many years.
I'll be presenting it ar RubyConf 2024 in Chicago.

I'm using [Marp](https://marp.app) to build my slides.
This is the first time I'm using it; I used [Remark](https://remarkjs.com) for the past several years.

## Setup

I'm using [mise](https://mise.jdx.dev) now, to install the correct versions of the tools I use.
Unfortunately, the binaries that the Marp project supplies on GitHub no longer support MacOS on x86-64.
These are the same binaries that the mise marp-cli plugin uses.
So I'm currently using Homebrew to install Marp.

~~~ shell
mise -y install
brew install --quiet marp-cli
brew upgrade --quiet marp-cli
~~~

## Build

To build the HTML page, and have it auto-update as you make changes:

~~~ shell
marp --config=marp.yml --watch --browser=firefox slides.md -o slides.html
~~~

To build the HTML page for later use:

~~~ shell
marp --config=marp.yml slides.md -o slides.html
~~~

To create a PDF:

~~~ shell
marp --config=marp.yml --pdf --preview slides.md -o slides.pdf
~~~

## TODO

1. Questions for dry-run
- Should I just put everything in chronological order?
- Should I put the RubyConf graphic on most slides?
- Note these TODOs
- Suggestions for better transitions
- Suggestions for better pictures
- Should I include full dates, or just years?
2. Language support for Faux-O
- Bob Martin said that the only thing that has changed in the last 50 years has been adding constraints
- Structured programming constrains use of GOTO
- Object-oriented programming constrains use of global variables
- Functional programming constrains use of assignment
- Declarative programming constrains use of control structures
- I think a language that gives us Faux-O constraints is next
- Why not both OO and FP support in a language?
- Ruby, Smalltalk, and JavaScript do this fairly well
- I believe we need immutable objects that are around passed to functions
- Manipulate them with function calls, rather than message passing
- But the syntax looks the same as OO
- They can **represent** a state instead of **having** a state
- Message-passing actors for the procedural shell
3. Compile-time execution will continue to gain popularity
- Today: you tell it what should run at compile time
- Future: let the compiler run whatever it thinks is best
4. Slide: XR, new Meta concept, Apple XR, Oculus, etc
5. Slide about Mac?
6. Make Headings stay at the top of the page consistently
7. Fix colors in header/footers
8. Add "RubyConf 2024" to title page
9. Make quotes look nicer
10. Add a header with the date?
- or the title
- or RubyConf 2024
11. Create a thumbnail of the presentation
- `marp --image=png slides.md -o og-image.png`
- generate slide-show with `--og-image=og-image.png`
- or add `image: og-image.png` to marp.yml
12. Makefile?
Binary file added Fifty-Years-of-Ruby/assets/A-Little-Smalltalk.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Fifty-Years-of-Ruby/assets/Smalltalk-80-book.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2,138 changes: 2,138 additions & 0 deletions Fifty-Years-of-Ruby/assets/Squak-logo-with-castle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added Fifty-Years-of-Ruby/assets/Squeak-logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Fifty-Years-of-Ruby/assets/parc-campus.webp
Binary file not shown.
Binary file added Fifty-Years-of-Ruby/assets/xerox-alto.webp
Binary file not shown.
15 changes: 15 additions & 0 deletions Fifty-Years-of-Ruby/marp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
theme: slides.css
template: bespoke
bespoke:
osc: false # Don't show on-screen controls.
progress: true # Show a progress bar in the top few pixels of the window.
transition: true # Allow transition animations between slides.
options:
emoji:
unicode: false # Don't use Twemoji (because it hits the Internet).
shortcode: true # Convert shortcodes (like `:dog:`) to Unicode (🐶).
pdfNotes: true # Include notes in PDFs.
pdfOutlines:
pages: false
headings: true
allowLocalFiles: true # Allow PDF converter to read local (relative) files. (WARNING: Potentially insecure.)
32 changes: 32 additions & 0 deletions Fifty-Years-of-Ruby/slides.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
@theme "boochtek";
@import-theme "default";

/* Page numbers in right footer. */
section::after {
content: attr(data-marpit-pagination) " / " attr(data-marpit-pagination-total);
}
header,
footer,
section::after {
font-size: 20px;
padding: 0 1ex;
background: rgba(240, 240, 240, 0.5);
}

section.title h1 {
font-size: 100px;
color: rgb(242, 149, 16);
}

img[src="assets/RubyConf-2024-background-doodle-2.png"] {
position: absolute;
top: 0;
right: 0;
width: 300px;
}

.columns {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}
724 changes: 724 additions & 0 deletions Fifty-Years-of-Ruby/slides.html

Large diffs are not rendered by default.

Loading

0 comments on commit 0e0d6eb

Please sign in to comment.