<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="../feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Susam's Miscellaneous Pages</title>
  <subtitle>Feed for Susam's Miscellaneous Pages</subtitle>
  <link href="https://susam.net/"/>
  <link href="https://susam.net/tag/miscellaneous.xml" rel="self"/>
  <id>https://susam.net/tag/miscellaneous.xml</id>
  <updated>2026-05-16T00:00:00Z</updated>
  <author><name>Susam Pal</name></author>
  <entry>
    <title>Five Minutes of Prime Time</title>
    <link href="https://susam.net/five-minutes-of-prime-time.html"/>
    <id>urn:uuid:98fe77c7-c72a-4c4a-93da-315d1342a76b</id>
    <updated>2026-05-16T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Let me share a very silly story from roughly 18 years ago!  In 2008,
  I joined
  &lt;a href=&quot;https://en.wikipedia.org/wiki/RSA_Security&quot;&gt;RSA&lt;/a&gt;, the
  network security company named after the initials of the inventors
  of the RSA algorithm, Rivest, Shamir and Adleman, who were also the
  founders of RSA, the company.
&lt;/p&gt;
&lt;p&gt;
  There was a bit of a nerd culture in the workplace where topics like
  prime numbers, combinatorics, probability theory, etc. were
  discussed fervently.  A prime-number employee number was considered
  a lucky charm.  I had a rather nice large five-digit prime number as
  my employee number, which I remember being quite pleased about.
  There were internal forums for almost all kinds of topics.  A few I
  remember fondly were a mathematics forum where colleagues would
  challenge each other with mathematical puzzles and a similar physics
  forum where, for some reason, crafting contrived paradoxes using
  special and general relativity and putting them up for debate was a
  common activity.  The participants would analyse each paradox to
  determine if it truly was one or if it could be resolved into
  something that was no longer a paradox.  In fact, my
  &lt;a href=&quot;langford-pairing.html&quot;&gt;Langford Pairing&lt;/a&gt; (2011) post was
  the result of a question I had stumbled upon in the mathematics
  forum.
&lt;/p&gt;
&lt;p&gt;
  The human resources (HR) department used to organise afternoon games
  once every month where people would self-organise into teams and
  solve a small challenge.  There was a cash prize for the winning
  team each time.  The HR folks were very well aware of the nerd
  culture and the fascination with prime numbers, but they probably
  did not know enough about exactly what type of problems we were
  fascinated with.  So in one of the monthly game events, the HR team
  gave us this challenge.
&lt;/p&gt;
&lt;p class=&quot;highlight&quot;&gt;
  Write as many prime numbers between 1 and 1000 as you can in 5
  minutes.
&lt;/p&gt;
&lt;p&gt;
  The 5-minute timer started immediately.  Really, that was the
  challenge.  We all looked at each other in surprise, wondering if
  that really was the problem.  The game was already on.  No
  constraints were set.  Were we allowed to look up a list on the web?
  Probably not, otherwise what would be the point of the game?
&lt;/p&gt;
&lt;p&gt;
  There were five or six teams with a total of about 30 or so
  participants.  We began working on the challenge.  The first thing I
  did was load up the list of all 168 prime numbers from 1 to 1000 on
  my mobile phone and begin copying them meticulously to our sheet of
  paper.
&lt;/p&gt;
&lt;p&gt;
  I would learn later that another team had followed the same approach
  too.  The person writing their list decided to omit a few numbers so
  that it did not look like they had copied the numbers verbatim from
  an external source.  I think they were being overcautious because
  there were no rules, and all is fair in love and listing prime
  numbers.
&lt;/p&gt;
&lt;p&gt;
  I completed writing our list with about half a minute to spare.  We
  turned in our sheets after the timer ran out.  The HR folks then
  evaluated the sheets.  The winner was announced.  Our team won with
  all 168 numbers written accurately.  We won the cash prize.  One of
  the HR folks asked me later what formula we had used to generate all
  the prime numbers so accurately.  I told them that we had used the
  ancient formula of looking up a list of prime numbers compiled by
  someone else and writing it down.  We spent the cash prize
  immediately and ordered pizza and soft drinks for everyone.
&lt;/p&gt;
&lt;p&gt;
  The monthly afternoon games were not usually this silly.  The other
  games were more interesting, more challenging and better designed.
  But I don&apos;t remember what those games were at all now.  It is only
  this silly game that remains etched in my memory.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/five-minutes-of-prime-time.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/story.html&quot;&gt;#story&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>The Problem of Pedagogy in Advanced Mathematics</title>
    <link href="https://susam.net/advanced-mathematics-pedagogy.html"/>
    <id>urn:uuid:f47ac884-f0f8-47ff-aa66-16a28ec9c980</id>
    <updated>2026-05-11T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  It is a commonly held opinion that educational institutions could do
  more to improve the pedagogy of mathematics.  This is especially
  applicable to primary and secondary schools, where students are
  first exposed to mathematics as a formal subject, along with other
  new subjects.  Poor exposition can turn students away from
  mathematics for a lifetime.  Only the highly motivated ones continue
  to engage with the subject.  This is very unfortunate because
  mathematics is a beautiful subject and it is filled with wonder.  It
  also teaches rigour in reasoning, clarity of thought and the
  discipline of constructing arguments from first principles to obtain
  intricate and often beautiful results.
&lt;/p&gt;
&lt;p&gt;
  What is perhaps less known is that pedagogy is a problem even for
  graduate-level mathematics students and professional mathematicians.
  The proofs in many graduate-level mathematics textbooks are, in my
  humble opinion, not really proofs at all.  They are closer to
  high-level outlines of proofs.  The authors simply do not show their
  work.  The student then has to put in an extraordinary amount of
  effort to understand and justify each line.  Sometimes a 10-line
  argument in a textbook might expand into a 10-page proof if the
  student really wants to convince themselves that the argument works.
&lt;/p&gt;
&lt;p&gt;
  I am not a mathematician, but out of personal interest, I have
  worked with professional mathematicians in the past to help refine
  notes that explain certain intermediate steps in textbooks (for
  example, Galois Theory by Stewart, in a specific case).  I was
  surprised to find that it was not just me who found the intermediate
  steps of certain proofs obscure.  Even professional mathematicians
  who had studied the subject for much of their lives found them
  obscure.  It took us two days of working together to untangle a
  complicated argument and present it in a way that satisfied three
  properties: correctness, completeness and accessibility to a
  reasonably motivated student.  There is a reason why jokes like
  &apos;proof by obviousness&apos; and &apos;proof by intimidation&apos; are so funny.
  They are funny because they are true, more true than one would like.
&lt;/p&gt;
&lt;p&gt;
  I don&apos;t mean that the books merely omit basic results from
  elementary topics like group theory or field theory, which students
  typically learn in their undergraduate courses.  Even if we take all
  the elementary results from undergraduate courses for granted, the
  proofs presented in graduate-level textbooks are often nowhere near
  a complete explanation of why the arguments work.  They are
  high-level outlines at best.  I find this hugely problematic,
  especially because students often have to learn a topic under
  difficult deadlines.  If the exposition does not include sufficient
  detail, some students might never learn exactly why the proof works,
  because not everyone has the time to work out a 10-page proof for
  every 10 lines in the book.
&lt;/p&gt;
&lt;p&gt;
  The situation is even more dire when it comes to research papers but
  that would be a topic for another discussion.  I&apos;ll focus on books
  for now.  I completely understand why an advanced textbook cannot
  provide a justification for every argument, because if a textbook
  tries to do so, then a 200 page book would turn into a 2000 page
  book.  No student or teacher has the time or patience to read
  through thousands of pages of uninteresting &apos;technical&apos; arguments.
  So the authors choose to focus on the interesting parts and expect
  the student to work out all the elisions.  Even so, I find it
  painful to see just how many such elisions exist in a typical
  textbook and how big they can sometimes be.
&lt;/p&gt;
&lt;p&gt;
  Many good universities provide accompanying notes that expand the
  difficult arguments by giving rigorous proofs and adding commentary
  to aid intuition.  I think that is a great practice.  I have studied
  several graduate-level textbooks in the last few years.  While these
  textbooks are a boon to the world because textbooks that expose the
  subject are better than no textbooks at all, I am also disappointed
  by how inaccessible such material often is.  If I had unlimited
  time, I would write accompaniments to those textbooks that provide a
  detailed exposition of all the arguments.  But of course, I don&apos;t
  have unlimited time.  Even so, I am thinking of at least making a
  start by writing accompaniment notes for some topics whose
  exposition quality I feel strongly about, such as s-arc transitivity
  of graphs, field extensions and related topics.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/advanced-mathematics-pedagogy.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Touch Typing Number Keys</title>
    <link href="https://susam.net/touch-typing-number-keys.html"/>
    <id>urn:uuid:93247920-d134-4157-bbfe-e7750fd72876</id>
    <updated>2026-05-01T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  I learnt touch typing about two decades ago when I was still at
  university.  Although I took some typewriter lessons as a child,
  those lessons did not stick with me.  It was at university, when I
  found a Java applet-based touch typing tutor on the web, that I
  really learnt to touch type.  Since then, touch typing has been an
  important part of my computing life.  I&apos;ve sometimes read arguments
  on the web downplaying touch typing as a skill, with claims like
  &apos;typing isn&apos;t the bottleneck, thinking is&apos;.  While that may be true,
  I still consider touch typing a useful skill, since it makes writing
  documents, code and email feel much more fluid and pleasant.  It&apos;s
  like playing a musical instrument with the correct technique, rather
  than simply getting by without it.  One feels smooth and expressive
  and the other feels raw and laboured.
