recentpopularlog in
« earlier  
chi - Lightweight, idiomatic and composable router for building Go HTTP services
A lightweight, idiomatic and composable router for building Go HTTP services. It's especially good at helping you write large REST API services that are kept maintainable as your project grows and changes. chi is built on the new context package introduced in Go 1.7 to handle signaling, cancelation and request-scoped values across a handler chain.
The focus of the project has been to seek out an elegant and comfortable design for writing REST API servers, written during the development of the Pressly API service that powers our public API service, which in turn powers all of our client-side applications.
golang  HTTP  routing  opensource  server 
5 hours ago
Old Book Illustrations
The online database Old Book Illustrations has catalogued thousands of these illustrations, lifted from their original context and searchable by artist name, source, date, book title, techniques, formats, publishers, subject, etc. 
images  history  books  repository  online 
yesterday
FullCalendar - JavaScript Event Calendar
FullCalendar is great for displaying events, but it isn't a complete solution for event content-management. Beyond dragging an event to a different time/day, you cannot change an event's name or other associated data. It is up to you to add this functionality through FullCalendar's API.
JS  time  widgets  opensource  UX 
yesterday
Type Route - Flexible, type safe routing library
a flexible, type safe routing library built on top of the same core library that powers React Router.

Type Route was designed with excellent React integration in mind but isn't coupled to a specific UI framework. Most code examples in the documentation use React, but the general principles covered apply regardless of framework.
routing  JS  React  opensource 
yesterday
esbuild - Extremely fast JavaScript bundler and minifier
A JavaScript bundler and minifier. It packages up JavaScript code for distribution on the web.

