

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Pratul Kalia ♐</title>

        

        
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        

        <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEwSURBVHgB7ZVBTsMwEEX/2GolQEjkBrkBPQI5ATlKd12SLrtr78EinACOkBuQG7QSEiClzuBpWYFUTxxY1W8ZfWe+7fEfIJFInDuEgbwtyjsQlUTm3q/Oj1+58b9qOueW2apuMQC1ge28vJlcmQcwzU8KmdfdR7/M1vUOf2XgUPzSPHv5DCq46d77QmPCQMFh5+riAs0mF7JGoQwJtosyn1j7igjYUXG9enw5pQmegDW2QizkypAkaMAYvkUkZPxLGWvAd/2Au/9FHhKomvA/0RhoEQtLQI00wOifEAvReANwtkYkEs0hTdCAvGMGNhgI99ho5oKqCfdTVx0Hjrp8s/+UNWFUBrKq3nXTvtCchOxcOweEweNYolnS0ZAE1HdGMFpm36xs61D0JhKJxE++AMI7Z3YRUW4wAAAAAElFTkSuQmCC">

        
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss/">

<meta name="description" content="Subscribe via 📧 email or  RSS

">



        <style>
            /* variables */
:root {
    
    font-family: sans-serif;
    line-height: 1.5;

    color-scheme: light dark;

    /* this colour is only used in dark mode */
    --dark-mode-color: #212529;

    --link-color: #1175e2;
    --ascent-color: #006cdf;
    --dark-grey-color: #757575;
    --light-grey-color: #eff1f5;
    --airy-grey-color: #fafafa;
    --green-color: #26bd60;
    --red-color: #ff0000;
    --purple-color: #cd1ecd;
}

@media (max-width: 34rem) {
    :root {
        /* mobile base font size remains 16px whether zialucia on or off */
        font-size: 16px;
    }
}

/* dark mode
 * create a new color (dark-mode-color)
 * override existing colors */
@media (prefers-color-scheme: dark) {
    :root {
        color: #fff;
        background: var(--dark-mode-color);

        --link-color: #70b3ff;
        --dark-grey-color: #b1b6bb;
        --light-grey-color: #353535;
        --airy-grey-color: #2b2b2b;
        --purple-color: #dd47ec;
    }
}

/* general */
html {
    line-height: 1.15;
    /* prevent adjustments of font size after orientation changes in iOS */
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
}

a {
    text-decoration: none;
    color: var(--link-color);
}

a:hover {
    text-decoration: underline;
}

a.btn {
    display: inline-block;
    cursor: pointer;
    background: var(--link-color);
    color: #fff;
    border: 1px solid var(--ascent-color);
    padding: 8px 24px;
}

a.btn:hover,
a.btn:active {
    background: var(--ascent-color);
    text-decoration: none;
}

a.btn:disabled {
    pointer-events: none;
    background: var(--ascent-color);
}

h1 {
    font-size: 1.8rem;
    font-weight: 500;
    padding-bottom: 4px;
    border-bottom: 2px solid var(--light-grey-color);
    margin: 16px 0;
}

h2,
h3 {
    font-weight: 500;
    margin: 16px 0;
}

main {
    max-width: 34rem;
    margin-bottom: 16px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
}
@media print {
    main {
        max-width: unset;
    }
}

@media print {
    article {
        page-break-before: always;
    }
}