&lt;/p&gt;
&lt;p&gt;
  Later in life, I also wrote a tool named
  &lt;a href=&quot;quickqwerty.html&quot;&gt;QuickQWERTY&lt;/a&gt; so that I could share the
  joy of touch typing with my friends.  The tool teaches typing only
  with the QWERTY layout.  I wrote it at a time when I had a rather
  limited view of the computing world, so I was not even aware that
  other keyboard layouts existed.  As a result, only QWERTY is
  supported.  The tool is free and open source, so motivated
  individuals can modify the lessons to support other keyboard
  layouts.  Some people have indeed done so over the years.  Several
  of my friends used this tool.  I know at least a few who benefitted
  from it and shared similar sentiments about how touch typing made
  their computing experience smoother.
&lt;/p&gt;
&lt;p&gt;
  Back in my university days, I had learnt a method in which the
  digits &lt;kbd&gt;1&lt;/kbd&gt; and &lt;kbd&gt;2&lt;/kbd&gt; are typed with the left little
  finger, &lt;kbd&gt;3&lt;/kbd&gt; with the left ring finger and so on.  In this
  approach, the digits &lt;kbd&gt;1&lt;/kbd&gt; to &lt;kbd&gt;6&lt;/kbd&gt; are typed with the
  left hand and &lt;kbd&gt;7&lt;/kbd&gt; to &lt;kbd&gt;0&lt;/kbd&gt; with the right.
&lt;/p&gt;
&lt;p&gt;
  There is an alternative method in which only &lt;kbd&gt;1&lt;/kbd&gt; is typed
  with the left little finger, &lt;kbd&gt;2&lt;/kbd&gt; with the left ring finger
  and so on.  In this approach, the digits &lt;kbd&gt;1&lt;/kbd&gt;
  to &lt;kbd&gt;5&lt;/kbd&gt; are typed with the left hand and &lt;kbd&gt;6&lt;/kbd&gt;
  to &lt;kbd&gt;0&lt;/kbd&gt; with the right.
&lt;/p&gt;
&lt;p&gt;
  Both methods require typing &lt;kbd&gt;1&lt;/kbd&gt; with the left little
  finger.  I have often felt that this may not be the most efficient
  way to type &lt;kbd&gt;1&lt;/kbd&gt;.  The little finger is shorter than the
  others and reaching &lt;kbd&gt;1&lt;/kbd&gt; often requires shifting the whole
  hand slightly diagonally upwards.  I have therefore felt that using
  the left ring finger for &lt;kbd&gt;1&lt;/kbd&gt; might be more comfortable.
&lt;/p&gt;
&lt;p&gt;
  Last month, I trained myself to use the left ring finger to type
  both &lt;kbd&gt;1&lt;/kbd&gt; and &lt;kbd&gt;2&lt;/kbd&gt;.  This goes against almost every
  typing guide out there, but I decided to forgo established practices
  and explore on my own to find what feels right.  At first, I was
  sceptical about whether I would be able to learn this method, since
  it meant overcoming 20 years of muscle memory that I have relied on
  almost every day.  However, developing the new muscle memory has
  been surprisingly easy.
&lt;/p&gt;
&lt;p&gt;
  In fact, both the old and the new muscle memories now coexist and I
  can switch between them at will without much trouble.  It is
  remarkable how the brain can store conflicting muscle memories so
  effortlessly.  So far, I am finding this new way of typing
  &lt;kbd&gt;1&lt;/kbd&gt; and &lt;kbd&gt;2&lt;/kbd&gt; more comfortable than either of the
  two popular methods I described above.  I will continue typing this
  way for the rest of this month and see how it feels.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/touch-typing-number-keys.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Nerd Quiz #4</title>
    <link href="https://susam.net/code/news/nq/4.0.0.html"/>
    <id>urn:uuid:fefa021c-38f8-46f9-95a7-ad034f6861fe</id>
    <updated>2026-02-22T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Nerd Quiz #4 is the fourth instalment of Nerd Quiz, a single page
  HTML application that challenges you to measure your inner geek with
  a brief quiz.  Each question in the quiz comes from everyday moments
  of reading, writing, thinking, learning and exploring.
&lt;/p&gt;
&lt;p&gt;
  This release introduces five new questions drawn from a range of
  topics, including computing history, graph theory and Unix.
  Visit &lt;a href=&quot;../../../nq.html#4&quot;&gt;Nerd Quiz&lt;/a&gt; to try the quiz.
&lt;/p&gt;
&lt;p&gt;
  A community discussion page is
  &lt;a href=&quot;../../../comments/nq.html&quot;&gt;available here&lt;/a&gt;.  You are
  very welcome to share your score or discuss the questions there.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/code/news/nq/4.0.0.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/web.html&quot;&gt;#web&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/game.html&quot;&gt;#game&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Deep Blue: Chess vs Programming</title>
    <link href="https://susam.net/deep-blue.html"/>
    <id>urn:uuid:dcacd019-6957-427c-9c58-e41756b97353</id>
    <updated>2026-02-15T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  I remember how dismayed Kasparov was after losing the 1997 match to
  IBM&apos;s Deep Blue, although his views on Deep Blue became more
  balanced with time and he accepted that we had entered a new era in
  which computers would outperform grandmasters at chess.
&lt;/p&gt;
&lt;p&gt;
  Still, chess players can take comfort in the fact that chess is
  still played between humans.  Players make their name and fame by
  beating other humans because playing against computers is no longer
  interesting as a competition.
&lt;/p&gt;
&lt;p&gt;
  Many software developers would like to have similar comfort.  But
  that comfort is harder to find, because unlike chess, building
  prototypes or PoCs is not seen as a sport or art form.  It is mostly
  seen as a utility.  So while brain-coding a PoC may still be
  intellectually satisfying for the programmer, to most other people
  it only matters that the thing works.  That means that programmers
  do not automatically get the same protected space that chess players
  have, where the human activity itself remains valued even after
  machines become stronger.  The activity programmers enjoy may
  continue but the recognition and economic value attached to it may
  shrink.
&lt;/p&gt;
&lt;p&gt;
  So I think the big adjustment software developers have to make is
  this: The craft will still exist and we will still enjoy doing it
  but the credit and value will increasingly go to those who define
  problems well, connect systems, make good product decisions and make
  technology useful in messy real-world situations.  It has already
  been this way for a while and will only become more so as time goes
  by.
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;
  &lt;em&gt;
    This note reproduces a recent comment I posted in a Lobsters forum
    thread about LLM-assisted software development at
    at &lt;a href=&quot;https://lobste.rs/s/qmjejh#c_4bgez9&quot;&gt;lobste.rs/s/qmjejh&lt;/a&gt;.
  &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
  &lt;em&gt;
    See also:
    &lt;a href=&quot;inverse-laws-of-robotics.html&quot;&gt;Three Inverse Laws of AI and Robotics&lt;/a&gt;.
  &lt;/em&gt;
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/deep-blue.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Three Inverse Laws of AI</title>
    <link href="https://susam.net/inverse-laws-of-robotics.html"/>
    <id>urn:uuid:f7d8ce74-f850-4e38-a761-4263b09ebeef</id>
    <updated>2026-01-12T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;
  Since the launch of ChatGPT in November 2022, generative artificial
  intelligence (AI) chatbot services have become increasingly
  sophisticated and popular.  These systems are now embedded in search
  engines, software development tools as well as office software.  For
  many people, they have quickly become part of everyday computing.
&lt;/p&gt;
&lt;p&gt;
  These services have turned out to be quite useful, especially for
  exploring unfamiliar topics and as a general productivity aid.
  However, I also think that the way these services are advertised and
  consumed can pose a danger to society, especially if we get into the
  habit of trusting their output without further scrutiny.
