name: tufte-viz description: | Ideate and critique data visualizations using Edward Tufte's principles from "The Visual Display of Quantitative Information." Use this skill when: (1) Designing new data visualizations or charts (2) Critiquing or improving existing visualizations (3) Reviewing dashboards or reports for graphical integrity (4) Deciding between visualization approaches (5) Reducing chartjunk or improving data-ink ratio (6) Planning small multiples or high-density displays
| #!/usr/bin/env bash | |
| # Abort sign off on any error | |
| set -e | |
| # Start the benchmark timer | |
| SECONDS=0 | |
| # Repository introspection | |
| OWNER=$(gh repo view --json owner --jq .owner.login) |
So you want to write a sync system for a web app with offline and realtime support? Good luck. You might find the following resources useful.
-
Database in a browser, a spec (Stepan Parunashvili)
What problem are we trying to solve with a sync system?
-
The web of tomorrow (Nikita Prokopov)
I recently had to figure out for a Clojure application how to download all dependency JAR files, for use in a Docker container.
When creating an uberjar, depstar re-downloaded all the external dependencies from Maven central, even though in an earlier Docker build step, I ran clj -Spath to pre-download them (presumably cached into the .m2 directory). In the past, I've used lein deps to do something similiar.
I'm grateful for Sean Corfield helping out (again!!): In short, use clj -P (short for "prepare") to download dependencies. Note the "A:depstar" option, which ensures that the depstar dependencies are downloaded, too.
Here's what it looks like in a Dockerfile:
# to pre-download dependencies, only done if deps.edn changes
| <code_scheme name="TW" version="173"> | |
| <ClojureCodeStyleSettings>{ | |
| :cljs.core/as-> :only-indent | |
| :cljs.core/assoc 0 | |
| :cljs.core/cond-> :only-indent | |
| :cljs.core/cond->> :only-indent | |
| :cljs.core/defonce :only-indent | |
| :cljs.core/with-meta :only-indent | |
| :cljs.core.async/go :only-indent | |
| :cljs.core.async/go-loop :only-indent |
We want PlanetScale to be the best place to work. But every company says that, and very few deliver. Managers have a role in creating an amazing work experience, but things go awry when the wrong dynamic creeps in.
We have all seen those managers who collect people as “resources” or who control information as a way to gain “power.” In these cultures, people who “can’t” end up leading the charge. This is management mediocrity.
What will make us different? At PlanetScale, we won’t tolerate management mediocrity. We are building a culture where politics get you nowhere and impact gets you far. Managers are here to support people who get things done. They are as accountable to their team as their team is accountable to them.
We evaluate managers on the wellbeing and output of their team, how skillfully they collaborate with and influence others, and how inclusively and transparently they work.
You can expect your manager to:
- Perceive a better version of you and support you in getting there
Disclaimer: This is a personal perspective. The majority of OSS projects I contribute to are libraries and developer tooling. The side effect of this is that if a person is using one of these projects, they have the expertise to understand and modify the code of the project. Also many of the comments made are from my experience, your experience may vary.
| appalled | |
| ashamed | |
| asshole | |
| complicit | |
| deplorable | |
| deplore | |
| disgraceful | |
| disgusted | |
| fuck | |
| fucking |
- §Enabling environments, games, and the Primer (58)
- §Note-writing systems (50)
- Evergreen notes (41)
- Enacted experience (37)
- Enabling environment (34)
- Mnemonic medium (30)
- Note-writing as fundamental unit of knowledge work (29)
- §Taking knowledge work seriously (Stripe convergence talk, 2019-12-12) (28)
- Evergreen notes should be densely linked (28)
- [The Primer isn’t
| extension UIView { | |
| func findFirstSuperview<T>(ofClass viewClass: T.Type, where predicate: (T) -> Bool) -> T? where T: UIView { | |
| var view: UIView? = self | |
| while view != nil { | |
| if let typedView = view as? T, predicate(typedView) { | |
| break | |
| } | |
| view = view?.superview | |
| } |