Why build another JavaScript build tool? The current build tools for the web are at least an order of magnitude slower than they should be. I'm hoping that this project serves as an "existence proof" that our JavaScript tooling can be much, much faster.
JS  build  tools  golang  opensource  performance  asset-management 
yesterday
jvm-operators - Library/SDK for creating the operators for Kubernetes and Openshift
{CRD|ConfigMap}-based approach for lyfecycle management of various resources in Kubernetes and OpenShift. Using the Operator pattern, you can leverage the Kubernetes control loop and react on various events in the cluster. The idea of the operator patern is to encapsulate the operational knowledge into the abovementioned control loop and declarative approach.
Kubernetes  Java  opensource 
2 days ago
Quadsort - Merge sort on steroids
A stable non-recursive merge sort based on the quad swap. Most sorting algorithms use a binary sweep where two variables are sorted using a third temporary variable. Quad swap sorts four variables using four temporary variables. This results in a much faster sorting algorithm.
algorithms  opensource  performance 
3 days ago
Earth View from Google
A collection of the most striking landscapes found in Google Earth.
world  geography  images  Google  maps  photography 
4 days ago
brewOPA - Write data access control policies for Open Policy Agent (OPA) with YAML
brewOPA is an extensible open-source framework that enables developers to easily brew data access control policies for Open Policy Agent (OPA) by writing them in the human-friendly YAML.
Kubernetes  security  networking  opensource  configuration  DSL 
4 days ago
Handshake - Decentralized naming and authority protocol
A decentralized, permissionless naming protocol where every peer is validating and in charge of managing the root DNS naming zone with the goal of creating an alternative to existing Certificate Authorities and naming systems. Names on the internet (top level domains, social networking handles, etc.) ultimately rely upon centralized actors with full control over a system which are relied upon to be honest, as they are vulnerable to hacking, censorship, and corruption. Handshake aims to experiment with new ways the internet can be more secure, resilient, and socially useful with a peer-to-peer system validated by the network's participants.
Handshake is an experiment which seeks to explore those new ways in which the necessary tools to build a more decentralized internet. Services on the internet have become more centralized beginning in the 1990s, but do not fulfill the original decentralized vision of the internet. Email became Gmail, usenet became reddit, blog replies became facebook and Medium, pingbacks became twitter, squid became Cloudflare, even gnutella became The Pirate Bay. Centralization exists because there is a need to manage spam, griefing, and sockpuppet/sybil attacks. Previous decentralized systems largely stopped working due to spam. If it were more costly to grief on the internet using decentralized systems, the need for trusted centralized corporations to manage these risks decrease. Internet services and platforms may benefit from building on top of a decentralized system which is specifically designed for resilience against sybil attacks.
As we may redecentralize.
distributed  protocol  opensource  web  cryptocurrency 
5 days ago
Diagrams - Diagram as Code for prototyping cloud system architectures
Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools. You can also describe or visualize the existing system architecture as well. Diagrams currently supports four major providers: AWS, Azure, GCP and Kubernetes.
Diagram as Code also allows you to tracking the architecture diagram changes on any version control system.
diagrams  Python  architecture  opensource  visualization 
5 days ago
Konf - Type-safe cascading configuration library for Kotlin/Java
A type-safe cascading configuration library for Kotlin/Java, supporting most configuration formats.
Kotlin  configuration  opensource 
8 days ago
Vendure E-commerce - Headless e-commerce with GraphQL, TypeScript and Node.js
A modern, headless GraphQL-based e-commerce framework built with TypeScript & Nodejs.
commerce  GraphQL  API  framework  tools  opensource  Typescript  node.js 
8 days ago
Crystallize - Headless Commerce, GraphQL PIM & subscription e-commerce
A blazing fast headless commerce service with a GraphQL based PIM so you can deliver a tailor made ecommerce experience. Stand out, get noticed and ultimately sell more stuff. Product information management for headless ecommerce.
commerce  tools  GraphQL  API  React  commercial 
8 days ago
Saleor Headless, GraphQL-first, open-source e-commerce platform
A headless, GraphQL-first e-commerce platform delivering ultra-fast, dynamic and personalized shopping experiences.
commerce  tools  GraphQL  API  opensource  framework 
8 days ago
Fugue - Free Royalty Free Music
Music for your videos. Much, much more selective than other marketplaces. Much, much cheaper than Hans Zimmer. In fact, it's free for non-commercial use.
music  repository  audio  free  publishing 
8 days ago
Omni Calculator
Your life in 971 free calculators,
math  tools  productivity  online 
8 days ago
Soulver - Smart notepad with a built-in calculator
A smart notepad with a built-in calculator. It gives instant answers to any calculations it finds in your text. It's a better way to work stuff out than with a traditional calculator, and a more lightweight tool for quick calculations than a spreadsheet.
Mac  math  tools  productivity  commercial 
9 days ago
Numi - Beautiful calculator app for Mac
Beautiful textual calculator app for Mac.
Mac  productivity  math  tools 
9 days ago
Mint - Programming language for single page applications
Mint is a programming language for front-end web development. It features reusable components, styling, routing, global and local state handling, and synchronous and asynchronous computations for Single Page Applications.
programming-language  JS  browser  opensource  webdesign  web-framework 
10 days ago
Daptin - Headless CMS server with GraphQL and JSON-API support
A headless CMS server which servers data from MySQL/PostgreSQL/SQLite over JSONAPI.org and GraphQL. With Daptin you can design your data model and have a production ready JSON API online in minutes.
CMS  GraphQL  opensource  API  publishing 
11 days ago
KubeVault - HashiCorp Vault on Kubernetes
A collection of tools for running HashiCorp Vault on Kubernetes. You can deploy and manage Vault on Kubernetes clusters using KubeVault operator.
Kubernetes  security  encryption  opensource 
11 days ago
Contential - Blazing fast data store
Store your data across multiple regions, access it in milliseconds with auto-generated GraphQL schema and built-in Text Search.
database  key-value-database  search  GraphQL  distributed 
11 days ago
RapidQL - Fetch & combine data from APIs and databases in one call
RapidQL eliminates multiple round-trips when your app needs to fetch data from multiple sources.
API  schema  node.js  opensource 
11 days ago
MacUpdater - Keep all your apps up-to-date effortlessly
MacUpdater can automatically track the latest updates of all applications installed on your Mac. Launch our MacUpdater to see at a glance which of your apps are out-of-date. And with a simple click, you can update any outdated app. Don't waste any more time manually searching for updates, downloading, installing and cleaning up.
Mac  utilities  tools  opensource 
11 days ago
grex - Command-line tool and library for generating regular expressions from user-provided test cases
A command-line tool and library for generating regular expressions from user-provided test cases.
RegEx  tools  CLI  opensource 
12 days ago
SpiderFoot - The most complete OSINT collection and reconnaissance tool
An open source intelligence (OSINT) automation tool. It integrates with just about every data source available and utilises a range of methods for data analysis, making that data easy to navigate.
SpiderFoot has an embedded web-server for providing a clean and intuitive web-based interface but can also be used completely via the command-line. It's written in Python 3 and GPL-licensed.
security  tools  networking  Python  opensource 
12 days ago
The Missing Semester of Your CS Education
Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more!
courses  development  programming  videos  online  free 
12 days ago
Kotlin/kotlinx.collections.immutable - Immutable persistent collections for Kotlin
Immutable collection interfaces and implementation prototypes for Kotlin.
This is a multiplatform library providing implementations for jvm, js, mingwX64, linuxX64, macosX64, iosX64, iosArm64, iosArm32 Kotlin targets.
Kotlin  opensource  data-structures 
14 days ago
Modd - Flexible developer tool that runs processes and responds to filesystem changes
Modd is a developer tool that triggers commands and manages daemons in response to filesystem changes.