&lt;/p&gt;
&lt;h2 id=&quot;contents&quot;&gt;Contents&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#pitfalls&quot;&gt;Pitfalls&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#laws&quot;&gt;Inverse Laws of Robotics&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#non-anthromorphism&quot;&gt;Non-Anthropomorphism&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#non-deference&quot;&gt;Non-Deference&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#non-abdication-of-responsibility&quot;&gt;Non-Abdication of Responsibility&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;pitfalls&quot;&gt;Pitfalls&lt;/h2&gt;
&lt;p&gt;
  Certain design choices in modern AI systems can encourage uncritical
  acceptance of their output.  For example, many popular search
  engines are already highlighting answers generated by AI at the very
  top of the page.  When this happens, it is easy to stop scrolling,
  accept the generated answer and move on.  Over time, this could
  inadvertently train users to treat AI as the default authority
  rather than as a starting point for further investigation.  I wish
  that each such generative AI service came with a brief but
  conspicuous warning explaining that these systems can sometimes
  produce output that is factually incorrect, misleading or
  incomplete.  Such warnings should highlight that habitually trusting
  AI output can be dangerous.  In my experience, even when such
  warnings exist, they tend to be minimal and visually deemphasised.
&lt;/p&gt;
&lt;p&gt;
  In the world of science fiction, there are the
  &lt;a href=&quot;https://en.wikipedia.org/wiki/Three_Laws_of_Robotics&quot;&gt;Three
  Laws of Robotics&lt;/a&gt; devised by Isaac Asimov, which recur throughout
  his work.  These laws were designed to constrain the behaviour of
  robots in order to keep humans safe.  As far as I know, Asimov never
  formulated any equivalent laws governing how humans should interact
  with robots.  I think we now need something to that effect to keep
  ourselves safe.  I will call them the &lt;em&gt;Inverse Laws of
  Robotics&lt;/em&gt;.  These apply to any situation that requires us humans
  to interact with a robot, where the term &apos;robot&apos; refers to any
  machine, computer program, software service or AI system that is
  capable of performing complex tasks automatically.  I use the term
  &apos;inverse&apos; here not in the sense of logical negation but to indicate
  that these laws apply to humans rather than to robots.
&lt;/p&gt;
&lt;p&gt;
  It is well known that Asimov&apos;s laws were flawed.  Indeed, Asimov
  used those flaws to great effect as a source of tension.  But the
  particular ways in which they fail for fictional robots do not
  necessarily carry over to these inverse laws for humans.  Asimov&apos;s
  laws try to constrain the behaviour of autonomous robots.  However,
  these inverse laws are meant to guide the judgement and conduct of
  humans.  Still, one thing we can learn from Asimov&apos;s stories is that
  no finite set of laws can ever be foolproof for the complex issues
  we face with AI and robotics.  But that does not mean we should not
  even try.  There will always be edge cases where judgement is
  required.  A non-exhaustive set of principles can still be useful if
  it helps us think more clearly about the risks involved.
&lt;/p&gt;
&lt;h2 id=&quot;laws&quot;&gt;Inverse Laws of Robotics&lt;/h2&gt;
&lt;p&gt;
  Here are the three inverse laws of robotics:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Humans must not anthropomorphise AI systems.
  &lt;/li&gt;
  &lt;li&gt;
    Humans must not blindly trust the output of AI systems.
  &lt;/li&gt;
  &lt;li&gt;
    Humans must remain fully responsible and accountable for
    consequences arising from the use of AI systems.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;non-anthromorphism&quot;&gt;Non-Anthropomorphism&lt;/h3&gt;
&lt;p&gt;
  Humans must not anthropomorphise AI systems.  That is, humans must
  not attribute emotions, intentions or moral agency to them.
  Anthropomorphism distorts judgement.  In extreme cases,
  anthropomorphising can lead to emotional dependence.
&lt;/p&gt;
&lt;p&gt;
  Modern chatbot systems often sound conversational and empathetic.
  They use polite phrasing and conversational patterns that closely
  resemble human interaction.  While this makes them easier and more
  pleasant to use, it also makes it easier to forget what they
  actually are: large statistical models producing plausible text
  based on patterns in data.
&lt;/p&gt;
&lt;p&gt;
  I think vendors of AI based chatbot services could do a better job
  here.  In many cases, the systems are deliberately tuned to feel more
  human rather than more mechanical.  I would argue that the opposite
  approach would be healthier in the long term.  A slightly more
  robotic tone would reduce the likelihood that users mistake fluent
  language for understanding, judgement or intent.
&lt;/p&gt;
&lt;p&gt;
  Whether or not vendors make such changes, it still serves us well, I
  think, to avoid this pitfall ourselves.  We should actively resist
  the habit of treating AI systems as social actors or moral agents.
  Doing so preserves clear thinking about their capabilities and
  limitations.
&lt;/p&gt;
&lt;h3 id=&quot;non-deference&quot;&gt;Non-Deference&lt;/h3&gt;
&lt;p&gt;
  Humans must not blindly trust the output of AI systems.
  AI-generated content must not be treated as authoritative without
  independent verification appropriate to its context.
&lt;/p&gt;
&lt;p&gt;
  This principle is not unique to AI.  In most areas of life, we
  should not accept information uncritically.  In practice, of course,
  this is not always feasible.  Not everyone is an expert in medicine
  or law, so we often rely on trusted institutions and public health
  authorities for guidance.  However, the guidance published by such
  institutions is in most cases peer reviewed by experts in their
  fields.  On the other hand, when we receive an answer to a question
  from an AI chatbot in a private chat session, there has been no peer
  review of the particular stochastically generated response presented
  to us.  Therefore, the onus of critically examining the response
  falls on us.
&lt;/p&gt;
&lt;p&gt;
  Although AI systems today have become quite impressive at certain
  tasks, they are still known to produce output that would be a
  mistake to rely on.  Even if AI systems improve to the point of
  producing reliable output with a high degree of likelihood, due to
  their inherent stochastic nature, there would still be a small
  likelihood of producing output that contains errors.  This makes
  them particularly dangerous when used in contexts where errors are
  subtle but costly.  The more serious the potential consequences, the
  higher the burden of verification should be.
&lt;/p&gt;
&lt;p&gt;
  In some applications such as formulating mathematical proofs or
  developing software, we can add an automated verification layer in
  the form of proof checker or unit tests to verify the output of AI.
  In other cases, we must independently verify the output ourselves.
&lt;/p&gt;
&lt;h3 id=&quot;non-abdication-of-responsibility&quot;&gt;Non-Abdication of Responsibility&lt;/h3&gt;
&lt;p&gt;
  Humans must remain fully responsible for decisions involving AI and
  accountable for the consequences arising from its use.  If a
  negative outcome occurs as a result of following AI-generated advice
  or decisions, it is not sufficient to say, &apos;the AI told us to do
  it&apos;.  AI systems do not choose goals, deploy themselves or bear the
  costs of failure.  Humans and organisations do.  An AI system is a
  tool and like any other tool, responsibility for its use rests with
  the people who decide to rely on it.
&lt;/p&gt;
&lt;p&gt;
  This is easier said than done, though.  It gets especially tricky in
  real-time applications like self-driving cars, where a human does
  not have the opportunity to sufficiently review the decisions taken
  by the AI system before it acts.  Requiring a human driver to remain
  constantly vigilant does not solve the problem that the AI system
  often acts in less time than it takes a human to intervene.  Despite
  this rather serious limitation, we must acknowledge that if an AI
  system fails in such applications, the responsibility for
  investigating the failure and adding additional guardrails should
  still fall on the humans responsible for the design of the system.
&lt;/p&gt;
&lt;p&gt;
  In all other cases, where there is no physical constraint that
  prevents a human from reviewing the AI output before it is acted
  upon, any negative consequence arising from the use of AI must fall
  entirely on the human decision-maker.  As a general principle, we
  should never accept &apos;the AI told us so&apos; as an acceptable excuse for
  harmful outcomes.  Yes, the AI may have produced the recommendation
  but a human decided to follow it, so that human must be held
  accountable.  This is absolutely critical to preventing the
  indiscriminate use of AI in situations where irresponsible use can
  cause significant harm.
&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  The three laws outlined above are based on usage patterns I have
  seen that I feel are detrimental to society.  I am hoping that with
  these three simple laws, we can encourage our fellow humans to pause
  and reflect on how they interact with modern AI systems, to resist
  habits that weaken judgement or blur responsibility and to remain
  mindful that AI is a tool we choose to use, not an authority we
  defer to.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/inverse-laws-of-robotics.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Circular Recursive Negating Acronyms</title>
    <link href="https://susam.net/circular-recursive-negating-acronyms.html"/>
    <id>urn:uuid:dcb5cb8b-82f1-4c94-aa09-61b59bc683a4</id>
    <updated>2026-01-05T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  One of my favourite acronyms from the world of computing and
  technology is XINU.  It stands for &apos;XINU Is Not Unix&apos;.  The
  delightful thing about this acronym is that XINU is also UNIX
  spelled backwards.
