Skip to content

Commit 66faaa1

Browse files
committed
initial commit
0 parents  commit 66faaa1

File tree

10 files changed

+972
-0
lines changed

10 files changed

+972
-0
lines changed

.github/workflows/deploy.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
name: Deploy
3+
4+
"on":
5+
push:
6+
branches:
7+
- "main"
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
deploy-www:
14+
name: Deploy WWW
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
- name: Login to Tailscale
20+
uses: tailscale/github-action@v2
21+
with:
22+
oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}
23+
oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}
24+
tags: tag:github-actions
25+
- name: Build and Deploy
26+
env:
27+
RSYNC_PASSWORD: ${{ secrets.RSYNC_PASSWORD }}
28+
run: |
29+
rsync -avz --delete ./www/ rsync://[email protected]/codeoptional.com/
30+
31+
ntfy:
32+
name: Ntfy
33+
if: ${{ !cancelled() }}
34+
runs-on: ubuntu-latest
35+
needs: [deploy-www]
36+
steps:
37+
- name: Send success notification
38+
uses: niniyas/ntfy-action@master
39+
if: ${{ !contains(needs.*.result, 'failure') }}
40+
with:
41+
url: "https://ntfy.cdzombak.net"
42+
topic: "dotcom-deploys"
43+
priority: 3
44+
headers: '{"authorization": "Bearer ${{ secrets.NTFY_TOKEN }}"}'
45+
tags: white_check_mark
46+
title: ${{ github.event.repository.name }} deployed
47+
details: cdzombak/${{ github.event.repository.name }} updated to ${{ github.sha }}
48+
- name: Send failure notification
49+
uses: niniyas/ntfy-action@master
50+
if: ${{ contains(needs.*.result, 'failure') }}
51+
with:
52+
url: "https://ntfy.cdzombak.net"
53+
topic: "gha-builds"
54+
priority: 3
55+
headers: '{"authorization": "Bearer ${{ secrets.NTFY_TOKEN }}"}'
56+
tags: no_entry
57+
title: ${{ github.event.repository.name }} deploy failed
58+
details: deploy failed for cdzombak/${{ github.event.repository.name }} ${{ github.sha }}

about.html

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>About - Code Optional</title>
7+
<meta name="description" content="Learn about the hosts of Code Optional: Andrew Sardone, Kevin Vitale, and Chris Dzombak.">
8+
<link rel="stylesheet" href="style.css">
9+
</head>
10+
<body>
11+
<header>
12+
<div class="container">
13+
<a href="index.html" class="logo">Code Optional</a>
14+
<nav>
15+
<ul>
16+
<li><a href="index.html">Episodes</a></li>
17+
<li><a href="about.html">About</a></li>
18+
</ul>
19+
</nav>
20+
</div>
21+
</header>
22+
23+
<main class="container">
24+
<section class="about-section">
25+
<h1>Code Optional</h1>
26+
<p>Three engineering comrades – Andrew Sardone, Kevin Vitale, and Chris Dzombak – talk about development, design, and shipping apps. There's a heavy slant towards Apple tech, balanced with general inquiries around programming and the intricacies/inanities of software.</p>
27+
</section>
28+
29+
<div class="about-image">
30+
<img src="../show-notes/about.jpeg" alt="Code Optional origin story">
31+
</div>
32+
</main>
33+
34+
<footer>
35+
<div class="container">
36+
<p>&copy; Code Optional (Chris Dzombak, Andrew Sardone, Kevin Vitale)</p>
37+
</div>
38+
</footer>
39+
</body>
40+
</html>

