Skip to content

Instantly share code, notes, and snippets.

View swyxio's full-sized avatar
🎯
Focusing

swyx.io swyxio

🎯
Focusing
View GitHub Profile
@swyxio
swyxio / overcast.opml
Created August 12, 2022 16:01
my Overcast podcast feed - Aug 2022
<?xml version="1.0"?>
<opml version="1.0"><head><title>Overcast Podcast Subscriptions</title></head><body>
<outline type="rss"
text="Editor's Picks from The Economist" title="Editor's Picks from The Economist"
xmlUrl="https://rss.acast.com/theeconomisteditorspicks"
htmlUrl="http://www.economist.com/"/>
<outline type="rss"
text="The History of English Podcast" title="The History of English Podcast"
xmlUrl="https://historyofenglishpodcast.com/feed/podcast/"
htmlUrl="https://historyofenglishpodcast.com/"/>
@swyxio
swyxio / 01 - sample workflow.ts
Last active February 15, 2022 17:55
sample Temporal workflow - see https://youtu.be/2pxZgGhT-Xo for context and full video!
import * as wf from '@temporalio/workflow';
import differenceInMilliseconds from 'date-fns/differenceInMilliseconds';
import type * as activities from './activities';
import { sub } from 'date-fns'
const {
doMaintenance,
notifySubscribers
} = wf.proxyActivities<typeof activities>({
// remember to adjust timeouts!
@swyxio
swyxio / AutoHotkey.ahk
Last active December 7, 2021 10:37
swyx's autohotkey circa 2014. i used this thing extensively from 2010-2014. In one case it was at least responsible for automating away part of my own job.
Settitlematchmode, 2
F12::
winmove, A,, 1,1,600,600
return
#IfWinActive, Microsoft Word
::sigma::
;Send {Backspace 1}
.site-intro {
font-size: 1.25rem;
width: 60ch;
margin: 0 auto;
}
.site-credits {
position: fixed;
width: 100vw;
bottom: 0;
@swyxio
swyxio / workflow apis tweak.md
Last active October 25, 2021 18:53
workflow apis tweak.md

now that we have a cohesive look at workflow APIs, some issues remain:

  • createActivityHandle isnt really a handle, in the way that createWorkflowHandle and createChildWorkflowHandle are. it returns a function that you call.
    • users are confused by the proxy destructure which a very fancy way of doing type safety and ensuring consistent naming
  • defineSignal/Query dont add much value since they just create an object
    • extra setListener api that is doing the real work, basically 2 different functions branching by def.type

just taking another crack at api design.

simplified query and signal api

@swyxio
swyxio / sample.go
Created July 6, 2021 20:09
old Temporal code samples
func mainWorkflow(ctx workflow.Context, userId) error {
// ...
selector.AddReceive(signalChannel, func(c workflow.ReceiveChannel, more bool) {
c.Receive(ctx, &signalVal) // receive user signals!
})
timerFuture := workflow.NewTimer(childCtx, 30 * time.Day) // sleep for 30 days!
selector.AddFuture(timerFuture, func(f workflow.Future) {
_ = workflow.ExecuteActivity(ctx, SendEmailActivity).Get(ctx, nil) // timeouts and retries!
})
// Scale to Millions + Write Tests + Encrypt Data + Migrate Versions + ...
@swyxio
swyxio / useLocalStorage.js
Last active March 14, 2023 18:27
SSR friendly version of useLocalStorage hook. you can also use this in a library https://github.com/astoilkov/use-local-storage-state
// usage
function Comp() {
const [language, setLanguage] = useLocalStorage('mykey', 'typescript')
}
// definition
function useLocalStorage(key, initialValue) {
const [storedValue, setStoredValue] = React.useState(initialValue);
React.useEffect(() => {
// Get from local storage by key
@swyxio
swyxio / clubhouse blogpost old.md
Created February 5, 2021 16:00
clubhouse blogpost old

Clubhouse is a great way to access celebrities but a terrible listening experience. They got all the growth factors right, but none of the retention and compounding factors.

Andrew Chen, Ryan Hoover, Michael Grinich and Sahil Lavingia think it could be a $100b company — and they have insider knowledge of metrics. I don't think Clubhouse is a zero - it has genuinely created a new category - it's just not very valuable. I'm taking the other side of that bet (but of course wish them well).

Context:

this is what i use so far, its obviously not a 100% replica of the typography plugin but looks good enough on my site

  /* replace typography plugin */
  .prose {
    @apply text-gray-700 dark:text-gray-300
  }
  .prose {
    & p {
OSZAR »