&lt;/p&gt;
&lt;p&gt;
  For a given word &lt;em&gt;W&lt;/em&gt;, a recursive acronym that both
  negates &lt;em&gt;W&lt;/em&gt; and reverses it is possible when &lt;em&gt;W&lt;/em&gt; has
  the form &lt;em&gt;W&lt;/em&gt; = &apos;?NI?&apos; where each &apos;?&apos; denotes a letter.  Some
  fictitious examples make this clearer:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;LINA Is Not ANIL.&lt;/li&gt;
  &lt;li&gt;TINK Is Not KNIT.&lt;/li&gt;
  &lt;li&gt;OINO Is Not ONIO.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Words of the form &apos;?N?&apos; also work if we are happy to contract the
  word &apos;is&apos; in the acronym.  In fact, in this case we can even obtain
  circular recursive acronyms:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;ANI&apos;s Not INA.  INA&apos;s Not ANI.&lt;/li&gt;
  &lt;li&gt;ONE&apos;s Not ENO.  ENO&apos;s Not ONE.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  In each pair, the two acronyms negate each other, making them
  circular while also being reverses of one another.  Such acronyms
  could serve as amusing names for expressing friendly banter between
  rival projects.
&lt;/p&gt;
&lt;p&gt;
  Further, if we make the acronyms refer to themselves, we get
  paradoxes too:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;ANA&apos;s Not ANA&lt;/li&gt;
  &lt;li&gt;XNX&apos;s Not XNX&lt;/li&gt;
&lt;/ul&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/circular-recursive-negating-acronyms.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Nerd Quiz #3</title>
    <link href="https://susam.net/code/news/nq/3.0.0.html"/>
    <id>urn:uuid:1b8c60e7-2f74-4908-88f1-efa268ba1ef4</id>
    <updated>2025-12-23T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Nerd Quiz #3 is the third release of Nerd Quiz, a single-page HTML
  application that invites you to test your nerd level through a short
  quiz.  Each question is inspired by everyday moments of reading,
  writing, thinking, learning and exploring.
&lt;/p&gt;
&lt;p&gt;
  This release introduces five new questions drawn from a range of
  topics, including computing history, graph theory and Unix.
  Visit &lt;a href=&quot;../../../nq.html#3&quot;&gt;Nerd Quiz&lt;/a&gt; to try the quiz.
&lt;/p&gt;
&lt;p&gt;
  A community discussion page is available at
  &lt;a href=&quot;../../../comments/nq.html&quot;&gt;Discuss Nerd Quiz&lt;/a&gt;.  You are
  very welcome to share your score or discuss the questions there.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/code/news/nq/3.0.0.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/web.html&quot;&gt;#web&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/game.html&quot;&gt;#game&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Nerd Quiz #2</title>
    <link href="https://susam.net/code/news/nq/2.0.0.html"/>
    <id>urn:uuid:e8b1e13c-6295-495e-8721-0c51fba3e601</id>
    <updated>2025-11-18T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Nerd Quiz #2 is the second release of Nerd Quiz, a single-page HTML
  application that invites you to gauge your nerd level through short,
  focused quiz sets.  Each question is carefully crafted from everyday
  moments of reading, writing, thinking, learning and exploring.
&lt;/p&gt;
&lt;p&gt;
  This release introduces five new questions drawn from a range of
  topics such as chess, graph theory and linguistics.  To try the
  quiz, visit &lt;a href=&quot;../../../nq.html#2&quot;&gt;nq.html&lt;/a&gt;.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/code/news/nq/2.0.0.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/web.html&quot;&gt;#web&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/game.html&quot;&gt;#game&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Nerd Quiz #1</title>
    <link href="https://susam.net/code/news/nq/1.0.0.html"/>
    <id>urn:uuid:94654aff-c25b-4bdf-bddb-fdce6fd96b2f</id>
    <updated>2025-10-16T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Nerd Quiz #1 is the first release of Nerd Quiz, a single-page HTML
  application that lets you test your nerd level through short,
  focused quiz sets.  Each question in the quiz is handcrafted from
  everyday moments of reading, writing, thinking, learning and
  exploring.
&lt;/p&gt;
&lt;p&gt;
  To try the quiz now, visit &lt;a href=&quot;../../../nq.html&quot;&gt;nq.html&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
  The source code of Nerd Quiz is available at
  &lt;a href=&quot;https://github.com/susam/nq#readme&quot;&gt;github.com/susam/nq&lt;/a&gt;
  under the terms of the MIT licence.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/code/news/nq/1.0.0.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/web.html&quot;&gt;#web&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/game.html&quot;&gt;#game&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Million Times Million</title>
    <link href="https://susam.net/million-times-million.html"/>
    <id>urn:uuid:ab18d879-5326-400e-8e38-f61c19cfe480</id>
    <updated>2025-07-03T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Is a million times a million a &lt;em&gt;billion&lt;/em&gt; or is it
  a &lt;em&gt;trillion&lt;/em&gt;?  For my entire childhood, it was a billion,
  only for me to grow up and realise, as an adult, that it had better
  be a trillion!
&lt;/p&gt;
&lt;h2 id=&quot;growing-up-with-the-long-scale&quot;&gt;Growing Up With the Long Scale&lt;/h2&gt;
&lt;p&gt;
  As a child, I stumbled upon an old dictionary lying around our house
  and that was where I discovered the names of large numbers.  The
  dictionary used the long scale system, which is based on powers of a
  million.  According to the long scale system,
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    a million times a million is a billion,
  &lt;/li&gt;
  &lt;li&gt;
    a million times a million times a million is a trillion,
  &lt;/li&gt;
  &lt;li&gt;
    a million multiplied by itself four times is a quadrillion,
  &lt;/li&gt;
  &lt;li&gt;
    multiply it five times and we get a quintillion
  &lt;/li&gt;
  &lt;li&gt;
    and so on.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  These long scale names made a lot of sense to me.  Each name told us
  exactly how many times we multiplied a million by itself.  The
  little prefix at the start, like &lt;em&gt;bi-&lt;/em&gt;, &lt;em&gt;tri-&lt;/em&gt;,
  &lt;em&gt;quadri-&lt;/em&gt;, &lt;em&gt;quinti-&lt;/em&gt;, etc. matched the number of times
  a million appeared in the multiplication: twice for a billion, three
  times for a trillion and so on.  If I came across a number like
  quintillion, I immediately knew it meant a million multiplied by
  itself five times, so a quintillion had to be \( (10^6)^5 =
  10^{30}.  \)  It was simple and intuitive.
&lt;/p&gt;
&lt;p&gt;
  Now imagine my disappointment when I left home for university, got
  access to computers and the World Wide Web and discovered that the
  names I had learnt were off by several orders of magnitude compared
  with what everyone else was using.  The long scale names I had grown
  up with were irrelevant in this new world I was stepping into.  It
  was the short scale that had taken over most of the technology
  world, especially in computing.  In the short scale, a million times
  a million is no longer a billion.  Instead, somehow, it is a
  trillion!  Similarly, a million multiplied three times is no longer
  a trillion.  It is a quintillion!  What on earth was going on?
&lt;/p&gt;
&lt;p&gt;
  Naturally, I had to go through a period of adjustment, letting go of
  my old intuition for the long scale names and getting used to the
  short scale ones.  At the same time, I found a way to trick my mind
  into making sense of the short scale.  Before I get into the mental
  gymnastics that made the short scale click for me, let us first take
  a quick look at the long scale and short scale names side by side.
&lt;/p&gt;
&lt;h2 id=&quot;same-names-different-numbers&quot;&gt;Same Names, Different Numbers&lt;/h2&gt;
&lt;p&gt;
  The long scale and short scale are simply two different ways of
  naming large numbers.  To see how they differ, here is a table
  showing what each name corresponds to in the two systems.
&lt;/p&gt;
&lt;table class=&quot;grid center&quot;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Number&lt;/th&gt;
      &lt;th&gt;Long Scale&lt;/th&gt;
      &lt;th&gt;Short Scale&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^6 \)&lt;/td&gt;
      &lt;td&gt;Million&lt;/td&gt;
      &lt;td&gt;Million&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^9 \)&lt;/td&gt;
      &lt;td&gt;Milliard&lt;/td&gt;
      &lt;td&gt;Billion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{12} \)&lt;/td&gt;
      &lt;td&gt;Billion&lt;/td&gt;
      &lt;td&gt;Trillion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{15} \)&lt;/td&gt;
      &lt;td&gt;Billiard&lt;/td&gt;
      &lt;td&gt;Quadrillion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{18} \)&lt;/td&gt;
      &lt;td&gt;Trillion&lt;/td&gt;
      &lt;td&gt;Quintillion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{21} \)&lt;/td&gt;
      &lt;td&gt;Trilliard&lt;/td&gt;
      &lt;td&gt;Sextillion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{24} \)&lt;/td&gt;
      &lt;td&gt;Quadrillion&lt;/td&gt;
      &lt;td&gt;Septillion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{27} \)&lt;/td&gt;
      &lt;td&gt;Quadrilliard&lt;/td&gt;
      &lt;td&gt;Octillion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{30} \)&lt;/td&gt;
      &lt;td&gt;Quintillion&lt;/td&gt;
      &lt;td&gt;Nonillion&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\( 10^{33} \)&lt;/td&gt;
      &lt;td&gt;Quintilliard&lt;/td&gt;
      &lt;td&gt;Decillion&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
  As the table shows, the two systems agree on the value of a million,
  but diverge immediately after.  From that point on, the same names
  represent increasingly different magnitudes.