aside {
    max-width: 34rem;
    border: 1px dashed #000;
    padding: 2px 6px;
    margin-top: 8px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
@media (max-width: 34rem) {
    aside {
        margin-left: 8px;
        margin-right: 8px;
    }
}

.alert-error {
    color: var(--red-color);
}

section {
    max-width: 34rem;
    margin-bottom: 16px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
}

nav {
    max-width: 34rem;
    margin-top: 16px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
}
@media print {
    nav {
        display: none;
    }
}

small {
    /* fix font size in all browsers */
    font-size: 80%;
}

/* prevent sub and sup from affecting the line height in all browsers */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub {
    bottom: -0.25em;
}
sup {
    top: -0.5em;
}

ol,
ul {
    padding-left: 24px;
}

blockquote {
    border-left: 4px solid var(--light-grey-color);
    padding-left: 16px;
    margin-left: 0;
    color: var(--dark-grey-color);
}

figure {
    border: 1px var(--light-grey-color) solid;
    margin: auto;
    color: var(--dark-grey-color);
}

figcaption {
    font-size: 12px;
    text-align: center;
}

dt {
    font-weight: 700;
}

dd {
    margin-left: 0;
}

table {
    /* remove text indentation from table contents in Chrome and Safari */
    text-indent: 0;

    /* fix table border color inheritance in Chrome and Safari */
    border-color: inherit;

    border-collapse: collapse;
    border: 1px solid var(--light-grey-color);
    width: 100%;
    box-sizing: border-box;
}

thead:nth-child(odd),
tr:nth-child(even) {
    background: var(--light-grey-color);
}

th,
td {
    padding: 4px;
}

pre {
    background: var(--airy-grey-color);
    overflow-x: auto;
}

code {
    background: var(--airy-grey-color);
    padding: 2px;
}

hr {
    border-top: 1px solid var(--light-grey-color);
    border-bottom: none;
    border-left: none;
    border-right: none;
}

details {
    border: 1px solid var(--light-grey-color);
    margin-bottom: 8px;
}

details > div {
    padding: 16px 24px;
}

details > div > p {
    margin: 0;
}

details > div > p + p {
    margin-top: 16px;
}

summary {
    cursor: pointer;
    user-select: none;
    background-color: var(--light-grey-color);
    padding: 8px;
}

footer {
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
    margin-top: 56px;
    margin-bottom: 16px;
    padding-left: 8px;
    padding-right: 8px;
    color: var(--dark-grey-color);
}

.footer-comment {
    margin-bottom: 8px;
}

.help {
    cursor: help;
    text-decoration: dotted underline;
}

/* mods
 * they override specific classes with specific styles */
.type-approve {
    color: var(--green-color) !important;
}

.type-delete {
    color: var(--red-color) !important;
}

.type-danger {
    background: var(--red-color) !important;
    border-color: var(--red-color) !important;
}

/* form */
label {
    display: block;
    margin-top: 16px;
}

button,
input,
optgroup,
select,
textarea {
    /* fix font styles in all browsers */
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
    /* remove margin in Firefox and Safari */
    margin: 0;
}

button,
select {
    /* remove inheritance of text transform in Edge and Firefox */
    text-transform: none;
}

button,
[type='button'],
[type='reset'],
[type='submit'] {
    /* fix inability to style clickable types in iOS and Safari */
    -webkit-appearance: button;
}

input[type="text"],
input[type="url"],
input[type="email"],
input[type="password"],
textarea {
    display: block;
    border: 2px solid var(--light-grey-color);
    box-sizing: border-box;
    width: 34rem;
}
@media (max-width: 34rem) {
    input[type="text"],
    input[type="url"],
    input[type="email"],
    input[type="password"],
    textarea {
        width: 100%;
    }
}
@media (prefers-color-scheme: dark) {
    input[type="text"],
    input[type="url"],
    input[type="email"],
    input[type="password"],
    textarea {
        color: #fff;
        background: var(--light-grey-color);
    }
}

input[type="submit"] {
    cursor: pointer;
    background: var(--link-color);
    color: #fff;
    border: 1px solid var(--ascent-color);
    padding: 8px 24px;
}

input[type="submit"]:hover,
input[type="submit"]:active {
    background: var(--ascent-color);
}

input[type="submit"]:disabled {
    pointer-events: none;
    background: var(--ascent-color);
}

form .helptext {
    color: var(--dark-grey-color);
}

.form-error {
    color: var(--red-color);
}

.form-inline {
    display: inline-block;
}

.form-inline input[type="submit"] {
    border: none;
    background: unset;
    color: var(--link-color);
    padding: 0;
}

.form-inline input[type="submit"]:hover {
    text-decoration: underline;
}

/* landing */
.lead {
    max-width: 34rem;
    border: 1px dashed #000;
    padding-top: 8px;
    padding-bottom: 8px;
}
@media (prefers-color-scheme: dark) {
    .lead {
        border-color: #fff;
    }
}

.cta {
    margin-top: 32px;
    margin-bottom: 32px;
}

.cta-link {
    font-size: 20px;
}

/* comparisons */
.comparisons {
    max-width: 1000px;
}

.comparisons h1,
.comparisons p,
.comparisons ol,
.comparisons ul {
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
}

.comparisons-matrix {
    overflow: auto;
}

.comparisons table {
    min-width: 800px;
    white-space: nowrap;
}

.comparisons thead > tr > th:not(:first-child),
.comparisons tbody > tr > td:not(:first-child) {
    text-align: center;
}

.comparisons th {
    text-align: left;
}

.comparisons tr {
    min-width: 300px;
}

/* blog index */
.blog a:hover {
    text-decoration: underline;
}

.blog a:visited {
    color: var(--purple-color);
}

.blog a:active {
    color: var(--red-color);
}

.drafts {
    border: 1px solid var(--light-grey-color);
    padding: 16px 16px 0;
    margin-bottom: 24px;
}

.posts {
    list-style: none;
    padding-left: 0;
}

.posts li {
    margin-bottom: 24px;
}

.posts small {
    white-space: nowrap;
    color: var(--dark-grey-color);
}

.posts time {
    white-space: nowrap;
}

.byline {
    color: var(--dark-grey-color);
    margin: 16px 0 24px;
}

.byline img {
  width: 100%;
}

.webring {
    margin-top: 64px;
    display: flex;
    justify-content: space-between;
}

.webring-name {
    color: #000;
}
@media (prefers-color-scheme: dark) {
    .webring-name {
        color: #fff;
    }
}

/* post detail */
.posts-item-brand {
    display: block;
    margin-top: 16px;
    margin-bottom: 16px;
    color: var(--dark-grey-color);
}

.posts-item-brand:hover {
    text-decoration: none;
}

.posts-item-brand::before {
    content: "« ";
}

.posts-item-title {
    margin-bottom: 8px;
}

.posts-item-byline {
    color: var(--dark-grey-color);
    margin-bottom: 8px;
}

.posts-item-notice {
    border: 1px solid var(--dark-grey-color);
    padding: 8px 16px;
    margin-top: 16px;
}

.posts-item-body p {
    
}

.posts-item-body li {
    
}

.posts-item-body img {
    max-width: 100%;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* comments */
.comments {
    margin-top: 64px;
}

.comments-title {
    font-size: 1.2rem;
    margin-top: 32px;
    padding-bottom: 4px;
    border-bottom: 2px solid var(--light-grey-color);
}

.comments-body {
    margin-bottom: 16px;
}

.comments-body p {
    margin-top: 4px;
}

/* page detail */
.pages-item-brand {
    display: block;
    margin-top: 16px;
    margin-bottom: 16px;
    color: var(--dark-grey-color);
}

.pages-item-brand:hover {
    text-decoration: none;
}

.pages-item-brand::before {
    content: "« ";
}

.pages-item-title {
    margin-bottom: 8px;
}

.pages-item-byline {
    color: var(--dark-grey-color);
    margin-bottom: 8px;
}

.pages-item-body p {
    
}

.pages-item-body li {
    
}

.pages-item-body img {
    max-width: 100%;
}

.pages-generic-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 16px;
    row-gap: 16px;
    margin-top: 16px;
}
@media (max-width: 490px) {
  .pages-generic-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 340px) {
  .pages-generic-grid {
    grid-template-columns: 1fr;
  }
}

/* dashboard */
.dashboard-cta {
    font-size: 1.1rem;
}

.dashboard-list {
    margin: 1rem 0;
    line-height: 1.6;
}

/* images */
.images-grid {
    max-width: 100%;
    margin-top: 32px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    grid-template-rows: 302px;
}

.images-grid-item {
    display: flex;
    justify-content: center;
    border: 1px solid var(--light-grey-color);
}

.images-grid-item img {
    max-width: 300px;
    max-height: 300px;
    object-fit: contain;
}

/* image detail */
.images-item {
    max-width: 100%;
    margin-top: 32px;
    margin-bottom: 32px;
    text-align: center;
}

.images-item img {
    max-width: 100%;
    max-height: 100vh;
}

.images-item-byline {
    color: var(--dark-grey-color);
}

/* analytics */
.analytics-chart {
    background: var(--light-grey-color);
    line-height: 0;
}

svg .analytics-chart-bar {
    fill: var(--link-color);
}

svg .analytics-chart-bar:hover {
    fill: var(--ascent-color);
}

svg .analytics-chart-text {
    font-family: monospace;
    font-size: 10px;
}

/* billing stripe */
#subscription-form input[type="submit"] {
    margin-top: 8px;
}