episode-1.html

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Episode 1: We started this new project in Swift - Code Optional</title>
7+
<meta name="description" content="Andrew, Chris, and Kevin sit down for their inaugural chat, scratching the surface of Swift.">
8+
<link rel="stylesheet" href="style.css">
9+
</head>
10+
<body>
11+
<header>
12+
<div class="container">
13+
<a href="index.html" class="logo">Code Optional</a>
14+
<nav>
15+
<ul>
16+
<li><a href="index.html">Episodes</a></li>
17+
<li><a href="about.html">About</a></li>
18+
</ul>
19+
</nav>
20+
</div>
21+
</header>
22+
23+
<main class="container">
24+
<article class="episode-header">
25+
<div class="episode-number">Episode 1</div>
26+
<h1>We started this new project in Swift</h1>
27+
<p class="episode-description">Andrew, Chris, and Kevin sit down for their inaugural chat, scratching the surface of Swift.</p>
28+
</article>
29+
30+
<section class="audio-player">
31+
<h2>Listen to Episode</h2>
32+
<audio controls>
33+
<source src="https://dropbox.dzombak.com/cloud/code-optional/codeoptional001.mp3" type="audio/mpeg">
34+
Your browser does not support the audio element.
35+
</audio>
36+
</section>
37+
38+
<section class="show-notes">
39+
<h2>Show Notes</h2>
40+
<ul>
41+
<li>John Siracusa's <a href="http://arstechnica.com/staff/2005/09/1372/" target="_blank">Copland 2010</a> <a href="http://arstechnica.com/apple/2010/06/copland-2010-revisited/" target="_blank">articles</a></li>
42+
<li><a href="https://github.com/robb/Cartography" target="_blank">Cartography</a> – the Auto layout constraint operator overloading library mentioned by Chris</li>
43+
<li><a href="https://twitter.com/futurepaul/status/473902211463118848" target="_blank">Noah's ark in Swift</a></li>
44+
<li>Operator overloading for FoundationKit – <a href="https://github.com/jednymslowem/FoundationOperators" target="_blank">jednymslowem/FoundationOperators</a>
45+
<ul>
46+
<li>We can <em>finally</em> get <code>NSNumber + NSNumber</code>!</li>
47+
</ul>
48+
</li>
49+
<li><a href="https://dayone.me/mVYz31" target="_blank">Andrew has no idea what he's doing</a></li>
50+
<li>Find us online at…
51+
<ul>
52+
<li><a href="http://twitter.com/andrewa2" target="_blank">@andrewa2</a></li>
53+
<li><a href="https://twitter.com/cdzombak" target="_blank">@cdzombak</a></li>
54+
<li><a href="https://twitter.com/vitalekj" target="_blank">@vitalekj</a></li>
55+
</ul>
56+
</li>
57+
</ul>
58+
</section>
59+
</main>
60+
61+
<footer>
62+
<div class="container">
63+
<p>&copy; Code Optional (Chris Dzombak, Andrew Sardone, Kevin Vitale)</p>
64+
</div>
65+
</footer>
66+
</body>
67+
</html>

episode-2.html

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Episode 2: Frameworks, you guys don't even know how many sunshine and rainbows - Code Optional</title>
7+
<meta name="description" content='Andrew, Chris, and Kevin discuss "Google becoming Apple" and how dynamic frameworks will replace CocoaPods.'>
8+
<link rel="stylesheet" href="style.css">
9+
</head>
10+
<body>
11+
<header>
12+
<div class="container">
13+
<a href="index.html" class="logo">Code Optional</a>
14+
<nav>
15+
<ul>
16+
<li><a href="index.html">Episodes</a></li>
17+
<li><a href="about.html">About</a></li>
18+
</ul>
19+
</nav>
20+
</div>
21+
</header>
22+
23+
<main class="container">
24+
<article class="episode-header">
25+
<div class="episode-number">Episode 2</div>
26+
<h1>Frameworks, you guys don't even know how many sunshine and rainbows</h1>
27+
<p class="episode-description">Andrew, Chris, and Kevin sit down for a chat on "Google becoming Apple" (or so Kevin says), and how dynamic frameworks for third party developers will replace CocoaPods (or so Kevin says).</p>
28+
</article>
29+
30+
<section class="audio-player">
31+
<h2>Listen to Episode</h2>
32+
<audio controls>
33+
<source src="https://dropbox.dzombak.com/cloud/code-optional/codeoptional002.mp3" type="audio/mpeg">
34+
Your browser does not support the audio element.
35+
</audio>
36+
</section>
37+
38+
<section class="show-notes">
39+
<h2>Show Notes</h2>
40+
<ul>
41+
<li><a href="http://www.engadget.com/2014/06/25/google-to-bring-android-apps-to-the-chromebook/" target="_blank">Android apps on Chromebooks</a></li>
42+
<li>NSHipster <a href="http://nshipster.com/nscalendarunityear/" target="_blank">article</a> mentions UIBezierPath and operator overloading</li>
43+
<li>Swift arrays in <a href="https://github.com/andrewsardone/swift-playground/issues/2#issue-34921587" target="_blank">beta 1 and 2</a> vs. <a href="https://github.com/andrewsardone/swift-playground/issues/2#issuecomment-48210232" target="_blank">beta 3</a>
44+
<ul>
45+
<li>Mike Ash's <a href="https://mikeash.com/pyblog/friday-qa-2014-06-20-interesting-swift-features.html" target="_blank">Swift features blog post</a> and <a href="https://mikeash.com/pyblog/friday-qa-2014-06-20-interesting-swift-features.html#comment-2ba71511053a8017a556bc4ef9c091fa" target="_blank">Chris Lattner's arrays comment</a></li>
46+
</ul>
47+
</li>
48+
<li><a href="https://devforums.apple.com/message/1000934#1000934" target="_blank">Allowed characters</a> in Swift operators.</li>
49+
<li>Frameworks
50+
<ul>
51+
<li>Xcode 6's <a href="https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_6_0.html#//apple_ref/doc/uid/TP40014509-SW14" target="_blank">dynamic frameworks on iOS</a></li>
52+
<li><a href="http://landonf.bikemonkey.org/code/iphone/iPhone_Framework_Support.20081202.html" target="_blank">Shipping Libraries on iOS</a> (2008)</li>
53+
<li><a href="http://landonf.bikemonkey.org/code/ios/Radar_15800975_iOS_Frameworks.20140112.html" target="_blank">Static Libraries are Really, Really Bad</a> (2014)</li>
54+
</ul>
55+
</li>
56+
<li><a href="http://cocoapods.org/" target="_blank">CocoaPods</a>
57+
<ul>
58+
<li>Upcoming <a href="http://blog.cocoapods.org/Stripe-Open-Source-Retreat/" target="_blank">CocoaPods' dependency resolver</a></li>
59+
</ul>
60+
</li>
61+
<li>Find us online at…
62+
<ul>
63+
<li><a href="http://twitter.com/andrewa2" target="_blank">@andrewa2</a></li>
64+
<li><a href="https://twitter.com/cdzombak" target="_blank">@cdzombak</a></li>
65+
<li><a href="https://twitter.com/vitalekj" target="_blank">@vitalekj</a></li>
66+
</ul>
67+
</li>
68+
</ul>
69+
</section>
70+
</main>
71+
72+
<footer>
73+
<div class="container">
74+
<p>&copy; Code Optional (Chris Dzombak, Andrew Sardone, Kevin Vitale)</p>
75+
</div>
76+
</footer>
77+
</body>
78+
</html>