&lt;/p&gt;
&lt;h2 id=&quot;making-sense-of-the-short-scale&quot;&gt;Making Sense of the Short Scale&lt;/h2&gt;
&lt;p&gt;
  I used to quite like the long scale names because the prefix in each
  name is determined by how many times we multiply a million by
  itself.  Each prefix reflects the value of \( n \) in the number \(
  10^{6n}, \) where \( n \) is a positive integer.  For example, if \(
  n = 3, \) we get \( 10^{18}, \) which in the long scale is called
  a &lt;em&gt;trillion&lt;/em&gt;.  But in the short scale, the same number is
  called a &lt;em&gt;quintillion&lt;/em&gt;.  How can we make sense of it?
&lt;/p&gt;
&lt;p&gt;
  One way to interpret the short scale is to count how many additional
  thousands are multiplied onto one thousand.  A thousand is, of
  course, just &lt;em&gt;one thousand&lt;/em&gt;.  Multiply it by another thousand
  and we get a &lt;em&gt;million&lt;/em&gt;.  Multiply that by another thousand
  and we get a &lt;em&gt;billion&lt;/em&gt;.  One more multiplication gives us
  a &lt;em&gt;trillion&lt;/em&gt; and so on.  I do not find this quite as neat as
  the long scale but it works.
&lt;/p&gt;
&lt;p&gt;
  In effect, the prefix in the short scale corresponds to \( n \) of
  the integer \( 1000 \times 1000^n, \) where \( n \) is a positive
  integer.  Stated more succinctly, it represents \( n \) of \(
  10^{3(n + 1)}.  \)  So for example, if \( n = 5, \) then

  \[
    10^{3(n + 1)} = 10^{18},
  \]

  which is called a &lt;em&gt;quintillion&lt;/em&gt; in the short scale.  The
  &lt;em&gt;quinti-&lt;/em&gt; prefix still represents five but now it is tied to
  the number of additional thousands we multiplied to the first
  thousand.  It is not quite the elegant pattern I grew up with but
  this is the convention that dominates today.  In the world of
  technology, computing and finance, as well as in most
  English-speaking contexts, the short scale has prevailed.
&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  Today, of course, I use only the short scale, because that is the
  convention adopted by the part of the world relevant to me.  I no
  longer use the long scale.  But it remains in memory, simply because
  I spent a large part of my early life with it.  It still lives in
  some corner of my heart, partly out of nostalgia and partly due to
  its elegance.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/million-times-million.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>ASCII PC</title>
    <link href="https://susam.net/pc.html"/>
    <id>urn:uuid:7dd409d4-dd4f-4d34-b8c7-aa52e6927c4c</id>
    <updated>2025-04-15T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  An ASCII art depiction of a PC resting on a computer case, with a
  classic Model M keyboard placed in front.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/pc.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/html.html&quot;&gt;#html&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Associations</title>
    <link href="https://susam.net/assoc.html"/>
    <id>urn:uuid:c4060de6-ff92-4e47-964a-8b3e451bf3bd</id>
    <updated>2024-12-07T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  A record of some associations between various numbers, sounds and
  colours that occur in my mind.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/assoc.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Equal Length Words</title>
    <link href="https://susam.net/eql.html"/>
    <id>urn:uuid:c30847e2-e160-4999-bba0-f5c3187834e1</id>
    <updated>2024-10-14T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  I have an unusual hobby.  I collect related words of equal length.
  This page lists my collection of related words that are all the same
  length and connected to one another in some way.  This particular
  fascination with related words of equal length originated as a
  result of computer programming.  While developing software, I often
  need to name variables, functions and other elements in a way that
  reflect the concepts I am working with.  Occasionally, I end up
  choosing names for related elements that are the same length, which
  becomes visually striking when these names align neatly in the text
  editor.
&lt;/p&gt;
&lt;p&gt;
  Each group of words is presented in monospaced font so that the
  equal length of the words in each group is visually evident.  Blank
  spaces separate the groups.
&lt;/p&gt;

&lt;pre&gt;
allow
block
&lt;/pre&gt;

&lt;pre&gt;
begin
pause
start
&lt;/pre&gt;

&lt;pre&gt;
beverage
doughnut
&lt;/pre&gt;

&lt;pre&gt;
black
white
&lt;/pre&gt;

&lt;pre&gt;
bottom
middle
prefix
suffix
&lt;/pre&gt;

&lt;pre&gt;
broadcast
syndicate
&lt;/pre&gt;

&lt;pre&gt;
cancel
resume
&lt;/pre&gt;

&lt;pre&gt;
client
server
&lt;/pre&gt;

&lt;pre&gt;
correct
mistake
&lt;/pre&gt;

&lt;pre&gt;
create
delete
remove
update
&lt;/pre&gt;

&lt;pre&gt;
discovery
traversal
wandering
&lt;/pre&gt;

&lt;pre&gt;
error
issue
right
wrong
&lt;/pre&gt;

&lt;pre&gt;
fail
okay
pass
&lt;/pre&gt;

&lt;pre&gt;
failure
success
&lt;/pre&gt;

&lt;pre&gt;
head
tail
&lt;/pre&gt;

&lt;pre&gt;
index
value
&lt;/pre&gt;

&lt;pre&gt;
inner
outer
&lt;/pre&gt;

&lt;pre&gt;
input
radio
range
reset
&lt;/pre&gt;

&lt;pre&gt;
look
peek
&lt;/pre&gt;

&lt;pre&gt;
password
username
&lt;/pre&gt;

&lt;pre&gt;
permit
forbid
&lt;/pre&gt;

&lt;pre&gt;
pull
push
&lt;/pre&gt;

&lt;p&gt;
  Note that some of the word groups here have been contributed by
  visitors to this page.  Please visit the
  &lt;a href=&quot;comments/eql.html&quot;&gt;comments section&lt;/a&gt; to see the original
  contributions.
&lt;/p&gt;

&lt;p&gt;
  In case you are wondering why I would need words like
  &lt;code&gt;beverage&lt;/code&gt; or &lt;code&gt;doughnut&lt;/code&gt; in computer
  programming, I use them in my little game called
  &lt;a href=&quot;nq.html&quot;&gt;Nerd Quiz&lt;/a&gt; to display a doughnut or beverage symbol
  (&lt;a href=&quot;https://github.com/susam/nq/blob/3.0.0/nq.html#L645-L646&quot;&gt;view
  source&lt;/a&gt;) depending on the points scored.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/eql.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Thurston's Paean</title>
    <link href="https://susam.net/thurstons-paean.html"/>
    <id>urn:uuid:19c8a898-49fe-4d91-8700-fa0fb95f2f41</id>
    <updated>2023-07-18T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  I recently came across a beautiful and thoughtful answer on
  MathOverflow by the late mathematician William Thurston.  A brief
  background about him from
  the &lt;a href=&quot;https://en.wikipedia.org/wiki/William_Thurston&quot;&gt;Wikipedia
  article&lt;/a&gt; about him:
&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    William Paul Thurston (October 30, 1946 &amp;ndash; August 21, 2012)
    was an American mathematician.  He was a pioneer in the field of
    low-dimensional topology and was awarded the Fields Medal in 1982
    for his contributions to the study of 3-manifolds.
  &lt;/p&gt;
  &lt;p&gt;
    Thurston was a professor of mathematics at Princeton University,
    University of California at Davis and Cornell University.  He was
    also a director of the Mathematical Sciences Research Institute.
  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
  MathOverflow makes all answers posted to the website available under
  a Creative Commons licence.  In particular, all answers posted
  before 08 Apr 2011 (UTC) are available under the terms of the
  Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5)
  licence.  Thurston wrote the answer I am about to share on 30 Oct
  2010.  Due to the licence terms, this post too is available under
  the terms of the same licence.
&lt;/p&gt;
&lt;p&gt;
  Thurston posted his answer while replying to a MathOverflow
  question:
  &lt;a href=&quot;https://mathoverflow.net/q/43690&quot;&gt;&lt;em&gt;What&apos;s a
  mathematician to do?&lt;/em&gt;&lt;/a&gt;.  The question enquires about how an
  ordinary mathematician can contribute to mathematics.  Thurston&apos;s
  answer
  from &lt;a href=&quot;https://mathoverflow.net/a/44213&quot;&gt;mathoverflow.net/a/44213&lt;/a&gt;
  is reproduced below:
&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    It&apos;s not &lt;em&gt;mathematics&lt;/em&gt; that you need to contribute to.
    It&apos;s deeper than that: how might you contribute to humanity, and
    even deeper, to the well-being of the world, by pursuing
    mathematics?  Such a question is not possible to answer in a
    purely intellectual way, because the effects of our actions go far
    beyond our understanding.  We are deeply social and deeply
    instinctual animals, so much that our well-being depends on many
    things we do that are hard to explain in an intellectual way.
    That is why you do well to follow your heart and your passion.
    Bare reason is likely to lead you astray.  None of us are smart
    and wise enough to figure it out intellectually.
  &lt;/p&gt;
  &lt;p&gt;
    The product of mathematics is clarity and understanding.  Not
    theorems, by themselves.  Is there, for example any real reason
    that even such famous results as Fermat&apos;s Last Theorem, or the
    Poincar&amp;eacute; conjecture, really matter?  Their real importance
    is not in their specific statements, but their role in challenging
    our understanding, presenting challenges that led to mathematical
    developments that increased our understanding.
  &lt;/p&gt;
  &lt;p&gt;
    The world does not suffer from an oversupply of clarity and
    understanding (to put it mildly).  How and whether specific
    mathematics might lead to improving the world (whatever that
    means) is usually impossible to tease out, but mathematics
    collectively is extremely important.
  &lt;/p&gt;
  &lt;p&gt;
    I think of mathematics as having a large component of psychology,
    because of its strong dependence on human minds.  Dehumanized
    mathematics would be more like computer code, which is very
    different.  Mathematical ideas, even simple ideas, are often hard
    to transplant from mind to mind.  There are many ideas in
    mathematics that may be hard to get, but are easy once you get
    them.  Because of this, mathematical understanding does not expand
    in a monotone direction.  Our understanding frequently
    deteriorates as well.  There are several obvious mechanisms of
    decay.  The experts in a subject retire and die, or simply move on
    to other subjects and forget.  Mathematics is commonly explained
    and recorded in symbolic and concrete forms that are easy to
    communicate, rather than in conceptual forms that are easy to
    understand once communicated.  Translation in the direction
    conceptual -&amp;gt; concrete and symbolic is much easier than
    translation in the reverse direction, and symbolic forms often
    replaces the conceptual forms of understanding.  And mathematical
    conventions and taken-for-granted knowledge change, so older texts
    may become hard to understand.
  &lt;/p&gt;
  &lt;p&gt;
    In short, mathematics only exists in a living community of
    mathematicians that spreads understanding and breaths life into
    ideas both old and new.  The real satisfaction from mathematics is
    in learning from others and sharing with others.  All of us have
    clear understanding of a few things and murky concepts of many
    more.  There is no way to run out of ideas in need of
    clarification.  The question of who is the first person to ever
    set foot on some square meter of land is really secondary.
    Revolutionary change does matter, but revolutions are few, and
    they are not self-sustaining --- they depend very heavily on the
    community of mathematicians.
  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
  In the comments to the answer, one of the commenters
  was &lt;a href=&quot;https://users.cs.utah.edu/~suresh/&quot;&gt;Suresh
  Venkatasubramanian&lt;/a&gt; who was a professor in the School of
  Computing at the University of Utah back then.  He
  is &lt;a href=&quot;https://vivo.brown.edu/display/suresh&quot;&gt;now&lt;/a&gt; a
  professor of Computer Science and Data Science at Brown University.
  In his &lt;a href=&quot;https://mathoverflow.net/questions/43690/whats-a-mathematician-to-do/44213#comment271029_44213&quot;&gt;comment&lt;/a&gt;,
  Suresh proposed that this answer be called &lt;em&gt;Thurston&apos;s
  Paean&lt;/em&gt;.  Here is his complete comment:
&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    This seems like an ideal counterpoint to Hardy&apos;s Lament.  I&apos;m
    calling it Thurston&apos;s Paean :).  Seems poignant now that he has
    passed.
  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
  Thurston&apos;s answer does appear to be a perfect complement to Hardy&apos;s
  lament in the 1940 essay &lt;em&gt;A Mathematician&apos;s Apology&lt;/em&gt;.  While
  Hardy&apos;s lament is remarkably beautiful and introspective, it may
  also feel a little depressing at places.  Thurston&apos;s post on the
  other hand is full of hope and purpose that goes beyond the actual
  work of doing mathematics.  Indeed &lt;em&gt;Thurston&apos;s Paean&lt;/em&gt; is a
  befitting title for his answer.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/thurstons-paean.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/mathematics.html&quot;&gt;#mathematics&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/quote.html&quot;&gt;#quote&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>No Beam From the Eye</title>
    <link href="https://susam.net/no-beam-from-the-eye.html"/>
    <id>urn:uuid:fc3b8c23-f302-4c77-894b-3866a147c58d</id>
    <updated>2021-10-30T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  &lt;a href=&quot;https://mathshistory.st-andrews.ac.uk/HistTopics/Light_1/&quot;&gt;Light
  Through the Ages: Ancient Greece to Maxwell&lt;/a&gt; is a very
  fascinating article written by J J O&apos;Connor and E F Robertson in
  2002 that takes us through a journey of how our understanding of
  light has evolved over the last few millennia.  Here is an excerpt
  from the article:
&lt;/p&gt;
&lt;blockquote&gt;
  The biggest breakthrough in ancient times was made by al-Haytham
  around 1000 AD.  He argued that sight is due only to light entering
  the eye from an outside source and there is no beam from the eye
  itself.
&lt;/blockquote&gt;
&lt;p&gt;
  The article then goes on to say:
&lt;/p&gt;
&lt;blockquote&gt;
  He gave a number of arguments to support this claim, the most
  persuasive being the camera obscura, or pinhole camera.  Here light
  passes through a pinhole shining on a screen where an inverted image
  is observed.  Anyone visiting Edinburgh in Scotland should go to see
  the camera obscura there near the top of the Royal Mile and marvel
  at just how effective the camera obscura is in this enjoyable
  tourist attraction.
&lt;/blockquote&gt;
&lt;p&gt;
  By the way, there is a camera obscura in the London too at Royal
  Observatory, Greenwich which offers pretty good view of the
  surroundings that includes Greenwich Park, the University of
  Greenwich, the River Thames, etc.  Here is a picture I took the last
  time I was there:
  &lt;a href=&quot;https://susam.github.io/blob/pix/2023-12-camera-obscura.jpg&quot;&gt;Camera Obscura, Royal Observatory, Greenwich&lt;/a&gt;.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/no-beam-from-the-eye.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Dark Night Skies</title>
    <link href="https://susam.net/dark-night-skies.html"/>
    <id>urn:uuid:89a90de7-22e5-4ae1-a87f-74559cfbd0d8</id>
    <updated>2020-12-17T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Having grown up in a small town in the 1990s, I was fortunate to
  experience pretty dark skies at night.  The combination of a clear
  night sky and a few books on amateur astronomy from our school&apos;s
  library fuelled my desire to understand the universe and our place
  in it.
&lt;/p&gt;
&lt;p&gt;
  I made photocopies of two star charts (one for each hemisphere) from
  a book I found in our school library and began using the northern
  hemisphere chart to study the night sky.  The winter sky was and
  still is my favourite.  Spotting the easily recognisable Orion
  constellation and knowing that its second-brightest star, with its
  distinctly reddish hue, is a red supergiant that could explode at
  any moment was quite fascinating.
&lt;/p&gt;
&lt;p&gt;
  The 1990s were also a great time to grow up as an astronomy
  enthusiast.  Two bright comets graced our skies in 1996 and 1997.
  First, Comet Hyakutake appeared in March 1996, followed by Comet
  Hale-Bopp, which became spectacularly bright in April 1997.
&lt;/p&gt;
&lt;p&gt;
  Now, 23 years later, as an adult living in a severely light-polluted
  city, the recent Geminids meteor shower was rather disappointing.
  After midnight, my wife and I stepped outside to watch it.  Under a
  truly dark sky, we could have seen two to four meteors streaking
  across the sky every minute.  But instead, the entire sky glowed
  orange and we managed to spot only one or two meteors every five to
  ten minutes.
&lt;/p&gt;
&lt;p&gt;
  I think it&apos;s very unfortunate that children growing up in cities
  today don&apos;t have the opportunity to experience the beauty of the
  night sky the way I did during my childhood.  A clear, dark night
  sky can be a powerful source of inspiration and wonder for young
  minds.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/dark-night-skies.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Microcentury</title>
    <link href="https://susam.net/microcentury.html"/>
    <id>urn:uuid:83a212c0-eee8-4ee0-856b-6ae7b69de75c</id>
    <updated>2020-07-17T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;h2 id=&quot;optimal-lecture-time&quot;&gt;Optimal Lecture Time&lt;/h2&gt;
&lt;p&gt;
  I recently found this interesting paragraph from an article titled
  &lt;a href=&quot;https://www.ams.org/notices/199701/comm-rota.pdf&quot;&gt;Ten
  Lessons I Wish I Had Been Taught&lt;/a&gt; that is based on a talk
  presented by Gian-Carlo Rota in Apr 1996:
&lt;/p&gt;
&lt;blockquote&gt;
  Running overtime is the one unforgivable error a lecturer can make.
  After fifty minutes (one microcentury as von Neumann used to say)
  everybody&apos;s attention will turn elsewhere even if we are trying to
  prove the Riemann hypothesis.  One minute overtime can destroy the
  best of lectures.
&lt;/blockquote&gt;
&lt;p&gt;
  That&apos;s fine advice.  In fact, the whole article is full of good
  advice like this.  Although it was written primarily for
  mathematicians, a lot of what is said in the article applies quite
  well to professionals in other fields too.
&lt;/p&gt;
&lt;p&gt;
  The excerpt I have quoted above got me thinking about exactly how
  long a microcentury is.  It couldn&apos;t be exactly 50 minutes, could
  it?
&lt;/p&gt;
&lt;h2 id=&quot;wiktionary-on-microcentury&quot;&gt;Wiktionary on Microcentury&lt;/h2&gt;
&lt;p&gt;
  The English Wiktionary entry for
  &lt;a href=&quot;https://en.wiktionary.org/wiki/microcentury&quot;&gt;microcentury&lt;/a&gt;
  (as of
  &lt;a href=&quot;https://en.wiktionary.org/w/index.php?title=microcentury&amp;amp;oldid=59316064&quot;&gt;revision
  59316064&lt;/a&gt; on 7 May 2020) mentions:
&lt;/p&gt;
&lt;blockquote&gt;
  A time period of a millionth of a century, equal to 52 minutes and
  34 seconds.
&lt;/blockquote&gt;
&lt;blockquote&gt;
  Not a standard unit of measurement and used mostly humorously to
  denote the maximum length of a lecture.
&lt;/blockquote&gt;
&lt;p&gt;
  This looks incorrect to me.  This is based on the oversimplified
  assumption that a century contains 36500 days, that is, it assumes
  that a century is a span of 100 years where each year has exactly
  365 days.  If a century were to have exactly 36500 days, then indeed
  it would have 3&amp;#8239;153&amp;#8239;600&amp;#8239;000 seconds and one
  millionth of it would be 3153.6 seconds which is equivalent to 52
  minutes 33.6 seconds.  This looks consistent with the Wiktionary
  entry.  However, an actual century on the calendar does not have
  exactly 36500 days.  Some years are leap years, so the actual number
  of days in a century is more than that.
&lt;/p&gt;
&lt;h2 id=&quot;assumptions&quot;&gt;Assumptions&lt;/h2&gt;
&lt;p&gt;
  Let us find out how long a microcentury is as accurately as
  possible.  We will count the leap years.  We will ignore leap
  seconds because they are irregularly spaced and unpredictable.  We
  will also ignore the following gap between 2 Sep 1752 and 14 Sep
  1752 when the British Empire switched from the Julian calendar to
  the Gregorian calendar:
&lt;/p&gt;
&lt;pre&gt;&lt;samp&gt;$ &lt;kbd&gt;cal 9 1752&lt;/kbd&gt;
   September 1752
Su Mo Tu We Th Fr Sa
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30&lt;/samp&gt;&lt;/pre&gt;
&lt;p&gt;
  The above output can be obtained by running the &lt;code&gt;cal&lt;/code&gt;
  command as shown above on a Unix or Linux system.  Ignoring this gap
  is equivalent to assuming that we are working with the Gregorian
  calender since the year 1 AD.
&lt;/p&gt;
&lt;p&gt;
  We will call a year that is a multiple of 100 to be a &lt;em&gt;centurial
  year&lt;/em&gt;.  Further, we will not debate whether a centurial year
  begins a new century or ends one, that is, we don&apos;t care whether the
  current century runs from 2001 to 2100 or if it runs from 2000 to
  2099.  The computation presented in the next section works equally
  well for any span of 100 years.
&lt;/p&gt;
&lt;h2 id=&quot;computation&quot;&gt;Computation&lt;/h2&gt;
&lt;p&gt;
  Any span of 100 years contains exactly one centurial year, that is,
  a year that is a multiple of 100.  A centurial year is a leap
  year &lt;em&gt;if and only if&lt;/em&gt; it is also a multiple of 400.  Apart
  from the centurial year, a century contains 24 occurrences of years
  that are multiples of 4 and these are all leap years.  From these
  facts, we can conclude that a span of 100 years contains:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Exactly 25 leap years if the centurial year within the span is a
    multiple of 400.
  &lt;/li&gt;
  &lt;li&gt;
    Exactly 24 leap years, otherwise.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Therefore a century has either 36524 days or 36525 days.  In other
  words, a century has either 3&amp;#8239;155&amp;#8239;673&amp;#8239;600 seconds
  or 3&amp;#8239;155&amp;#8239;760&amp;#8239;000 seconds.  Here is a quick
  demonstration of this with a simple Python program:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/usr/bin/env python3

import datetime

for year in range(1, 2400, 100):
    delta = datetime.date(year + 100, 1, 1) - datetime.date(year, 1, 1)
    print(&apos;{:04}-{:04}: {} d = {} s&apos;
          .format(year, year + 99, delta.days, delta.total_seconds()))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
  Here is the output of this program:
&lt;/p&gt;
&lt;pre&gt;&lt;samp&gt;0001-0100: 36524 d = 3155673600.0 s
0101-0200: 36524 d = 3155673600.0 s
0201-0300: 36524 d = 3155673600.0 s
0301-0400: 36525 d = 3155760000.0 s
0401-0500: 36524 d = 3155673600.0 s
0501-0600: 36524 d = 3155673600.0 s
0601-0700: 36524 d = 3155673600.0 s
0701-0800: 36525 d = 3155760000.0 s
0801-0900: 36524 d = 3155673600.0 s
0901-1000: 36524 d = 3155673600.0 s
1001-1100: 36524 d = 3155673600.0 s
1101-1200: 36525 d = 3155760000.0 s
1201-1300: 36524 d = 3155673600.0 s
1301-1400: 36524 d = 3155673600.0 s
1401-1500: 36524 d = 3155673600.0 s
1501-1600: 36525 d = 3155760000.0 s
1601-1700: 36524 d = 3155673600.0 s
1701-1800: 36524 d = 3155673600.0 s
1801-1900: 36524 d = 3155673600.0 s
1901-2000: 36525 d = 3155760000.0 s
2001-2100: 36524 d = 3155673600.0 s
2101-2200: 36524 d = 3155673600.0 s
2201-2300: 36524 d = 3155673600.0 s
2301-2400: 36525 d = 3155760000.0 s&lt;/samp&gt;&lt;/pre&gt;
&lt;p&gt;
  Thus one millionth of a century has 3155.6736 or 3155.7600 seconds,
  that is 52 minutes 35.6736 seconds or 52 minutes 35.7600 seconds.
&lt;/p&gt;
&lt;h2 id=&quot;Conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  If we round off the number of seconds in a microcentury to one
  decimal place, we can say that a microcentury has 52 minutes 35.7
  seconds.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/microcentury.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/quote.html&quot;&gt;#quote&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Global Palindrome Day</title>
    <link href="https://susam.net/global-palindrome-day.html"/>
    <id>urn:uuid:42929e12-2c4f-4a63-9275-a642ceeb8344</id>
    <updated>2020-02-02T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;h2 id=&quot;date-formats&quot;&gt;Date Formats&lt;/h2&gt;
&lt;p&gt;
  There are three popular date formats followed worldwide: big-endian,
  little-endian and middle-endian.  Here is how today&apos;s date looks
  like in these formats if the year is written out in full:
&lt;/p&gt;
&lt;table class=&quot;grid center&quot;&gt;
  &lt;tr&gt;
    &lt;th&gt;Endianness&lt;/th&gt;
    &lt;th&gt;Format&lt;/th&gt;
    &lt;th&gt;Date&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Big-endian&lt;/td&gt;
    &lt;td&gt;YYYY-MM-DD&lt;/td&gt;
    &lt;td&gt;2020-02-02&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Little-endian&lt;/td&gt;
    &lt;td&gt;DD-MM-YYYY&lt;/td&gt;
    &lt;td&gt;02-02-2020&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Middle-endian&lt;/td&gt;
    &lt;td&gt;MM-DD-YYYY&lt;/td&gt;
    &lt;td&gt;02-02-2020&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;
  The ISO 8601 standard specifies the big-endian date format.  The
  big-endian format is popular in Canada, China, Japan, Lithuania,
  etc.  The little-endian format is used by the majority of the world
  including countries like Brazil, Egypt, Germany, India, Italy,
  United Kingdom, etc.  The middle-endian date format is primarily
  used in the Philippines and the United States.
&lt;/p&gt;
&lt;p&gt;
  The preferred choice of delimiter between the date components (day,
  month and year) varies from country to country.  In this post, we
  use hyphen (i.e. &quot;-&quot;) as the delimiter.
