2025-01-02
Rules for Writing Software Tutorials
refactoringenglish.com/chapters/rules-for-software-tutorialsIt's easier than you think to write an exceptional software tutorial. You can stand out in a sea of mediocre guides by following a few simple rules.
ClickBench — a Benchmark For Analytical DBMS
benchmark.clickhouse.coma Benchmark For Analytical DBMS
2024-12-13
3 shell scripts: Kill weasel words, avoid the passive, eliminate duplicates
matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicatesThe hardest part of advising Ph.D. students is teaching
them how to write.Fortunately, I've seen patterns emerge over the past couple years.
So, I've decided to replace myself with a shell script.
In particular, I've created shell scripts for catching three problems:
abuse of the passive voice,
weasel words, and
lexical illusions.
And, I've integrated these into the build system of our LaTeX documents.
The point of these scripts is not to ban all use of constructs
like the passive voice.(When it comes to writing, there are exceptions to every "rule.")
The point of these scripts is to make sure that my students and I make a
conscious choice to use these constructs.When these scripts highlight a sentence, my students should ask
themselves, "Is there a better way to say what I said--a way to make
the text read with more clarity and precision?" Often enough, the
answer is "yes."The meta-point of this article is that writers should learn their
individual weaknesses.And, when writers are programmers, we should enlist automation to
combat these weaknesses.1
2024-12-06
NASA Graphics Standards Manual (NHB 1430.2) (January 1976) - nasa_graphics_manual_nhb_1430-2_jan_1976.pdf
www.nasa.gov/wp-content/uploads/2015/01/nasa_graphics_manual_nhb_1430-2_jan_1976.pdfNational Aeronautics andNHB 1430.2
Space AdministrationJanuary, 1976
Graphics Standards Manual
How to Pronounce Chinese Names a Little Better
jacko.io/chinese_names.htmlMainland China uses the pinyin system to write Mandarin words and names with English letters.Pinyin isn't used in Cantonese or other Chinese dialects, and it's not as widely used in Taiwan. China officially adopted pinyin in 1958, and earlier emigrants also spelled their names differently. Pinyin wasn't designed to be intuitive for English speakers, and it's common for our first guess to be so far off the mark that a listener can't even recognize their own name. An hour or so of effort is enough for most English speakers to pronounce Mandarin names poorly-but-not-incomprehensibly, similar to how we try our best with French or Russian.
2024-11-28
Responsive Type and Zoom
adrianroselli.com/2019/12/responsive-type-and-zoom.htmlTypography that responds to viewport width (‘fluid’ or ‘responsive’ typography) can be useful when you want to ensure text does not get clipped or spill out of some design elements. Carousels, widget controls, or my Venn diagram are some examples. I say viewport width because I rarely see responsive type…
2024-11-27
Be the browser’s mentor, not its micromanager. - Build Excellent Websites
buildexcellentwebsit.esGive the browser some solid rules and hints, then let it make the right decisions for the people that visit it, based on their device, connection quality and capabilities. This is how they will get a genuinely great user experience, rather than a fragmented, broken one.
2024-11-18
Exploring Effect in TypeScript: Simplifying Async and Error Handling
tweag.io/blog/2024-11-07-typescript-effectEffect promises to improve TypeScript code by providing a set of modules and functions that are composable with maximum type-safety.
The term “effect” refers to an effect system, which provides a declarative approach to handling side effects. Side effects are operations that have observable consequences in the real world, like logging, network requests, database operations, etc.
The library revolves around the Effect<Success, Error, Requirements> type, which can be used to represent an immutable value that lazily describes a workflow or job.
Effects are not functions by themselves, they are descriptions of what should be done. They can be composed with other effects, and they can be interpreted by the Effect runtime system.
Before we dive into the project we will build, let’s look at some basic concepts of Effect.
2024-11-12
St. Louis Fed Web Services: FRED® API
fred.stlouisfed.org/docs/api/fred#APIThe FRED® API is a web service that allows developers to write programs and build applications that retrieve economic data
from the FRED® and ALFRED® websites
hosted by the Economic Research Division of the Federal Reserve Bank of St. Louis.
Requests can be customized according to data source, release, category, series, and other preferences.
2024-11-05
HTML link, or button, that is the question / Marijke Luttekes
marijkeluttekes.dev/blog/articles/2024/11/04/html-link-or-button-that-is-the-questionDid you know that HTML links and buttons are not interchangeable? Learn more about their proper use cases in this article.
2024-10-11
HTML for People
www.htmlforpeople.comHTML isn’t only for people working in the tech field. It’s for anybody, the way documents are for anybody. HTML is just another type of document. A very special one—the one the web is built on.
2024-09-16
A (more) Modern CSS Reset
piccalil.li/blog/a-more-modern-css-resetI wrote “A Modern CSS Reset” almost 4 years ago and, yeh, it’s not aged overly well. I spotted it being linked up again a few days ago and thought it’s probably a good idea to publish an updated version.
2024-07-22
Modularizing React Applications with Established UI Patterns
martinfowler.com/articles/modularizing-react-apps.htmlLearn how to apply established UI patterns for a more organized and maintainable codebase and discover the benefits of layering architecture in React development
2024-07-19
Playing guitar tablatures in Rust
agourlay.github.io/ruxguitar-tablature-playertablature player in Rust.
2024-07-15
A History of Clojure
dl.acm.org/doi/pdf/10.1145/3386321Clojure was designed to be a general-purpose, practical functional language, suitable for use by professionals
wherever its host language, e.g., Java, would be. Initially designed in 2005 and released in 2007, Clojure is
a dialect of Lisp, but is not a direct descendant of any prior Lisp. It complements programming with pure
functions of immutable data with concurrency-safe state management constructs that support writing correct
multithreaded programs without the complexity of mutex locks.
Clojure is intentionally hosted, in that it compiles to and runs on the runtime of another language, such as
the JVM. This is more than an implementation strategy; numerous features ensure that programs written in
Clojure can leverage and interoperate with the libraries of the host language directly and efficiently.
In spite of combining two (at the time) rather unpopular ideas, functional programming and Lisp, Clojure has
since seen adoption in industries as diverse as finance, climate science, retail, databases, analytics, publishing,
healthcare, advertising and genomics, and by consultancies and startups worldwide, much to the career-altering
surprise of its author.
Most of the ideas in Clojure were not novel, but their combination puts Clojure in a unique spot in language
design (functional, hosted, Lisp). This paper recounts the motivation behind the initial development of Clojure
and the rationale for various design decisions and language constructs. It then covers its evolution subsequent
to release and adoption
2024-07-05
ECMAScript® 2025 Language Specification
tc39.es/ecma262The document at https:\//tc39.es/ecma262/ is the most accurate and up-to-date ECMAScript specification. It contains the content of the most recent yearly snapshot plus any finished proposals (those that have reached Stage 4 in the proposal process and thus are implemented in several implementations and will be in the next practical revision) since that snapshot was taken.
This document is available as a single page and as multiple pages.
2024-07-03
Software Architecture Design for Busy Developers
massimo-nazaria.github.io/software-architecture-design.htmlLet’s talk about some of the fundamental software design principles, which are typically applied behind the scenes by designers.
Software architecture represents the result of a sequence of design decisions which take place over time as long as software system complexity increases.
For the sake of clarity, let’s define an architecture as a collection of components combined together via connectors, which represent constraints on how components interact.
2024-06-30
ChatGPT is bullshit - Ethics and Information Technology
link.springer.com/article/10.1007/s10676-024-09775-5Recently, there has been considerable interest in large language models: machine learning systems which produce human-like text and dialogue. Applications of these systems have been plagued by persistent inaccuracies in their output; these are often called “AI hallucinations”. We argue that these falsehoods, and the overall activity of large language models, is better understood as bullshit in the sense explored by Frankfurt (On Bullshit, Princeton, 2005): the models are in an important way indifferent to the truth of their outputs. We distinguish two ways in which the models can be said to be bullshitters, and argue that they clearly meet at least one of these definitions. We further argue that describing AI misrepresentations as bullshit is both a more useful and more accurate way of predicting and discussing the behaviour of these systems.
2024-06-27
A (more) Modern CSS Reset
piccalil.li/blog/a-more-modern-css-resetI wrote “A Modern CSS Reset” almost 4 years ago and, yeh, it’s not aged overly well. I spotted it being linked up again a few days ago and thought it’s probably a good idea to publish an updated version.
Why I attack
nicholas.carlini.com/writing/2024/why-i-attack.htmlAll security vulnerabilities lie on a spectrum of how hard they are to resolve.
On one end, there are vulnerabilities that are easily patched, and on the other side, are those that are not.
Whenever doing security research, it's important to understand which you are dealing with.