If you use modd, you should also look at devd, a compact HTTP daemon for developers. Devd integrates with modd, allowing you to trigger in-browser livereload with modd.
development  tools  build  golang  filesystem 
14 days ago
Calling Bullshit.
The world is awash in bullshit. Politicians are unconstrained by facts. Science is conducted by press release. Higher education rewards bullshit over analytic thought. Startup culture elevates bullshit to high art. Advertisers wink conspiratorially and invite us to join them in seeing through all the bullshit — and take advantage of our lowered guard to bombard us with bullshit of the second order. The majority of administrative activity, whether in private business or the public sphere, seems to be little more than a sophisticated exercise in the combinatorial reassembly of bullshit.

We're sick of it. It's time to do something, and as educators, one constructive thing we know how to do is to teach people. So, the aim of this course is to help students navigate the bullshit-rich modern environment by identifying bullshit, seeing through it, and combating it with effective analysis and argument.
politics  news  activism  reference  world 
14 days ago
Hacker Roadmap - Guide for amateurs pen testers and a collection of hacking tools, resources and references to practice ethical hacking, pen testing and web security.
This repository is an overview of what you need to learn penetration testing and a collection of hacking tools, resources and references to practice ethical hacking. Most of the tools are UNIX compatible, free and open source.
security  curated  learning  tools 
17 days ago
Scrum@Scale Guide
The Scrum at Scale Guide is the definitive guide to the Scrum@Scale framework. It contains the definitions of the components that make up the Scrum@Scale framework, including its scaled roles, scaled events, and enterprise artifacts, as well as the rules that bind them together.
Scrum, as originally outlined in the Scrum Guide, is a framework for developing, delivering, and sustaining complex products by a single team. Since its inception, it’s usage has extended to the creation of products, processes, services, and systems that require the efforts of multiple teams. Scrum@Scale was created to efficiently coordinate this new ecosystem of teams. It achieves this goal through setting up a “minimum viable bureaucracy” via a “scale-free” architecture.
Agile  collaboration  management 
18 days ago
Fabio - HTTP and TCP reverse proxy that is configured by Consul
An HTTP and TCP reverse proxy that configures itself with data from Consul.
Traditional load balancers and reverse proxies need to be configured with a config file. The configuration contains the hostnames and paths the proxy is forwarding to upstream services. This process can be automated with tools like consul-template that generate config files and trigger a reload.
Fabio works differently since it updates its routing table directly from the data stored in Consul as soon as there is a change and without restart or reloading.
proxy  HTTP  networking  opensource  clustering 
19 days ago
Kubenav - Navigator for Kubernetes clusters right in your pocket
A mobile and desktop app to help you manage Kubernetes clusters. The app provides an overview of all your workloads and resources running in your clusters, including the current status. The details view of your workloads contains all the necessary logs and events to debug your clusters in case of problems. You can also edit and delete resources within the app.
Kubernetes  dashboard  UI  opensource  tools  mobile 
19 days ago
go-kubectx - Faster alternative to kubectx
Simply 5x-10x faster alternative to famous kubectx. Uses client-go.
Kubernetes  CLI  tools  golang 
19 days ago
inject - Simple Kotlin multi-platform abstraction around the javax.inject annotations
A simple Kotlin multi-platform abstraction around the javax.inject annotations. This allows using the annotations in Kotlin common code so that platform specific annotation processors can register them.
Kotlin  DI  IoC  opensource  generic-toolkit 
19 days ago
Rough.js - small graphics library that creates sketchy, hand-drawn-like images
A small graphics library that creates sketchy, hand-drawn-like images. It defines primitives to draw lines, curves, arcs, polygons, circles, and ellipses. Rough.js also supports drawing SVG paths. Detailed examples of how to draw basic and complex shapes are available.
JS  graphics  svg  opensource  visualization 
21 days ago
Mirage JS - API mocking library for frontend developers
An API mocking library to develop, test, and prototype JavaScript apps without requiring any backend services. Developers can have a complete local offline dev environment up and running in seconds. Mirage JS can help developers create complete prototypes without needing to invest in any server-side infrastructure.
API  test-stub  JS  opensource  REST  HTTP 
21 days ago
firebase-multiplatform - Firebase API for Kotlin Multiplatform
This library aims to bridge the common Firebase APIs in different platforms so that it is possible to use them in Kotlin Multiplatform!
All APIs look and feel will try to stay faithful to the Android version as much as possible since Kotlin has been created mostly with Java into account. As consequence of that, until a proper documentation is available use the official Firebase Android/Java documentation.
Kotlin  API  opensource  Android  Google 
21 days ago
panzoom - Universal pan and zoom library
Extensible, mobile friendly pan and zoom framework (supports DOM and SVG).
web-fx  opensource  JS  svg 
21 days ago
JOL (Java Object Layout) - Analyze object layout schemes in JVMs
The tiny toolbox to analyze object layout schemes in JVMs. These tools are using Unsafe, JVMTI, and Serviceability Agent (SA) heavily to decoder the actual object layout, footprint, and references. This makes JOL much more accurate than other tools relying on heap dumps, specification assumptions, etc. A tool by OpenJDK.
Java  memory  JVM  profiler  tools  opensource 
22 days ago
Volumio - Audiophile Music Player
An open source audiophile music player. It is designed and fine-tuned for high-quality music playback and it runs on a variety of devices such as Raspberry PI and other microcomputers as well as PCs and Notebooks.
What you get is a dedicated Audiophile Music Player that can be easily managed through Volumio’s UI: a web application that allows easy and intuitive control of your playback session through your Smartphone, Tablet, PC or simply anything that has a browser.
music  opensource  audio  player  cross-platform  UI 
23 days ago
Nadel - GraphQL DSL and execution engine for distributed schemas
A GraphQL DSL and execution engine for distributed schemas.

