A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Making Colophon Cards (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <meta name="robots" content="noindex, nofollow">
  53. <meta content="origin-when-cross-origin" name="referrer">
  54. <!-- Canonical URL for SEO purposes -->
  55. <link rel="canonical" href="https://www.baldurbjarnason.com/2021/making-colophon-cards/">
  56. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  57. <article>
  58. <header>
  59. <h1>Making Colophon Cards</h1>
  60. </header>
  61. <nav>
  62. <p class="center">
  63. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  64. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  65. </svg> Accueil</a> •
  66. <a href="https://www.baldurbjarnason.com/2021/making-colophon-cards/" title="Lien vers le contenu original">Source originale</a>
  67. </p>
  68. </nav>
  69. <hr>
  70. <p>There are tasks that computers are good at. And there are tasks where they aren’t. One driver of the evolution of the personal computer, laptops, mobile phones, and all forms of mobile computing has been the desire to increase their range: do more; in a smaller package. Many in tech and software are addicted to riding this wave of new capabilities, however long it will last, to work on and create new software. To extend the reach of the computers in our lives.</p>
  71. <p>Innovation’s the word. Pushing the boundaries. You know the phrases. Usually spouted by <em>that</em> dude at the party.</p>
  72. <p>The other side is <em>also</em> interesting. We are now in a place where we have entire genres of software that have decades of history, are backed by stacks of new and old research, have dozens of successful, well-made exemplar apps, and a broad enough conceptual space to allow for new variations on the theme.</p>
  73. <p>In short, we have genre software and we have avant-garde software, and I’ve always been more interested in genre fiction than literary fiction.</p>
  74. <p>One of the earliest genres of software is the Personal Knowledge or Information Manager—<a href="https://en.wikipedia.org/wiki/NLS_(computer_system)">arguably as old as the computer mouse itself</a>. Managing data is one of the tasks computers have <em>always</em> been good at, so we’ve been making software in that genre for decades.</p>
  75. <p><a href="https://en.wikipedia.org/wiki/MORE_(application)">Outliners</a>, <a href="https://www.eastgate.com/Tinderbox/">hypertext systems</a>, <a href="https://notational.net/">note-taking apps</a>, <a href="https://www.devontechnologies.com/apps/devonthink">personal information databases</a>—we’ve been doing this for a while and, because software is inherently ephemeral, we make new iterations for every generation.</p>
  76. <p>Sometimes, such as with Tinderbox or DEVONThink, the new iterations are new versions of the original software. Sometimes, such as with <a href="https://bear.app/">Bear</a>, <a href="https://ulysses.app/">Ulysses</a>, <a href="https://roamresearch.com/">Roam</a>, or <a href="https://obsidian.md/">Obsidian</a>, it’s a new take on the genre. Not so new that you don’t recognise it for it is, and not so innovative that it doesn’t reuse what worked for other apps, but new variations that are adapted to work well in our current computing context.</p>
  77. <p>That isn’t even close to a comprehensive list. There’s also <a href="https://evernote.com/">Evernote</a>, <a href="https://getdrafts.com/">Drafts</a>, <a href="https://1writerapp.com/">1Writer</a>—even Apple’s Notes app has evolved to become impressively useful. And I’m still only scratching the surface.</p>
  78. <p>These apps are also extremely diverse. There’s an increasing tendency for software, in this age of ‘flat’, to all look the same. Same design. Same aesthetic. Same icons. Same fundamental CRUD (Create, Read, Update, Delete) concept mapped onto a specific problem domain. But you’d never mistake a screenshot of Bear for one of Tinderbox or Ulysses. You’d never look at Roam and think to yourself: “huh? That looks exactly like DEVONThink.”</p>
  79. <p>I’ve been working in or adjacent to this space for the past five years, with varying degrees of success and you can probably tell that I’m a little bit obsessed with the genre.</p>
  80. <p>It shouldn’t come as a surprise that I’m working on my contribution to the genre.</p>
  81. <p>I’ve wanted to build a specific take on the note-oriented personal information manager for myself for a long time.</p>
  82. <p>This summer I applied for a grant from the Technology Development Fund at <a href="https://en.rannis.is/funding/research/technology-development-fund/nr/545">The Icelandic Centre for Research</a> to create a prototype of a notetaking app that I’m calling…</p>
  83. <p><em><a href="https://www.colophon.cards">Colophon Cards</a></em></p>
  84. <p>While the app itself won’t be open source (though some bits of it might be), I’ve gotten used to following the open-source ethos of working publicly and transparently.</p>
  85. <p>So, over the next six months (or longer if I’m successful) I’m going to be documenting the process, the design, development, research, marketing, discussion with my advisers, and other details, at <a href="https://www.colophon.cards/">colophon.cards</a>.</p>
  86. <p>As you can probably tell from the site, I began a few days ago.</p>
  87. <ul>
  88. <li><a href="https://www.colophon.cards/">The front page</a> is the first version of the pitch for the app and my specific approach.</li>
  89. <li><a href="https://www.colophon.cards/notes/01-design-notes/">The first design notes</a> are a high-level sketch of how it should work.</li>
  90. <li><a href="https://www.colophon.cards/notes/02-data-model/">The data model</a> are my first attempt at structuring it.</li>
  91. <li><a href="https://www.colophon.cards/notes/03-sharing-model/">The sharing model</a> outlines how I envision collaboration to work.</li>
  92. <li><a href="https://www.colophon.cards/notes/04-attachments-bookmarks/">Attachments and bookmarks</a> are about how information management works. I like this one so much that I edited it into the front page pitch, as I’m sure you can tell.</li>
  93. <li><a href="https://www.colophon.cards/notes/05-reading-viewing/">Reading and viewing</a> outlines my take on what’s missing in the field in terms of reading features in knowledge management apps.</li>
  94. <li><a href="https://www.colophon.cards/notes/06-business-model/">The business model</a> is a rough sketch of what I imagine the business model to be. Not because I’m anywhere <em>near</em> launching this but because you <em>can’t</em> design an app without having a sense of its business model and its margins.</li>
  95. <li><a href="https://www.colophon.cards/notes/10-questions/">The questions that need to be answered</a> are just that. Open questions that I need to find answers to.</li>
  96. </ul>
  97. <p>Additionally, you can follow my work on the website and comment with an issue on <a href="https://github.com/baldurbjarnason/colophon.cards">the GitHub repository</a>. (Work on the software itself will be in a private repository.)</p>
  98. <p>The notes I’ve been posting are rough and unedited. They are work products, not essays or marketing, those belong here on this site. You can follow Colophon Cards news by following the mailing list using the form on the site (this is a separate mailing list from the one on this site), by following its feed, or by watching the GitHub repository.</p>
  99. <p>I’ll also make sure to post about major updates here on this site.</p>
  100. <p>I’m enjoying the process a lot and I hope that you’ll enjoy it with me.</p>
  101. </article>
  102. <hr>
  103. <footer>
  104. <p>
  105. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  106. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  107. </svg> Accueil</a> •
  108. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  109. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  110. </svg> Suivre</a> •
  111. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  112. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  113. </svg> Pro</a> •
  114. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  115. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  116. </svg> Email</a> •
  117. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  118. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  119. </svg> Légal</abbr>
  120. </p>
  121. <template id="theme-selector">
  122. <form>
  123. <fieldset>
  124. <legend><svg class="icon icon-brightness-contrast">
  125. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  126. </svg> Thème</legend>
  127. <label>
  128. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  129. </label>
  130. <label>
  131. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  132. </label>
  133. <label>
  134. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  135. </label>
  136. </fieldset>
  137. </form>
  138. </template>
  139. </footer>
  140. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  141. <script>
  142. function loadThemeForm(templateName) {
  143. const themeSelectorTemplate = document.querySelector(templateName)
  144. const form = themeSelectorTemplate.content.firstElementChild
  145. themeSelectorTemplate.replaceWith(form)
  146. form.addEventListener('change', (e) => {
  147. const chosenColorScheme = e.target.value
  148. localStorage.setItem('theme', chosenColorScheme)
  149. toggleTheme(chosenColorScheme)
  150. })
  151. const selectedTheme = localStorage.getItem('theme')
  152. if (selectedTheme && selectedTheme !== 'undefined') {
  153. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  154. }
  155. }
  156. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  157. window.addEventListener('load', () => {
  158. let hasDarkRules = false
  159. for (const styleSheet of Array.from(document.styleSheets)) {
  160. let mediaRules = []
  161. for (const cssRule of styleSheet.cssRules) {
  162. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  163. continue
  164. }
  165. // WARNING: Safari does not have/supports `conditionText`.
  166. if (cssRule.conditionText) {
  167. if (cssRule.conditionText !== prefersColorSchemeDark) {
  168. continue
  169. }
  170. } else {
  171. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  172. continue
  173. }
  174. }
  175. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  176. }
  177. // WARNING: do not try to insert a Rule to a styleSheet you are
  178. // currently iterating on, otherwise the browser will be stuck
  179. // in a infinite loop…
  180. for (const mediaRule of mediaRules) {
  181. styleSheet.insertRule(mediaRule.cssText)
  182. hasDarkRules = true
  183. }
  184. }
  185. if (hasDarkRules) {
  186. loadThemeForm('#theme-selector')
  187. }
  188. })
  189. </script>
  190. </body>
  191. </html>