episode-3.html

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Episode 3: So we didn't talk about Core Data - Code Optional</title>
7+
<meta name="description" content="Andrew, Kevin, and Chris plan to talk about Core Data. Instead, they discuss navigation patterns for iOS apps.">
8+
<link rel="stylesheet" href="style.css">
9+
</head>
10+
<body>
11+
<header>
12+
<div class="container">
13+
<a href="index.html" class="logo">Code Optional</a>
14+
<nav>
15+
<ul>
16+
<li><a href="index.html">Episodes</a></li>
17+
<li><a href="about.html">About</a></li>
18+
</ul>
19+
</nav>
20+
</div>
21+
</header>
22+
23+
<main class="container">
24+
<article class="episode-header">
25+
<div class="episode-number">Episode 3</div>
26+
<h1>So we didn't talk about Core Data</h1>
27+
<p class="episode-description">Andrew, Kevin, and Chris plan to talk about Core Data. Instead, they discuss navigation patterns for iOS apps.</p>
28+
</article>
29+
30+
<section class="audio-player">
31+
<h2>Listen to Episode</h2>
32+
<audio controls>
33+
<source src="https://dropbox.dzombak.com/cloud/code-optional/codeoptional003.mp3" type="audio/mpeg">
34+
Your browser does not support the audio element.
35+
</audio>
36+
</section>
37+
38+
<section class="show-notes">
39+
<h2>Show Notes</h2>
40+
<ul>
41+
<li><a href="http://googledrive.blogspot.com/2014/04/docssheetsapps.html" target="_blank">New Google Docs/Sheets/Slides apps</a></li>
42+
<li><a href="http://blog.path.com/post/76264291404/path-for-ios-7" target="_blank">Path</a></li>
43+
<li><a href="http://1writerapp.com" target="_blank">1Writer</a></li>
44+
<li><a href="http://asciiwwdc.com/2014/sessions/211" target="_blank">WWDC Session 211, which mentions hamburger menus</a></li>
45+
<li><a href="https://twitter.com/cdzombak/statuses/241033808026148865?tw_i=241033808026148865&tw_e=details&tw_p=archive" target="_blank">Chris complaining about the "more" button</a></li>
46+
<li><a href="http://tapbots.com/software/tweetbot/" target="_blank">Tweetbot</a></li>
47+
<li><a href="http://www.shiftyjelly.com/pocketcasts" target="_blank">Pocket Casts</a></li>
48+
<li><a href="http://reederapp.com/ios/" target="_blank">Reeder</a></li>
49+
<li><a href="https://developer.apple.com/swift/blog/" target="_blank">Swift Blog</a></li>
50+
<li><a href="http://www.reddit.com/r/swift/comments/29kswq/follow_apples_comments_in_developertools/" target="_blank">Apple employees to follow on the Apple Dev Forums</a></li>
51+
<li>Find us online at…
52+
<ul>
53+
<li><a href="http://twitter.com/andrewa2" target="_blank">@andrewa2</a></li>
54+
<li><a href="https://twitter.com/cdzombak" target="_blank">@cdzombak</a> / <a href="http://dzombak.com" target="_blank">dzombak.com</a></li>
55+
<li><a href="https://twitter.com/vitalekj" target="_blank">@vitalekj</a></li>
56+
</ul>
57+
</li>
58+
</ul>
59+
</section>
60+
</main>
61+
62+
<footer>
63+
<div class="container">
64+
<p>&copy; Code Optional (Chris Dzombak, Andrew Sardone, Kevin Vitale)</p>
65+
</div>
66+
</footer>
67+
</body>
68+
</html>

0 commit comments

Comments
 (0)