This is a Java library to combine several GraphQL services together.
This is achieved by declaring the services, which should be combined, in a DSL which is build on top of the GraphQL SDL (Schema Definition Language).
While this library is in Java, the underlying services only need to provide a standard GraphQL API and no Java Code is needed to combine services together. It is all done declarative as part of the DSL.
GraphQL  DSL  distributed  schema  Java  opensource  API 
23 days ago
kpack - Kubernetes Native Container Build Service
kpack extends Kubernetes and utilizes unprivileged kubernetes primitives to provide builds of OCI images as a platform implementation of Cloud Native Buildpacks (CNB).
kpack provides a declarative image type that builds an image and schedules image rebuilds on relevant buildpack and source changes.
kpack also provides a build type to execute a single Cloud Native Buildpack image build.
build  Kubernetes  opensource  ci  Docker  modularity 
23 days ago
PostgresqlCO.NF (CONF) - PostgreSQL configuration for humans
Your postgresql.conf documentation and ultimate recommendations’ source. Our mission is to help you tune and optimize all of your PostgreSQL configuration. With around 290 configuration parameters in postgresql.conf (and counting), it is definitely a difficult task! We aim to make PostgreSQL configuration accessible for HUMANS.
CONF is, according to our users, “literally the best Postgres configuration reference ever created.”
database  configuration  reference 
23 days ago
How I write backends
From late 2012 to the present I have been writing backends (server-side code) for web applications. This document summarizes many aspects of how I write these pieces of code.
server  learning  curated  list  community 
24 days ago
FORTRAN.io - Open-source web framework for Fortran
An open-source web framework for Fortran. It is like PHP where FastCGI runs a script that outputs HTML strings. The webpage page is a demo that is served by a Fortran server. It includes a search function that queries an SQLite database.
web-framework  opensource 
25 days ago
Rappid - Powerful visual tools
Create Flowchart, BPMN and many other unique diagramming editors with ease.
JS  visualization  graph-theory  workflow  BPM  commercial  diagrams 
27 days ago
Teachable Machine - Train a computer to recognize your own images, sounds, & poses
Train a computer to recognize your own images, sounds, & poses.