&lt;/p&gt;
&lt;h2 id=&quot;palindromes&quot;&gt;Palindromes&lt;/h2&gt;
&lt;p&gt;
  Today&apos;s date is a palindrome in all three date formats, i.e. it
  reads the same backward as forward in all three formats.  It
  is &lt;em&gt;globally palindromic&lt;/em&gt;.  Note that we ignore the hyphens
  or any other delimiters while deciding if a date is palindrome or
  not.  In fact, in general, punctuation, capitalisation and spaces
  are usually ignored while deciding if a given text is palindrome or
  not.
&lt;/p&gt;
&lt;p&gt;
  Let me define &lt;em&gt;global palindrome day&lt;/em&gt; to be a day when its
  date is a palindrome in all three date formats (YYYY-MM-DD,
  DD-MM-YYYY and MM-DD-YYYY).  Then today is a global palindrome day!
&lt;/p&gt;
&lt;p&gt;
  There are only eleven such global palindrome days between the years
  1000 and 9999.  Here is a list that enumerates all of them:
&lt;/p&gt;
&lt;p style=&quot;font-family: monospace,monospace&quot; class=&quot;textcenter&quot;&gt;
1010-01-01&lt;br&gt;
1111-11-11&lt;br&gt;
2020-02-02&lt;br&gt;
2121-12-12&lt;br&gt;
3030-03-03&lt;br&gt;
4040-04-04&lt;br&gt;
5050-05-05&lt;br&gt;
6060-06-06&lt;br&gt;
7070-07-07&lt;br&gt;
8080-08-08&lt;br&gt;
9090-09-09&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
  The previous global palindrome day was over 908 years ago!  The next
  such day is over 101 years away!
&lt;/p&gt;
&lt;p&gt;
  Today is special in another way.  It is day 33 (a palindrome) of the
  current year and 333 (also a palindrome) days remain in the year.
&lt;/p&gt;
&lt;h2 id=&quot;ambigrams&quot;&gt;Ambigrams&lt;/h2&gt;
&lt;p&gt;
  As a bonus, today is also a &lt;em&gt;global strobogrammatic day&lt;/em&gt; when
  viewed on a seven-segment display, i.e. for all three date formats,
  today&apos;s date when shown, without the delimiters, on a seven-segment
  display appears the same when rotated by 180&amp;deg;.  A
  strobogrammatic sequence of digits like this is also a type of
  ambigram.  Here is how today&apos;s date looks in YYYYMMDD, DDMMYYYY and
  MMDDYYYY formats on a seven-segment display:
&lt;/p&gt;
&lt;!-- These images were generated using http://avtanski.net/projects/lcd/ --&gt;
&lt;figure class=&quot;soft textcenter&quot;&gt;
  &lt;img style=&quot;height: 2em&quot;
       src=&quot;files/blog/palindrome-day-1.png&quot;
       alt=&quot;Date 2020-20-20 (YYYY-MM-DD) shown in a seven-segment display&quot;&gt;
  &lt;br&gt;
  &lt;img style=&quot;height: 2em&quot;
       src=&quot;files/blog/palindrome-day-2.png&quot;
       alt=&quot;Date 02-02-2020 (DD-MM-YYYY) shown in a seven-segment display&quot;&gt;
  &lt;br&gt;
  &lt;img style=&quot;height: 2em&quot;
       src=&quot;files/blog/palindrome-day-2.png&quot;
       alt=&quot;Date 02-02-2020 (MM-DD-YYYY) shown in a seven-segment display&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;
  In the list of global palindrome days provided in the previous
  section, six of the eleven days are global strobogrammatic days too.
  Only the ones that belong to the years 3030, 4040, 6060, 7070 and
  9090 are not strobogrammatic on a seven-segment display; the rest
  all are.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/global-palindrome-day.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
  <entry>
    <title>Good Blessings</title>
    <link href="https://susam.net/good-blessings.html"/>
    <id>urn:uuid:2a6da1de-269e-4be3-825b-32caea751456</id>
    <updated>2016-12-11T00:00:00Z</updated>
    <content type="html">
<!-- BEGIN HTML -->
&lt;p&gt;
  Back in 2009, I had completed a year working for RSA Security.  I
  was then looking for more intellectually stimulating work where I
  could work on projects involving mathematics and algorithms.  While
  I had talked to senior leaders of the organisation about my
  aspirations, nothing concrete had materialised for several weeks.
  Then something interesting happened.  One fine Monday morning, as I
  walked into the office and began to settle at my desk, the head of
  our research and development division came to my desk looking for
  me.  He said, &quot;Burt is here.  He wants to talk to you.&quot;
&lt;/p&gt;
&lt;p&gt;
  There was no Burt in that office as far as I knew, so I became a
  little confused.  I was led into a conference room where I could
  meet him.  Mildly disoriented, I opened the conference room door.
  Then I saw Burt, the person I was about to meet.  As soon as I saw
  him, I immediately recognised who he was.  He was Dr Burt Kaliski,
  the Chief Scientist of RSA Laboratories.  He had flown in that
  morning to meet certain teams in our office.  During his visit, he
  had carved out some time from his schedule to meet me.
&lt;/p&gt;
&lt;p&gt;
  I had never met or talked to Dr Kaliski before.  But I was very well
  aware of his work and his accomplishments many years before joining
  RSA.  At a previous job, while implementing digital signatures for a
  banking product, I had spent a lot of time reading the RFCs for
  &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc3447&quot;&gt;PKCS #1&lt;/a&gt;,
  &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc2898&quot;&gt;PKCS #5&lt;/a&gt; and
  &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc2315&quot;&gt;PKCS #7&lt;/a&gt;,
  which were all authored by Dr Kaliski.  It was an honour to
  meet the person whose work had taught me a lot and helped me begin
  my career as a software developer in the area of information
  security.
&lt;/p&gt;
&lt;p&gt;
  He began the meeting by explaining that he happened to learn about
  my wish to work on more challenging projects.  He enquired about the
  type of projects I desired to work on.  He listened to my thoughts
  patiently.  He offered some advice and then wished me the best for
  my future.  Little did I know back then that the short 30 minute
  interaction I had with him would end up changing the trajectory of
  my career.
&lt;/p&gt;
&lt;p&gt;
  Soon after the meeting, I followed his advice, talked to several
  teams, found out what they were working on and finally decided to
  join a team that worked on a network security product.  It turned
  out to be the best decision of my career!  While working on that
  product, I learnt to design and implement efficient algorithms for
  petabytes of data.  Some parts of the project relied heavily on
  probability theory, so it was a joy to be able to take a subject
  that was a hobby until then and apply it to solve actual real-world
  problems.  Working on that product offered the intellectual
  challenges that my younger self yearned for back then.  I think the
  most interesting experience there was my work on parser generators.
  It involved writing algorithms in C++ to parse a formally specified
  language which in turn was used to generate in-memory FSMs to parse
  and analyse network packets and events.  Parsing one language and
  generating in-memory parsers for another language proved to be
  intellectually demanding as well as satisfying.  I have fond
  memories of my time there working on parser generators alongside
  remarkably skilled engineers from whom I learnt a lot.
&lt;/p&gt;
&lt;p&gt;
  All of that happened seven years ago.  A couple of months ago, while
  recounting that 30 minute meeting with Dr Kaliski, I could not
  recall if I had ever thanked him properly for his kindness and
  generosity.  Seven years ago, there was no compelling reason for him
  to meet me.  I was then just a regular software engineer who was
  hired into the company a year ago.  We had never talked before.  But
  he took the time to offer me help, suggestions and advice on how I
  could make a good career.  Unsure if I had expressed my gratitude to
  him for how he helped me sculpt my career, I wrote to him recently
  to thank him and explain how that one meeting had a large and
  positive impact on my life.
&lt;/p&gt;
&lt;p&gt;
  Dr Kaliski replied a few days later and he expressed his happiness
  to know that the steps I took in the subsequent years worked out
  well for me.  Before ending his message, he wrote a little
  heart-warming note that I am going to remember forever.  Quoting it
  verbatim here:
&lt;/p&gt;
&lt;blockquote&gt;
  &amp;ldquo;One of my goals is to be able to provide encouragement to
  others who are developing their careers, just as others have
  invested in mine, passing good blessings from one generation to
  another.&amp;rdquo;
&lt;/blockquote&gt;
&lt;!-- Quote from 11 Oct 2016 03:50  UTC --&gt;
&lt;p&gt;
  Thank you, Burt!  I will do likewise.
&lt;/p&gt;
<!-- ### -->
&lt;p&gt;
  &lt;a href="https://susam.net/good-blessings.html"&gt;Read on website&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/miscellaneous.html&quot;&gt;#miscellaneous&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/story.html&quot;&gt;#story&lt;/a&gt; |
  &lt;a href=&quot;https://susam.net/tag/quote.html&quot;&gt;#quote&lt;/a&gt;
&lt;/p&gt;
<!-- END HTML -->
    </content>
  </entry>
</feed>