#card-element {
    border: 1px solid var(--light-grey-color);
    padding: 4px 8px;
}

#card-element-errors {
    margin-top: 8px;
    color: var(--red-color);
}

            
        </style>
    </head>

    <body>
        

        
        
        

        
<nav>
    
    <a href="/about/">🍿 About</a>
    
    |
    
    
    <a href="/banners/">🎞️ Banners</a>
    
    |
    
    
    <a href="/now/">🧭 Now</a>
    
    |
    
    
    <a href="/talks/">🎤 Talks</a>
    
    |
    
    
    <a href="/usesthis/">🧰 Uses</a>
    
    
</nav>

<main class="blog" itemscope itemtype="http://schema.org/Blog">
    
    <h1 itemprop="name">Pratul Kalia ♐</h1>
    

    
    <div class="byline" itemprop="about">
        <p>Subscribe via 📧 <a href="/newsletter/">email</a> or  <a href="/rss/">RSS</a></p>
<p><img width="544px" src="https://pratul.mataroa.blog/images/380f38a6.jpeg" alt="Reflection in a mirror at Alameda Antiques Faire"></p>
    </div>
    

    

    <ul class="posts">
        
        
        <li>
            <a href="/blog/great-work-albums/">Great Work Albums</a>
            <small>
                —
                <time datetime="2026-05-30" itemprop="datePublished">
                    May 30, 2026
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/the-s/">The S</a>
            <small>
                —
                <time datetime="2026-04-18" itemprop="datePublished">
                    April 18, 2026
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/how-i-started-reading-books-again/">How I started reading books again</a>
            <small>
                —
                <time datetime="2026-03-06" itemprop="datePublished">
                    March 6, 2026
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/ios-calendar-google-calendar-alerts/">iOS Calendar app, Google Calendar, and alerts</a>
            <small>
                —
                <time datetime="2024-10-27" itemprop="datePublished">
                    October 27, 2024
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/how-to-do-absolutely-nothing/">How to Do Absolutely Nothing</a>
            <small>
                —
                <time datetime="2023-09-17" itemprop="datePublished">
                    September 17, 2023
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/dont-cmd-tab-use-alfred-workflows-instead/">Don’t ⌘-Tab to your favorite apps, use Alfred workflows instead</a>
            <small>
                —
                <time datetime="2023-01-22" itemprop="datePublished">
                    January 22, 2023
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/greatness/">Greatness</a>
            <small>
                —
                <time datetime="2022-10-21" itemprop="datePublished">
                    October 21, 2022
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/time-travel-in-letters/">Time travel in letters</a>
            <small>
                —
                <time datetime="2022-08-19" itemprop="datePublished">
                    August 19, 2022
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/how-to-make-a-cup-of-chai-at-wework/">How to make a cup of chai at WeWork</a>
            <small>
                —
                <time datetime="2022-04-27" itemprop="datePublished">
                    April 27, 2022
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/the-oldest-smartphone-photo-i-still-have/">The oldest smartphone photo I still have</a>
            <small>
                —
                <time datetime="2022-04-07" itemprop="datePublished">
                    April 7, 2022
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/mataroa-just-works-for-me/">Mataroa just works for me</a>
            <small>
                —
                <time datetime="2022-03-15" itemprop="datePublished">
                    March 15, 2022
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/never-let-me-go-by-kazuo-ishiguro/">Book: Never Let Me Go, by Kazuo Ishiguro</a>
            <small>
                —
                <time datetime="2022-03-13" itemprop="datePublished">
                    March 13, 2022
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/a-visible-ruin/">A visible ruin</a>
            <small>
                —
                <time datetime="2022-02-10" itemprop="datePublished">
                    February 10, 2022
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/in-custody-by-anita-desai/">Book: In Custody, by Anita Desai</a>
            <small>
                —
                <time datetime="2021-08-29" itemprop="datePublished">
                    August 29, 2021
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/flame/">Flame</a>
            <small>
                —
                <time datetime="2011-09-30" itemprop="datePublished">
                    September 30, 2011
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/when-we-met/">When we met</a>
            <small>
                —
                <time datetime="2011-01-13" itemprop="datePublished">
                    January 13, 2011
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/subconsciously-unforgotten/">Subconsciously unforgotten</a>
            <small>
                —
                <time datetime="2010-12-25" itemprop="datePublished">
                    December 25, 2010
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/shaastra-2010/">Shaastra 2010</a>
            <small>
                —
                <time datetime="2010-10-28" itemprop="datePublished">
                    October 28, 2010
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/the-theory-of-oh-thank-god/">The theory of “oh thank god”</a>
            <small>
                —
                <time datetime="2010-04-02" itemprop="datePublished">
                    April 2, 2010
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/new-host/">New host</a>
            <small>
                —
                <time datetime="2009-01-24" itemprop="datePublished">
                    January 24, 2009
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/unconferences-ftw/">Unconferences FTW!</a>
            <small>
                —
                <time datetime="2008-11-24" itemprop="datePublished">
                    November 24, 2008
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/fixing-the-irritating-apache-2-warning/">Fixing the irritating Apache 2 warning</a>
            <small>
                —
                <time datetime="2008-10-10" itemprop="datePublished">
                    October 10, 2008
                </time>
                
            </small>
        </li>
        
        
        
        <li>
            <a href="/blog/murphys-laws-of-computer-programming/">Murphy&#x27;s Laws of Computer Programming</a>
            <small>
                —
                <time datetime="2008-04-18" itemprop="datePublished">
                    April 18, 2008
                </time>
                
            </small>
        </li>
        
        
    </ul>
</main>




<footer>
    
    <hr>
<p>🖋️ <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a></p>
<p>🔌 <a href="/blog/mataroa-just-works-for-me/">Mataroa</a></p>
<p><a rel="me" href="https://mastodon.social/@prtl"></a></p>
    
</footer>




        
        
    </body>
</html>