A fast, easy way to create machine learning models for your sites, apps, and more – no expertise or coding required.
machine-learning  AI  service  Google 
28 days ago
Remote Mob Programming
Remote Mob Programming combines two ways of working: Mob Programming and working as a distributed team. Woody Zuill describes Mob Programming as creating the “same thing, at the same time, in the same space, and on the same computer”. Working in the same space clashes with working as a distributed team at first glance, but actually, it goes together really well. With Remote Mob Programming, we collaborate closely in the same virtual space. But Remote Mob Programming is more than that.
collaboration  manifesto  development 
28 days ago
HTTPie - Modern command line HTTP client
A command line HTTP client. User-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc. Its goal is to make CLI interaction with web services as human-friendly as possible. It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays colorized output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.
HTTP  CLI  tools  opensource  client 
4 weeks ago
inlets-operator - Your private Kubernetes Service, with a public endpoint
Get a Kubernetes LoadBalancer where you never thought it was possible. In cloud-based Kubernetes solutions, Services can be exposed as type "LoadBalancer" and your cloud provider will provision a LoadBalancer and start routing traffic, in another word: you get ingress to your service.

inlets-operator brings that same experience to your local Kubernetes or k3s cluster (k3s/k3d/minikube/microk8s/Docker Desktop/KinD). The operator automates the creation of an inlets exit-node on public cloud, and runs the client as a Pod inside your cluster. Your Kubernetes Service will be updated with the public IP of the exit-node and you can start receiving incoming traffic immediately.
Kubernetes  networking  opensource  proxy 
4 weeks ago
Kogito - Cloud-native business automation
Cloud-native business automation for building intelligent applications, backed by battle-tested capabilities.

Kogito is designed from ground up to run at scale on cloud infrastructure. If you think about business automation think about the cloud as this is where your business logic lives these days. By taking advantage of the latest technologies (Quarkus, knative, etc.), you get amazingly fast boot times and instant scaling on orchestration platforms like Kubernetes.
Kubernetes  application-framework  automation  opensource  Java  BPM  workflow 
4 weeks ago
Strimzi - Kafka on Kubernetes
Strimzi provides a way to run an Apache Kafka cluster on Kubernetes in various deployment configurations.
Kafka  Kubernetes  opensource  deployment 
4 weeks ago
uuid.js - Generate RFC-compliant UUIDs in JavaScript
Simple, fast generation of RFC4122 UUIDS.
Features: Support for version 1, 3, 4 and 5 UUIDs. Uses cryptographically-strong random number APIs (when available). Zero-dependency, small footprint.
JS  hashing  standards  opensource 
4 weeks ago
GoFrame - Modular & full-featured application framework of golang
a modular, full-featured and production-ready application development framework of golang. Providing a series of core components and dozens of practical modules, such as: memcache, configure, validator, logging, array/queue/set/map containers, timer/timing tasks, file/memory lock, object pool, database ORM, etc. Supporting web server integrated with router, cookie, session, middleware, logger, template, https, hooks, rewrites and many more features.
golang  application-framework  framework  web-framework  opensource 
4 weeks ago
browser-2020 - Things you can do with a browser in 2020
It's 2020, and browsers can do amazing stuff. This repo contains a non-exhaustive list of less-known features implemented in browsers today.

