Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.
You've got two main options:
This was originally written for a Remix app, but you could adapt it to work for any SSR framework.
Check the docs for these packages to learn how to use these snippets
https://www.npmjs.com/package/kysely-migration-cli https://www.npmjs.com/package/kysely-codegen https://www.npmjs.com/package/kysely#migrations
It's configured to use MySQL on Planetscale, but you could adjust it to use Postgres or SQLite if you want.
OBJS := lol.o b64.o | |
lol: $(OBJS) | |
cc -o $@ $(OBJS) | |
%.o: %.c | |
cc -c $< -o $@ |
function parseHTML(getNextElement) { | |
let doneParsing = null; | |
const whenDoneParsing = new Promise(resolve => { doneParsing = resolve; }); | |
while (const element = getNextElement()) { | |
if (element.tagName !== "SCRIPT") { | |
// parse everything else... | |
continue; | |
} |
// Our encouraged use of suspense in Apollo will comprise of 2 hooks: useBackgroundQuery and useReadQuery (final names TBD). | |
// Using these 2 together encourage the use of the render-as-you-fetch pattern to start fetching as soon as possible: | |
// https://17.reactjs.org/docs/concurrent-mode-suspense.html#approach-3-render-as-you-fetch-using-suspense | |
const Parent = () => { | |
// This hook provides no access to data. It's meant purely as a fetching mechanism | |
const { promise } = useBackgroundQuery(QUERY); | |
return ( | |
<Suspense fallback="Loading..."> |
Remix Deferred is currently implemented on top of React's Suspense model but is not limited to React. This will be a quick dive into how "promise over the wire" is accomplished.
It isn't rocket science, but a quick recap of how frameworks such as react do SSR:
I have an updated version of this on my blog here: https://chrisamico.com/blog/2023-01-14/python-setup/.
This is my recommended Python setup, as of Fall 2022. The Python landscape can be a confusing mess of overlapping tools that sometimes don't work well together. This is an effort to standardize our approach and environments.
$ grep -P "^[ABCDEFabcdefOoIi]{6,6}$" /usr/share/dict/words | tr 'OoIi' '0011' | tr '[:lower:]' '[:upper:]' | awk '{print "#" $0}' | |
#ACAD1A | |
#B0BB1E | |
#DEBB1E | |
#AB1DED | |
#ACAC1A | |
#ACCEDE | |
#AC1D1C | |
#BAB1ED | |
#BA0BAB |
import UIKit | |
import SwiftUI | |
class ViewController: UIViewController { | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
let box = UIView() | |
box.frame = CGRect(x: (view.bounds.width / 2.0) - 100.0, y: 0.0, width: 100.0, height: 100.0) | |
box.backgroundColor = .systemGreen |
/* | |
data can enter the pipeline via push or pull. | |
the result of each intermediate step is stored (so errors can be retried) | |
at the end of the pipeline data is put into a document store | |
optionally, event handlers can listen to create/update/delete events and fan data out to other systems | |
*/ | |
// example of a push handler (aka webhooks) | |
// src/push/shopify/order/created.js | |
// receive events, and returned data is stored in ClickHouse (OLAP) by the framework. |