This list isn't intended for a technical audience; instead it wants to be a "I don't know we could that in a browser" list.
browser  web-fx  curated  list  opensource 
4 weeks ago
KMath - Kotlin mathematics extensions library
The Kotlin MATHematics library is intended as a Kotlin-based analog to Python's numpy library. In contrast to numpy and scipy it is modular and has a lightweight core.
Kotlin  math  opensource 
4 weeks ago
Kravis - Kotlin grammar for data visualization
A kotlin grammar for data visualization. Visualizing tabular and relational data is the core of data-science. kravis implements a grammar to create a wide range of plots using a standardized set of verbs.

The grammar implemented by kravis is inspired from ggplot2. In fact, all it provides is a more typesafe wrapper around it. Internally, ggplot2 is used as rendering engine.
Kotlin  visualization  DSL  charts  statistics 
4 weeks ago
Parsr - Transforms PDF, Documents and Images into Enriched Structured Data
A document parsing and extraction tool that generates usable data for data scientists and developers. It can perform document hierarchy regression, page number detection, whitespace removal, link detection, and more. It takes an image or PDF as input and outputs JSON, Markdown, text, CSV, or PDF.
parser  conversion  PDF 
4 weeks ago
Dev Degree - Work-integrated learning program
A 4-year, work-integrated learning program that combines hands-on developer experience at Shopify with an accredited Computer Science degree from either Carleton University or York University.

Working closely with our university partners, students take three university courses on campus each term and spend ~25 hours each week at Shopify.
Throughout the program, students apply theory to real-world problems, learn development skills and new technologies, and receive mentorship from industry leaders while maximizing their personal growth.
learning  development  courses  career  programming 
4 weeks ago
Clojars - Repository for open source Clojure libraries
A dead easy community repository for open source Clojure libraries.
Clojure  modularity  deployment  build  opensource  repository 
4 weeks ago
BLAKE3 - Cryptographic hash function
A cryptographic hash function that is:

Much faster than MD5, SHA-1, SHA-2, SHA-3, and BLAKE2.

Secure, unlike MD5 and SHA-1. And secure against length extension, unlike SHA-2.

Highly parallelizable across any number of threads and SIMD lanes, because it's a Merkle tree on the inside.

Capable of verified streaming and incremental updates, again because it's a Merkle tree.

A PRF, MAC, KDF, and XOF, as well as a regular hash.

One algorithm with no variants, which is fast on x86-64 and also on smaller architectures.
hashing  algorithms  encryption  opensource 
5 weeks ago
Craft.js - React Framework for building extensible drag and drop page editors
A React framework for building drag and drop page editors. It allows you to create custom page editors without having to modify the library itself in order to change the user interface and behavior. Examples of page editors built with Craft.js are linked in the repository.
React  framework  web-fx  UX  editors  opensource 
5 weeks ago
Tailwind CSS - Utility-First CSS Framework for Rapidly Building Custom Designs
A utility-first CSS framework for rapidly building custom designs.

Tailwind CSS is a highly customizable, low-level CSS framework that gives you all of the building blocks you need to build bespoke designs without any annoying opinionated styles you have to fight to override.
CSS  ui-toolkit  framework  opensource  web-fx  webdesign 
5 weeks ago
Alpine.js - Minimal framework for composing JavaScript behavior in your markup
Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost.
You get to keep your DOM, and sprinkle in behavior as you see fit.
JS  dom-handling  web-framework  opensource 
5 weeks ago
3factor app - Architecture pattern for modern fullstack apps
An architecture pattern for modern full-stack apps. Today, it is possible to build apps that have high feature velocity and scalability from the get go.
We propose an architecture pattern which is composed of 3 factors: Realtime GraphQL; Reliable eventing; Async serverless.
architecture  manifesto  patterns  GraphQL  event-driven  realtime 
5 weeks ago
script-server - Web UI for your scripts with execution management
A Web GUI and a web server for scripts.
For users it's just a web page, where he specifies script parameters and executes them.
For system administrators it's a possibility to share their scripts with users, without the need to set up an environment or properly adjust ssh access rights.
No script modifications are needed - you add a configuration for each script to the script-server and it takes care of proper UI, validation, execution, etc.
automation  opensource  sysadmin  UI  Python  collaboration  server 
5 weeks ago
« earlier      
per page:    204080120160

Copy this bookmark:





to read