<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-AU"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://blog.kathyreid.id.au/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.kathyreid.id.au/" rel="alternate" type="text/html" hreflang="en-AU" /><updated>2026-10-22T04:31:37+11:00</updated><id>https://blog.kathyreid.id.au/feed.xml</id><title type="html">Kathy Reid</title><subtitle>Kathy Reid&apos;s blog: voice and speech technology, data, open source, research and the communities around them, since 2007.</subtitle><author><name>Kathy Reid</name></author><entry><title type="html">OpenAI’s new device is a data capture tool, because we’ve reached Peak Token</title><link href="https://blog.kathyreid.id.au/2025/07/06/openais-new-device-is-a-data-capture-tool-because-weve-reached-peak-token/" rel="alternate" type="text/html" title="OpenAI’s new device is a data capture tool, because we’ve reached Peak Token" /><published>2025-07-06T12:10:44+10:00</published><updated>2025-07-06T12:10:44+10:00</updated><id>https://blog.kathyreid.id.au/2025/07/06/openais-new-device-is-a-data-capture-tool-because-weve-reached-peak-token</id><content type="html" xml:base="https://blog.kathyreid.id.au/2025/07/06/openais-new-device-is-a-data-capture-tool-because-weve-reached-peak-token/"><![CDATA[<p>Much has been made of the <a href="https://www.theverge.com/news/672357/openai-ai-device-sam-altman-jony-ive">recent announcement of the collaboration between OpenAI co-founder Sam Altman and Apple design guru Jony Ive on a new hardware device</a> (Jess Weatherbed, The Verge), and <a href="https://www.tomsguide.com/ai/jony-ive-and-sam-altman-working-on-an-ai-hardware-device-heres-what-we-know">speculation has followed on the form it might take</a> (Ryan Morrison, Tom’s Hardware).</p>

<p>Less has been written, however, about the market niche such a device serves.</p>

<p>Surely we don’t need another AI hardware device to speak into, given the failures of the <a href="https://www.rabbit.tech/">Rabbit R1</a> and the <a href="https://techcrunch.com/2025/02/18/humanes-ai-pin-is-dead-as-hp-buys-startups-assets-for-116m/">Humane AI Pi</a>n? The market opportunity for such a device also seems limited given that we have chatbots on our phones - particularly with now-ubiquitous mobile internet coverage.</p>

<p>But if we examine the intended capabilities of the speculative device, its function and value become clearer. They’re not for the <em>consumer</em>, they’re for <em>OpenAI</em>.</p>

<p>Let me unpack.</p>

<p>The Verge reported that during the call in May, Altman</p>

<blockquote>
  <p>… dropped some hints during the call that shape our expectations, however, including that it will be unobtrusive, fully aware of a user’s life and surroundings, and will serve as a “third core device” a person would put on a desk after a MacBook Pro and an iPhone.</p>
</blockquote>

<h2 id="fully-aware-of-life-and-surroundings-hints-at-an-embodied-view-of-intelligence">Fully aware of life and surroundings hints at an embodied view of intelligence</h2>

<p>“Fully aware of a user’s life and surroundings”, when translated to technical functionality, means having sensors and recording capability to store things like geo-spatial data - where a person was, when, and what they were doing at that location. It means listening to conversations the person was having, who they were having them with, and what they talked about. And it might mean seeing what activities a person was doing, and what objects they were interacting with, and for what purpose.</p>

<p>This data could be used, hypothetically, to provide context for generative AI models, that are well-known for <a href="https://en.wikipedia.org/wiki/Hallucination_(artificial_intelligence)">hallucinating</a> - generating outputs that are provably false and misleading. A key way to address hallucination in LLMs is through <a href="https://en.wikipedia.org/wiki/Retrieval-augmented_generation">retrieval augmented generation (RAG)</a> - essentially a knowledge graph that an LLM checks its output against before sending it to the user. Thinking of it as a “think before you speak” brake for a person who lacks a filter between their brain and their mouth.</p>

<p>LLMs are probabilistic (the “stochastic” in Emily M. Bender et al’s paper “<a href="https://dl.acm.org/doi/10.1145/3442188.3445922"><em>On the Dangers of Stochastic Parrots</em></a>”<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>). This means they work on probabilities - a “good” model will get the right answer or deliver a factually correct response most of the time. RAG aims to make LLMs more deterministic (rules-based) by “grounding” them in a map of reality.</p>

<h3 id="language-theory-symbolic-view-versus-grounding-theory-embodied-view-of-intelligence">Language theory (symbolic view) versus grounding theory (embodied view) of intelligence</h3>

<p>Here, we reach a theoretical divide.</p>

<p>Some researchers believe that reality can be modelled purely through symbols. I’m over-simplifying here, but essentially this argument holds that our reality can be entirely represented through language.To better model reality, we need more language to model on. The opposing view is the grounded theory - that our reality is embodied and experienced, and requires sensori-motor input. Language isn’t enough to model our world - we need to know how the world looks, feels, hears and smells. Recent research seems to suggest that having multiple modalities provides better “conceptual alignment” between AI model and human representations of the world<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> - that is, the embodied view is gaining traction.</p>

<p>But how might we model those modalities?</p>

<h2 id="peak-token-the-token-wars-and-the-need-for-more-data-for-an-embodied-representation-of-the-world">Peak Token, the Token Wars, and the need for more data for an embodied representation of the world</h2>

<p>In a <a href="https://www.youtube.com/watch?v=C86Y3mXnsNI">recent talk given at both Everything Open and the Melbourne Machine Learning and AI Meetup</a>, I introduced the concept of the “Token Wars”. Essentially, I argued, tokens - the chopped up, vectorised data used to train AI models - are not a public resource. They are both <a href="https://en.wikipedia.org/wiki/Excludability">excludeable</a> and <a href="https://en.wikipedia.org/wiki/Rivalry_(economics)">rivalrous</a> - and we’re running out of new, human-generated, real tokens of language data because of wholesale web scraping by bots. <a href="https://github.com/KathyReid/token-wars-dataviz">New LLMs are trained on nearly all the publicly available data in the world</a>.</p>

<p>We’ve reached Peak Token.</p>

<figure class="wp-block-image size-large">
<a href="/assets/uploads/2025/07/image.png"><img src="/assets/uploads/2025/07/image-1024x576.png" class="wp-image-88223" /></a>
<figcaption># of Training Tokens used in LLMs by year - essentially the # of tokens is increasing exponentially<br />
<a href="https://github.com/KathyReid/token-wars-dataviz">https://github.com/KathyReid/token-wars-dataviz</a></figcaption>
</figure>

<p>So, if we’re leaning toward the embodied view of intelligence, and we’ve reached Peak Token with language data, this means that industry needs more multi-modal data to model the embodied view of intelligence.</p>

<p>A device, for example, that can sense where someone is, what they’re saying, the sounds around them and the objects they’re interacting with.</p>

<p><em>The OpenAI device’s primary purpose is for gathering multi-modal data for embodied AI models.</em></p>

<p>Any benefits it provides to the consumer in the form of better LLM responses are at best, a secondary feature, and at worst, incidental.</p>

<p>Will you pay to have the device gather more data about you?</p>

<p>Image: generated by ChatGPT using the prompt:<br />
<em>Generate an image of the speculative hardware device proposed by Sam Altman and Jony Ive for Open AI. It should contain the OpenAI logo and be screenless, in the form of something that could be clipped on to someone’s shirt.</em></p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Emily M. Bender, Timnit Gebru, Angelina McMillan-Major, and Shmargaret Shmitchell. 2021. On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? 🦜. In Proceedings of the 2021 ACM Conference on Fairness, Accountability, and Transparency (FAccT ‘21). Association for Computing Machinery, New York, NY, USA, 610–623. https://doi.org/10.1145/3442188.3445922 <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:2">
      <p>Xu, Q., Peng, Y., Nastase, S.A. <em>et al.</em> Large language models without grounding recover non-sensorimotor but not sensorimotor features of human concepts. <em>Nat Hum Behav</em> (2025). https://doi.org/10.1038/s41562-025-02203-8 <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Kathy Reid</name></author><category term="academic" /><category term="data-science" /><category term="technology" /><category term="ai" /><category term="data" /><category term="embodied-view" /><category term="llms" /><category term="symbolic-view" /><category term="tokens" /><category term="tokenwars" /><summary type="html"><![CDATA[Much has been made of the recent announcement of the collaboration between OpenAI co-founder Sam Altman and Apple design guru Jony Ive on a new hardware device (Jess Weatherbed, The Verge), and speculation has followed on the form it might take (Ryan Morrison, Tom's Hardware)…]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2025/07/ChatGPT-Image-Jul-6-2025-12_03_22-PM-768x768.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2025/07/ChatGPT-Image-Jul-6-2025-12_03_22-PM-768x768.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Book review: Technocolonialism by Mirca Madianou</title><link href="https://blog.kathyreid.id.au/2025/06/25/book-review-technocolonialism-by-mirca-madianou/" rel="alternate" type="text/html" title="Book review: Technocolonialism by Mirca Madianou" /><published>2025-06-25T13:54:22+10:00</published><updated>2025-06-25T13:54:22+10:00</updated><id>https://blog.kathyreid.id.au/2025/06/25/book-review-technocolonialism-by-mirca-madianou</id><content type="html" xml:base="https://blog.kathyreid.id.au/2025/06/25/book-review-technocolonialism-by-mirca-madianou/"><![CDATA[<p>Mirca Madianou’s <em><a href="https://www.wiley.com/en-ie/Technocolonialism%3A+When+Technology+for+Good+is+Harmful-p-9781509559046">Technocolonialism</a></em> shows how six logics of digital humanitarianism - humanitarian accountability, audit, capitalism, technosolutionism, securitization and resistance - together combine to reproduce colonial practices of extraction, paternalisation, marginalisation and disempowerment through digital solutions.</p>

<p>Using examples from fieldwork in multiple geographies, Madianou first provides a brief history lesson on the logics of colonialism, demonstrating its far-reaching echoes into our societal and institutional configurations of today. She shows how humanitarianism joins capitalism through the desire to corporatise humanitarian organisations, leading to the need for accountability and audit.</p>

<p>Next, she shows how biometric infrastructures perform both data extraction and oppression, drawing on the work of Bowker and Star to illustrate how “categories have consequences” in the delivery of humanitarian aid - and how those categories are both created, and unable to be effectively contested.</p>

<p>Madianou then critiques accountability of humanitarian efforts, showing how feedback mechanisms are often performative and a poor way to evaluate the effectiveness of programs - mirroring in many ways broader themes within the project management literature of how to measure outcomes.</p>

<p>She proffers the term “surreptitious experimentation” to point to humanitarian aid sites as laboratories for testing new technologies on an audience unable to provide informed consent - and where the harms of experimentation are borne by those, paradoxically, that technology is intended to aid.</p>

<p>Painting digital humanitarianism as an inexplicable “black box” - a machine - she lays out an argument that shows how multiple stakeholders are imbricated in digital humanitarianism and its harms, however, in my view, stops short of identifying specific leverage points (in the parlance of Donella Meadows) for changing or re-configuring the machine.</p>

<p>Following, Madianou coins the term “mundane resistance” to point to actions of those who refuse to engage with the digital humanitarianism machine as it intends them to - by usurping feedback mechanisms to request songs from a radio station - for example. Here, I found the term “mundane” jarring - resistance in situations where one has little power are not acts of mundanity, but bravery, confidence, rebellion.</p>

<p>This book sits within infrastructure studies because technocolonialism is deeply infrastructural - technologies, institutions, funding mechanism, and the flow of data - combine to create a technocolonialist infrastructure in which digital humanitarianism operates.</p>

<p>The key weakness, in my view, in this book, is the lack of attention paid to how to undo the logics of technocolonialism; while Madianou points to concepts such as design justice and human-centred design, these by themselves are too vague. What is the prescription for de-technocolonialism? I see perhaps a confluence of Dan McQuillan’s desire for “decomputing” coupled with the de-colonial efforts of academics such as Timnit Gebru, Deb Raji and Joy Buolamwini. But where are the leverage points in the technocolonialist system? Madianou correctly points to funders - who themselves are not neutral actors. What I would have liked here instead is a blueprint for unwinding the six logics set out at the start - humanitarian accountability, audit, capitalism, technosolutionism, securitization and resistance - which would be another volume on its own - and one I hope Madianou is able to find the time and space to pen.</p>

<p>I’d recommend this book for scholars of science and technology studies (STS), and qualitative researchers who are looking for a way to structure arguments that intersect multiple concepts - as Madianou does this exceptionally.</p>]]></content><author><name>Kathy Reid</name></author><category term="academic" /><category term="book-review" /><category term="science-and-technology-studies-2" /><category term="sts" /><category term="technocolonialism" /><category term="technosolutionism" /><summary type="html"><![CDATA[Mirca Madianou's Technocolonialism shows how six logics of digital humanitarianism - humanitarian accountability, audit, capitalism, technosolutionism, securitization and resistance - together combine to reproduce colonial practices of extraction, paternalisation, marginalisation and disempowerment through digital solutions. Using examples from fieldwork in multiple geographies, Madianou first provides…]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2025/06/1509559043.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2025/06/1509559043.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">State of my toolchain 2024</title><link href="https://blog.kathyreid.id.au/2024/12/08/state-of-my-toolchain-2024/" rel="alternate" type="text/html" title="State of my toolchain 2024" /><published>2024-12-08T17:05:10+11:00</published><updated>2024-12-08T17:05:10+11:00</updated><id>https://blog.kathyreid.id.au/2024/12/08/state-of-my-toolchain-2024</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/12/08/state-of-my-toolchain-2024/"><![CDATA[<p>Welcome to the 2024 edition of the State of my Toolchain report (you can see previous editions for <a href="/2023/12/21/state-of-my-toolchain-2023/">2023</a>, <a href="/2022/11/13/state-of-my-toolchain-2022/">2022</a>, <a href="/2021/05/02/state-of-my-toolchain-2021/">2021</a>, <a href="/2019/09/05/toolchain-2018-2/">2019</a>, <a href="/2018/06/25/toolchain-2018/">2018</a> and <a href="/2016/09/30/toolchain-2016/">2016</a>), where I document the tools, applications and hardware that I use for productivity and workflow, and how they shift over time as my tasks and needs change. In this year’s post, I cover <a href="#WhatsChanged">what’s changed</a>, <a href="#CurrentToolchain">what’s currently in my toolchain</a>, and <a href="#ChoiceTools">what’s driving my choice of tools</a>.</p>

<h2 id="whats-changed-since-the-last-report">What’s changed since the last report?</h2>

<h3 id="more-work-in-overleaf---an-online-editor-for-latex">More work in Overleaf - an online editor for <code class="language-plaintext highlighter-rouge">LaTeX</code></h3>

<p>I’m still finishing my PhD at the <a href="https://cybernetics.anu.edu.au">Australian National University’s School of Cybernetics</a>, and my primary tasks are writing up my thesis - which I’m doing in Overleaf in LaTeX. ANU now has a subscription to <a href="https://overleaf.com">Overleaf</a>, which makes logging on with single sign on (SSO) easier. Overleaf grew from two open source projects called ShareLaTeX and writeLaTeX, which both aimed to provide a collaborative environment for co-authoring papers in LaTeX. In 2017 they merged to become Overleaf.</p>

<p>I’ve been impressed with how the interface to Overleaf has been incrementally developed over the last year - I can backup my thesis to GitHub at the click of a button, and the ability to tag projects for easy retrieval has been great. A key feature I’m still missing in Overleaf is the ability to organise projects (papers) into folders, and the ability to share whole folders with collaborators. For example, I want to be able to put all my thesis writing in a folder and share that with my doctoral committee.</p>

<p>However, although Overleaf is billed as a social enterprise, it is wholly owned by <a href="https://www.digital-science.com/product/overleaf/">Digital Science</a>, an academic publishing services company, which in turn is a <a href="https://www.digital-science.com/blog/2017/11/owns-digital-science-question/">subsidiary</a> of <a href="https://holtzbrinck.com/">Holtzbrinck</a>, a German publishing company - which also owns 53% of <a href="https://www.springernature.com/gp">Springer Nature</a>. I’ve noticed that there are several “experiments” being run (I’m in the Beta / Labs program), all of which encourage the user to “upgrade” to premium versions of plugins. This week Overleaf was pushing <a href="https://www.writefull.com">Writefull</a>, a Grammarly-esque tool to help edit academic work - <a href="https://blog.writefull.com/digital-science-acquires-writefull/">which it acquired in 2022</a>. It was prominently displayed in the interface, and works well - except that you only get about 10 corrections before being prompted to upgrade to the Premium version, which is $USD 7.33 per month, with a current special being offered, bringing it down to $USD 4.40 per month. I figured out how to disable it, but it wasn’t intuitive, which I am sure is by design.</p>

<p>The play here, I speculate, is to get grad students hooked on Writefull, who in turn will pressure their institutions to buy the upgrade at an institutional level. I mean, kudos, it’s a smart GTM strategy - but it’s yet another instance of universities being beholden to publishing or software companies for increases in productivity and research outputs. Imagine instead if a group like AARNet or Universities Australia had invested self-hosting Overleaf (which is possible) - but then, that still costs money, and OpEx at that, which is always harder to justify than CapEx because of the prevailing view, in my experience, that software should look after itself.</p>

<p>The second-order piece here is that Overleaf / Digital Science / Holtzbrinck is collecting user experience data on how researchers use the Overleaf platform - rather than that being something that universities themselves can use to gain insights that feed into research development activities. From what I can tell just from the requests that Overleaf is sending, it’s using Google Analytics, Stripe and Growthbook (an open source feature flag and A/B testing suite, which collects UX research data) and BugSnag, which to be fair, is not that many and feels very boot-strappy (e.g. there’s no Adobe type CX cruft). Another GTM play I see here for Overleaf is then selling these “insights” back to universities (or not - and using them to create more premium plugins to upsell).</p>

<p>Even with these downsides, Overleaf is a game-changer for collaborative <code class="language-plaintext highlighter-rouge">LaTeX</code> document editing, so I suspect I’ll be using it for the foreseeable future.</p>

<h3 id="dark-visitors---protecting-my-blogs-from-web-scrapers">Dark Visitors - protecting my blogs from web scrapers</h3>

<p>I’ll be <a href="https://2025.everythingopen.au/schedule/presentation/59/">giving a talk at Everything Open in January on the topic of “Token Wars”</a> - essentially an overview of tokens, transformer architecture and the broader efforts by various actors to either harvest tokens from the public web, or to protect their data <em>from</em> being scraped.</p>

<p><a href="https://darkvisitors.com">Dark Visitors</a> is a tool that fits into the latter category - and I discovered it when it was featured on <a href="http://thesizzle.com.au">The Sizzle</a> newsletter, then featured in a <a href="https://foundation.mozilla.org/en/data-futures-lab/events/">Mozilla Data Futures Lab talk</a>. Its key features are identifying, then blocking (if you have the premium version) scrapers and harvesters.</p>

<p>It’s been a revelation looking at the visuals from Dark Visitors to realise just how much non-human agent traffic there is to my blog. For example, here’s an overview of November - and you can see that one scraping agent - in this case a <a href="https://scrapy.org/">Scrapy</a> instance - hit my blog over 1200 times in one day. Keep in mind this is a tiny, cpanel-hosted blog - it’s not CDN’d, and it’s not intended to serve high volumes of traffic. Scrapers and bots are now capable of basically DDOSing entire sites when they try to harvest data.</p>

<figure class="wp-block-image size-large">
<a href="/assets/uploads/2024/12/dark-visitors-insights.png"><img src="/assets/uploads/2024/12/dark-visitors-insights-523x1024.png" class="wp-image-88173" alt="Insights from Dark Visitors for blog.kathyreid.id.au, showing a high number of agents performing scraping activity. " /></a>
</figure>

<p>The other key insights Dark Visitors has given me is just which agents are disrespecting <a href="https://www.robotstxt.org/">robots.txt</a>, and therefore deserved to be banned. Dark Visitors has a WordPress plugin which makes this easier - essentially if a user agent makes a request, and it’s blocked, then it gets served a 403 Forbidden http response (instead of 200 OK and the content). For example, AppleBot is a key culprit:</p>

<figure class="wp-block-image size-full">
<a href="/assets/uploads/2024/12/applebot-naughty.png"><img src="/assets/uploads/2024/12/applebot-naughty.png" class="wp-image-88174" alt="Screencap from Dark Visitors, showing AppleBot disregarding robots.txt and getting served a 403 like they should, the bastards." /></a>
</figure>

<p>I do know of folks who are less forgiving and instead use nginx to serve a 10Tb binary 😈</p>

<h3 id="a-work-focused-android-e-paper-tablet-the-onyx-boox-tab-pro-x">A work-focused Android e-paper tablet: <a href="https://shop.boox.com/collections/all/products/tabx">The Onyx Boox Tab Pro X</a></h3>

<p>The key hardware change this year has been using adopting an Onyx Boox Tab Pro X Android e-paper tablet. I wanted a tablet because I’m still reading a lot of papers, which quickly gets tiring on an LCD screen, and I’ve also had to elevate my dodgy leg this year a lot more because $REASONS, and a tablet is much more comfortable .</p>

<p>I settled on the Onyx Boox Tab Pro for several reasons:</p>

<ul>
  <li>It uses stock Android (AOSP), which means that you can use the Google Play Store to install software</li>
  <li>It is black and white - I wanted this, so that colour was less distracting</li>
  <li>The A4 size was a key feature for me for reading primarily A4 or Letter sized documents</li>
  <li>The handwriting recognition notes feature was also attractive</li>
  <li>Bluetooth means that you can connect a keyboard and mouse and use it to type documents</li>
</ul>

<p>So far, I’ve been super happy with the Boox Tab Pro X - it’s fantastic for note-taking meetings, and for marking up PDFs. The key downside I see is that the markup of PDFs is not converted to text from handwriting - so the saved image size is a lot larger. I have been taking this to meetings where previously I would take my laptop - and I find that handwriting on the tablet has a different cognitive “feel” - my brain works in a different way when using a table - <a href="https://www.scientificamerican.com/article/why-writing-by-hand-is-better-for-memory-and-learning/">a phenomenon that is also backed up by recent research</a>.</p>

<h2 id="still-trying-to-find-an-alternative-to-the-paper-based-passion-planner">Still trying to find an alternative to the paper-based Passion Planner</h2>

<p>In last year’s State of My Toolchain, I <a href="/2023/12/21/state-of-my-toolchain-2023/#passion-planner-ditched-in-favour-of-leuchtturm1917-a4-planner">expressed my frustration with the cost of the Passion Planner, and my efforts to find an alternative</a>, settling on the Leuchtturm1917 A4 planner.</p>

<p>This has been a “just OK” choice. The paper is thinner, the hardback binding makes it less flexible, and the layout is not as good as the Passion Planner. But I still refuse to pay the exorbitant postage Passion Planner wants.</p>

<p>So, for 2025, I bought the digital edition, which is a set of PDFs. They are promoted as working well with most PDF readers, but tested best with GoodNotes. I installed GoodNotes on the Onyx Boox, intending that the tablet would become my new planner - and it wouldn’t even load! So, fail on that front. I am still trying to get the Passion Planner PDF to render well in NeoReader - the native PDF reader for Onyx Boox, and you’ll have to stay tuned for how I go.</p>

<h3 id="making-friends-with-claude-but-still-enemies-with-generative-ai-more-broadly">Making friends with Claude, but still enemies with generative AI more broadly</h3>

<p>While I am still very sceptical of generative AI, and aghast at the amount of <a href="https://theconversation.com/ais-excessive-water-consumption-threatens-to-drown-out-its-environmental-contributions-225854">natural resources such as water and electricity it consumes</a> - to the point where people want to re-commission nuclear power stations - I am also aware of their productivity benefit.</p>

<p>I’ve settled on Claude from Anthropic - mostly because I think the values on which Anthropic are founded are vastly different to OpenAI, if still problematic (the whole existential risk, effective altruism, open philanthropy nexus is problematic, although I find the <a href="https://en.wikipedia.org/wiki/TESCREAL">TESCREAL</a> naming unhelpful in trying to tackle it).</p>

<p>I have several detailed prompts specific - such as the philosophy professor who helps me to refine methodological arguments, and the the positive psychology coach who’s helping me maintain motivation and discipline so I can finish this ^*&amp;&amp;!! PhD.</p>

<h2 id="whats-currently-in-my-toolchain">What’s currently in my toolchain?</h2>

<h3 id="hardware-wearables-and-accessories">Hardware, wearables and accessories</h3>

<ul>
  <li>My main laptop is an ASUS ROG Zephyrus G15 (no change since last report)</li>
  <li>Google Pixel 4a 5G running stock Android (no change since last report)</li>
  <li>Mobvoi Ticwatch Pro 2020 model (no change since last report)</li>
  <li><a href="https://www.officeworks.com.au/shop/officeworks/p/fellowes-book-stand-fe21100">Fellowes book stand</a> - again, very light and easily portable</li>
  <li><a href="https://www.logitech.com/en-au/products/webcams/c920-pro-hd-webcam.960-000770.html">Logitech C920 web cam</a> (no change since last report)</li>
  <li><a href="https://www.jbhifi.com.au/products/stadium-usbkit-microphone-pack">Stadium USB microphone</a> (no change since last report)</li>
  <li><a href="https://www.sennheiser-hearing.com/en-AU/p/momentum-wireless/">Sennheiser Momentum 3 wireless bluetooth headphones</a> (no change since last report)</li>
</ul>

<h3 id="software">Software</h3>

<ul>
  <li><a href="https://overleaf.com">Overleaf</a> (no change since last report)</li>
  <li><a href="https://code.visualstudio.com/">VS Code</a> with a range of plugins for writing code, thesis notes (no change since last report)</li>
  <li><a href="https://pandoc.org/">Pandoc</a> for document generation from MarkDown (no change since last report)</li>
  <li><a href="https://www.zotero.org/">Zotero</a> for referencing (using Better BibTeX extension) (no change since last report)</li>
  <li><a href="https://github.com/patrikx3/onenote">OneNote for Linux by @patrikx3</a> (no change since last report)</li>
  <li><a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Nightly</a> edition of Firefox (no change since last report)</li>
  <li><a href="https://zoom.us">Zoom</a> (no change since last report)</li>
  <li><a href="https://www.microsoft.com/en-au/microsoft-teams/download-app">Microsoft Teams for Linux</a> (no change since last report, but boy is it getting rubbish!)</li>
  <li><a href="http://mayccoll.github.io/Gogh/">Gogh</a> for Linux terminal preferences (no change since last report)</li>
  <li><a href="https://super-productivity.com/">Super productivity</a> (instead of Task Warrior) (no change since last report)</li>
  <li><a href="https://cuckoo.team">Cuckoo Timer</a> for Pomodoro sessions (no change since last report)</li>
  <li><a href="https://rescuetime.com">RescueTime</a> for time tracking (no change since last report) - I should note that the new Timesheets functionality is super helpful.</li>
  <li><a href="https://www.beeminder.com/">BeeMindr</a> for commitment based goals (no change since last report)</li>
  <li><a href="https://okular.kde.org/">Okular</a> as my preferred PDF reader (instead of Evince on Linux and Adobe Acrobat on Windows) (no change since last report)</li>
  <li><a href="https://www.nocodb.com/">NocoDB</a> for visual database work (no change since last report)</li>
  <li><a href="http://observablehq.com/">ObservableHQ</a> for data visualistion (no change since last report)</li>
</ul>

<h3 id="techniques">Techniques</h3>

<ul>
  <li>Pomodoro (no change since last report)</li>
  <li><a href="https://blog.rescuetime.com/time-blocking-101/">Time blocking</a> (used on and off)</li>
</ul>

<h2 id="current-gaps-in-my-toolchain---whats-missing">Current gaps in my toolchain - what’s missing?</h2>

<h3 id="daily-coach-and-mentor">Daily coach and mentor</h3>

<p>I’m finding some of Claude’s capabilities useful from a mentoring perspective, and I think I would genuinely pay for a daily coach and mentoring service - something more sophisticated that a task or action tracker, or emotion tracker, but something which has a long-term context and is able to help guide and motivate me toward my long-term objectives. I wonder if this is where services like ChatGPT or Claude are heading - essentially replacing middle management and team leaders.</p>

<h3 id="impact-tracker">Impact tracker</h3>

<p>How do I know that the actions I am taking are having an impact? RescueTime tracks where I spend my time, and helps me see if I’ve gone down a Sapiens rabbit hole or binged a bit too much Expanse or For All Mankind (but they’re soooo good!). But how do I link my work and tasks to broader objectives and progress toward those objectives? Super Productivity has some of this capability, but is dependent on your decomposing broader goals into much finer-grained ones. And how might I link the work I’ve done to increase my physical activity and capability with longer-term fitness goals? There’s a space here amongst the Get Shit Done, One Minute Manager ecosystem for something that is better aligned to tracking <em>impact</em>.</p>

<h2 id="no-im-not-accepting-paid-sponsorships-or-links">No, I’m not accepting paid sponsorships or links</h2>

<p>My <a href="/tag/toolchain/">State of the Toolchain</a> posts get a bit of traction, and with that, I’ve started attracting people wanting me to link to their product or website, for a fee. That is, sponsored content - but of course they don’t want it to <em>look</em> like sponsored content. I usually respond harshly, dismissively and swearily to these requests.</p>

<p>If you want me to write about your product or service, build something awesome.</p>]]></content><author><name>Kathy Reid</name></author><category term="research" /><category term="technology" /><category term="dask" /><category term="data-visualisation" /><category term="hardware" /><category term="latex" /><category term="opensource" /><category term="pandas" /><category term="personal-productivity" /><category term="productivity" /><category term="toolchain" /><category term="tools" /><category term="vs-code" /><summary type="html"><![CDATA[An overview of the software, hardware and other personal productivity toolchains I'm using as of December 2024.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/12/overleaf-1024x584.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/12/overleaf-1024x584.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The OSI’s Definition of Open Source AI heightens the need for better dataset documentation practices</title><link href="https://blog.kathyreid.id.au/2024/11/02/open-source-ai-definition-dataset-documentation/" rel="alternate" type="text/html" title="The OSI’s Definition of Open Source AI heightens the need for better dataset documentation practices" /><published>2024-11-02T10:17:35+11:00</published><updated>2024-11-02T10:17:35+11:00</updated><id>https://blog.kathyreid.id.au/2024/11/02/open-source-ai-definition-dataset-documentation</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/11/02/open-source-ai-definition-dataset-documentation/"><![CDATA[<p>Many folks in open source will have followed the recent workings of the <a href="https://opensource.org/ai/open-source-ai-definition">Open Source Initiative (OSI) to arrive at a definition for what constitutes “open source AI”</a>.</p>

<p>This has been a particularly contentious debate, centred primarily on whether the data used to train a model needs to be openly available for the resulting model to be considered open source.</p>

<p>On one side of the debate is a very pragmatic, practical perspective - the <strong>data</strong> used to create a model is often private, proprietary to an organisation, and the pre-processing steps difficult to reproduce. On the other is an idealist viewpoint - that for a model to claim to be open source, not only the code and model architecture need to be open, so to does the dataset on which it was trained.</p>

<p>The OSI has <a href="https://opensource.org/blog/the-open-source-initiative-announces-the-release-of-the-industrys-first-open-source-ai-definition">adopted a position halfway between the two sides</a>:</p>

<blockquote>
  <p>“The new definition requires Open Source models to provide enough information about their training data so that a ‘skilled person can recreate a substantially equivalent system using the same or similar data”.</p>
</blockquote>

<p>While my personal position is that open source AI models should be constituted from open data to earn the moniker - at the risk of <a href="https://www.theregister.com/2024/10/25/opinion_open_washing/">open washing</a> - there is a broader issue that is yet to enter the discourse.</p>

<p>In order to provide information about training data, we require <strong>dataset documentation</strong>.</p>

<p>Dataset documentation is information about a dataset that describes <em>how</em> that dataset was constituted, <em>what</em> it is constituted from and <em>where</em> it is intended to be used. One way of thinking about dataset documentation is like a nutrition label on a can - it tells you the ingredients, properties, and what percentage of its contents are fat, sugar, sodium and so on. That is, it helps you better understand what’s in the can.</p>

<p>Dataset documentation has gained increasing research attention in recent years - such as the work <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Timnit Gebru</a>, <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Kate Crawford</a>, <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Ben Hutchinson</a> and others did on <a href="https://dl.acm.org/doi/fullHtml/10.1145/3458723">Datasheets for Datasets</a>, and the work <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Emily M. Bender</a> and <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Batya Friedman</a> did on <a href="https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00041/43452/Data-Statements-for-Natural-Language-Processing">Data Statements for Natural Language Processing</a>. My own research has focused on <a href="https://aclanthology.org/2023.alta-1.6/">dataset documentation for speech data</a>.</p>

<p>In the research space, academic organisations like the <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Association for Computational Linguistics</a> now require dataset documentation to be provided with any dataset that is published with a research paper - a strong step forward. However, platforms that host such data, such as <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Hugging Face</a>, while providing the structures to create dataset documentation, do not mandate it.</p>

<p>For example, HF has uploaded <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Mozilla</a>’s <a href="https://huggingface.co/mozilla-foundation">Common Voice dataset</a> to the platform - a dataset with which I am <a href="https://observablehq.com/@kathyreid/mozilla-common-voice-v19-dataset-metadata-coverage">intimately familiar</a> - however, it lacks any meaningful dataset documentation, making it harder for practitioners and researchers to make informed decisions about how speech models trained on this data will perform across axes such as genders, ages and accents.</p>

<p>That is, dataset documentation is the missing piece of the puzzle in the Open Source AI definition. Without effective dataset documentation practices, proformas, and platforms that support these, the Open Source AI definition risks paying lip service to reproducibility.</p>

<p>To move forward, I would like to see the Open Source Initiative become involved in efforts that help to standardise and improve practices and proformas around dataset documentation. Taking the position they have - that data does not need to be openly available - but must be adequately documented - commits the Open Source Initiative to advocating for better dataset documentation for AI training data.</p>

<p><strong>Let’s work together to make sure that dataset documentation becomes just as important as data, model architectures or code for Open Source AI.</strong></p>

<hr />

<ul>
  <li><a href="https://opensource.org/blog/the-open-source-initiative-announces-the-release-of-the-industrys-first-open-source-ai-definition">Read more here about the Open Source AI definition via the OSI</a></li>
  <li>Read more about <a href="https://www.zdnet.com/article/we-have-an-official-open-source-ai-definition-now-but-the-fight-is-far-from-over/">how the debate is not yet over</a> via <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">Steven Vaughan-Nichols</a> for <a href="https://www.linkedin.com/article/edit/7257895256002580480/#" target="_blank" rel="noreferrer noopener">ZDNET</a></li>
</ul>]]></content><author><name>Kathy Reid</name></author><category term="academic" /><category term="data-science" /><category term="opensource" /><category term="ai" /><category term="data" /><category term="data-statements" /><category term="dataset-documentation" /><category term="datasheets" /><category term="machine-learning" /><category term="metadata" /><category term="opensource" /><category term="osi" /><summary type="html"><![CDATA[I unpack how the OSI's definition of open source AI, which does not require that the data used for training models be open, places more onus on dataset documentation practices for describing that data.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/11/eED6qkUJ.jpeg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/11/eED6qkUJ.jpeg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">When abstraction goes wrong: ISP-hobbled firmware prevents using VoIP with a modem router</title><link href="https://blog.kathyreid.id.au/2024/08/10/abstraction-goes-wrong-isp-hobbled-firmware-modem-router/" rel="alternate" type="text/html" title="When abstraction goes wrong: ISP-hobbled firmware prevents using VoIP with a modem router" /><published>2024-08-10T19:42:02+10:00</published><updated>2024-08-10T19:42:02+10:00</updated><id>https://blog.kathyreid.id.au/2024/08/10/abstraction-goes-wrong-isp-hobbled-firmware-modem-router</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/08/10/abstraction-goes-wrong-isp-hobbled-firmware-modem-router/"><![CDATA[<p>Like many technologists, I’m the IT support person for my family - a role I’m very happy to play in return for baked goods, house maintenance and other in-kind exchanges. But I met my match with a modem I couldn’t flash.</p>

<h2 id="the-context">The context</h2>

<p>Recently, I encouraged a family member to switch ISP from Internode to Aussie Broadband. There were a couple of drivers for the change (hah! pun!); my family member’s primary email was with Internode, but they recently <a href="https://forums.whirlpool.net.au/archive/9jm65pmp">divested of this service</a> and it would soon cost extra. We’d also had some poor experiences with Internode, including line dropouts - which I had to escalate to a Service Manager to resolve. We also had a lot of trouble understanding the accent of the people on the Internode Service Desk. Conversely, I’d had an excellent experience with Aussie, who helped me connect my NBN service when it finally became available in my area. I spoke with a person who was physically in Morwell, super helpful, and who made everything easy. So, my family member switched to Aussie at my beckoning.</p>

<p>The churn process went smoothly. I popped around to my family member’s house, and re-configured the Internode-supplied modem to point to the VDSL service from Aussie. We got line sync, and voila, internet and wireless were working.</p>

<p>The problem became apparent went I went to re-configure the VoIP settings. They simply weren’t on the modem’s administration interface - <em>anywhere</em>.</p>

<h2 id="the-confusion">The confusion</h2>

<p>I’m not bragging, but I’m pretty good with most technical things. I run Linux. By choice. I am comfortable running Docker. On the command line. I can make <a href="/2011/07/11/lilypad-arduino-lightscarf/">scarfs</a> that sense light and twinkle if it’s too dark, using Arduino. I run PiHole on my home network. I figured out <a href="/2024/01/27/scaling-python-dask/"><code class="language-plaintext highlighter-rouge">dask</code></a>. I thought this would just be a case of finding the right settings on the modem’s administrative interface.</p>

<p>I was, sadly, wrong.</p>

<h3 id="can-i-find-a-vanilla-firmware">Can I find a vanilla firmware?</h3>

<p>But I could not find the Telephony / VoIP settings on the router - a <a href="https://www.tp-link.com/au/service-provider/xdsl/archer-vr1600v/">TP-LINK Archver VR1600v</a>. The modem had previously been supplied by Internode, and had some settings, like VoIP, pre-configured.</p>

<p>The first thing I tried was to go to the product’s home page on the TP-LINK website, to see if there was a generic firmware available to download. There wasn’t.</p>

<p>I considered trying to <code class="language-plaintext highlighter-rouge">ssh</code> into the modem and see if I could <code class="language-plaintext highlighter-rouge">wget</code> the relevant pages - but figured that was too much hassle.</p>

<p>The more I dug, the more I realised that the firmware had been deliberately hobbled by Internode - and that finding an alternative firmware was going to be an exercise in futility. There appeared to be several complaints about this issue on the <a href="https://community.tpg.com.au/t5/Broadband-Internet/VoIP-setting-Archer-VR1600v/td-p/30604">Internode forums</a> (who were bought out by TPG) (<a href="https://community.tpg.com.au/t5/Home-Phone-Voice/How-to-enable-telephony-settings-on-Archer-VR1600V-wifi-router/td-p/96303">second forums link</a>).</p>

<h3 id="can-the-manufacturer-give-me-vanilla-firmware">Can the manufacturer give me vanilla firmware?</h3>

<p>I even lodged a support case with TP-LINK, on the off chance they could send me a generic firmware. “I can compile it from source, I’m technical!”, I pleaded. My attempt at <a href="https://xkcd.com/806/">shibboleet</a> met with resounding defeat.</p>

<blockquote>
  <p>As you know, the model Archer VR1600v is a customized one for service providers. For such customized models, the firmware update is controlled by service providers and we do not have access to it. That’s why we are not able to find its firmware on our official website. </p>

  <p>And we suggest to contact TPG and ask them to unbind/revert the firmware to the vanilla version.</p>

  <p>Since your family member changed the ISP, we recommend you consider a common model instead. Below are our regular DSL modem routers, models with the lower case “v” indicates they support VoIP.</p>
</blockquote>

<p>I mean, points for trying to upsell me a new modem, but really the manufacturer is pushing me back to the service provider - Internode / TPG - to provide the vanilla firmware - which they have absolutely no incentive to do, because my family member switched ISPs.</p>

<p>UPDATE: Subsequent to posting this, @troybie contacted me to let me know of <a href="https://forums.whirlpool.net.au/thread/9vx05ww9?p=97">an NZ-based firmware floating around on Whirlpool</a> (thx, @troybie!). To be honest, I don’t trust random firmwares that much, so I’m a bit hesitant to give it a try …</p>

<h3 id="can-i-roll-my-own-firmware">Can I roll my own firmware?</h3>

<p>At this point, if you’re a networking or Linux flavoured techie, you’re probably asking yourself “why didn’t she flash it with OpenWRT”? To which I would respond “good question, and yeah I thought of that already”. There’s no <a href="https://firmware-selector.openwrt.org">OpenWRT firmware</a> for this model, sadly. And while it was an attractive option for about 5 minutes, firmware isn’t my wheelhouse, and I don’t have time to upskill in rage-based firmware creation 🤬</p>

<p>UPDATE: Subsequent to posting this, @voltagex has let me know that trying to compile from <a href="https://www.tp-link.com/us/support/gpl-code/">TP-LINK’s GPL sources</a> is a bust too, because they don’t work. Sorry for the nerd snipe there!</p>

<p>I was defeated.</p>

<h2 id="the-consternation">The consternation</h2>

<p>The issue here isn’t that I wasn’t able to flash a consumer-grade router with new firmware, so my family member could use the VoIP service they’re paying for. It’s a microcosm of a much broader problem with the software, hardware and service assemblages that form our socio-technical systems: their complexity is being abstracted away from us in ways that remove our ability to shape, re-purpose, and re-use them.</p>

<p>If you’re a programmer, you might think about abstraction in terms of data abstractions, where variables are specified as typed; integer, character, Boolean, based on their characteristics<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. If you are more philosophically inclined, you might think of abstraction as a process that identifies and generalises commonalities across concepts, or objects, or phenomena<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>. That is, abstraction helps us deal with complexity<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup>.</p>

<p>Abstraction can be useful. Abstraction means that if you can drive one car, you have a reasonable chance of being able to drive many others - because the user interface is similar - it shares many characteristics. Abstraction means that if you read one Annual Report, you have a fair chance of understanding other Annual Reports. Abstraction is what allows us to compare apples and oranges, and know that they are both fruit.</p>

<p>We use abstraction a lot in technology. Operating systems are abstractions - most folks push icons around a screen on a graphical user interface to copy, paste or rename a file. That’s an abstraction of lower-level commands, which we can still do on the command line, if we roll that way (yes, some of us roll that way). User guides are often abstractions - helping to walk people through the complexity of an application.</p>

<p>An ISP flashing a modem router with customised firmware with VoIP telephony settings preset, and unable to be modified is an abstraction. And it has several benefits - it makes the modem easier for the consumer to connect to the ISP’s network, and it reduces the support load on the ISP because they don’t have to walk the consumer through how to configure the modem router.</p>

<p>But when we abstract something, we trade complexity and nuance and difficulty for ease of use, simplicity - and reduced functionality. The <code class="language-plaintext highlighter-rouge">cp</code> command in Linux - to copy a file - has 32 options it can take. When I use the graphical user interface in my operating system to copy a file, I right click and select “Copy”. Abstracting firmware and hobbling its functionality yields simplicity at the cost of reduced functionality - it means I can’t change the telephony settings and make my family member’s VoIP work on a different ISP. It removes the choices I have as a consumer of technology</p>

<h2 id="the-conclusion">The conclusion</h2>

<p>Abstraction is useful. It makes our lives easier. Simpler.</p>

<p>But it also reduces nuances. Complexity. And capability.</p>

<p>Sometimes, we need ways to reduce abstraction again.</p>

<p>To <a href="https://www.noemamag.com/we-need-to-rewild-the-internet/">re-wild</a> that which we’ve simplified.</p>

<p>And give ourselves more control and choice over how we use our technology.</p>

<p>Artwork: <a href="https://flickr.com/photos/nainokin/">Wes Dickinson</a> “<a href="https://flic.kr/p/awPYnw">modem glow</a>” via Flickr CC-BY-NC 2.0</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Cardelli, L., &amp; Wegner, P. (1985). On understanding types, data abstraction, and polymorphism. <em>ACM Computing Surveys (CSUR)</em>, <em>17</em>(4), 471-523. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:2">
      <p>Yee, E. (2019). Abstraction and concepts: when, how, where, what and why?. <em>Language, Cognition and Neuroscience</em>, <em>34</em>(10), 1257-1265. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:3">
      <p>Floridi, L. (2016). The method of abstraction. In <em>The Routledge Handbook of Philosophy of Information</em> (pp. 50-56). Routledge. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Kathy Reid</name></author><category term="technology" /><category term="abstraction" /><category term="archer" /><category term="modem" /><category term="router" /><category term="tp-link" /><category term="voip" /><category term="vr1600v" /><summary type="html"><![CDATA[What does abstraction have to do with ISP-hobbled firmware on a modem router?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/08/37647444611_3ca2ea81e8_o-1024x473.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/08/37647444611_3ca2ea81e8_o-1024x473.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Digging where she stands - Meredith Whittaker in conversation with Vanessa Toholka at the Wheeler Centre, Melbourne</title><link href="https://blog.kathyreid.id.au/2024/06/29/digging-where-she-stands-meredith-whittaker/" rel="alternate" type="text/html" title="Digging where she stands - Meredith Whittaker in conversation with Vanessa Toholka at the Wheeler Centre, Melbourne" /><published>2024-06-29T06:15:00+10:00</published><updated>2024-06-29T06:15:00+10:00</updated><id>https://blog.kathyreid.id.au/2024/06/29/digging-where-she-stands-meredith-whittaker</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/06/29/digging-where-she-stands-meredith-whittaker/"><![CDATA[<p>One of the things I miss about being physically based in Canberra is the plethora of world-class academics, policy-makers and thinkers that coalesce there. Every week, you could listen to an expert pose a provocation, advocate for a course of action or bring together unexplored inter-disciplinary threads. As someone based in a regional city, over an hour away from Melbourne, albeit one recognised as a <a href="https://www.geelongcityofdesign.com.au">UNESCO Creative City of Design</a>, that privilege was never lost on me. And so, when I found out, via Mastodon, that Signal Foundation President, PhD Candidate and activist <a href="https://en.wikipedia.org/wiki/Meredith_Whittaker">Meredith Whittaker</a> was speaking at the <a href="https://www.wheelercentre.com/events/surveillance-technology-and-ai-meredith-whittaker-in-conversation/">Wheeler Centre</a>, co-hosted by the charity <a href="https://www.ignitingchange.org.au/">Igniting Change</a>, I knew she was a must-see.</p>

<hr />

<p>Facilitator <a href="https://www.linkedin.com/in/vanessatoholka/">Vanessa Toholka</a> first prompted Meredith to explore how we got here - to a world of surveillance capitalism where data about us is used as a form of capital, allowing a concentration of power in big tech companies (<a href="https://en.wikipedia.org/wiki/Shoshana_Zuboff">Shoshana Zuboff</a> and <a href="https://www.jathansadowski.com/">Jathan Sadowski</a> were never mentioned by name, but their works on surveillance capitalism and datafication were palpable in the discussion). Here, she drew on neo-liberal history at the start of the tech boom in the 1990s, showing how permissible the regulatory environment was for organisations at the time - there were few constraints on <em>how</em> they could approach data capture. This led to an ecosystem where there were essentially two options for revenue generation: one for <em>infrastructure</em> - where revenues were generated by providing carriage of data, carriage of electricity or provision of storage; and one for <em>advertising</em> - where revenues were generated by micro-targeting cohorts and delivering ads to them. Even today, there is little room for alternative business models. Reflecting on this, I couldn’t help but be struck by <a href="https://www.theregister.com/AMP/2024/06/18/mozilla_buys_anonym_betting_privacy/">Mozilla’s recent move into advertising</a>, which seems deeply at odds with its ethos. All paths, it seems, lead to advertising.</p>

<p>Following on from this, Whittaker unpacked the etymology of AI, and how the term arose as a way to distance the work of John McCarthy - its coiner - from that of Norbert Wiener and his preferred term of cybernetics. This reminded me of the work of Thomas Rid’s book <em>The Lost History of Cybernetics</em> - which explicates the tension between east-coast and west-coast technological developments of the 1940s to the 1990s<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. She recalled the pivotal moment in 2012 when AlexNet was created - the fore-runner of ImageNet, which harnessed decades-old convolutional neural network technology - made possible by the availability of large-scale data<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>, and noted how many AI practitioners, such as <a href="https://en.wikipedia.org/wiki/Yann_LeCun">Yann LeCun</a>, had gone to work for Big Tech - such as Meta or DeepMind.</p>

<p>The discussion turned to the imbrication of power and technology, and Whittaker drew on the work of authors such as David L. Crane and his book <a href="http://makingthemovement.com/book/"><em>Making the Movement: How Activists Fought for Civil Rights with Buttons, Flyers, Pins, and Posters</em></a>, and the work of Canadian activist <a href="https://en.wikipedia.org/wiki/Ursula_Franklin">Ursula Franklin</a> - author of the <em><a href="https://archive.org/details/the-real-world-of-technology">Real World of Technology,</a></em> in which she shows how science interacts with society and democracy - very much in the STS space.</p>

<p>One of the most resonant points Whittaker made here was around how privilege operates within activism. She is well-known for helping to organise - she explicitly eschewed the term “leader” - the <a href="https://en.wikipedia.org/wiki/2018_Google_walkouts">Google Walkouts</a> in 2018. She quoted the phrase “dig where you stand” - a social movement in the Nordics in the 1970s promoting public participation in labour history - and which has at its core a greater appreciation for the lived experience of the working class. Here, she advocated that we have to be aware of our privilege - and act in a way that protects people of less privilege. For example, there were many H1-B visa holders at Google in 2018. They couldn’t walk out, because they would have been risking their right to residency in the United States.</p>

<p>So “digging where you stand” is about appreciating the privilege and positionality you have in a context, and doing what you are able to to change or resist the status quo. Reflecting on this, as a technologist, I hold a great deal of privilege in the technologies I am able to use, because of my profession and education. I can run a <code class="language-plaintext highlighter-rouge">PiHole</code> and a <code class="language-plaintext highlighter-rouge">uBlock</code> and a Flipper Zero. And I can educate others about how to use these technologies to resist surveillance and data/capta capture.That is, there is a moral obligation upon technologists - even if companies such as Google choose to remove imperatives such as “do no evil” from their constitutions.</p>

<p>This was under-scored by a discussion on “<a href="http://Krizhevsky,%20A.,%20Sutskever,%20I.,%20Hinton,%20G.E.,%202012.%20Imagenet%20classification%20with%20deep%20convolutional%20neural%20networks.%20Advances%20in%20neural%20information%20processing%20systems%2025,%201097–1105.">surgical strikes</a>” - in which drone technologies choose targets based on “data signatures” - patterns of behaviour that are associated with a profile of a particular target. These targets are stochastic, non-deterministic. And if you don’t have enough targets, you can just “lower the confidence score” to acquire more.</p>

<p>The audience, quite rightly, were aghast at this.</p>

<hr />

<p>Where I thought this conversation might go - but didn’t - was into the area of <em>encryption</em>, particularly given the recent debate of a “<a href="https://mashable.com/article/eu-chat-control-law-would-allow-scans-of-encrypted-messages">Chat Control</a>” law in the European Union, which would allow scanning of chat apps - like Signal, WhatsApp and others - ostensibly to detect CSAM.</p>

<p>Whittaker is <a href="https://signal.org/blog/pdfs/upload-moderation.pdf">deeply opposed</a> to laws such as these which seek to weaken end to end encryption:</p>

<blockquote>
  <p>Either end-to-end encryption protects everyone, and enshrines security and privacy, or it’s broken for everyone. And breaking end-to-end encryption, particularly at such a geopolitically volatile time, is a disastrous proposition.</p>

  <p><cite>New Branding, Same Scanning: “Upload Moderation” Undermines End-to-End Encryption<br />
A statement from Meredith Whittaker, Signal President, in the context of the EU debate<br />
June 17th 2024</cite></p>
</blockquote>

<p>Regardless, the evening’s conversation was deeply engaging, provocative and well-informed.</p>

<p>Brava, Meredith and Vanessa.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Rid, T., 2016. Rise of the machines : the lost history of cybernetics /. Scribe, Melbourne, Australia. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:2">
      <p>Krizhevsky, A., Sutskever, I., Hinton, G.E., 2012. Imagenet classification with deep convolutional neural networks. Advances in neural information processing systems 25, 1097–1105. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Kathy Reid</name></author><category term="activism" /><category term="research" /><category term="technology" /><category term="big-tech" /><category term="encryption" /><category term="meredithwhittaker" /><category term="privacy" /><category term="signal" /><category term="sts" /><category term="surveillance-capitalism" /><summary type="html"><![CDATA[Data, surveillance, artificial intelligence and digging where you stand: Meredith Whittaker stands up to the power of Big Tech]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/06/meredith-whittaker-wheeler-centre-26June2024-1024x707.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/06/meredith-whittaker-wheeler-centre-26June2024-1024x707.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Towards an integrated academic conference service offering</title><link href="https://blog.kathyreid.id.au/2024/05/05/academic-conference-service-offering/" rel="alternate" type="text/html" title="Towards an integrated academic conference service offering" /><published>2024-05-05T03:14:43+10:00</published><updated>2024-05-05T03:14:43+10:00</updated><id>https://blog.kathyreid.id.au/2024/05/05/academic-conference-service-offering</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/05/05/academic-conference-service-offering/"><![CDATA[<p>In my 27 years of professional life, I’ve attended, <a href="https://www.linkedin.com/in/kathyreid/details/volunteering-experiences/">organised</a>, and even <a href="https://kathyreid.com.au/portfolio_cat/keynote-speaker/">keynoted</a> - several conferences. Moreover, having spent time <a href="https://www.linkedin.com/in/kathyreid/details/experience/">working in the audio-visual and videoconferencing service management space at a university</a>, I’m uniquely qualified to have some (informed) opinions about the need for universities to have an integrated academic conference service offering. I’ve been thinking about this problem for the last few years, however, as the <a href="https://alta2024.alta.asn.au">Publicity Chair for the Australasian Language Technology Association’s Workshop - ALTA 2024</a>, the experience has been a microcosm of the broader issue of academic conferencing - and I wanted to get my thoughts onto virtual paper.</p>

<h2 id="what-is-an-academic-conference-and-what-makes-it-different-to-other-types-of-conferences">What is an academic conference, and what makes it different to other types of conferences?</h2>

<p>Here begins a brief typology of conferences.</p>

<ul>
  <li><strong>Hobbyist or community driven conferences</strong> - if you’ve ever been to an <a href="https://everythingopen.au">Everything Open</a> or a <a href="https://drupalsouth.org/">DrupalSouth</a> or a <a href="https://sydney.wordcamp.org/2024/">WordCamp</a> or to something like a Perl or Rust conference, chances are it’s been volunteer organised by passionate members of a community. Sure, it comes with large costs like a venue, catering, conference dinners and so on - and needs decent sponsorship to run at-cost, but it’s run by hobbyists. I don’t say amateurs, because many of the community conferences I’ve been to have been better organised than commercial conferences. These sorts of conferences are often auspiced by a peak body or foundation, which provides a legal structure for things like insurance and financials. For example, Everything Open, DrupalSouth and WordCamp are all auspiced by Linux Australia. Profits from the conference - if there are any - generally go to supporting the community the conference is for (and by). Ticket prices for these conferences are generally more affordable, and vary with things like the ability of the organisers to attract sponsorship. Organisation of the conference tends to move around the community - it will be in one city in one year, then move to a different city the next, with a new team every year.<br /></li>
  <li><strong>Conferences with professional event management or audio visual or other professionally delivered services</strong> - sometimes a community driven conference will hire professional services for a portion of the event. This might be hiring a professional event manager, paying for professional audio visual services from the venue or a third party, and having catering supplied. The amount of professional services brought in will vary with the conference’s complexity and budget.<br /></li>
  <li><strong>Commercial conferences</strong> - here, the conference is a commercial venture, designed to generate a return on investment - whether that’s monetary or in the form of brand exposure and marketing leads. If you’ve been to something like PAX, or where the tickets were $AUD 2500 for two days, then you’re at a commercial conference. The sponsors generally buy speaking time, or “present” various areas of the conference. Companies who run large conferences will often have a dedicated conferencing team who run the conference - or suite of conferences - on an ongoing basis. Most of the Quest Events conferences - such as the Women in Technology Summit or the Generative AI summit fall into this category.</li>
</ul>

<figure class="wp-block-table">
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<tbody>
<tr>
<td><strong>Conference aspect</strong></td>
<td><strong>Hobbyist / Community</strong></td>
<td><strong>Professional services</strong></td>
<td><strong>Commercial</strong></td>
</tr>
<tr>
<td><em>Business model</em></td>
<td>Ticket price plus sponsorship yields cost recovery or modest profit</td>
<td>Ticket price plus sponsorship yields cost recovery or modest profit. Revenue must cover professional services costs.</td>
<td>If profit is the motive, ticket price plus sponsorship yields profit. If brand exposure is the motive, company may absorb some or all costs. The conference becomes a <a href="https://en.wikipedia.org/wiki/Loss_leader">loss leader</a> for sales leads.</td>
</tr>
<tr>
<td><em>Budget</em></td>
<td>low</td>
<td>mid-range</td>
<td>high</td>
</tr>
<tr>
<td><em>Ticket price</em></td>
<td>low</td>
<td>mid-range</td>
<td>high</td>
</tr>
<tr>
<td><em>Sponsorship needed</em></td>
<td>low</td>
<td>mid-range</td>
<td>depends on the business model</td>
</tr>
<tr>
<td><em>Speakers</em></td>
<td colspan="2">Usually via an open, merit-based Call for Papers / Call for Proposals process. CfPs often assessed via a Selection Committee.<br />
<br />
Keynotes usually by invitation. Speakers usually given a free ticket; Keynotes may be comped accommodation and travel, possibly a stipend.</td>
<td>Speakers are often invited from large organisations. Invitation process often opaque, with a leaning towards high profile Speakers to draw in attendees.<br />
<br />
In lieu of payment, the Speaker's organisation is usually comped several tickets to the conference.</td>
</tr>
<tr>
<td><em>International attendees</em></td>
<td colspan="2">Dependent on the size of the conference and how it is viewed overseas</td>
<td>Often will have international delegates.</td>
</tr>
<tr>
<td><em>Venue</em></td>
<td>Variable based on budget of conference.</td>
<td>Generally if the conference has enough budget for professional services, it will be held at a convention centre.</td>
<td>Usually professional conference or convention centre.</td>
</tr>
<tr>
<td><em>Format</em></td>
<td>In person, but increasingly hybrid in the wake of COVID[^1] [^2]</td>
<td>Dependent on if professional AV services have been engaged.</td>
<td>Predominantly in person, hybrid availability depending on skills within conference organising committee.</td>
</tr>
<tr>
<td><em>Proceedings or artefacts from the conference</em></td>
<td>Videos from talks may be recorded and made available on platforms such as YouTube.</td>
<td>Dependent on if professional AV services have been engaged.</td>
<td>Videos or slides are often made available through an attendee-only portal.</td>
</tr>
<tr>
<td><em>Auspice or governing organisation</em></td>
<td colspan="2">Community organisation or foundation</td>
<td>Commercial company; may run multiple conferences if conferences are the revenue generation mechanism.</td>
</tr>
</tbody>
</table>
<figcaption>Comparison of conference types according to their aspects</figcaption>
</figure>

<p>An academic conference generally follows a <em>community</em> conference format, with the following distinctions:</p>

<ul>
  <li><strong>The auspicing body is usually a learned society or academic association.</strong> Some of the societies and academic associations that auspice several conferences include the Association for Computing Machinery (<a href="https://www.acm.org">ACM</a>) - which runs conferences like <a href="https://facctconference.org/">FAccT</a> and <a href="https://www.eaamo.org/">EEAMO</a> - and the Institute of Electrical and Electronic Engineers (<a href="https://www.ieee.org/">IEEE</a>) - which runs several computing-related conferences.<br /></li>
  <li>Like a community conference, the organising team generally rotates across institutions and locations.<br /></li>
  <li><strong>However, the people organising the conference are usually academics who practice in the field that the community is about</strong>. This is, they are hobbyist conference organisers. They may have a lot of experience, or may not. But conference organising is not their core competency (even though they may be very competent in it).<br /></li>
  <li><strong>Academic conferences often have additional requirements</strong> to community conferences to meet academic standards. These include:
    <ul>
      <li>Peer review of papers submitted to the CfP (often requiring 3-4 reviews per paper by people familiar with the discipline)</li>
      <li>Production of a Conference Proceedings, using publishing tools like LaTeX, using platforms like OpenReview or EasyChair</li>
      <li>Submission of proceedings to academic indices such as Scopus or to a proceedings anthology site (like <a href="https://aclanthology.org/">ACL Anthology</a>).</li>
    </ul>
  </li>
</ul>

<p>That is, academic conferences have all the requirements of non-academic conferences - venue booking, catering, social event management, schedule creation and tracking, speaker liaison, audio visual management (especially in an era of Zoom and hybrid), promotion of the event via media and public relations channels, delegate visa issues, accommodation and travel - <strong>and</strong> they have additional academic requirements like conference proceedings.</p>

<h2 id="why-is-an-integrated-academic-conference-service-needed">Why is an integrated academic conference service needed?</h2>

<p>So, what’s the problem here?</p>

<p>Running conferences is part of a broader literature on academic workloads. I’m not going to litigate that material here, other than to say that over the past two decades, a more managerial approach to governing universities has resulted in the creation of workload models that try to capture the breadth of activities academics perform, and link them to KPIs used for academic promotion - such as the number and quality of research outputs and the load and quality of teaching<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>.</p>

<p>However, from what I can tell, <em>running</em> conferences - as opposed to <em>presenting</em> at conferences - does not form part of mainstream academic workload models (but to be fair I haven’t conducted a thorough analysis - but it doesn’t show up in a cursory search of academic workload models).</p>

<p>For academics, running conferences is, in general, a non-promoteable activity. It doesn’t “count”. But without this activity, the conferences that academics need to present at in order to be promoted don’t happen. It’s paradoxical. Academics need conferences, but running conferences is not seen as a valuable activity for academics to undertake (because if it was, it would count toward promotion).</p>

<p>Running conferences takes academics away from their teaching and research activities. The activities that count towards KPIs and to promotion. Sure, aspects like reviewing submitted papers, or presenting research is directly aligned with academic KPIs, but <em>running</em> conferences is not.</p>

<p>So, there are two choices here. Either running conferences needs to count toward promotion, or running conferences - at least the non-academic aspects - needs to be moved to a non-academic function. Here, I’m arguing for the latter case - we need a dedicated, integrated service within universities for academic conferencing so academics can spend more time producing research outputs to be <em>presented</em> at conferences.</p>

<h2 id="what-would-an-integrated-academic-conferencing-service-look-like">What would an integrated academic conferencing service look like?</h2>

<p>Putting together a conference requires many disparate activities, and they “sit” in different places in universities.</p>

<ul>
  <li><strong>Room bookings:</strong> Some universities have conference centres or equivalent facilities, and space is managed differently at different institutions. But what is common is that room bookings are generally spread over three or more systems, with varying business rules around who can book what space when. This is an administrative task, that requires internal systems knowledge of the university. If the conference venue is off-campus, facilities bookings still need to be made<br /></li>
  <li><strong>Audio visual:</strong> A great conference requires great audio visual facilities - and the expertise to use them well. Even on the same university campus, different rooms have different equipment, and you need local knowledge to use them well. Moreover, AV support is needed during conferences - people now bring their own laptops. AV sometimes sits in the IT function, sometimes in a facilities function. And having AV people available in person is now a harder ask, as much AV equipment is now configured to be remotely monitored - IT service delivery is set up to only send people - “boots on the ground” - when a failure occurs, not to help set up equipment. But you need AV-savvy support during a conference, particularly if it’s running in hybrid mode.<br /></li>
  <li><strong>Event management:</strong> There are many activities involved in event management such as catering, security, VIP protocols if VIPs are in attendance, Welcome to Country ceremonies, car parking, logistics, registration and name tags - and they are primarily administrative and public relations functions. In universities, Event Management is often a central Marketing function, but is usually tasked with major university events like graduation and open days.<br /></li>
  <li><strong>Website</strong>: Each conference needs a new website every year, which contains information. Most conferences also require some form of registration, which might be provided by the Auspicing organisation, or via an external site like EventBrite or Humanitix. Each conference tends to use a different website setup - WordPress, Jekyll, Squarespace and so on. Within a university, the website content editing function is either centralised within Marketing, or devolved across organisational areas. However, universities tend to use enterprise CMSs, and conferences don’t. So it usually falls to a conference volunteer to wrangle the website (and its analytics, and integrations and so on).<br /></li>
  <li><strong>Publicity</strong>: Conferences need publicity to get people to submit to the CfP process, and to get people to register to attend. Many conferences will have an announcements mailing list or similar, and will have one or more social media properties. But someone needs to manage these - producing content not just for announcements, but surfacing content from previous conferences to grow awareness of the conference. This activity is even harder these days as the social media landscape has fragmented.<br /></li>
  <li><strong>Conference proceedings:</strong> Academic conference submissions are generally done through a platform, which generally uses LaTeX and a LaTeX template. The proceedings are then usually published, again through a platform. This often falls to a team member, when it’s largely an administrative duty - albeit one requiring some knowledge of the platforms, and LaTeX.<br /></li>
  <li><strong>Sponsorship</strong>: Garnering sponsorship for a conference is tough - and it’s harder to wrangle smaller amounts from many companies. It’s much easier to have fewer sponsors, of larger amounts. But this requires long-term relationships, and trust that sponsors will get value from their sponsorship - which is built up over time. In a university, generally the only people who deal with sponsorships are Advancement or Giving departments - and then generally it’s from a philanthropy or giving perspective.</li>
</ul>

<p>Good academic conferences need all these functions working together in an integrated way.</p>

<h2 id="how-would-this-work-in-practice">How would this work in practice?</h2>

<p>The way I see this working is that a full-time team is formed with the above skills, and the team provides services to conference leads - usually senior academics in faculties and schools. The conference lead acts as the client or in a project management sense, the Project Sponsor.</p>

<p>Conferences don’t run all year round - they are clustered in university holidays if the conference society or auspice is in Australia, but for auspicing organisations based in the United States, they tend to run in the American summer (June to August). Having a dedicated team means the conference prep could happen in the downtime before the actual conference happening. If there are not enough conferences being run in the university to keep a full time team engaged, then the team’s skills could be used to assist faculty and school events - which require many of the same skill sets - in particular things like audio visual.</p>

<p>There are going to be peak periods of operation for an integrated, dedicated team - and this is where I see casuals - often university students - having a key role to play. For example, media or journalism students could be engaged to do conference PR and social media, and project management students would be able to assist with conference organisation - there’s even an opportunity here for Work Integrated Learning.</p>

<p>There would need to be key criteria for the integrated team to take on a conference - because they have to be funded, and they have to be able to manage demand. Some of the criteria I see here would be the international profile of the conference, or perhaps its academic ranking. Having a FAccT or a CHI conference at your campus brings huge kudos to the university.</p>

<p>In terms of funding, I see a core team of 2-3 people - project management, audio visual and web/media - being able to prove the viability of the model. Back of the envelope, that’s about $AUD350k for 3-ish salaries plus on-costs. The challenge is being able to prove RoI for that $350k / year - how does the university get a return on that investment? KPIs that I see as useful here would be the increased presence on campus during “down” periods (which means that campus food outlets are more frequented), increased research collaborations, and increased opportunities for university students to attend, and be involved, in conferences.</p>

<p>But all of these are second or third order impacts of an integrated conference team. In Richard Rumelt’s book Good Strategy/Bad Strategy<sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>, he talks of hierarchies of objectives, and by setting a proximate objective, or guiding objective, lower level details will be taking care of. The proximate objective I see for an integrated conferencing service is “making the university the premier destination for academic conferences in Australia and the world”.</p>

<h2 id="what-are-the-risks-benefits-and-barriers-over-the-current-state-of-affairs">What are the risks, benefits and barriers over the current state of affairs?</h2>

<p>Having a team with all of the above skills, full time, in a university would provide several benefits over ad-hoc teams forming for each conference.</p>

<ul>
  <li>Firstly, it helps to make the staff time and effort spent on conferences much more transparent. Currently, a lot of conference work is distributed across schools and faculties. By bringing this work to a dedicated team, it makes the workload of conferencing more transparent.<br /></li>
  <li>Secondly, by having a dedicated team, there is more scope for pooling resources for things like hybrid conferencing solutions. Zoom is great, but it’s not designed for hybrid conferences - when platforms like Venueless and Streamyard and others offer a better experience. Individually they’re expensive - and cumbersome to learn. By having a dedicated team that can deliver an excellent hybrid conferencing solution repeatedly, great solutions can be identified, tested - and replicated.<br /></li>
  <li>From a content perspective, instead of having multiple staff create similar web content, a library of conference content for the university - travel, accommodation, sightseeing - could be produced that becomes “copy and paste”-able - and which also helps to showcase the university itself.<br /></li>
  <li>A dedicated conferencing team would be better able to negotiate commercial arrangements with suppliers such as caterers and accommodation providers - because they could negotiate over a portfolio of conferences rather than a single conference.</li>
</ul>

<p>There are also risks and barriers to this proposal:</p>

<ul>
  <li>The business case is flakey - because the benefits are not immediately realisable (they take three or four steps on an <a href="https://www.dtf.vic.gov.au/investment-management-standard/facilitator-guidance-and-templates">investment logic map</a> - they are indirect).<br /></li>
  <li>Integrated teams that have skills from multiple areas - IT, facilities, Marketing - are always ripe for organisational empire building. These areas are not going to agree to having funding going to an integrated team, and will instead argue “those FTE roles should sit in my department and we will provide the service through our existing service management framework”. But what this means in reality for conference leads - often senior academics - is that they have to deal with three or four departments to get an outcome - that is, the academic has to do the co-ordinating work. The work they should be doing is the disciplinary work - the reviewing of submissions, setting a conference theme, facilitating research collaborations.</li>
</ul>

<h2 id="parting-thoughts">Parting thoughts</h2>

<p>This isn’t a complete proposal - but it’s a start.</p>

<p>What are your thoughts? Is this service needed? Is it missing anything? How could it be made to work better?</p>

<p>Image: Reza Haffari keynoting #ALTA2023 in Melbourne, November 2023 via the conference’s Twitter channel @<a href="https://twitter.com/altanlp/status/1729998563147747513">altanlp</a></p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:3">
      <p>Kenny, J., &amp; Fluck, A. E. (2023). Life at the academic coalface: validation of a holistic academic workload estimation tool. <em>Higher Education</em>, <em>86</em>(3), 507-526. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:4">
      <p>Rumelt, R. (2011). <em>Good Strategy/Bad Strategy: The difference and why it matters</em>. Profile Books. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Kathy Reid</name></author><category term="academic" /><category term="research" /><category term="alta2023" /><category term="conference" /><category term="event-management" /><category term="service-offering" /><category term="university" /><category term="video-conferencing" /><summary type="html"><![CDATA[Universities run many academic conferences each year. But they're often organised by academic teams, whose core skills are not in event management. Would we be better off having an integrated academic conferencing service?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/05/alta2023-reza-haffari-1024x766.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/05/alta2023-reza-haffari-1024x766.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Dark Printers</title><link href="https://blog.kathyreid.id.au/2024/03/02/dark-printers/" rel="alternate" type="text/html" title="Dark Printers" /><published>2024-03-02T15:56:31+11:00</published><updated>2024-03-02T15:56:31+11:00</updated><id>https://blog.kathyreid.id.au/2024/03/02/dark-printers</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/03/02/dark-printers/"><![CDATA[<h2 id="the-context">The context</h2>

<p>I recently <a href="https://aus.social/@KathyReid/112017405284417827">published</a> a small <code class="language-plaintext highlighter-rouge">#Tootfic</code> - a very short piece of fiction writing - on Mastodon, and it garnered, unexpectedly, a large readership. So I wanted to unpack some of its themes in a longer-form post.</p>

<h2 id="the-tootfic">The Tootfic</h2>

<p>Tay gently pushed the plastic door of the printer shut with an edifying “click”.</p>

<p>Servicing Dark Printers had been illegal for years now. They enjoyed the seditious thrill.</p>

<hr />

<p>It had started as a subscription grab after the printer companies tried hobbling third party toner cartridges.</p>

<p>“Subscribe for a monthly fee and you’ll never run out of toner again.”</p>

<p>“Let us monitor your printer so you don’t have to.”</p>

<p>People saw it for what it was - vendor lock in - but they had no choice really, not after all the printer companies started doing it.</p>

<p>Then came generative AI.</p>

<p>Everyone wanted to scrape every word ever written on the internet, tokenize it and feed it to an #LLM. #Reddit sold out, then #Tumblr, even open source darling #WordPress - selling out their user base for filthy token lucre.</p>

<p>So people started hiding their words, their art, their thoughts, their expression, not behind disrespected robots.txt, but through obscurity.</p>

<p>Rejecting Website Boy’s “fewer algorithmic fanfares”, they forked into the Dark Fedi.</p>

<p>Unscrapeable, unscrutable, ungovernable.</p>

<hr />

<p>But people had forgotten about the printers.</p>

<p>The printers had to be connected 24/7, for “monitoring”.</p>

<p>But you could tokenize postscript as easily as HTML.</p>

<p>And so every time a document was sent to a printer, it was harvested for tokens. Even secure documents. Documents not online.</p>

<hr />

<p>Tay shut the metal door behind them, Dark Printer cossetted safely in its Faraday cage, and shuffled the hot stack of A4 paper it had borne.</p>

<p>It was a children’s story, about how words were sacred, and special, and how you had to earn the right to use them.</p>

<hr />

<h2 id="unpacking-dark-printers">Unpacking Dark Printers</h2>

<p>Central to this story is the concept of a “Dark Printer”, and I want to unpack how I arrived at this term.</p>

<p>Like all good dystopian science fiction, this piece has its roots in reality.</p>

<h3 id="how-printers-work-and-how-printer-companies-want-them-to-work">How printers work, and how printer companies <em>want</em> them to work</h3>

<p>In the news this week, <a href="https://arstechnica.com/gadgets/2024/02/hp-wants-you-to-pay-up-to-36-month-to-rent-a-printer-that-it-monitors/">Hewlett-Packard unveiled an “all-in” printing subscription service</a>, in which they lease the customer a printer, monitor the customer’s printing activities on the device, and send ink refills when needed. Many enterprise printing services work this way - allowing for remote monitoring, and reducing the “boots on the ground” needed to service the printing fleet.</p>

<p>But what caught my attention was this particular line:</p>

<blockquote>
  <p>“However, HP will also remotely monitor the type of documents (for example, a PDF or JPEG) printed, the devices and software used to initiate the print job, “peripheral devices,” and any other “metrics” that HP thinks are related to the subscription and decides to add to its remote monitoring.”<br /></p>

  <p><cite>Scharon Harding, “<a href="https://arstechnica.com/gadgets/2024/02/hp-wants-you-to-pay-up-to-36-month-to-rent-a-printer-that-it-monitors/">HP wants you to pay up to $36/month to rent a printer that it monitors</a>”,<br />
Ars Technica, 1st March 2024</cite></p>
</blockquote>

<p>It’s not clear from this disclosure whether Hewlett-Packard would be monitoring the <em>actual print job</em> - just the software used to create it. When printing from the desktop to a desktop-connected printer, then generally, the job is spooled to the printer using software on the local machine. That is, the print job does not go to the cloud and then to the printer.</p>

<p>But in enterprise settings, you don’t print from your local machine straight to the printer. You send your print job, using the “Print” button, to a <a href="https://en.wikipedia.org/wiki/Print_server">print server</a>. The print server is usually a somewhere in the company’s network, and the job of the print server is to process the print job, and send it to the right printer - usually the one that you specified when you printed the print job. It’s the print server that provides functionality such as “release anywhere” printing - where you don’t need to specify the printer you want, you just go to the nearest printer and “release” the job.</p>

<p>The print server <em>mediates</em> the interaction between the user and their print job.</p>

<p><em>Mediation</em> is the act of negotiating an outcome between two parties. Sometimes, mediation is requested, or desired, by the two parties - a marriage counsellor helping two spouses navigate their way through conflict - or an arbitration expert assisting two business people to reach an agreeable settlement.</p>

<p><em>Technological mediation</em> refers to the how technology affords<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>, constrains and shapes human action and human experience<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>.</p>

<p>Companies often seek to to mediate our interactions with technology, in an effort to shape our behaviours, often to suit the purpose of the company. Think about default settings in apps or platforms - who you share content with, what the app is allowed to do, how it operates<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup>. Are those defaults designed for <em>you</em> or for the company?</p>

<p>What printer companies are doing by moving to a subscription model is seeking to mediate your interactions with the printer. They want to constrain what you’re able to do with the technology - to derive a profit. This includes <a href="https://www.theverge.com/2023/3/11/23635168/hp-printer-update-brick-third-party-ink-dynamic-security">“blocking” third-party toner cartridges</a> through firmware updates.</p>

<p>It doesn’t take much imagination to pull on this thread and consider what other actions printer companies might constrain. I wondered, for example, what might happen if a company that sells cloud subscription-based graphics software bought out a printer company? Would you only be able to print from that graphics software on your printer? This scenario is reminiscent of <a href="https://archive.org/details/anthonology00anth">Piers Anthony’s short story The Toaster from 1985,</a> in which toasters constrain what bread can be toasted in them, and they have to be jailbroken to use third party ink, I mean, bread (thanks <a href="https://social.tchncs.de/@Morty/112019786691679471">Morty</a> for the reference).</p>

<h2 id="the-race-to-ingest-all-the-worlds-words">The race to ingest all the world’s words</h2>

<p>Rather than take that path, I wanted to intersect with another key theme that is as yet under-explored in dystopian science fiction (with, perhaps, the exception of Neal Stephenson’s <em>Anathem</em> and its treatment of bullshit generation).</p>

<p>The rise of generative AI for words - ChatGPT and Mistral, images - DALL-E 2, Image Creator, VALL-E for voices - is old news in general. But what is only starting to surface is the unquenchable thirst LLMs have for more input data - more words, more images, and more voices - that can be <a href="https://christophergs.com/blog/understanding-llm-tokenization">tokenized</a> to train them.</p>

<p>I don’t have good sources for this, but I suspect that LLM companies have already ingested all the words available on the public internet. This would explain the desire to build “<a href="https://openai.com/blog/data-partnerships">data partnerships</a>” with companies - where the LLM maker gets access to private data for LLM training, and the company is able to fine-tune the LLM using their private data.</p>

<p>It’s plausible that printer companies would want in on this action, right?</p>

<h2 id="dark-x">Dark X</h2>

<p>And a third thread I wanted to introduce was the concept of “dark”.</p>

<p>We have the “<a href="https://en.wikipedia.org/wiki/Dark_web">dark web</a>” - unsearchable web servers accessible only using tools like ToR. And we have “<a href="https://www.abc.net.au/news/2020-09-12/inside-australias-dark-kitchens-cloud-kitchens-virtual-kitchens/12650548">dark kitchens</a>” - delivery-only restaurant operations that are hidden from plain sight, part of a broader movement of “<a href="https://en.wikipedia.org/wiki/Dark_store">dark stores</a>”. We have “<a href="https://en.wikipedia.org/wiki/Dark_pattern">dark patterns</a>” - user interfaces designed to malevolently steer users to perform actions they may not have intended (see mediation).</p>

<p>And I wondered what these patterns would mean for printers in a world where every word is scrapeable and saleable for tokenisation and LLM ingestino.</p>

<p>Printers that are not visible, not connected to the web. Printers that are not monitored. Printers that are unable to mediate.</p>

<p>Dark Printers.</p>

<p>Image credit: Christiaan Colen <a href="https://flic.kr/p/GLCaJK">HP 7310 Printer,</a> CC-BY-SA via Flickr</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Davis, J.L., 2020. <em>How artifacts afford: The power and politics of everyday things</em>. MIT Press. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:2">
      <p>Verbeek, P.-P., 2006. Materializing morality: Design ethics and technological mediation. Science, Technology, &amp; Human Values 31, 361–380. <a href="https://doi.org/10.1177/0162243905285847">https://doi.org/10.1177/0162243905285847</a> <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:3">
      <p>Wachter-Boettcher, S., 2017. <em>Technically wrong: Sexist apps, biased algorithms, and other threats of toxic tech</em>. WW Norton &amp; Company. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Kathy Reid</name></author><category term="technology" /><category term="dark-printer" /><category term="data" /><category term="llm" /><category term="reddit" /><category term="tokenization" /><category term="tumblr" /><category term="web-scraping" /><category term="wordpress" /><summary type="html"><![CDATA[You've heard of the dark web, and dark kitchens, but what's a dark printer?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/03/26759253331_720e82895d_k-1024x576.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/03/26759253331_720e82895d_k-1024x576.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Scaling Python: dipping my toes into dask</title><link href="https://blog.kathyreid.id.au/2024/01/27/scaling-python-dask/" rel="alternate" type="text/html" title="Scaling Python: dipping my toes into dask" /><published>2024-01-27T16:34:52+11:00</published><updated>2024-01-27T16:34:52+11:00</updated><id>https://blog.kathyreid.id.au/2024/01/27/scaling-python-dask</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/01/27/scaling-python-dask/"><![CDATA[<p>As folks might know, I’m finishing off my <a href="https://cybernetics.anu.edu.au/people/kathy-reid/">PhD in voice and speech data at ANU’s School of Cybernetics at the moment</a>, and am using a lot of data science tools like <code class="language-plaintext highlighter-rouge">jupyter </code>and <code class="language-plaintext highlighter-rouge">pandas </code>as part of my methods. I recently came across a task that needed <a href="https://en.wikipedia.org/wiki/Parallel_computing">parallel processing</a> capabilities - where code is written to take advantage of multiple CPUs (or GPUs) on a host. To tackle this, I used <a href="https://www.dask.org/"><code class="language-plaintext highlighter-rouge">dask</code></a>- a library focused on scaling Python libraries like <code class="language-plaintext highlighter-rouge">pandas </code>and <code class="language-plaintext highlighter-rouge">scikit-learn</code> to different infrastructures - from a laptop to a large cluster. Although Python has <a href="https://docs.python.org/3/library/multiprocessing.html">built-in multiprocessing libraries</a>, I chose to focus on learning about <code class="language-plaintext highlighter-rouge">dask</code> because of its close association with <code class="language-plaintext highlighter-rouge">pandas</code>, which I’ve been using extensively in my PhD data work.</p>

<p>However, <code class="language-plaintext highlighter-rouge">dask</code> required a steep learning curve - it’s been decades since I covered parallel or concurrent programming in my undergrad - and I’m noting my learnings here for anyone else following a similar learning path.</p>

<h2 id="the-problem">The problem</h2>

<p>The specific problem I was trying to solve with <code class="language-plaintext highlighter-rouge">dask </code>was to append a value to a column in a <code class="language-plaintext highlighter-rouge">pandas </code>dataframe, where another column value matched a value from a <code class="language-plaintext highlighter-rouge">tsv </code>file. This sounds really straightforward doesn’t it?</p>

<p>for rows in dataframe: <br />
    for rows in tsv file: <br />
        if match: <br />
            append value to column<br />
            break # we don’t need to keep searching if matched</p>

<p>And it would be.</p>

<p>Except for the problem of <em>scale</em>.</p>

<p>In my case, the <code class="language-plaintext highlighter-rouge">pandas </code>dataframe was over 1 million rows long, and the <code class="language-plaintext highlighter-rouge">tsv </code>file was over 2 million rows long. This meant that for every row in the dataframe, Python had to search up to 2 million rows in the <code class="language-plaintext highlighter-rouge">tsv </code>- meaning an upper bound of 1 million x 2 million = 2 trillion (2 x 10<sup>12</sup>) operations to match all the rows in the dataframe (and a lower bound, assuming that each row in the dataframe matched the first row in the <code class="language-plaintext highlighter-rouge">tsv </code>file, which is, admittedly, unrealistic, of 1 million or 1 x 10<sup>6</sup> operations). In <a href="https://en.wikipedia.org/wiki/Big_O_notation">Big O notation</a>, used to show the computational complexity of algorithms, this approach would have linear complexity - <img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/34109fe397fdcff370079185bfdb65826cb5565a" alt="O(n)" /> - that is, the computation scales linearly with an increase in either the dataframe or <code class="language-plaintext highlighter-rouge">tsv </code>file size (I think - algorithms are not my forte. I’m sure if I’m wrong I will be corrected 😉 ).</p>

<p>I initially set this to run on <code class="language-plaintext highlighter-rouge">jupyter</code>, thinking, naïvely, that it would automagically find a way to parallelise this operation over my laptop’s 16 cores. I was wrong, and <code class="language-plaintext highlighter-rouge">jupyter</code>, using the <a href="https://tqdm.github.io/"><code class="language-plaintext highlighter-rouge">tqdm</code></a>library, estimated that this operation would take 21 days to complete. I confirmed this by running <code class="language-plaintext highlighter-rouge">htop</code>, which showed that only one of my CPU cores was heavily loaded.</p>

<h2 id="selecting-dask">Selecting dask</h2>

<p>I first considered some optimisations to reduce the computation required.</p>

<p>Could I remove the value in the <code class="language-plaintext highlighter-rouge">tsv </code>file once a match was found, thus reducing the search space of subsequent operations? This would have been possible if I was certain that there was one and only match for each row in the dataframe with a row in the <code class="language-plaintext highlighter-rouge">tsv </code>file, but that <em>wasn’t</em> the case here.</p>

<p>Could I use Python’s inbuilt <a href="https://docs.python.org/3/library/multiprocessing.html">multiprocessing</a> library to help?</p>

<p>I tried this, and my <code class="language-plaintext highlighter-rouge">jupyter </code>notebook ran for several hours , but I had done something wrong with the <code class="language-plaintext highlighter-rouge">start()</code> and<code class="language-plaintext highlighter-rouge"> join()</code> calls, and manual verification of the matching failed.</p>

<p>So, I turned to <code class="language-plaintext highlighter-rouge">dask</code>, primarily because it appeared to be specifically addressing the problem of scaling data science-based workloads in Python, and I had also seen <a href="https://www.youtube.com/watch?v=MpjgzNeISeI">Genevieve Buckley’s talk using <code class="language-plaintext highlighter-rouge">dask</code> for image processing at PyConline AU 2020</a>, and thought it might be the right tool for the job.</p>

<h2 id="first-steps-with-dask">First steps with dask</h2>

<p>But I hadn’t done concurrency or parallelisation work since undergrad, and needed to start from the basics. I tried the <a href="https://tutorial.dask.org/"><code class="language-plaintext highlighter-rouge">dask </code>tutorial</a>, which I had to run in <code class="language-plaintext highlighter-rouge">binder </code>because I couldn’t find the right set of dependencies to run it under <code class="language-plaintext highlighter-rouge">pip </code>on my local machine (no, I’m not running <code class="language-plaintext highlighter-rouge">conda </code>and <code class="language-plaintext highlighter-rouge">pip </code>together, sorry).</p>

<p><code class="language-plaintext highlighter-rouge">binder</code>, to be blunt, sucked. It refreshed my notebook every <em>waves hands</em> 15 minutes, and I lost the work that I had done. So, a frustrating start. But I was grateful that there was at least a tutorial <em>available</em>.</p>

<p>This gave me at least some basic concepts of <code class="language-plaintext highlighter-rouge">dask</code>:</p>

<ul>
  <li>The <code class="language-plaintext highlighter-rouge">Client </code>- which communicates with the <code class="language-plaintext highlighter-rouge">Scheduler</code>, whose job it is to schedule tasks across the workers, processes, threads and processors.</li>
  <li>The concept of <code class="language-plaintext highlighter-rouge">collections </code>- data structures such as Arrays, Dataframes and Bags, which mimic data structures familiar to those who use <code class="language-plaintext highlighter-rouge">pandas</code> or <code class="language-plaintext highlighter-rouge">numpy</code>.</li>
  <li>Dask dataframes - which parallelise <code class="language-plaintext highlighter-rouge">pandas </code>dataframes using partitioning</li>
  <li>The concept of <a href="https://en.wikipedia.org/wiki/Lazy_evaluation">lazy evaluation</a>, in which computation is delayed until needed, which provides efficiencies in task sharing. The <a href="https://blog.dask.org/2022/08/09/understanding-meta-keyword-argument"><code class="language-plaintext highlighter-rouge">meta </code></a>keyword, when passed to a function that undertakes some sort of computation, tells <code class="language-plaintext highlighter-rouge">dask</code>what the resulting output data structure should be. <code class="language-plaintext highlighter-rouge">dask</code>has some <a href="https://docs.dask.org/en/stable/generated/dask.dataframe.utils.make_meta.html">handy built-ins</a> for generating values for <code class="language-plaintext highlighter-rouge">meta</code>. From what I could understand, <code class="language-plaintext highlighter-rouge">meta</code>assists<code class="language-plaintext highlighter-rouge">dask </code>in optimisation, because the resulting data structure is known <em>a priori</em>.</li>
  <li>The concept of <em>intermediate results</em>, for example entire dataframes that are calculated before being reduced in some way, and how <code class="language-plaintext highlighter-rouge">dask</code> handles them.</li>
  <li>Using the<code class="language-plaintext highlighter-rouge"> persist()</code> function to store commonly accessed data in memory, <em>as long as that object was small enough to fit into available memory</em>.</li>
</ul>

<p>That was enough to get started on the problem.</p>

<h2 id="setting-up-my-environment-to-run-dask">Setting up my environment to run dask</h2>

<p>Installing <code class="language-plaintext highlighter-rouge">dask</code>within Python was reasonably straightforward. It essentially requires <a href="https://docs.dask.org/en/stable/install.html">installing a Python package, and a range of dependencies</a>. The only one that had to be installed as a binary was <code class="language-plaintext highlighter-rouge">graphviz</code>. Because I was using <code class="language-plaintext highlighter-rouge">dask</code> with <code class="language-plaintext highlighter-rouge">jupyter</code>, I installed the <code class="language-plaintext highlighter-rouge">dask-labextension</code> package into my <code class="language-plaintext highlighter-rouge">jupyter</code> virtual environment, which provided observability into <code class="language-plaintext highlighter-rouge">dask</code>’s operations, such as CPU and memory utilisation, and task execution.</p>

<h2 id="writing-my-dataframe-iteration-as-a-function">Writing my dataframe iteration as a function</h2>

<p>One of design features I really appreciated while learning<code class="language-plaintext highlighter-rouge">dask</code>was that much of the functionality of <code class="language-plaintext highlighter-rouge">pandas </code>dataframes was replicated: that is, I could create a <code class="language-plaintext highlighter-rouge">dask </code>dataframe, and for the most part, it would have similar behaviour to that of a <code class="language-plaintext highlighter-rouge">pandas</code>dataframe. <code class="language-plaintext highlighter-rouge">dask</code>abstracted away the complexity underneath.</p>

<p>However, in order to take full advantage of <code class="language-plaintext highlighter-rouge">dask</code>’s capabilities, I needed to write code in a particular way. Iterating over a dataframe in <code class="language-plaintext highlighter-rouge">pandas</code>, using something like <a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iterrows.html"><code class="language-plaintext highlighter-rouge">iterrows()</code>,</a> is an inherently expensive operation, and the same is true in <code class="language-plaintext highlighter-rouge">dask</code>.</p>

<p>However, <code class="language-plaintext highlighter-rouge">dask </code>provides a way to <em><a href="https://docs.dask.org/en/stable/generated/dask.dataframe.map_partitions.html#dask.dataframe.map_partitions">map</a></em> a function across partitions of a dataframe, so that the iterations can be processed in parallel.</p>

<p>out_ddf = ddf.map_partitions(myFunction, <br />
                             myParameter,  <br />
                             meta=columns_meta)</p>

<p>This seemed straightforward at first, but the devil was in the detail.</p>

<h2 id="finding-optimal-settings-is-the-hardest-part-of-dask">Finding optimal settings is the hardest part of <code class="language-plaintext highlighter-rouge">dask</code></h2>

<h3 id="partitioning-the-dask-dataframe">Partitioning the dask dataframe</h3>

<p>The key thing I struggled with was understanding how to optimise settings like the number of partitions of the <code class="language-plaintext highlighter-rouge">dask </code>dataframe, the number of workers or threads the Client should have and so on. There are several tradeoffs in these decisions: the more partitions your <code class="language-plaintext highlighter-rouge">dask </code>dataframe has, the more overhead there is in joining the results of each of the partitions (which are computed in parallel), but the more it takes advantages of multiple cores, if available.</p>

<p>The <a href="https://docs.dask.org/en/stable/dataframe-best-practices.html"><code class="language-plaintext highlighter-rouge">dask</code>documentation has some information on best practices for partitioning <code class="language-plaintext highlighter-rouge">dask </code>dataframes</a>, and there was also a <a href="https://stackoverflow.com/questions/44657631/strategy-for-partitioning-dask-dataframes-efficiently">useful article on Stack Overflow on the topic</a> by <a href="https://matthewrocklin.com/">Matthew Rocklin</a>, a core developer of <code class="language-plaintext highlighter-rouge">dask</code>, and who answers a lot of the Stack Overflow question on dask (huge thank you, Matthew!).</p>

<p>In essence, <code class="language-plaintext highlighter-rouge">dask</code>defaults to partitioning dataframes so that each partition is around 100Mb in size. What I found in my experiments however, was that each partition engaged a single CPU core. That is, if the dataframe was partitioned into eight partitions by default, then only eight cores were engaged. That meant that I couldn’t have a higher number of partitions than my number of cores. I eventually settled on using 100 partitions, where I had 512 cores (256 cores dual-threaded) available.</p>

<h3 id="optimal-settings-for-the-client">Optimal settings for the <code class="language-plaintext highlighter-rouge">Client</code></h3>

<p>I had similar struggles in finding the optimal settings for <code class="language-plaintext highlighter-rouge">Client</code>, too. In <code class="language-plaintext highlighter-rouge">dask</code>, the <a href="https://distributed.dask.org/en/stable/client.html"><code class="language-plaintext highlighter-rouge">Client</code></a> is the main interface with the <a href="https://distributed.dask.org/en/stable/scheduling-state.html"><code class="language-plaintext highlighter-rouge">Scheduler</code></a>. The <code class="language-plaintext highlighter-rouge">Scheduler</code>’s job is to optimise execution of the workload, such as by determining the dependency graph, in which the dependency of computation operations is calculated, decomposing operations into smaller operations, and co-ordinating workers that are performing computation, and reporting results back to the <code class="language-plaintext highlighter-rouge">Client</code>.</p>

<figure class="wp-block-image alignleft size-large">
<img src="https://learning.oreilly.com/library/cover/9781098119867/250w/" alt="Scaling Python with Dask" />
<figcaption>Holden Karau and Mika Kimmins -<br />
Scaling Python with Dask</figcaption>
</figure>

<p>At this point, I decided to read through Holden Karau and Mika Kimmins’ book <a href="https://www.oreilly.com/library/view/scaling-python-with/9781098119867">Scaling Python with Dask</a>, to glean some more pointers (no pun intended).</p>

<p>This explained in more detail the relationship between the <code class="language-plaintext highlighter-rouge">Client</code> and <code class="language-plaintext highlighter-rouge">Scheduler</code>, but I still remain confused about different parts of the <code class="language-plaintext highlighter-rouge">dask</code> ecosystem, such as <code class="language-plaintext highlighter-rouge">distributed</code> - the library that allows for lazy evaluation.</p>

<p>In particular, this book provided more information on the optimal choice of <code class="language-plaintext highlighter-rouge">Client</code> settings, including balancing the number of workers and threads depending on the type of compute workload you were processing. For my workload - iterating over a large dataframe - I found that a small number of workers (24) each having a large number of threads (64) worked well, as long as I assigned sufficient RAM to each worker (64GB).</p>

<p>In previous iterations, I had tried increasing the number of workers well over 100, but rapidly ran into the situation of workers dying unexpectedly. When digging into this, I found that it was always the “communications” worker that was dying, and I suspect what was happening was that there were too many workers for the communications worker to keep track of inter-worker communications, causing it to die. Again, there was a trade-off here: more workers meant more parallelisation of available compute infrastructure, but it also increased the number of worker inter-communication processes.</p>

<h2 id="nested-delayed-objects">Nested delayed objects</h2>

<p>Another “gotcha” for me was nested delayed objects.</p>

<p>Above, I had rewritten my function using <code class="language-plaintext highlighter-rouge">map_partitions():</code></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>out_ddf = ddf.map_partitions(myFunction, 
                             myParameter,  
                             meta=columns_meta)
</code></pre></div></div>

<p>I then needed to perform lazy evaluation on this, using;</p>

<p>result_df = out_ddf.compute()</p>

<p>However, when I inspected the value of <code class="language-plaintext highlighter-rouge">result_df</code>, it was a dataframe, but it contained 100 delayed objects, rather than the processed dataframes I was hoping for. This is because the mapping function had <em>nested delayed objects</em> - so I had to run another level of lazy evaluation:</p>

<p>completed_df = dask.compute(*result_df)</p>

<p>This <em>did</em> result in the evaluated dataframes I needed - and then I simply combined the 100 dataframes together with a merge operation.</p>

<p>merged_df = pd.concat(completed_df, ignore_index=True)</p>

<h2 id="next-steps-with-dask">Next steps with <code class="language-plaintext highlighter-rouge">dask</code></h2>

<p>There’s a lot that I still need to learn with <code class="language-plaintext highlighter-rouge">dask</code> - such as different data structures like Arrays and Bags, which I didn’t use in this task. But I’m still pretty pleased at being able to figure out enough <code class="language-plaintext highlighter-rouge">dask</code> to compute something that was going to take 21 days on a single CPU in around 12 hours on a CPU cluster!</p>]]></content><author><name>Kathy Reid</name></author><category term="data-science" /><category term="research" /><category term="technology" /><category term="dask" /><category term="data" /><category term="data-science" /><category term="distributed" /><category term="jupyter" /><category term="pandas" /><category term="parallel-processing" /><category term="python" /><summary type="html"><![CDATA[What I learned using dask for the first time for a data science project.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/01/Dask_Logo_lockup_primary_Logo-1024x375.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/01/Dask_Logo_lockup_primary_Logo-1024x375.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Book review: The Sound of the Future by Tobias Dengel with Karl Weber</title><link href="https://blog.kathyreid.id.au/2024/01/04/book-review-the-sound-of-the-future-by-tobias-dengel-with-karl-weber/" rel="alternate" type="text/html" title="Book review: The Sound of the Future by Tobias Dengel with Karl Weber" /><published>2024-01-04T13:15:27+11:00</published><updated>2024-01-04T13:15:27+11:00</updated><id>https://blog.kathyreid.id.au/2024/01/04/book-review-the-sound-of-the-future-by-tobias-dengel-with-karl-weber</id><content type="html" xml:base="https://blog.kathyreid.id.au/2024/01/04/book-review-the-sound-of-the-future-by-tobias-dengel-with-karl-weber/"><![CDATA[<h2 id="the-summary">The summary</h2>

<p>Written for a business audience, this book has two distinct sections. The first provides a gentle, integrated primer on voice technologies, such as automatic speech recognition (ASR), speech to text (STT), text to speech (TTS) or voice cloning, and natural language processing (NLP), and links these to the human needs fulfilled by voice technology. The second is essentially an extended pitch deck. Unabashedly techno-optimist in outlook, it seeks to grow the market for voice technologies by encouraging the reader to examine their own organisation’s operations for voice technology use cases, and provides a detailed guide to the user research and interface design steps needed to implement a voice technology program.</p>

<p>This is unsurprising, given Tobias Dengel is the CEO of WillowTree, an AI and digital product consulting company recently acquired by TELUS international for $USD 1.2 billion - which focuses on gathering training data for AI applications. His expertise in human-computer interaction (HCI) and user-centred design (UCD) is evident in the first half of the book, where voice technologies are continually grounded in user tasks and experiences. In the second, his experience is shown in the methods advocated for exploring voice use cases, with a focus on HCD methods such as journey mapping. Co-author Karl Weber is an editor; his collaboration with Dengel makes the text readily approachable and succinct; terms unfamiliar to the lay reader are well described, and the use of acronyms is minimal.</p>

<p>The book draws heavily on examples from industry to highlight key claims, however some of these are now dated. <a href="https://github.com/stanford-oval/genie-toolkit">Stanford Open Voice Assistant Lab (OVAL)’s Almond assistant was re-named Genie in 2021, however has not had any active development for over two years</a>, and the <a href="https://oval.cs.stanford.edu/">research group has pivoted to working primarily in the large language model (LLM) space</a>. The Open Voice Network’s initiatives on trustworthy voice assistants have now been folded into the umbrella of the Linux Foundation. This is perhaps unavoidable in such a fast-moving space.</p>

<h2 id="part-one---aligning-the-use-of-voice-technology-to-the-human-need-for-communication">Part One - Aligning the use of voice technology to the human need for communication</h2>

<p>Each chapter in the first half of the book details a particular human need that is met by voice technology.</p>

<p>The <em>Prologue</em> paints a picture of the transformative power of voice tech, showing how it was used to help those physically impaired to be able to communicate again - using speech - the most natural form of communication.</p>

<p>The <em>Introduction</em> makes a bolder claim - that voice is a technological revolution - akin to the internet or to the mobile phone: nascent, latent, reaching a tipping point of “ubiquity and popularity” that we should all be prepared for lest it catch us unawares. While acknowledging that voice tech is currently limited in application, and harbours a panoply of challenges, the authors hand-wave these away, pointing to the rapid advances being made across the vibrant voice tech ecosystem - inhabited by companies such as ReadSpeaker, SoundHound, Cerence and others. The sizeable investments made in voice are given as evidence for the technological revolution, but differentiated from over-hyped failures such as blockchain and the metaverse in that voice “fulfills basic human needs”, which are articulated in subsequent chapters.</p>

<p><em>Speed</em> makes the case for “even marginal improvements in speed/efficiency” when designing user interfaces, highlighting examples such as search engines and online shopping websites to reinforce the point that speaking to machines is often quicker than typing to them. It imagines a world where the keyboard is eschewed in favour of the the microphone as the primary mode of data input, because this is faster - and time is money. The physical toll of such a change - can you imagine speaking for the same amount of time you type? - is left unexamined. I wonder what Mica Endsley or other human factors scholars would make of this claim.</p>

<p>The next chapter demonstrates how voice technology meets the need of <em>Safety</em> - by being available to assist when the user is physically incapacitated. There is a claim made in this chapter that was particularly contentious: that having a voice assistant in the cockpit would “prevent crashes and save lives”. While plane &lt;-&gt; tower communication is definitely a contributory factor to many incidents, there is no discussion here of the complexity introduced by voice assistants. Imagine, for example, the utterance <code class="language-plaintext highlighter-rouge">engine one out!</code> being mis-transcribed as <code class="language-plaintext highlighter-rouge">engine won naught!</code>. Sure, the language model can be weighted for cockpit utterances, but mis-transcription is still rife, even in state of the art systems (<a href="https://github.com/openai/whisper">Whisper, for example, has a 9.3% Word Error Rate as tested on Common Voice 15</a>).</p>

<p><em>Knowledge</em> makes the case for voice technology as an interface to the world’s information. Rather than having data at your finger tips, it’s now available on the tip of your tongue - overcoming the limitations of screen real estate. Dengel and Weber also make the case here for voice where users are not computer literate: you don’t have to know how to use a computer to ask a question of a voice assistant. What is not well explained here is that access to knowledge is mediated through millions of APIs - and to curate or synthesise them requires additional capabilities. The potential for commercialisation to skew results in a particular way (such as booking sites preferencing those providers that pay them the most) is left unaddressed. This chapter also touches on voice technology as one of many anticipatory systems - having predictive capabilities through audio feature detection to infer an event is about to happen, and respond. What isn’t covered is the downside of this form of machine surveillance, covered well by researchers Joel Stern, Sean Dockray and James Parker in their <a href="https://machinelistening.exposed/curriculum">Machine Listening: Exposed</a> collaboration.</p>

<p>In the chapter on <em>Inclusion</em>, the authors make the case for voice technology building “a more inclusive society”, pointing to advancements in screen readers, speech to text and smart hearing aids as mechanisms that help in “…liberating and empowering individuals who have too long been excluded from mainstream society…”. The challenge of machine translation for the world’s 7100 spoken languages is also addressed, and inequities in the availability of tooling for under-resourced languages and the existing Anglo-centrism of the tech sector, quite rightly, highlighted. <a href="https://foundation.mozilla.org/en/blog/mozilla-common-voice-receives-34-million-investment-to-democratize-and-diversify-voice-tech-in-east-africa/">Kathleen Siminyu’s work with Common Voice’s East Africa project, which is providing speech data and tools for the Kiswahili project, gets a mention, which delighted me</a>, however when chatting with her, she was unaware of being featured. Absent was any argument for addressing the lack of investment in low-yield languages - languages whose speakers are not “profitable”. This is likely to remain the purview of NGOs and governments for the foreseeable future, lamentably.</p>

<p><em>Engagement</em> makes the case for voice technology making life “more creative, entertaining and enjoyable”, using radio and television as previously emerging technologies that were fun to use, which drove adoption. Dengel and Weber speculate about what might happen to voice actors in a time of synthesised voices, seeing both the economic reality of the cost of live narration, and, counter-intuitively, the increasing value of human voices in a soundscape saturated by synthetic speech. They go on to link voice tech to the metaverse and to virtual reality, showing how it is a necessary building block in “multi-modal” experiences. Again, there was no concomitant discussion of the ethics of synthetic speech - and importantly, how “synthetification” - the growing movement to synthetic media - shapes power relations, labour relations and who profits.</p>

<p>The chapter on <em>Transformation</em> ties voice technology to “fundamental changes to business models”, through mechanisms such as voice identification through biometrics, and the aggregation of services to provide a streamlined, personal offering. It covers the move from click-through rate (CTR) in screen advertising to say-through rate (STR) for voice-enabled advertising; again however, it does not explore the ethical or societal issues such changes might bring. I’m reminded here of Professor Joe Turow’s excellent <em>The Voice Catchers</em> - and how voice is being used as a mechanism to target advertising. The chapter goes one step further, exploring the use of vocal biomarkers in health - but again, without the attendant discussion of unintended consequences. Who stands to benefit if a disease can be diagnosed simply through speaking?</p>

<h2 id="part-two---a-program-of-work-for-implementing-voice-technology-use-cases-within-the-enterprise">Part Two - A program of work for implementing voice technology use cases within the enterprise</h2>

<p>Part Two of <em>The Sound of the Future</em> moves from explicating use cases for voice technology to encouraging the reader to implement them, with attendant advice on strategies for doing so.</p>

<p>The chapter on <em>Falling Barriers</em> traces the recent history of voice assistants like Siri and Alexa, positing that what people really want is something more akin to an “all-purpose valet”. This leads into a discussion on technology breakthroughs, and the factors which incentivise them, and uses the COVID-19 pandemic as a case in point - where hands-free, remote interaction provided by voice-enabled devices helped practitioners avoid infection. Here, I would have enjoyed more grounding on the various innovation theories (<a href="/2023/02/19/the-mycroft-mark-ii-and-the-wind-down-of-mycroft-ai-its-all-about-ecosystems-infrastructures-and-the-friction-of-privacy/">I cover these very briefly in my post about the inflection point we’re seeing in voice assistants at the moment</a>), however this book is clearly aimed at a business, rather than academic, audience. The chapter goes on to outline the key layers of the voice technology stack, such as automatic speech recognition (ASR), natural language processing (NLP) and conversational AI, providing a precis of the current state of the art of each, and remaining barriers. The paradigm of “multi-modal interaction” is then introduced, situating voice technologies alongside haptics and visual interfaces as a constellation of interfaces that collectively are shifting how we sense and respond to our cyber-physical world. User trust in voice technologies is then introduced as another barrier which must be overcome to ease widespread adoption, in particular citing the <a href="https://openvoicenetwork.org/trustmark-initiative/">Trustmark Initiative from the Open Voice Network</a> as a signal that this barrier is falling. The chapter concludes with an overview of how Dengel sees trajectories of development in voice technology, from automation to business process redesign, to transformation of business models.</p>

<p><em>Making voice an integral part of your existing business systems</em> encourages the reader to “seize the opportunities” voice technologies present, by first identifying places where voice technology could be integrated into existing business systems. The authors provide a helpful list of six principles for assessing whether an interaction is well suited to voice integration, and go on to use examples from industry to highlight how these principles are applied.</p>

<p>In the <em>Training voice tools to understand your world chapter</em>, the authors cover a problem that has long faced voice technology practitioners - the domain specific nature of spoken language. The utterance (spoken phrase) “twelve fifty” has very different meanings in different contexts - it could mean twelve pounds fifty, 12.50pm, 1250g and so on. The advice here is for organisations to identify the “friction points” their customers face, using tools such as journey mapping to better understand those contexts. The chapter goes on to advocate for prototyping of voice technology tools, using UX methods to elicit feedback to guide iterative development, and ensure that the intent of the user - the task the user wants to perform - is matched by the system. The concepts of error flow handling and conversational repair mechanisms are covered here too - essentially serving as a primer on voice user interface design.</p>

<p><em>Designing and redesigning the multimodal user experience</em> makes the case for voice technologies as part of an omni-channel digital user experience, highlighting voice’s place in an overall brand experience. It discusses how voice can be used to augment and reinforce other digital channels, such as text-based chatbots or graphical user interfaces. Thankfully, there is little hype about the metaverse - which - given its current white elephant status in industry - would detract from the argument that voice technology on its own is transformative - the argument here is that its transformative power emerges in concert with other technology. The chapter includes advice on how to plan an iterative voice UX (VUX) experience design process, and, also pleasingly, highlights the need for inter-disciplinary teams and executive support.</p>

<p>The concluding paragraphs reiterate the argument that “successful new technology is about meeting basic human needs”, and that to be successful, companies must adopt voice - or face defeat in the marketplace.</p>

<h2 id="the-verdict">The verdict</h2>

<p>This book is helpful for businesses who are making their first forays into voice assistants, voice user experience (VUX) or conversational AI, in particular those coming to it from a product management or business analysis background. The use cases for voice are expansively surveyed, and applicable to many industries. However, the technical detail is too light for those needing a deeper guide to the pitfalls of voice technologies, such as accent bias in speech recognition, ambiguous named entity recognition in natural language processing or the privacy dangers of voice cloning.</p>

<p>Moreover, while Dengel and Weber correctly identify that many threads of innovation underpin the current state of the art in voice technology - hardware improvements, advances in deep learning and neural networks, and the availability of more speech data upon which machine learning models may be trained, they gloss over the many challenges in the space - the trust people need to have in assistants, the poor performance of voice technology for accented or disordered speech, the privacy and ethical challenges of requiring user data to be effective, and above all, the question of who profits from speech data gathered from individual people.</p>

<p>Beckoning to previous technological path dependencies, they hold that</p>

<blockquote>
  <p>“… this is the story of any new technical wave. It takes years for entrepreneurs, designers, and engineers to shift their thinking to take full advantage of any new technological paradigm.”</p>

  <p><cite>Introduction</cite></p>
</blockquote>

<p>When I think of the precursors to today’s voice and speech technologies - the <a href="https://www.bbc.com/future/article/20170214-the-machines-that-learned-to-listen">Audrey and the Shoebox, the Harpy, to the Tangora, to Dragon Naturally Speaking</a>, even as far back as <a href="https://en.wikipedia.org/wiki/Christian_Gottlieb_Kratzenstein#Speech_synthesis">Christian Gottlieb Kratzenstein’s work on synthesising human speech with the “vowel organ”</a>, I can’t help but wonder - are voice technologies <em>really</em> a new technical wave? And in taking full advantage of this new technological paradigm, <em>who</em> is it that is taken advantage of?</p>

<p>If voice is the sound of the future, then we must have other conversations about what that future sounds like - and whose voices are heard.</p>]]></content><author><name>Kathy Reid</name></author><category term="reading" /><category term="technology" /><category term="voice-and-speech-technology" /><category term="asr" /><category term="automatic-speech-recognition" /><category term="book" /><category term="book-review" /><category term="karl-weber" /><category term="reading" /><category term="speech-to-text" /><summary type="html"><![CDATA[The Sound of the Future by Tobias Dengel and Karl Weber explores use cases for voice technology in the enterprise, and is a business-focused primer on implementing a voice tech program.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2024/01/dengel-weber-soundoffuture-1024x512.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2024/01/dengel-weber-soundoffuture-1024x512.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">State of my toolchain 2023</title><link href="https://blog.kathyreid.id.au/2023/12/21/state-of-my-toolchain-2023/" rel="alternate" type="text/html" title="State of my toolchain 2023" /><published>2023-12-21T13:13:53+11:00</published><updated>2023-12-21T13:13:53+11:00</updated><id>https://blog.kathyreid.id.au/2023/12/21/state-of-my-toolchain-2023</id><content type="html" xml:base="https://blog.kathyreid.id.au/2023/12/21/state-of-my-toolchain-2023/"><![CDATA[<p>Welcome to the 2023 edition of the State of my Toolchain report (you can see previous editions for <a href="/2022/11/13/state-of-my-toolchain-2022/">2022</a>, <a href="/2021/05/02/state-of-my-toolchain-2021/">2021</a>, <a href="/2019/09/05/toolchain-2018-2/">2019</a>, <a href="/2018/06/25/toolchain-2018/">2018</a> and <a href="/2016/09/30/toolchain-2016/">2016</a>), where I document the tools, applications and hardware that I use for productivity and workflow, and how they shift over time as my tasks and needs change. In this year’s post, I cover <a href="#WhatsChanged">what’s changed</a>, <a href="#CurrentToolchain">what’s currently in my toolchain</a>, and <a href="#ChoiceTools">what’s driving my choice of tools</a>.</p>

<h2 id="whats-changed-since-the-last-report">What’s changed since the last report?</h2>

<p>Although I’m still finishing my PhD at the <a href="https://cybernetics.anu.edu.au">Australian National University’s School of Cybernetics</a>, there’s been a shift this year to doing a lot more work in <code class="language-plaintext highlighter-rouge">python</code>, particularly using <code class="language-plaintext highlighter-rouge">pandas</code>, <code class="language-plaintext highlighter-rouge">MatPlotLib</code>, and very recently, <code class="language-plaintext highlighter-rouge">dask </code>- that is, a lot more quantitative data work, and a lot more work with <code class="language-plaintext highlighter-rouge">LaTeX</code>, writing research papers.</p>

<h3 id="software-development-data-analysis-and-writing">Software development, data analysis and writing</h3>

<p>My work this year has heavily revolved around data analysis (for example, <a href="https://dl.acm.org/doi/10.1145/3617694.3623258">this paper, which uses ObservableHQ and a bunch of pandas to analyse accents in the Common Voice dataset</a>). With <a href="https://github.blog/2022-06-08-sunsetting-atom/">Atom being sunsetted</a>, this necessitated a change to my primary software development and data analysis setup, which I also used for <a href="/2020/12/27/academic-writing-workflow/">writing in Markdown</a>.</p>

<h4 id="moving-to-vs-code-albeit-begrudgingly">Moving to VS code, albeit begrudgingly</h4>

<p>Because I write in a few different languages - <code class="language-plaintext highlighter-rouge">Markdown </code>and <code class="language-plaintext highlighter-rouge">LaTeX </code>for writing and documentation, <code class="language-plaintext highlighter-rouge">python </code>for software development, <code class="language-plaintext highlighter-rouge">javascript </code>for visualisation, and work with a lot of file formats like <code class="language-plaintext highlighter-rouge">tsv </code>and <code class="language-plaintext highlighter-rouge">csv </code>and <code class="language-plaintext highlighter-rouge">JSON</code>, I needed an IDE that could handle all of these well. Although it pains me to say it, because it’s part of the dominant Microsoft + GitHub + Copilot + OpenAI + LinkedIn + Nuance, <a href="https://code.visualstudio.com/">VS code</a> turned out to be the ideal solution (when combined with a large set of plugins). VS code has been working very well, and the sync feature in particular - where I can sync settings between multiple installations on multiple operating systems - has been super useful.</p>

<h4 id="moving-to-monaspace-fonts">Moving to Monaspace fonts</h4>

<p>I spend a lot of time in VS Code, writing material, and so my font choice is also critical for productivity. Generally, I use a monospace font - and <a href="https://fonts.google.com/specimen/Ubuntu+Mono">Ubuntu Mono</a> has for a long time been my go-to. However, after coming across it on Hacker News, I’ve made the switch to the <a href="https://monaspace.githubnext.com/">Monaspace family, specifically Monaspace Argon</a>, because of its flexibility. The idea of a flexible font family that can be adjusted with CSS is really appealing, and it’s a beautiful example of font design, reminiscent of <a href="https://en.wikipedia.org/wiki/Computer_Modern">Donald E. Knuth’s work on Computer Modern</a>, still widely used in the <code class="language-plaintext highlighter-rouge">LaTeX </code>world.</p>

<h4 id="embracing-overleaf">Embracing Overleaf</h4>

<p>When I started writing a lot of LaTeX for research work, I baulked at using <a href="https://www.overleaf.com/">Overleaf</a> because of the premium pricing. My university now has an enterprise license, so I don’t have to wear the cost of it, and I’ve finally embraced it. If I’m on a slow internet connection (which is rare these days, my Aussie Broadband FTTN service has been rock solid and I get a consistent 55Mbps + down), then I’m able to sync it with a git repo - it supports GitHub natively, and any other git repo via a generic git interface - and workoffline. In the last six months, Overleaf has released some WYSIWYG features which are very useful for drafting, and organisations like the ACM have increased their integration with the platform, making it far easier to submit research papers to journals and conferences. Overleaf is here to say.</p>

<h3 id="search-and-information-discovery">Search and information discovery</h3>

<p>As generative AI-spawned content begins to fill the internet with hastily-created, ad-stuffed, keyword-matching cruft, our ability to find relevant, factual and detailed content becomes compromised. Search for common <code class="language-plaintext highlighter-rouge">python </code>programming-related terms, and the top results will be ad-plastered, pop-up bearing “farticles” (shitty articles) designed to rank on search engines, not deliver answers to questions. And existing search engines like Google or Duck Duck Go haven’t yet caught up. Bing auto-generates incorrect responses to questions - for example if you ask “how can I contact Kathy Reid?”, it provides you with the information for Kathy Reid who is a teacher in Grand Island, New York.</p>

<p>So I wanted a search engine that could sift through the cruft, where high quality websites would be highly-ranked, and where I could exclude farticle farms. Enter <a href="http://kagi.com/">Kagi</a> - which variously translates into “now”, “day”, “morning” or “ago” - all with a temporal connotation - in Malay languages.</p>

<p>Referred by a friend, I tried out Kagi for a month - at a cost of around $AUD 8 - and while it was good - I was able to readily filter out low-quality results - I exhausted the number of API calls for my subscription level (300) very quickly - within about two weeks - and made the decision not to increase my subscription ($USD 10 or around $AUD 17 per month). I was impressed by Kagi not having any tracking (less surveillance capitalism is a good thing), but I couldn’t sustain this price point just for a search engine, particularly given the weak Aussie dollar.</p>

<h3 id="a-new-laptop-also-begrudingly">A new laptop (also, begrudingly)</h3>

<p>I had been using an ASUS Zephyrus ROG G15 since late 2020, and it was a fantastic machine - 16GB of RAM, decent GPU (3060 from memory) and Ryzen CPUs. It was a dream to use. And then, it failed. With a whimper. One night, while I was sitting in bed, the screen just started to show vertical lines, then went blank. I can still use it via an HDMI connection, but investigations done by ASUS showed that there was both a screen fault (replaceable for a few hundred dollars, worth it) and a motherboard error (replaceable for $AUD 2000, not worth it). And so it was time for a new machine.</p>

<p>To be clear, I use my laptop around 12-15 hours a day. It’s the tool of my trade - how I derive an income, an entertainment centre, and something I need to enjoy using. I was very happy with the Zephyrus, but wanted a little more RAM, and ended up getting a run-out G15 with 32GB of RAM, an NVIDIA GeForce 3080 RTX and 16 Ryzen 9 6900HS cores for under $AUD 4k. To be clear, this was a major purchase for me, and my laptop is now worth more than my car. But I drive my 20-year-old car on errands twice a week, not for 12-15 hours a day.</p>

<p>This machine is a dream to use. I dual-boot Windows and Ubuntu 22.04, and it can cut through <code class="language-plaintext highlighter-rouge">pandas </code>workloads like a hot knife through butter. Windows 11 is a vast improvement on Windows 10 (once you <a href="https://www.windowscentral.com/software-apps/windows-11/how-to-disable-data-tracking-features-on-windows-11">turn off all the tracking features</a>). The <a href="https://asus-linux.org/">ASUS Linux</a> project doesn’t quite give me equivalent functionality (especially keyboard backlighting) on Linux, but it’s reasonable.</p>

<p>Let’s hope it lasts more than 2 years before hardware failing.</p>

<h3 id="planning-and-productivity">Planning and productivity</h3>

<h4 id="passion-planner-ditched-in-favour-of-leuchtturm1917-a4-planner">Passion Planner ditched in favour of Leuchtturm1917 A4 planner</h4>

<p>I’ve been an avid <a href="https://passionplanner.com">Passion Planner</a> user since 2019 - so five consecutive years - and love the annual week-to-a-view planner. It’s a great product. But, and it’s a big but, the shipping from the United States has become exorbitant - and I was looking at $AUD 40 to ship one A4 planner this year. I really hope they find a wholesale supplier in Australia soon, but in the meantime I shopped around and settled on the Leuchtturm1917 <a href="https://leuchtturm1917.com.au/shop/weekly-planner-master-a4-2024-with-booklet-black/">A4 week to a page planner</a>, which retains for $AUD 68, about the same price as the Passion Planner, minus the shipping.</p>

<p>I can’t comment on how well it’s working on out, but you can expect to see an update in next year’s State of the Toolchain.</p>

<h3 id="changing-my-social-media-footprint">Changing my social media footprint</h3>

<p>I’ve made a concerted effort this year to reduce my presence on Twitter and Instagram. Since Elonification, Twitter has descended into a cess-pit of racist, misogynist drivel. So I’ve locked my account, but have kept it so that the name cannot be hijacked by others. Instead, I’ve found my people on <a href="https://aus.social/@KathyReid">Mastodon</a>, with big ups to <a href="https://aus.social/@shlee">Shlee</a> for all they do for aus.social. Mastodon is much more academic-oriented that the Blue Hell Site, and it’s where I spend most of my time.</p>

<p>The Mastodon server I host for academic and research group accounts (that tend not to have a natural home elsewhere) - <a href="https://fediverse.au">https://fediverse.au</a> - is ticking along. I originally thought I’d be sunsetting this by the end of 2024, <a href="/2023/07/18/why-are-universities-reluctant-to-join-mastodon-and-the-fediverse/">but universities haven’t been quick on the uptake to host their own Mastodon accounts</a>, so I suspect it will be around for a bit longer.</p>

<p><a href="https://bsky.app/profile/kathyreid.bsky.social">Bluesky</a> seems to be a slow burn at the moment, but I’ve got an account there basically to make sure the name can’t be taken.</p>

<p>I’ve ditched Instagram after they requested I upload a selfie with my name on it to verify my identity. Get forked. Instead, I’ve joined <a href="https://pixelfed.au/KathyReid">Pixelfed</a>, and love it there (yep, another Fediverse-compatible service hosted by Shlee. As I said, Big Ups).</p>

<p>Goodreads has been bought out for Amazon for a while now, and the closest Fediverse-compatible alternative is shaping up to be <a href="https://bookwyrm.social/">Bookwyrm</a> - an in particular its import function, which allows you to bring in content from Goodreads. Big ups here to <a href="https://www.hughrundle.net/">Hugh Rundle</a> for all the dev work he does on Bookwyrm.</p>

<h2 id="whats-currently-in-my-toolchain">What’s currently in my toolchain?</h2>

<h3 id="hardware-wearables-and-accessories">Hardware, wearables and accessories</h3>

<ul>
  <li>My main laptop is an ASUS ROG Zephyrus G15 (<em>changed since last report</em>)</li>
  <li>Google Pixel 4a 5G running stock Android (no change since last report)</li>
  <li>Mobvoi Ticwatch Pro 2020 model (no change since last report)</li>
  <li><a href="https://www.officeworks.com.au/shop/officeworks/p/fellowes-book-stand-fe21100">Fellowes book stand</a> - again, very light and easily portable</li>
  <li><a href="https://www.logitech.com/en-au/products/webcams/c920-pro-hd-webcam.960-000770.html">Logitech C920 web cam</a> (no change since last report)</li>
  <li><a href="https://www.jbhifi.com.au/products/stadium-usbkit-microphone-pack">Stadium USB microphone</a> (no change since last report)</li>
  <li><a href="https://www.sennheiser-hearing.com/en-AU/p/momentum-wireless/">Sennheiser Momentum 3 wireless bluetooth headphones</a> (<em>changed since last report</em>)</li>
</ul>

<h3 id="software">Software</h3>

<ul>
  <li><a href="https://code.visualstudio.com/">VS Code</a> with a range of plugins for writing code, thesis notes (<em>changed since last report</em>)</li>
  <li><a href="https://pandoc.org/">Pandoc</a> for document generation from MarkDown (no change since last report)</li>
  <li><a href="https://www.zotero.org/">Zotero</a> for referencing (using Better BibTeX extension) (no change since last report)</li>
  <li><a href="https://github.com/patrikx3/onenote">OneNote for Linux by @patrikx3</a> (no change since last report)</li>
  <li><a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Nightly</a> edition of Firefox (no change since last report)</li>
  <li><a href="https://zoom.us">Zoom</a> (no change since last report)</li>
  <li><a href="https://www.microsoft.com/en-au/microsoft-teams/download-app">Microsoft Teams for Linux</a> (no change since last report, but boy is it getting rubbish!)</li>
  <li><a href="http://mayccoll.github.io/Gogh/">Gogh</a> for Linux terminal preferences (no change since last report)</li>
  <li><a href="https://super-productivity.com/">Super productivity</a> (instead of Task Warrior) (no change since last report)</li>
  <li><a href="https://cuckoo.team">Cuckoo Timer</a> for Pomodoro sessions (no change since last report)</li>
  <li><a href="https://rescuetime.com">RescueTime</a> for time tracking (no change since last report) - I should note that the new Timesheets functionality is super helpful.</li>
  <li><a href="https://www.beeminder.com/">BeeMindr</a> for commitment based goals (no change since last report)</li>
  <li><a href="https://mycroft.ai">Mycroft</a> as my Linux-based voice assistant (no change since last report)</li>
  <li><a href="https://okular.kde.org/">Okular</a> as my preferred PDF reader (instead of Evince on Linux and Adobe Acrobat on Windows) (<em>changed since last report</em>)</li>
  <li><a href="https://www.nocodb.com/">NocoDB</a> for visual database work (no change since last report)</li>
  <li><a href="http://observablehq.com/">ObservableHQ</a> for data visualistion (no change since last report)</li>
</ul>

<h3 id="techniques">Techniques</h3>

<ul>
  <li>Pomodoro (no change since last report)</li>
  <li><a href="https://passionplanner.com/">Passion Planner</a> for planning (no change since last report)</li>
  <li><a href="https://blog.rescuetime.com/time-blocking-101/">Time blocking</a> (used on and off, but a lot more recently)</li>
</ul>

<h2 id="current-gaps-in-my-toolchain---whats-missing">Current gaps in my toolchain - what’s missing?</h2>

<h3 id="visual-git-and-git-lfs">Visual git and git lfs</h3>

<p>This one is more a case of “it’s not missing any more because visual git tools have become more integrated into other tools”. In previous posts, I opined about the lack of low-cost visual <code class="language-plaintext highlighter-rouge">git </code>tools (Git<a href="https://www.gitkraken.com">Krake</a><a href="https://www.gitkr">n</a> was high on my list but at a yearly subscription of $USD 48, or about $AUD 80 with the rubbish exchange rate, it was still too much), but this need has ebbed as <code class="language-plaintext highlighter-rouge">git </code>has become more integrated in other tooling. <code class="language-plaintext highlighter-rouge">VS Code</code> comes with a bunch of <code class="language-plaintext highlighter-rouge">git </code>integrations, which suit 80% of my use cases.</p>

<p>My needs here have also changed because I am using <code class="language-plaintext highlighter-rouge">git lfs</code> a lot more, as I work with large data files (<a href="https://git-lfs.com/"><code class="language-plaintext highlighter-rouge">git lfs</code></a> is required if you are committing files larger than 100Mb to most platforms like GitHub or GitLab). It takes a bit of getting used to (it stores pointers rather than objects, and so pruning and the like require a different set of commands), and many of the visual editors don’t provide built in support for <code class="language-plaintext highlighter-rouge">git lfs</code>.</p>

<p>So it’s back to the <a href="https://github.com/jlevy/the-art-of-command-line">command line</a> for me.</p>

<h3 id="second-brain-and-organise-my-life-tools---is-this-a-job-for-generative-ai">Second brain and organise my life tools - is this a job for generative AI?</h3>

<p>After giving <a href="https://start.me">StartMe</a> a shot, I found that it just didn’t have enough integrations to be useful, and have stopped using it. I really want something which is the equivalent of my Office 365 home page - with my recent files, websites, recurring tasks - except not limited to the Microsoft universe! I have been half-tempted to write something myself - it would be a cross between IFTTT, Huginn, Dropbox, StartMe and a voice assistant - except this would Be A Very Bad Idea and I stopped myself.</p>

<p>What I want is an integrated personal assistant, that has access to all the third party services I use, and has a discovery or prediction layer that runs on top of all of them - fore-grounding the files or tasks that need immediate attention, back-grounding those less relevant, and predicting, anticipating what I need to do before I need to do it. Privacy and security implications aside (imagine what data brokers would pay for that attention layer in an <a href="https://en.wikipedia.org/wiki/Attention_economy">attention economy</a>), this sounds like a job for generative AI tools.</p>

<p><a href="https://arstechnica.com/information-technology/2023/12/dropbox-spooks-users-by-sending-data-to-openai-for-ai-search-features/">Dropbox seems to have made a very ham-fisted entre into this genre</a>, by adding tools into its desktop product that integrate with OpenAI, and then turning them on by default. No Dropbox, not like <em>that</em>!</p>

<p>I still think that this use case is a job for generative AI, but its implementation needs to be guided by user agency, user privacy and trust - <a href="/2023/02/19/the-mycroft-mark-ii-and-the-wind-down-of-mycroft-ai-its-all-about-ecosystems-infrastructures-and-the-friction-of-privacy/">a similar challenge ahead of voice assistant developers.</a> Moreover, it raises questions of diversity and individual choice. Do I work differently to other people? What about high performers? Will I be “<a href="https://en.wikipedia.org/wiki/Nudge_theory">nudged</a>” to structure my work to emulate high performers? And will I be penalised somehow if I do not? This is why I’m so dubious about tools like <a href="https://learn.microsoft.com/en-US/microsoft-365/admin/usage-analytics/usage-analytics?view=o365-worldwide">Microsoft’s usage analytics</a> - they give user-level detail about tool usage and adoption, which are not necessarily good proxies for “productivity”. How might generative AI help <em>me</em> work better, without selling me out?</p>

<h2 id="whats-driving-my-choice-of-tools">What’s driving my choice of tools?</h2>

<p>You’re probably noticing some key themes about my choice of tools.</p>

<ul>
  <li><strong>Integration</strong>: I need tools to work across as many of my operating systems (Linux, Windows, Android) as seamlessly as possible.</li>
  <li><strong>Privacy</strong>: I eschew products that aren’t transparent about what data is collected, or how that data is handled, particularly given the rise in generative AI. I’m now planning to <a href="https://nextcloud.com/blog/easy-migration-to-nextcloud-from-insecure-and-privacy-unfriendly-platforms-now-available/">migrate from Dropbox to NextCloud</a>, because Dropbox has broken my trust.</li>
  <li><strong>Lack of lock-in:</strong> I want products that I can swap in and out - commodotisation is generally a good thing for consumers. I don’t want to buy a whole bunch of new chargers for a new hardware purchase. I don’t want to be beholden to walled-garden, lock-in ecosystems. This means features like import and export, and support for standard file formats like <code class="language-plaintext highlighter-rouge">csv </code>and <code class="language-plaintext highlighter-rouge">json</code>.</li>
  <li><strong>Data sovereignty</strong>: The concept of data sovereignty is traditionally associated with the collection of data from under-served groups - such as Indigenous groups, with respect to the collection of spoken language data. Here, I use the term to refer to the ownership of data collected about me by the services I use - closely tied to the concept of surveillance capitalism - and who benefits from that data. Can I see how that data is used or how that data is used to create products? How is data about me monetised?</li>
</ul>

<h2 id="no-im-not-accepting-paid-sponsorships-or-links">No, I’m not accepting paid sponsorships or links</h2>

<p>My <a href="/tag/toolchain/">State of the Toolchain</a> posts get a bit of traction, and with that, I’ve started attracting people wanting me to link to their product or website, for a fee. That is, sponsored content - but of course they don’t want it to <em>look</em> like sponsored content. I usually respond harshly, dismissively and swearily to these requests. If you want me to write about your product or service, build something awesome.</p>]]></content><author><name>Kathy Reid</name></author><category term="research" /><category term="technology" /><category term="dask" /><category term="data-visualisation" /><category term="hardware" /><category term="latex" /><category term="matplotlib" /><category term="monaspace" /><category term="opensource" /><category term="pandas" /><category term="personal-productivity" /><category term="productivity" /><category term="toolchain" /><category term="tools" /><category term="vs-code" /><summary type="html"><![CDATA[An overview of the software, hardware and other personal productivity toolchains I'm using as of December 2023.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2023/12/pandas-768x371.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2023/12/pandas-768x371.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">ALTA2023: The 21st Australasian Language Technology Association Workshop</title><link href="https://blog.kathyreid.id.au/2023/12/10/alta2023/" rel="alternate" type="text/html" title="ALTA2023: The 21st Australasian Language Technology Association Workshop" /><published>2023-12-10T17:39:40+11:00</published><updated>2023-12-10T17:39:40+11:00</updated><id>https://blog.kathyreid.id.au/2023/12/10/alta2023</id><content type="html" xml:base="https://blog.kathyreid.id.au/2023/12/10/alta2023/"><![CDATA[<p>Earlier this month, I was delighted to attend the Australasian Language Technology Association (ALTA) Workshop - a key gathering of Australian natural language processing (NLP) and linguistics professionals, focusing on advancements in the field. This blog post is an abridged version of my notes from the conference.</p>

<h2 id="introduction-overview-and-general-observations">Introduction, overview and general observations</h2>

<h3> </h3>

<h3 id="about-alta-and-the-alta-workshop">About ALTA and the ALTA workshop</h3>

<p>The <a href="https://alta2023.alta.asn.au/">ALTA conference</a> is the annual workshop of the <a href="https://www.alta.asn.au/">Australian Language Technology Association</a>. Proceedings of the workshop are published in the <a href="https://aclanthology.org/">Association for Computational Linguistics (ACL) Anthology</a>.</p>

<p>According to their website:</p>

<blockquote>
  <p>“The purpose of the Australasian Language Technology Association is to promote language technology research and development in Australia and New Zealand. ALTA will organise regular events for the exchange of research results and for academic and industrial training, and will co-ordinate activities with other professional societies. ALTA is a founding regional organisation of the <a href="http://www.afnlp.org/">Asian Federation of Natural Language Processing</a>.”</p>
</blockquote>

<p>This was the first time I had attended ALTA, and I submitted here based on it being the key linguistics conference in Australia. There are several data science conferences, but my inter-disciplinary work crosses data, speech recognition, fairness, bias and social science: it’s hard to know where to submit. My work was definitely a little of out of place here; there were only two other speech-related papers accepted - one on cepstral features in signal processing by <a href="_wp_link_placeholder" data-wplink-edit="true">A/Prof Shunichi Ishihara</a> which was veryinteresting, and one by Yishan Huang on encoding prefixes and suffixes in Southern Min - also interesting. Overall, most of the papers here had a very quantitative and computational focus, unlike say conferences like <a href="https://dl.acm.org/conference/chi">HCI</a> or <a href="https://dl.acm.org/conference/cscw">CSCW</a> which generally present more qualitative work.</p>

<p>As a first-timer to the Workshop, I found the community welcoming and helpful; lots of people said hello and introduced themselves.</p>

<h3 id="acceptance-rate-and">Acceptance rate and<br /></h3>
<p>academic impact factor</p>

<p>At the Workshop opening, the Program Chair, <a href="https://jeyhan.my/">Jey Han Lau</a>, advised that the acceptance rate of the conference was 68%; 25 papers were submitted and 17 were accepted. I was surprised that so few papers were submitted to this conference given that it’s the main linguistics conference in Australia, but that became clearer during the ALTA AGM when Massimo Piccardi advised that the conference’s impact rating had been demoted from “Australasian B” to “Australasian C” by <a href="https://www.core.edu.au/conference-portal">CORE</a> - the Computing Research and Education of Australasia. I had never heard of this group before, but apparently the Australian Research Council uses their rankings to assess grant applications. The primary factor contributing to the demotion was that the conference was not indexed by SCOPUS, but the ALTA Committee has addressed this and the conference is now indexed.</p>

<p><em>Looking at this from a dynamics perspective, it’s clear that rankings play a part in terms of which venues academics working on NLP submit to. This makes sense; academic time is limited, so it’s rational to submit to output targets that are highly ranked in terms of “impact factor”. I wonder, however, whether this means the ALTA workshop misses out on interesting or novel work because it’s considered low-ranked - that is, whether authors “withhold” that work for higher-ranked international conferences like <a href="https://2023.emnlp.org/">EMNLP</a>?</em></p>

<h3 id="venue-and-hybrid-nature">Venue and hybrid nature</h3>

<p>The venue was <a href="https://melbconnect.com.au/">Melbourne Connect</a>, a purpose-built collaboration space intended to help<br />
academia and industry forge closer connections. The venue positions itself as a “collaboration ecosystem” and the space reflects this goal; there are lots of comfortable seats, presentation spaces, smaller collaboration rooms and lecture-style facilities. Located on Swanston Street between RMIT and University of Melbourne, it was easy to access. The venue had Eduroam WiFi via the University of Melbourne, which was very useful. It was an excellent venue choice for the workshop.</p>

<p>The conference was “online-first” in that most of the presenters and audience was in the physical space, however Zoom was used to provide a hybrid capability for presenters who were unable to be there in person. This was generally well managed, but was often distracting for the audience as each speaker had to connect to Zoom when they were at the lectern. <em>I feel like there has to be an easier way to create a hybrid experience</em>.</p>

<h3 id="what-will-i-do">What will I do<br /></h3>
<p>differently after this conference?</p>

<ul>
  <li>All things <code class="language-plaintext highlighter-rouge">pytorch</code> and <code class="language-plaintext highlighter-rouge">python</code>. All of the modelling work done here was done using <code class="language-plaintext highlighter-rouge">python</code> and more importantly, <code class="language-plaintext highlighter-rouge">pytorch</code>. There was a lot of<code class="language-plaintext highlighter-rouge">scikit-learn</code> being used (I was expecting a lot more<code class="language-plaintext highlighter-rouge">spaCy</code>, but folks are using <code class="language-plaintext highlighter-rouge">scikit-learn</code>). I am not as fluent in <code class="language-plaintext highlighter-rouge">pytorch</code> as I would like to be. Alternatives such as <code class="language-plaintext highlighter-rouge">keras</code> and <code class="language-plaintext highlighter-rouge">TensorFlow</code>appear to have gone by the wayside.</li>
  <li>Think more deeply about <em>annotation</em> of speech data, such as transcription, because this has implications for how NLP research is conducted on text corpora.</li>
</ul>

<h3 id="key-themes-and-disciplinary-directions">Key themes and disciplinary directions</h3>

<h4 id="large-language-models-and-transformers-in-particular-dominate-the-field-but-there-is-a-turn-to-grounding-models-using-retrieval-augmented-generation-rag">Large language models, and transformers in particular, dominate the field but there is a turn to “grounding” models using Retrieval Augmented Generation (RAG)</h4>

<blockquote>
  <p>Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L.,<br />
Gomez, A.N., Kaiser, Ł. and Polosukhin, I., 2017. Attention is all you<br />
need. Advances in neural information processing systems, 30.</p>
</blockquote>

<blockquote>
  <p>Devlin, J., Chang, M.W., Lee, K. and Toutanova, K., 2018. Bert:<br />
Pre-training of deep bidirectional transformers for language<br />
understanding. arXiv preprint arXiv:1810.04805.</p>
</blockquote>

<blockquote>
  <p>Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D., Levy, O.,<br />
Lewis, M., Zettlemoyer, L. and Stoyanov, V., 2019. Roberta: A robustly<br />
optimized bert pretraining approach. arXiv preprint<br />
arXiv:1907.11692.</p>
</blockquote>

<blockquote>
  <p>Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal,<br />
N., Küttler, H., Lewis, M., Yih, W.T., Rocktäschel, T. and Riedel, S.,<br />
2020. Retrieval-augmented generation for knowledge-intensive nlp tasks.<br />
Advances in Neural Information Processing Systems, 33</p>
</blockquote>

<p>Since their advent in 2017, attention-based transformer models have re-shaped most branches of machine learning, and NLP is no exception. Many of the papers presented work which compared traditional statistical models such as alongside transformer-based NLP models such as <a href="https://arxiv.org/pdf/1810.04805.pdf&amp;usg=ALkJrhhzxlCL6yTht2BRmH9atgvKFxHsxQ">BERT</a> and <a href="https://arxiv.org/pdf/1907.11692.pdf%5C">RoBERTa</a>. With only some minor exceptions, the transformer-based models outperformed the statistical models, especially when they were fine-tuned for a task.</p>

<p><em>Transformer models are here to stay.</em></p>

<p>Moreover, several authors used LLMs such as GPT variants to provide <em>synthetic</em> data for their studies - primarily to augment the sparse data sources they were working with. The competition task for the conference (which I did not participate in) also used LLMs - with the challenge being to distinguish between human-generated and LLM-generated text. There was no discussion of the biases or the material encoded by LLMs - such as them responding with more American-inflected text (e.g. “faucet” instead of “tap” or “diaper” instead of “nappy”), and what implications this has for using LLMs to generate synthetic data.</p>

<p>However, there appears to be a key turn in the field to “grounding” LLMs onto other forms of knowledge representation to improve their explainability and to reduce their tendency to hallucinate factually incorrect responses to prompts. The key tools being used to “ground” LLMs are <a href="https://en.wikipedia.org/wiki/Knowledge_graph">knowledge graphs</a>. They add a mechanism that allows the LLM to “reason” over the knowledge graph.</p>

<p>This is also known as Retrieval Augmented Generation (RAG) and <a href="https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/">this is a good blog post on it from NVIDIA</a>.</p>

<p><em>One of the gaps I see in the LLM space is an Australian-specific LLM and knowledge graph - that can handle Australian-specific words (named entities such as place names - Geelong, Yackandandah, Canberra - which are Indigenous-derived) and maps Australian-specific knowledge - things like not spreading Vegemite too thickly on toast. As we think about metaverses, and about how content is synthetically generated (imagery, video, speech, text, dialogues) within the metaverse, having graphs to ground knowledge for “authentic” or “realistic” experiences is going to be important, particularly if the metaverse is used for training, which is a key use case.</em></p>

<h4 id="ensemble-models-using-multiple-models-for-better-prediction">Ensemble models: Using multiple models for better prediction</h4>

<p>Many of the papers adopted an “ensemble” approach when building models. Essentially, ensemble learning uses multiple models, combined with some form of voting mechanism, to improve the prediction task. I hadn’t come across these in any depth previously (they’re not generally used in speech recognition) and I found this paper a very useful primer:</p>

<blockquote>
  <p>Sagi, O. and Rokach, L., 2018. Ensemble learning: A survey. Wiley<br />
Interdisciplinary Reviews: Data Mining and Knowledge Discovery, 8(4),<br />
p.e1249.</p>
</blockquote>

<h4 id="everybody-wants-to-do-the-model-work-not-the-data-work">Everybody wants to do the model work, not the data work</h4>

<blockquote>
  <p>Sambasivan, N., Kapania, S., Highfill, H., Akrong, D., Paritosh, P.<br />
and Aroyo, L.M., 2021, May. “Everyone wants to do the model work, not<br />
the data work”: Data Cascades in High-Stakes AI. In proceedings of the<br />
2021 CHI Conference on Human Factors in Computing Systems<br />
(pp. 1-15).</p>
</blockquote>

<p>Nithya Sambasivan and others, in their 2021 paper, highlighted the role that data quality plays in high-stakes environments in which AI technologies are used, and how data quality can cause compounding harms for AI models. The title of this paper - “everybody wants to do the model work, not the data work” - is something I’m constantly reminded of in speech and language technologies. Several speakers highlighted the challenge of being able to obtain enough data from which to build models, which is a particular barrier to NLP in the health field - which, rightly, places strict control on patient medical records. Indeed, one speaker remarked that their model work was “really a very small part of the project” - which had involved 283 patient records being coded by two clinical practitioners to determine a taxonomy that was subsequently used for modelling. In some conferences, such as NeurIPS, there are now <a href="https://neurips.cc/Conferences/2023/CallForDatasetsBenchmarks">dedicated tracks for dataset development</a>, which seek to recognise the impact, and elevate the prestige, of data work.</p>

<p><em>I wonder if ALTA needs a similar track, dedicated to building NLP datasets?</em></p>

<h4 id="the-need-for-the-intersectionality-of-nlp-and-other-domains">The need for the intersectionality of NLP and other domains</h4>

<p>Many of the talks at the workshop focused on ‘clinical NLP’ - the application of NLP techniques to medical and healthcare settings, primarily because there is a <a href="https://cis.unimelb.edu.au/research/digital-health/about/digital-mental-health/conversational-technologies-for-clinical-training-and-practice">large team at University of Melbourne</a> working on this. The field is recognising the need to intersect with other domains due to the specialist language and language patterns that are specific to domains; this presents more opportunities for inter-disciplinary work.</p>

<h4 id="there-is-little-attention-being-paid-to-the-broader-market-implications-of-llms-and-the-dependencies-being-created">There is little attention being paid to the broader market implications of LLMs and the dependencies being created</h4>

<p>In the keynote by <a href="https://www.linkedin.com/in/terrence-szymanski/">Terrance Szymanski</a>, the Principal Data Scientist at SEEK, he outlined how the LLM market is working - with companies that are <em>producers</em> of LLMs (such as OpenAI and Anthropic), and companies that are <em>consumers</em> of NLP products - essentially most of the companies that don’t do a lot of in-house NLP model production. There are broader implications here that weren’t touched on - such as all of the major LLM providers being American. Sure, there are Australian companies building <em>on top of</em> products like GPT, but we don’t have people building LLM models in Australia. This raises questions of increasing dependence on cloud platform providers - LLMs are another form of cloud product - and a gap in our national capability.</p>

<p><em>Is this a market gap or opportunity to increase our national capability?</em></p>

<p>There is also the similar argument here of increasing dependence <em>by academia</em> on corporate-owned LLMs. Professor Heng Ji in her keynote called out the need for an academic-owned LLM to reduce this dependence. There are already efforts here by groups like Eleuther AI who have lots of open source LLMs, but AFAIK there is no stewardship of similar efforts for academia. This is in contrast to open models for NLP like the BERT family, which are freely available.</p>

<p><a href="https://venturebeat.com/ai/why-the-open-source-community-might-be-the-biggest-winner-of-the-openai-fallout/">See also this take about how open source is the winner from the OpenAI fallout</a>.</p>

<h4 id="the-need-for-more-work-on-australian-english-and-australian-indigenous-languages">The need for more work on Australian English and Australian Indigenous languages</h4>

<p>I was surprised that none of the papers focused on Australian English or Australian Indigenous languages, especially given the efforts happening around UNESCO’s <a href="https://www.unesco.org/en/decades/indigenous-languages">Decade of Indigenous Languages</a>. This may be because the biennial <a href="https://puliima.com/">PULiiMA Indigenous Languages and Technology Conference</a> operates in this space, and is supported by groups working on Indigenous languages like <a href="https://www.firstlanguages.org.au/">First Languages Australia</a> and <a href="https://aiatsis.gov.au/">AIATSIS</a>. Similarly, while authors frequently described the problem of not having enough data to work with, particularly medical and health data, there were no discussions of data sovereignty, of decolonising language technology or of linguistic justice.</p>

<p>In conversations I’ve had with institutions who are tentatively adopting machine learning-enabled technologies to aid with tasks like preservation of audio-visual material, and indexing of speech collections, the predominant models in this space tend to have poor results on Indigenous-derived words - for example, mis-transcribing “Eora Nation” as “urination”; both incorrect and highly offensive. There is still much to do in this space.</p>

<h2 id="talk-highlights---day-1---wednesday-28th-november">Talk highlights - Day 1 - Wednesday 28th November</h2>

<h3 id="introduction-to-clinical-nlp">Introduction to clinical NLP</h3>

<p><a href="https://findanexpert.unimelb.edu.au/profile/886714-mike-conway">Dr</a> <a href="https://findanexpert.unimelb.edu.au/profile/886714-mike-conway">Mike Conway, Senior Lecturer in Digital Health</a></p>

<p>Dr Conway introduced the topic of clinical NLP, which is the application of NLP to medical and health settings. He explained that there isn’t enough intersection between health and computer science. There is huge growth in health related data, but it’s not usable - that is, it’s hard to extract information from it.</p>

<p>Clinical text has specific properties that make it difficult to work with using NLP tools. Some data is <em>structured</em> - like clinical notes, ICD-10 codes, test orders and test results, but some data is <em>unstructured</em>, for example a patient’s preferred name, or whether the patient has social support - e.g. “arrived with wife and daughter”; that’s an inference that can be made from the unstructured data. Many tasks in health are inefficient and NLP has many possible applications - such as real time outbreak and disease surveillance.</p>

<p>Clinical NLP is challenging for many linguistic reasons:</p>

<ul>
  <li>derivation: forming a new word using a suffix or prefix such as “unrelated” from “related”</li>
  <li>inflection: a related word - “patients” from “patient”</li>
  <li>synonyms: many diseases can be expressed using similar terms, such as “adrenal insufficiency” for “Addison’s disease”</li>
  <li>polysemy: where one word has many meanings depending on the context - “discharge from a wound” is different to “discharging a patient”</li>
  <li>acronyms: vary between speciality and by geography (e.g. US abbreviations are different to Australian abbreviations)</li>
  <li>spelling errors: are often present in clinical notes - up to 10% of terms are mis-spelled</li>
  <li>negation: clinicians’ diagnostic process is often to rule things out, so negation is important. Negation can be implicit or explicit.</li>
  <li>uncertainty: diagnosticians are often equivocal about their diagnoses - e.g. “tentative” or “probably”. Uncertainty exists on a spectrum between certainly positive to certainly negative so it’s not a binary classification problem.</li>
  <li>temporality: did the patient <em>previously</em> have a condition or are they <em>currently</em> presenting with symptoms or the condition?</li>
  <li>discourse structure: clinical notes often follow an anatomical location of the body, but some sections have more weight</li>
  <li>co-reference: when is a nodule a tumour?</li>
</ul>

<p>Clinical data is difficult to come by - “clinical text is precious”. There are limited public datasets. Data work typically done by people embedded in health. Commercial datasets such as <a href="https://physionet.org/content/mimiciii/1.4/">MIMIC</a> are<br />
available but they are expensive.</p>

<p><em>This mirrors my experience with speech data - high quality, high volume data is hard to come by.</em></p>

<h3 id="clinical-nlp-in-practice">Clinical NLP in practice</h3>

<p><a href="https://findanexpert.unimelb.edu.au/profile/876719-vlada-rozova">Dr Vlada Rosova, Research Fellow, Applied ML</a></p>

<p>Dr Rosova provided a walkthrough of her postdoc project, which is to detect invasive fungal infections in immuno-compromised patients with blood cancers based on histopathology notes. Fungal infections in this cohort can be deadly, and her work alerts clinicians to the possibility<br />
of fungal infection.</p>

<p>She walked through the data preparation step, in which 283 reports were coded by clinicians using the <a href="https://brat.nlplab.org/">BRAT rapid annotation tool</a>. I hadn’t come across this tool before (we use Elan in speech recognition), and I noted that it was open source, but its last release was 2012. Some of the important features in the text were explicit negation “no presence of fungal spores”, named entities “Aspergillus” and stains used for specimen analysis “Grocott”. From this text, several concept categories were identified which were mutually exclusive.</p>

<p>Then, a range of tools were used to train models, and then assessed for their accuracy in this binary classification (“is fungus present?”) task. The dictionary tools have poor performance if the training set is too small, and the lexical diversity is high, but they are easy to interpret. The next model was a <a href="https://en.wikipedia.org/wiki/Conditional_random_field">conditional random fields</a> model, which allows contextual features to be incorporated, which helps with the challenge of polysemy. The types of features that were used in the CRF model were start and end character positions, capitalisation patterns, morphological patterns and parts of speech (POS) tags. The POS tags were not that helpful as a feature, which I found very surprising. CRF is a good predictor if the data items have a consistent linguistic structure, but poor if the attributes used are not predictive.</p>

<p>Dr Rosova used <a href="https://en.wikipedia.org/wiki/Pragmatics#/media/File:Major_levels_of_linguistic_structure.svg">this image from Wikipedia to explain the hierarchical levels of meaning in<br />
language</a>:</p>

<ul>
  <li>Pragmatics - meaning in context</li>
  <li>Semantics - literal meaning</li>
  <li>Syntax - phrases and sentences</li>
  <li>Morphology - words</li>
  <li>Phonology - phonemes</li>
  <li>Phonetics - speech sounds</li>
</ul>

<p>NLP operates at a morphology level, but what they are trying to provide is <em>pragmatic</em> advice. So there’s a shift in the level of how language operates.</p>

<p><em>This links to concepts such as datafication and vectorisation and the work of Xiaochang Li, who talks a lot about voice and speech being turned into data, and how that changes how we view language.</em></p>

<blockquote>
  <p>Li, X., 2023. “There’s no data like more data” automatic speech recognition and the making of algorithmic culture. Osiris 38, 165–182.</p>
</blockquote>

<p>Next, transformer models were used, which handles semantic context much better because of the use of attention in transformer models. There are many pre-trained transformer models for the clinical setting, including BioBERT, PubMedBERT, ClinicalBERT and DischargeSummaryBERT. The key question for the practitioner is “which flavour of model best fits your use case”. Using the transformer approach provided the best accuracy because it was the most flexible.</p>

<p>The other important takeaway here was the need for data preparation to be methodical - you have to prepare you data, e.g. tokenisation, in <em>exactly the same way</em> as the transformer model you are using.</p>

<p><em>Side note: I <strong>really</strong> liked the way that Dr Rosova used the <a href="https://jupyterlab.readthedocs.io/en/latest/user/export.html#reveal-js-slides">slide functionality in Jupyter notebook</a> to turn her Jupyter notebook into slides. I dug into this after her talk, and figured out how to do it, and it would be a very useful way to present a tutorial. Jupyter Lab exports the notebook to HTML, which is rendered through reveal.js.</em></p>

<h2 id="talk-highlights---day-2---main-conference---thursday-30th-november">Talk highlights - Day 2 - Main conference - Thursday 30th November</h2>

<h3 id="keynote---professor-reza-haffari---towards-effective-nlp-systems-cultural">Keynote - Professor Reza Haffari - Towards Effective NLP Systems: Cultural<br /></h3>
<p>Norms, Explainability, and Reasoning Enhancement</p>

<p><a href="https://research.monash.edu/en/persons/reza-haffari">Professor Reza Haffari, Monash University</a></p>

<p>Prof Haffari outlined some challenges that are still open for<br />
NLP:</p>

<ul>
  <li>To be capable of reasoning and communicating with humans in<br />
context</li>
  <li>Recognising and reasoning with cultural norms</li>
  <li>Reasoning with reduced hallucination</li>
</ul>

<p>In particular, his research focuses on NLP for cross-cultural settings, where we want to prevent violations of politeness and social norms. His research lab has been working on dialogue assistance for cross-cultural settings that provides three key functions:</p>

<ul>
  <li>detection of norm violation</li>
  <li>an explanation of the violation</li>
  <li>remediations</li>
</ul>

<p>The overarching goal is to assist in recognising cultural misunderstandings for improved conversations. This presents several engineering problems - it has to be memory and compute efficient, and it has to have low cognitive load for the user. This work provides a social, cultural and emotional analysis on top of speech recognition or speech synthesis.</p>

<p>“Social-cultural norms are guiding principles for personal conduct in social interactions. They promote healthy relationships, effective communication and social integration” - <em>I thought this was an excellent definition of social-cultural norms.</em></p>

<p>A lack of annotated data impedes the development of systems for socially-aware dialogues. Evaluation benchmarks are needed in this space. <em>Again, we see the need for more annotated data, and how a lack of data impedes research goals</em>. Annotation is complex and high quality benchmarks are crucial - creating datasets can be rewarding but takes high effort. Part of Prof Haffari’s team’s work has been to create the SocialDial benchmark dataset which contains 1536 multi-turn dialogues created by humans, augmented by 4870 dialogues generated by ChatGPT. The authors use a DialogueFrame approach which captures variables describing the context of the dialogue, including social norms and rules of interest, the distance / relationship of participants, and the topic and location.</p>

<blockquote>
  <p>Zhan, H., Li, Z., Wang, Y., Luo, L., Feng, T., Kang, X., Hua, Y., Qu, L., Soon, L.K., Sharma, S. and Zukerman, I., 2023. SocialDial: A Benchmark for Socially-Aware Dialogue Systems. arXiv preprint arXiv:2304.12026.</p>
</blockquote>

<p>It draws on work by Hovy &amp; Yang around the social factors that are important in language.</p>

<blockquote>
  <p>Hovy, D. and Yang, D., 2021, June. The importance of modeling social factors of language: Theory and practice. In Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (pp. 588-602).</p>
</blockquote>

<p>Prof Haffari outlined the data processing pipeline, which involved human annotation by trained annotators, which incurred a high costs. The synthetic data was cheaper and scalable, but very noisy. Ratings distributions were used for different social and norm factors to demonstrate inter-annotator agreement. The synthetic data generated by the LLM had generally high agreement.</p>

<p>This was used to train a model for detection of utterance level norm validation (an utterance in speech recognition is a spoken phrase).</p>

<blockquote>
  <p>Moghimifar, F., Qu, S., Wu, T., Li, Y.F. and Haffari, G., 2023.<br />
NormMark: A Weakly Supervised Markov Model for Socio-cultural Norm<br />
Discovery. arXiv preprint arXiv:2305.16598.</p>
</blockquote>

<p><code class="language-plaintext highlighter-rouge">norms</code> and <code class="language-plaintext highlighter-rouge">respect</code> were used as the two vectors - so whether the norm was violated, and the level of violation such as “minorly disrespectful” or “egregiously disrespectful”.</p>

<p>Here, norms were used for reasoning about a situation. The team was bottle-necked by the need for a rule base. The rule base can be extracted using LLMs. Socio-cultural norm statements were created for prompting the LLM, and then the generated phrases were used to help refine the reasoning of the LLM. The team studies the role of training data for studying LLMs, in areas such as the leakage of training data to the test set, and the effect of frequency on the learned representations and emerging behaviour. The Koala index shows the k-gram overlap in the test and training set.</p>

<p><em>In NLP, k-gram is a sequence of k words, so a bi-gram is a two-word sequence like “adorable corgi” while a trigram is a three-word sequence such as “very adorable corgi”. If k-gram overlap between the training set and test set is high, then it may indicate leakage of training data to the test set.</em></p>

<p><em>I also had a though here about k-gram overlap: could it help us identify training data for models where the training data is opaque, such as Whisper? Not sure how to apply it …</em></p>

<blockquote>
  <p>Vu, T.T., He, X., Haffari, G. and Shareghi, E., 2023. Koala: An Index for Quantifying Overlaps with Pre-training Corpora. arXiv preprint arXiv:2303.14770.</p>
</blockquote>

<p>Next, the team used knowledge graphs so that the LLM could do knowledge verification. This was evaluated using several datasets such as <a href="https://blog.research.google/2013/04/50000-lessons-on-how-to-read-relation.html">Google-RE question answer set</a> and the <a href="https://hadyelsahar.github.io/t-rex/">T-REx dataset</a>.</p>

<p>LLMs lack up to date knowledge and experience hallucination during reasoning. Knowledge graphs contain a reliable source of knowledge. Theythen followed a planning-retrieval-reasoning process, where the question qas converted to a sequence of knowledge graph relations, so it was “grounded” in the knowledge graph. It could be grounded on multiple paths in the graph. The reasoning combined the results to provide explainable, interpretable explanations of rule violation and possible remediations (such as a suggested alternate phrase).</p>

<p>Future directions of the work include more multicultural / more multi-lingual approaches (this work was just Chinese and English), more work with sub-cultures and fine-grained context, incorporating visual or emotional behaviour. Encoding for age or gender norms is future work.</p>

<p>A neuro-symbolic approach capitalises on the strength of each approach (stochastic &amp; deterministic) to improve learning.</p>

<h3 id="keynote---professor-heng-ji-smartbook-an-ai-prophetess-for-disaster-reporting">Keynote - Professor Heng Ji, SmartBook: An AI Prophetess for Disaster Reporting<br /></h3>
<p>and Forecasting</p>

<p><a href="https://cs.illinois.edu/about/people/faculty/hengji">Professor Heng Ji, University of Illinois at Urbana</a></p>

<p>Professor Ji introduced her talk by quoting from Dickens - it is the best of times and worst of times, it is the time of wisdom and the time of foolishness. She linked this to the rise of LLMs - which produce text sequences word by word by computing sequences. They are one size fits all models - applied to hundreds of tasks. The models have high costs, and both close some research avenues and open up new ones. LLMs have not caught up with the state of the art (SOTA) in more complex tasks yet.</p>

<p>The specific project Professor Ji was speaking to was situation report generation - understanding complex, unfolding events to extract the common truth, across heterogenous data, to guide action planning, such as disaster relief or humanitarian response. Currently, production of this type of reporting is manual and slow, and the information rapidly becomes outdated as the conflict or crisis situation evolves.</p>

<p>The concept of the <a href="https://blender.cs.illinois.edu/software/smartbook/">SmartBook</a> software is to provide information summaries that are grounded on to<br />
known truthful data sources. GPT-4 cannot give an evidence basis for the content it generates. Each chapter of the SmartBook makes a set of claims that are grounded on to an evidence basis, to allow the analyst to assess the veracity of the claim (for example, if a source’s integrity changes over time). The claims are represented using a structure called a “claim frame”, which I had not come across before. SmartBook provides a timeline of events by clustering news articles. This is challenging because it’s open domain <a href="https://en.wikipedia.org/wiki/Information_extraction">information extraction</a>.</p>

<blockquote>
  <p>Sun, C., Li, J., Fung, Y.R., Chan, H.P., Abdelzaher, T., Zhai, C. and Ji, H., 2023. Decoding the silent majority: Inducing belief augmented social graph with large language model for response forecasting. arXiv preprint arXiv:2310.13297.</p>
</blockquote>

<p>Professor Ji used the concept of tropes from storytelling to illustrate how many stories fit into a common narrative pattern, and used this to show how the StoryBook is structured; different types of situations have different narrative patterns, with key events that have a temporal relationship - events happen in a sequence. The StoryBook makes use of a <code class="language-plaintext highlighter-rouge">schema</code>, and this harks back to “old AI approaches” - such as the representation of causal events using <code class="language-plaintext highlighter-rouge">scripts</code> per Schank and Abelson:</p>

<blockquote>
  <p>Schank, R.C. and Abelson, R.P., 1975. Scripts, plans and goals. In<br />
Proceedings of the 4th International Joint Conference on Artificial<br />
Intelligence. IJCAI (Vol. 1).</p>
</blockquote>

<p>Here, Schank and Abelson define a script as “a predetermined, stereotyped sequence of actions” - that can be learned to represent a set of causally-related events.</p>

<p><em>A key critique I have of this approach is “how do you know which stereotype applies to the situation you’re analysing?”. For example, the invasion of Ukraine by Russia followed a different playbook to the<br />
guerilla warfare tactics employed by the Viet Cong in North Vietnam, and the playbook for responding to the Haitian earthquake crisis is different again. How do you know what type of problem or situation<br />
you’re dealing with? How we frame problems often drives how we approach intervening in those problems, so if you use an inappropriate stereotype or script, you could be intervening in harmful ways. I see links here to the <a href="https://en.wikipedia.org/wiki/Cynefin_framework">Cynefin</a> model used to support decision making - that is, you have to recognise the type of problem you’re dealing with. I <strong>think</strong> what they were doing here was using the LLM to help generate the schema. If that’s the case, then how do you “flip the narrative” or “do something differently” to what has been done before? I think this approach has the potential to reinforce interventions that may not have worked before …</em></p>

<p><em>I also found it really interesting that we’re pulling from 1970s material - so much of this is still relevant for knowledge representation.</em></p>

<p>To identify the schema for a SmartBook, the team applied open domain hierarchical schema induction - there is implicit knowledge hidden in LLMs. By using retrieval-augmented prompting, they were able to generate schemas from the LLM. The schema made use of Allen’s base relations - used for reasoning over temporal logic:</p>

<blockquote>
  <p>Allen, J.F. and Ferguson, G., 1994. Actions and events in interval<br />
temporal logic. Journal of logic and computation, 4(5), pp.531-579.</p>
</blockquote>

<p>Professor Ji gave the example of creating an “Epidemic Schema” for disease outbreak, where the key events of the schema - identification, treatment, death, recovery, could be represented as a knowledge graph. The schema was built using a method called enhanced information extraction. Traditional information extraction is token-based, but enhanced information extraction uses the schema (which is a systems representation) to ground the information extraction structurally - the information extraction can reason over the schema to validate the claims its making.</p>

<p>LLMs can mess up the causal relationships when they do generation - they get the <strong>entities</strong> correct, but they frequently get the <strong>relationships between entities</strong> incorrect. Professor Ji gave the example of a picture with a soldier holding a baby, ostensibly rescuing it, being followed by a service dog. The LLM infers “soldier feeding a baby to a dog”. The entities are correctly recognised, but their causal relationships are not. The schema helps the LLM to correctly infer causal relationships.</p>

<p><em>Side note: I am reminded here of a case study in data visualisation from the American conflict in Afghanistan where a data visualisation - called the “hairball graphic” - was used to represent<br />
the conflict. It was developed by General McChrystal, and it showed the complexity of the conflict - and the challenge in intervening <a href="https://www.nytimes.com/2010/04/27/world/27powerpoint.html">link to NYT article</a>. At what level of complexity does the schema stop? Where do you draw schema boundaries?</em></p>

<p>In her conclusion, Professor Ji held that the field of NLP is still very exciting - LLMs offer as many new research directions as those they close off. She is particularly interested in working with researchers from other disciplines. She noted that there is a need for more global computing resource infrastructures to develop academia-owned, really open source LLMs (preach!), where you have 100% access to the data and the code for training, otherwise academia will be even more dependent on LLM producer companies in order to conduct research.</p>

<p><em>My key critique of this work (and I’m conscious that I’m not qualified to critique a professor) is that it did not address the “building castles on sand” argument. That is, we’re building decision making tools, and even if their factual basis is enhanced using retrieval augmented generation capabilities - grounding on to knowledge models - there is significant potential for them to be poisoned, particularly in an information warfare scenario. There wasn’t anything in this talk about disinformation or about how to make the system robust to content poisoning from threat actors, who would be motivated to shape the data that was being summarised</em>.</p>

<h2 id="talk-highlights---day-3---main-conference---friday-1st-december">Talk highlights - Day 3 - Main conference - Friday 1st December</h2>

<h3 id="panel-discussion-panellists-long-duong-reza-haffari-ed-hovy-and-karin-verspoor">Panel Discussion [Panellists: Long Duong, Reza Haffari, Ed Hovy and Karin Verspoor]</h3>

<p>This panel was moderated by Jey Han Lau, with senior people from the community responding to questions posed by Jey Han. I have synthesized the panel responses.</p>

<h4 id="what-are-the-biggest-technical-problems-of-llms">What are the biggest technical problems of LLMs?</h4>

<ul>
  <li><strong>Semantics</strong>. LLMs are next word prediction machines. They don’t have meaning - semantics - and can’t reason.</li>
  <li><strong>High stakes consequences and accountability.</strong> This is important for high stakes consequences - where actors are making decisions or taking actions based on LLM outputs. There’s a difference between explainability, verifiability and interpretability. However, they are getting better - pretty soon you will get to reasoning and explanations, which gives you interpretability. This are in principle solvable with more layers. Who’s in the wrong if an LLm gives false information and it’s acted upon?</li>
  <li><strong>Cost vs benefit.</strong> They have a very high financial and environmental cost. Do you need GPT-5? What cost does the new capability require? There is also a cost of maintenance - updating knowledge and preventing unintended consequences.</li>
  <li><strong>Capability vs scalability. C</strong>apability doesn’t necessarily depend on scalability. What allows you to do better reasoning without scaling (<em>_read: retrieval augmented generation_</em>). We can’t scale the current paradigm, we need a different paradigm. How do we change the paradigm?</li>
</ul>

<h4 id="how-should-academics-position-themselves-in-nlp-especially-cf-the-resources-of-big-tech">How should academics position themselves in NLP? Especially cf. the resources of Big Tech?</h4>

<ul>
  <li><strong>Novelty</strong> - the ACL community is always looking for new tasks, new data (<em>_oh look, data again!_</em>), new fields. We need to compete in novel areas, such as low resource languages (<em>_actually models like No Language Left Behind are in this space now too_</em>).</li>
  <li><strong>Collaboration rather than competition between industry and academia</strong> - even if you treat models as a black box, there’s a lot you can do. Collaboration is also important for openness. The models from OpenAI are not open, but models like LLAMA are available. How do I build a model myself? How do you embed the different layers into the model for different forms of knowledge representation?</li>
  <li><strong>Benchmarking and evaluation</strong> - there’s a lot of work still to be done in evaluation and benchmarking.</li>
  <li><strong>Simple solutions</strong> - often we don’t need big models when a simple model will do.</li>
  <li><strong>Shifting representations</strong> - Every time there’s a shift in representation - e.g. to vectorising everything, then we had Hidden Markov Models, they went from speech into information retrieval. Now everyone is speaking about <em>_embeddings_</em> as a form of representation. We talk the same language, which allows us to do cross model integration (<em>_oh, and to collaborate across disciplines, maybe?_</em>)</li>
  <li><strong>Smaller, more personalised models</strong> - but this raises privacy implications. How much do you want a model to know about you. They are becoming embedded in daily life.</li>
  <li><strong>What do you become</strong> - lots of discussion here about “putting it all together” - the systems thinking, the orchestration. NLP is becoming a commodity - it’s becoming more generalised. We are giving machines the power - so things like translation are now the domain of machines rather than humans.</li>
  <li><strong>What is the role of humans in the loop and the consequence of having rewards in LLM</strong> - How do you reward a thing? (<em>_this was an epistemic discussion_</em>) To reward something, it must have an internal goal system, a teleology. An LLM today has none of that. If you give an LLM a goal structure - if you achieve your goal, you will have <em>_more_</em> of something - that’s rewardable. It’s scary - it’s one more step toward human level cognition. In reinforcement learning, there have been reward functions for a long time - we think of models as `agents`. You have to read through the hype. You have to make goals <em>_verifiable_</em>. We need to perform assurance on LLMs - simulation, formal verification.</li>
</ul>

<h3 id="keynote---dr-terrence-szymanski---commoditisation-of-nlp-in-industry">Keynote - Dr Terrence Szymanski - Commoditisation of NLP in industry</h3>

<p><a href="https://www.linkedin.com/in/terrence-szymanski">Dr Terrence Szymanski, Principal Data Scientist at Seek</a></p>

<p><em>This was the highlight of the schedule in my opinion - fantastic speaker</em>.</p>

<p>There are 2 million developers building with OpenAI’s tools like ChatGPT - they are not traditional NLP people. The number of ACL submissions has increased four-fold in recent years. NLP has become commodotised - there are new research developments, more use cases for applied NLP, increased interest and a better ecosystem of NLP tools.</p>

<p>Commodotisation means things are widely available; they are mass market produced. They are fungible, interchangeable. Even the commodoty pricing structures between cloud providers are similar. Similar patterns of commodotisation were seen in internet adoption, machine learning. IT is commodotised, it is no longer as strategically important - it is considered table stakes. <a href="https://lemire.me/blog/2008/11/14/toward-the-commoditization-of-natural-language-processing/">AI is becoming table stakes, it is becoming infrastructure that will be taken for granted</a>.</p>

<p>There are essentially two groups in the market - NLP <strong>producers</strong> like OpenAI and Anthropic who make the NLP models available for consumption, and <strong>consumers</strong> who use the available NLP models, like GPT. Each presents different opportunities. 75-80% of Australian companies haven’t adopted AI as yet.</p>

<p>Commodotisation is <em>_not_</em> democratisation. People are trying to lock up the models behind paywalls, and use the threat of regulation of open source to dissuade open source models.</p>

<p>There are two options for companies looking to adopt NLP tools - build it or buy it. The tools available to build your own have expanded - many of which started as research tools and have now been released as open source software. On the buy side, tools have evolved from proprietary tools to software as a service.</p>

<p><a href="https://en.wikipedia.org/wiki/T-shaped_skills">T-shaped</a> individuals are needed for cross-functional teams - product managers, data scientists, engineers. What happens if the data scientists go away because you don’t need them to train models anymore? There will always be jobs for good data scientists, because we do a lot more than train models. Jobs will change. But over-simplifying things - for example with low-code and no-code solutions, comes with risks too. The appeal of commodity LLMs is their ease of use - but there are unintended consequences - such as the <a href="https://www.msn.com/en-au/news/australia/australia-post-customer-reveals-bizarre-message-exchange-with-chatbot-exposing-major-flaw-in-system/ar-AA1kwTZN#image=4">doinks incident</a> where the Australia Post chatbot gave an unexpected response.</p>

<p>Dr Szymanski covered several use cases of NLP used at SEEK, such as</p>

<ul>
  <li>Search recommendation and matching</li>
  <li>Job search that needs to disambiguate location from job title - e.g. “Research Officer” and Research and Officer are both suburbs of Melbourne</li>
  <li>Related searches</li>
  <li>Matching and scoring jobs to candidates</li>
  <li>Profile search with an antiquated role to category taxonomy</li>
  <li>Category suggestions for job posters</li>
  <li>Content moderation - e.g. a job ad that contains “Must be female less than 30 years old” - possible legislative breach</li>
  <li>Job ad summarisation. This is very dependent on the domain the job is in - so you need to be across your data. Automated tools may not summarise correctly.</li>
  <li>Skill suggestions - need named entity recognition to know that “Python” and “Pandas” are similar skillsets.</li>
  <li>Cookie-cutter NLP approaches won’t work well - it needs to be tailored to the specific use case.</li>
</ul>

<p>In terms of how NLP people can respond, you need to be aware that over time, the build skillset - building models - will be less in demand. Classic NLP methods are still useful, because they complement the LLM / deep learning approaches.</p>

<p>LLMs are bleeding into IT. If LLMs read all of GitHub, then they can generate code. For databases or for information security they can generate code for detecting anomalies. Is that the future of programming - via prompt? It won’t replace analysts and engineers. You might see fine-tuned LLMs trained on internal code repositories so that it adopts the organisation’s internal style.</p>

<p>In terms of making the buy versus build decision, you need to be clear about what you’re getting out of the model. You might be better of with an engineer to stitch together some pre-trained models first - that is, use the commodity solutions first to see <em>_where_</em> you need to build.</p>

<h3 id="keynote---professor-heng-ji---ai-scientist---knowledge-empowered-joint-large-and-molecule-modelling-to-accelerate-drug-discovery">Keynote - Professor Heng Ji - AI Scientist - Knowledge Empowered Joint Large and Molecule Modelling to accelerate drug discovery</h3>

<p>Scientists are looking for molecules in a large space - 166 billion small molecules and 970 mllion are drug like. Cannot do a manual search of this space. It costs $USD 1.3 billion to bring a new drug to market. Need to democratise drug discovery.</p>

<p>At the moment, AI for science doesn’t include chemists and doctors - they are doing benchmark work rather than doing <strong>discovery</strong> work. There are over 500,000 papers published in PubMed each year - it is impossible for a human to read them all. There is a lot of scope for precision medicine in AI. How can we use knowledge to help doctors?</p>

<p>Using the example of <a href="https://en.wikipedia.org/wiki/Protein_kinase_inhibitor">kinase inhibitors</a>, which can be turned into drugs to stop the spread of cancer, Professor Ji explained how the structure of the molecule needs to be understood to predict the toxicity of the compound. New molecules can be assembled overnight, but the barrier is in <em>_finding_</em> the right molecules first. Many kinase inhibitors cannot pass the blood-brain barrier, and are therefore less effective. Using already approved moelecules, can you identify new molecules with desirable properties?</p>

<p>The key challenges in this work were about <em>representing</em> the chemical structures. Much of the knowledge around these structures is tacit, not available in a written form. They used a flattened graph structure for a graph neural network. The molecule structure does not encode properties. The model they trained to identify properties was very close to ground truth. The model was augmented with a knowledge parser. The long context of the molecules was a challenge - authors write long sentences. Using LLMs for this task was challenges - if you have too many tokens under attention you have an increase in attention entropy (which reduces the accuracy of the word embeddings).</p>

<p>In general, there is a need for more multi-disciplinary work here, and Professor Ji would like to move towards an AI-automated science lab. The challenges here are the availability of high quality data (<em>data again!</em>) and high quality papers to train from.</p>]]></content><author><name>Kathy Reid</name></author><category term="academic" /><category term="technology" /><category term="voice-and-speech-technology" /><category term="academic" /><category term="alta2023" /><category term="data" /><category term="dataset-documentation" /><category term="linguistics" /><category term="nlp" /><category term="right-the-docs" /><summary type="html"><![CDATA[My notes from the 21st Australasian Language Technology Association Workshop - ALTA2023]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2023/12/MicrosoftTeams-image1-1024x523.jpeg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2023/12/MicrosoftTeams-image1-1024x523.jpeg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Why are universities reluctant to join Mastodon and the Fediverse?</title><link href="https://blog.kathyreid.id.au/2023/07/18/why-are-universities-reluctant-to-join-mastodon-and-the-fediverse/" rel="alternate" type="text/html" title="Why are universities reluctant to join Mastodon and the Fediverse?" /><published>2023-07-18T20:36:05+10:00</published><updated>2023-07-18T20:36:05+10:00</updated><id>https://blog.kathyreid.id.au/2023/07/18/why-are-universities-reluctant-to-join-mastodon-and-the-fediverse</id><content type="html" xml:base="https://blog.kathyreid.id.au/2023/07/18/why-are-universities-reluctant-to-join-mastodon-and-the-fediverse/"><![CDATA[<p>Since Elon Musk purchased Twitter in November 2022, the platform has undergone a rapid demise. Musk has conducted several experiments in a bid to retain users on the platform, and demonstrate its value to advertisers - from whence Musk garners the <a href="https://www.nichepursuits.com/how-does-twitter-make-money/">majority of the platform’s revenue</a>. Among them include <a href="https://edition.cnn.com/2022/12/16/tech/mastodon-twitter-links/index.html">blocking links to rival platform Mastodon</a>, <a href="https://edition.cnn.com/2022/12/16/tech/mastodon-twitter-links/index.html">forcing users to log in to view Tweets</a> - increasing the number of reported users on the platform, and <a href="https://www.theguardian.com/technology/2023/apr/20/twitter-blue-checks-disappear-legacy-accounts-elon-musk">re-architecting the way users are “verified”</a> on the platform, while <a href="https://www.theguardian.com/technology/2023/jul/03/tweetdeck-twitter-verified-elon-musk">removing functionality for users who are not verified</a>; another revenue play which has led to <a href="https://www.engadget.com/twitter-is-trying-to-fix-the-verified-dm-spam-problem-it-created-175252276.html">unintended consequences</a>. As Twitter’s attractiveness as a social platform - for both users and advertisers - wanes, there has been a concomitant rise in alternatives. Chief among them are <a href="https://bsky.app/">Bluesky Social</a>, backed by Twitter co-founder Jack Dorsey, Instagram’s Threads (<a href="https://www.linkedin.com/in/baselhindeleh/">Basel Hindeleh</a> provides a <a href="https://www.abc.net.au/news/2023-07-06/threads-by-meta-to-rival-twitter/102561536">great overview here</a>), and long-time open source stalwart, Mastodon.</p>

<p>Universities have been challenged, since the inception of Facebook, Twitter and other platforms in the late 2000s to mid-2010s, to understand how to adopt, integrate and govern their intersection with institutional activities - such as learning, promotion, student engagement and research impact<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. An early paper in this space by then-Deakin academic, Stuart Palmer, used innovative data visualisation techniques to demonstrate how different types of institutions engaged their stakeholders via Twitter, showing varying patterns of use <sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>.</p>

<p>Over the intervening decade we have witnessed increasing maturity and sophistication in how social media is wielded by universities<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup>. Social media is now tightly integrated with analytics platforms that track student recruitment and retention, interwoven with departmental KPIs for objectives such as “impact” and “engagement”, and even used as an argument to advocate for academic promotion (for example, Professor Inger Mewburn at the Australian National University has written about <a href="https://thesiswhisperer.com/2023/07/10/academicenshittification/">how her social media presence as the Thesis Whisperer helped her career progress</a>).</p>

<p>While I can’t find a lot of empirical work in this space, the work that does exist suggests that the choice of which social media platforms upon which to build a presence is driven largely through its ability to attract and recruit new students <sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup>; particularly lucrative international students - given that Commonwealth Supported Places, in general, don’t generate financial surpluses for universities (for example, see the <a href="https://www.universitiesaustralia.edu.au/wp-content/uploads/2022/09/220207-HE-Facts-and-Figures-2022_2.0.pdf">Universities Australia Higher Education: Facts and Figures, 2020</a>, p.14. for a run-down of how the value of a Commonwealth Supported Place for a university has changed over time). This is why universities have accounts on social media platforms popular in countries whose students frequently choose Australia as a tertiary education destination - many universities have a Weibo account (for example, here’s <a href="https://weibo.com/u/2035949075">Deakin’s official Weibo account</a>). It is also why universities have “followed their students” onto platforms such as TikTok and Snapchat, disregarding <a href="https://www.abc.net.au/news/science/2020-10-11/tiktok-security-review-home-affairs-inadequate-protections/12739694">potential security implications</a> (e.g. the <a href="https://www.tiktok.com/@uniofsouthaustralia">University of South Australia</a>).</p>

<p>So why aren’t Australian universities moving to Mastodon?</p>

<p>In late 2022, with the Elonificaton on Twitter, many former users of the platform made the move to Mastodon. I’ve <a href="https://cybernetics.anu.edu.au/news/2022/11/10/whats-mastodon-and-whats-it-to-do-with-cybernetics/">written previously about the characteristics of Mastodon</a> - and in particular, its decentralised nature. Mastodon is not a single platform. It’s a federation of servers, each with its own particular rules, and criteria for who can register an account on a server. Amid the mass migration to Mastodon from Twitter - dubbed the #<a href="https://www.abc.net.au/news/2022-11-19/what-is-mastodon-twitter-rival-platform-elon-musk-takeover/101674440">TwitterMigration</a> - many “brand” accounts - accounts representing an organisation or company - found themselves without a home, as server administrators restricted who could create an account, and, understandably, baulked at providing free infrastructure for the purposes of brand advancement.</p>

<p>This was a key motivation for me to create the Mastodon server, <a href="https://fediverse.au">Fediverse.AU</a>, with the explicit purpose of providing a home for Australian university and research organisations without a home in the Fediverse. I haven’t heavily promoted this server, and that’s not the purpose of this post. It’s not listed in the <a href="https://joinmastodon.org/servers">official Mastodon directory of servers</a>, primarily because it doesn’t meet one of the criteria of the <a href="https://joinmastodon.org/covenant">Mastodon server covenant</a>; I haven’t set up emergency access for another person (yet). But I had benefited significantly from having a presence on Twitter - connecting with others, sharing research and leads, and amplifying content useful to me and to others with similar interests. And I knew the value of networks; that the connectivity of a social network yields benefits beyond its components - emergent properties <sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup>.</p>

<p>At the time of writing, very few Australian universities have an official presence on Twitter rival, Mastodon. There are exceptions; the ANU has “reserved” equivalent names for many of its social accounts on the Mastodon server <code class="language-plaintext highlighter-rouge">mastodon.social</code>(this is a poor choice of server - the reasons why are beyond the remit of this post - essentially, that host is managed out of Germany by Mastodon company founder and key software contributor Eugen Rochko, subject to German law) but as of writing, only the <a href="https://mastodon.social/@ANUResearch">Research at ANU</a> account was actively posting. Some smaller sub-organisations have an account on Fediverse.AU - I feel it’s wrong to promote them here, but I have accounts for groups out of UNSW, University of Melbourne, ANU, and a cross-institutional ARC centre.</p>

<h2 id="so-why-havent-more-university-and-research-groups-flocked-to-mastodon">So why haven’t more university and research groups flocked to Mastodon?</h2>

<p>Without empirical work, I can’t answer with any certainty - so what follows is speculation.</p>

<h3 id="the-future-students-arent-there">The future students aren’t there</h3>

<p>Above, I wrote that social media channel choice had been guided by recruitment and engagement efforts targeted to students. In my interactions on Mastodon, I’ve observed that there are many academics, and aspiring academics (postgrads, postdocs etc). But there are fewer undergraduate, or pre-undergraduate folx. So Mastodon is a poor choice to target brand awareness and marketing efforts, which are intended for student recruitment.</p>

<p>The future students, simply put, aren’t there. And university marketing and social media activities are oriented to student recruitment.</p>

<h3 id="understanding-of-mastodon-federation-and-server-infrastructure">Understanding of Mastodon federation and server infrastructure</h3>

<p>I also believe that universities don’t have a strong understanding of how Mastodon as a platform works. There are two key choices in where to have an organisational account; the organisation can choose to have an account on an <em>existing</em> server, or to deploy their <em>own</em> server infrastructure. <code class="language-plaintext highlighter-rouge">mastodon.social</code> is the default choice , the “easy” choice when searching for Mastodon servers to join - the result of <a href="https://en.wikipedia.org/wiki/Choice_architecture">choice architecture</a> employed by Eugen Rochko (known as @gargron on the platform).</p>

<p>To be fair, I can see why using an existing server is an attractive choice. Setting up a Mastodon server, while generally straightforward, and while offering the organisation the highest level of control over the rules of the server and any integrations it may have, still requires considerable manual configuration. Over the years, many Australian university IT organisations have outsourced their functions to vendors. They no longer host email. They no longer host many of their SaaS applications (ever searched for a job at university lately? All of them use PageUp, hosted externally and branded to look like the university, using a combination of F5 and reverse proxying). So why would they choose to host their own Mastodon server? Universities that are interested in this option will be wanting their preferred vendors to provide a turnkey solution. They don’t want the responsibility of hosting - and patching - their own infrastructure (the <a href="https://arstechnica.com/security/2023/07/mastodon-fixes-critical-tootroot-vulnerability-allowing-node-hijacking/">TootRoot</a> vulnerability is a case in point).</p>

<p>As an additional disincentive, the <a href="https://docs.joinmastodon.org/">documentation for administering a Mastodon server</a> is better than it used to be, but it’s still not <em>great</em>.</p>

<p>There is a major danger I see here in this lack of understanding - and that’s in the domain names which are emerging as a de facto standard for Mastodon. In general, organisations are adopting a <code class="language-plaintext highlighter-rouge">something.social</code> or a <code class="language-plaintext highlighter-rouge">social.organisation.org</code> pattern for their Mastodon presence. Many scholars are on servers named <a href="https://scholar.social">scholar.social</a>, <a href="http://hci.social">hci.social</a> and <a href="http://sigmoid.social">sigmoid.social</a>. As the .<a href="https://icannwiki.org/.social">social domain</a> becomes more closely associated with Mastodon servers, it’s also become prime domain name property - the .social TLD has relatively few restrictions on who can register a domain name, unlike the heavily regulated <a href="https://www.edu.au">.edu.au</a> namespace (well, except that kindergartens can get an .edu.au name, but that’s a different rant). Australian universities have not, in general, thought to register their .social equivalent as a brand protection measure. This is a risk, and adds to the integrity challenges universities already face with their <a href="https://www.mailguard.com.au/blog/dont-click-university-impersonated-in-malware-scam">brand being impersonated online</a>.</p>

<p>Side note: if anyone from ANU wants the <code class="language-plaintext highlighter-rouge">anu.social</code> domain, I’m happy to give it to you for free on the proviso you actually host a Mastodon server with it. In the meantime, I promise I won’t try to impersonate you and drop malware from it, because, well, it’s been done at ANU before 🔥</p>

<h3 id="moderation">Moderation</h3>

<p>A major challenge with hosting a Mastodon server is the need to moderate content, users and imagery. <a href="https://www.infrastructure.gov.au/department/media/publications/communications-legislation-amendment-combatting-misinformation-and-disinformation-bill-2023">Recent proposed legislation by the Australian government</a> would vest additional powers in the <a href="https://www.acma.gov.au/">Australian Communications and Media Authority (ACMA)</a> to combat disinformation. While this is a positive step, it places additional onus on digital platform providers - here, Mastodon server administrators - to undertake additional record keeping efforts to show how disinformation is being detected and remediated. As a volunteer Mastodon administrator, this is additional work I’m not paid for - and for universities, they will not want to take on board this requirement.</p>

<p>Moreover, universities don’t want to undertake content moderation tasks, as these connote very little benefit while presenting a workload - that all Australian universities in a post-COVID era - cannot justify. Registering on another, external Mastodon server, negates this need. But this simply shifts the onus - on to the (usually volunteer) moderators on the Mastodon server on which the university has an account.</p>

<p>The choice of a Mastodon server on which to establish a presence is crucial to the integrity of an organisation’s brand; if your organisation is in the same digital space as homophobic, transphobic or otherwise discriminatory content, it reflects negatively on your brand. But someone has to <em>do</em> that moderation work.</p>

<h3 id="there-are-many-other-platforms-to-invest-in">There are many other platforms to invest in</h3>

<p>Currently, many academics are on Mastodon, and their interactions are with each other. There are already platforms that seek to facilitate (and, let’s be honest, monetise) those interactions - ResearchGate, Academia.edu, ORCID, Google Scholar. Why would universities invest in Mastodon when they could turn their efforts to making sure their academics have comprehensive profiles on these platforms instead?</p>

<h3 id="addendum-april-2024-you-cant-tell-when-a-mastodon-server-has-referred-traffic-to-your-own-website">Addendum April 2024: You can’t tell when a Mastodon server has referred traffic to your own website</h3>

<p>As outlined in this <a href="https://github.com/mastodon/mastodon/issues/21795">GitHub Issue by Jim Killock</a>, URLs published via Mastodon do not contain any referrer information as a privacy measure. This means that the Mastodon server does not show up in the Referrer information on web stats programs, such as Google Analytics or AWstats. While this preserves the privacy of the Mastodon server, it makes it difficult for the web server owner to understand how much traffic comes to the server from Mastodon, as Mastodon referrals are all counted as “direct hits” (because they don’t have a referrer).</p>

<p>When universities ask the question “is it worth my social media person’s time investing in creating content for this platform”, they will usually use web stats to answer this question. If an organisation is not aware of this detail, the rational response here is “no” - because to web stats, <em>it looks like not a single visit to your organisation’s website was referred from a Mastodon server</em>. In reality, what the organisation should be looking for is an increase in “direct hits” when they publish content to a Mastodon server.</p>

<p>The other option here is to use a UTM (universal tag manager) code specifically for Mastodon content - for example using a URL like <code class="language-plaintext highlighter-rouge">https://example.com/my-content?UTM=Mastodon</code>. Google Analytics should then register Mastodon as a specific traffic source. However, this means creating separate URLs for content posted to Mastodon - and this leads into another recent issue:</p>

<h3 id="addendum-april-2024-social-media-automation-tools-are-not-as-well-integrated-with-mastodon-as-other-platforms">Addendum April 2024: Social media automation tools are not as well integrated with Mastodon as other platforms</h3>

<p>Most universities will use automated tools - such as Tweetdeck, Sprout Social or Loomly - to streamline their social media operations, including analytics. Most of these tools do not yet support Mastodon, although <a href="https://docs.joinmastodon.org/api/">Mastodon has an openly available API</a>. The <a href="https://buffer.com/mastodon">exception appears to be Buffer</a>, which has recently announced support for scheduling Mastodon posts.</p>

<p>In the meantime, I have been using this <a href="https://www.scheduler.mastodon.tools/">Mastodon Scheduler</a> tool by David Libeau, however you cannot schedule images with it unfortunately.</p>

<h2 id="what-should-universities-do-about-mastodon-right-now">What should universities do about Mastodon right now?</h2>

<p>Even if universities aren’t ready to establish a presence on Mastodon yet, there are some activities I believe they should be doing to ensure the integrity of their brands.</p>

<ul>
  <li>Register their .social equivalent - primarily so others can’t register it and use it for nefarious purposes.</li>
  <li>Provide the ability for academics to list their Mastodon handle on departmental websites - in the same way that most CMSs allow Twitter or LinkedIn handles to be published</li>
  <li>Monitor the landscape - understand which academic organisations are on Mastodon, and what content appears to be resonating with the Mastodon audience. For example, <a href="https://aus.social/@thesiswhisperer/110711696709385522">a recent Toot (the Mastodon equivalent of a Tweet) by Professor Inger Mewburn about disabling her Twitter account</a> recently attracted over 1300 “boosts” - the equivalent of a retweet. That’s some impressive reach!</li>
  <li>Start to think about what sort of content strategy would work for your department or area on Mastodon. What sort of content lends itself to the platform? How would this help you reach your research and teaching goals?</li>
</ul>

<p>Are there any other thoughts you have about universities and Mastodon? Let me know in the comments.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Selwyn, N. (2012). Social media in higher education. <em>The Europa world of learning</em>, <em>1</em>(3), 1-10. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:2">
      <p>Palmer, S. (2013). Characterisation of the use of Twitter by Australian Universities. <em>Journal of Higher Education Policy and Management</em>, <em>35</em>(4), 333-344. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:3">
      <p>Benn, J., Mills, K., &amp; Howard, R. (2015, February). From mediocre to marvellous: social media strategy to improve the student experience at the University of Western Australia. In <em>ALIA Information Online 2015</em>. ALIA Information Science Section. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:4">
      <p>Galan, M., Lawley, M., &amp; Clements, M. (2015). Social media’s use in postgraduate students’ decision-making journey: an exploratory study. <em>Journal of Marketing for Higher Education</em>, <em>25</em>(2), 287-312. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:5">
      <p>Mishra, S. (2020). Social networks, social capital, social support and academic success in higher education: A systematic review with a special focus on ‘underrepresented’ students. <em>Educational Research Review</em>, <em>29</em>, 100307. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Kathy Reid</name></author><category term="academic" /><category term="opensource" /><category term="fediverse" /><category term="mastodon" /><category term="open-source-2" /><category term="opensource" /><summary type="html"><![CDATA[The drivers of university adoption of social media, and the barriers that universities face with Mastodon.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2023/07/mastodonacademic-1024x576.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2023/07/mastodonacademic-1024x576.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Help me with my PhD research on voice dataset documentation by completing this survey</title><link href="https://blog.kathyreid.id.au/2023/04/25/phd-research-voice-dataset-documentation/" rel="alternate" type="text/html" title="Help me with my PhD research on voice dataset documentation by completing this survey" /><published>2023-04-25T16:11:12+10:00</published><updated>2023-04-25T16:11:12+10:00</updated><id>https://blog.kathyreid.id.au/2023/04/25/phd-research-voice-dataset-documentation</id><content type="html" xml:base="https://blog.kathyreid.id.au/2023/04/25/phd-research-voice-dataset-documentation/"><![CDATA[<p>Do you work with voice or speech data?</p>

<p>You might <strong>contribute</strong> data, write data <strong>specifications</strong> for collection, perform <strong>filtering</strong> or pre-processing, <strong>train</strong> ASR or TTS models, or <strong>design</strong> or perform evaluations on ML speech models.</p>

<p>If so, I’d love your help to understand current dataset documentation practices, and what we can do to make them better as part of my PhD research at <a href="https://cybernetics.anu.edu.au">Australian National University’s School of Cybernetics.</a></p>

<p>The survey takes 10-20 minutes to complete, and you can opt in to win one of 3 gift cards valued at $AUD 50 each.</p>

<p><em>Research Protocol 2021/427 approved by ANU Human Research Ethics Committee</em></p>

<p><a href="https://anu.au1.qualtrics.com/jfe/form/SV_cSFODa5osYtm96e">https://anu.au1.qualtrics.com/jfe/form/SV_cSFODa5osYtm96e</a></p>]]></content><author><name>Kathy Reid</name></author><category term="research" /><category term="technology" /><category term="voice-and-speech-technology" /><category term="data" /><category term="dataset" /><category term="datasetdocumentation" /><category term="documentation" /><category term="phd" /><category term="research" /><category term="survey" /><category term="writethedocs" /><summary type="html"><![CDATA[Help me with my PhD research on voice dataset documentation - and fill out or share this survey.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2023/04/survey-promotion-linkedin-1024x535.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2023/04/survey-promotion-linkedin-1024x535.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">EverythingOpen: connecting open* communities</title><link href="https://blog.kathyreid.id.au/2023/04/15/everythingopen-connecting-open-communities/" rel="alternate" type="text/html" title="EverythingOpen: connecting open* communities" /><published>2023-04-15T19:38:19+10:00</published><updated>2023-04-15T19:38:19+10:00</updated><id>https://blog.kathyreid.id.au/2023/04/15/everythingopen-connecting-open-communities</id><content type="html" xml:base="https://blog.kathyreid.id.au/2023/04/15/everythingopen-connecting-open-communities/"><![CDATA[<p>Mid-March of this year saw the very first <a href="https://2023.everythingopen.au/">EverythingOpen</a> conference, held in Naarm/Melbourne at the Melbourne Exhibition and Convention Centre. Unfortunately, I had some PhD commitments, and only managed to get there for the conference dinner, but was able to catch up afterwards via the conference videos - and this blog post is a recap of my favourites.</p>

<h2 id="why-everythingopen">Why EverythingOpen?</h2>

<p>EverythingOpen is a re-imagining of linux.conf.au. linux.conf.au - affectionately known as LCA - started life in 1999 - as the Conference of Australian Linux Users (CALU), and has been a <a href="https://linux.org.au/linux-conf-au/">deeply-technical fixture on the Australian open source calendar since</a>. There have been deliberate moves (which, for transparency, I strongly support) to widen both the audience of the conference, and the pool of volunteers which delivers it. EverythingOpen, the brainchild of long-term Linux Australia leaders <a href="https://www.linkedin.com/in/srgermaine">Sae Ra Germaine</a> and <a href="https://www.linkedin.com/in/joeladdison?miniProfileUrn=urn%3Ali%3Afs_miniProfile%3AACoAAAkzGAcBWtcpl5jJbE8xvIAUpWFMGBYWTb0&amp;lipi=urn%3Ali%3Apage%3Ad_flagship3_search_srp_all%3BKPN9Zr5WTEisEOoxlHzxHg%3D%3D">Joel Addison</a> - aims to connect the many open* communities in Australia together.</p>

<p>There are <strong>open source</strong> communities - those who create software free for everyone to use, and enable that software to have impact (with thanks to Donna Benjamin for her work on <em>enablement</em>) by building communities, resources and other artefacts to bring software to life.</p>

<p>There are <strong>open hardware</strong> communities - <a href="https://superhouse.tv">Jon Oxer</a>, Andy ‘Geekscape’ Gelme and <a href="https://www.hackmelbourne.org/">Hack Melbourne</a> - and their incredible work delivering the Open Hardware Miniconf at LCA for nearly a decade with projects such as the Swag Badge and the Dingo Car.</p>

<p>There are <strong>open data and open gov</strong> communities - Pia Andrews’ work here comes to mind in her founding of the GovHack movement, which now has a life of its own; Fiona Tweedie’s work with Open Knowledge, the work of Liz Stokes and Sara King and others who work with open research data and the researchers who need the skills to work with that data.</p>

<p>There are <strong>open security and open telemetry communities</strong>, bringing the ethos of open data and open source to the prescient problem of infosec and cyber security; Cameron Tudball’s talk in this space is definitely in my favourites list.</p>

<p>There are the <strong>open GLAM communities</strong> - Galleries, Libraries, Archives and Museums who often use, create or adapt open source tools into their curation and collection processes. The work here of Hugh Rundle, Ebe Kartus and the many good folx of VALA comes to mind.</p>

<p>There are <strong>open science communities</strong> - researchers, infrastructure specialists, high performance computing (HPC) experts - who increasingly use the power of machine learning and artificial intelligence to make new discoveries and advances - but who need a wealth of expertise in software, hardware and infrastructure to do so - the work of Kiowa Scott-Hurley</p>

<p>There are <strong>open education</strong> communities - educational developers, digital literacy specialists, knowledge management people - who create resources to educate, to inform, and to share learnings.</p>

<blockquote>
  <p>EverythingOpen is glue: helping these communities connect, collaborate, and converge.</p>
</blockquote>

<h2 id="theme-supporting-our-students-researchers-and-educational-developers-to-create-new-knowledge-and-make-discoveries-openscience-opendata-oer-openeducation">Theme: Supporting our students, researchers and educational developers to create new knowledge and make discoveries (#OpenScience, #OpenData, #OER, #OpenEducation)</h2>

<h3 id="liz-stokes-australian-research-data-commons---hammer-time-building-carpentries-community-in-australia"><a href="https://2023.everythingopen.au/schedule/presentation/42/">Liz Stokes, Australian Research Data Commons - Hammer Time: Building Carpentries community in Australia</a></h3>

<p>Liz’ talk introduced <a href="https://thecarpentries.org">The Carpentries</a> - a volunteer, membership-funded collective which aims to teach foundational coding and data science skills to research communities worldwide, using a train-the-trainer approach, and engaging with the social factors of learning. In Australia, The Carpentries is supported by the <a href="https://ardc.edu.au">Australian Research Data Commons</a>, and the <a href="https://www.education.gov.au/national-research-infrastructure">National Research Infrastructure Strategy</a>.</p>

<p>As Liz explained, The Carpentries is a response to several trends:</p>

<ul>
  <li>the increasingly computational nature of advanced research - with everything from linguistics, to pharmaceuticals, to physics, to art and design - now harnessing high performance computing (HPC) in the form of GPU clusters - to produce research outputs;</li>
  <li>the lack of basic computational courses offered in non-STEM courses - for example in the humanities and arts, graduates may never use tools such as Git, or Python;</li>
  <li>and the increasing challenging finding assistance with these tools within the academy, as budgets are squeezed - and communities of practices often don’t exist internally.</li>
</ul>

<p>My key takeaway in this talk is just how much research infrastructure skills training takes place on a volunteer basis; universities are crying out for Carpentries volunteers - but with grad students taking on tutoring work just to stay afloat - who has time to take this additional workload on? An alternative model here would be for universities to fund Carpentries volunteers - but again, universities themselves are strapped for cash. It wouldn’t surprise me if startups spring up in this space - offering a similar “Git and Python bootcamp for $$$” style offering - which privileges these skills even further.</p>

<p>Another interesting aspect that Liz mentioned was the <a href="https://phenomicsaustralia.org.au/research-infrastructure-specialist-position-paper/">growing support for a new employment category within universities in Australia to support research software development</a>. The skills required here often don’t fit neatly into the traditional “Academic” versus “Professional” dichotomy - instead straddling competencies of both - resulting in the inability to progress professionally in either.</p>

<h3 id="kat-cain-deakin-university-library---open-by-design-co-designing-and-producing-an-oer-interactive-textbook"><a href="https://2023.everythingopen.au/schedule/presentation/53/">Kat Cain, Deakin University Library - Open by design: co-designing and producing an OER interactive textbook</a></h3>

<p>In this informative talk, <a href="https://www.linkedin.com/in/ACoAABEKvFQBLHfLPgOmUdJs2h1susyDAbG5sD0">Kat Cain</a>, Library Partner at <a href="https://www.linkedin.com/company/deakin-university/">Deakin University</a>, reported on the design and publication of an <a href="https://en.wikipedia.org/wiki/Open_educational_resources">OER (open educational resource)</a> textbook, which was designed using the <a href="https://pressbooks.com/">Pressbooks</a> platform. I hadn’t come across this platform previously, and discovered how it could be used to create engaging and interactive resources for courses that were being delivered in hybrid or online mode - which, given the pandemic, is likely to be a feature of the educational landscape for some time to come.</p>

<p>The aspects of Kat’s talk that I really enjoyed were the interdisciplinary nature of the project, and the challenges this presented - across methodologies, toolsets and in terms of project processes. The team adopted a Peopling Technologies philosophy, which was again something I hadn’t encountered before. In Kat’s words, this perspective holds that:</p>

<blockquote>
  <p>“People need to be positioned at the heart of any engagement with technology.”</p>

  <p><cite>Kat Cain, EverythingOpen</cite></p>
</blockquote>

<h3 id="dr-linda-mciver-australian-data-science-education-institute---raising-heretics-on-a-diet-of-open-data"><a href="https://2023.everythingopen.au/schedule/presentation/36/">Dr Linda McIver, Australian Data Science Education Institute - Raising Heretics on a diet of Open Data</a></h3>

<p>Linda has a background in computer science education, and her passion is in teaching kids about “data in the real world” - showing them how they can use critical thinking with real data to pique - and sustain- an interest in data science.</p>

<p>Linda’s talk highlighted some of the challenges of data science education - such as that late high school - when students are often first introduced to data science concepts - is too late to stop them dropping out of the STEM pipeline - and, moreover - that teachers have often never been taught to teach STEM - and are terrified at it.</p>

<p>Linda’s engaging talk relayed several examples of how students, using real-world data, were able to ask questions that had never been asked before - another proof point for the value of open data.</p>

<h2 id="theme-representing-our-world-in-the-age-of-generative-ai-opendata-opensource">Theme: Representing our world in the age of generative AI (#OpenData, #OpenSource)</h2>

<h3 id="peter-neish-and-alex-lum---sustainable-open-data-using-wikidata"><a href="https://2023.everythingopen.au/schedule/presentation/38/">Peter Neish and Alex Lum - Sustainable open data using WikiData</a></h3>

<p>This very informative talk by Peter and Alex covered the <a href="https://www.wikidata.org/wiki/Wikidata:Main_Page">WikiData project</a> - which started life as a way to create re-usable elements for Wikipedia pages across languages. WikiData creates <a href="https://en.wikipedia.org/wiki/Linked_data">linked open data</a> through defining ontologies. What this means is that WikiData creates and connects structures to help represent our world. It can be used to map people - and their characteristics; places - and the places that are related to each other - and products - and the people who make or use them, and the places they’re found. These relationships have meaning - they are semantic - and can be queried to help provide answers to questions. Wikidata is an implementation of what’s known as the <a href="https://en.wikipedia.org/wiki/Semantic_Web">semantic web</a> - a movement that’s over a decade old, but only now starting to gain momentum and recognition as its applicability to technologies like the metaverse, and augmented and virtual reality - becomes clearer.</p>

<p>The key implication I see from the WikiData work is actually in generative AI.</p>

<p>With the advent of generative AI, one of the challenges we have is to represent the relationships between objects in the world. While large language models like ChatGPT can scrape swathes of text from the web, and infer relationships in that text using attention-based transformer models, having a set of object ontologies - structures, hierarchies and mapped relationships - is a way of <em>representing</em> or <em>validating</em> relationships between entities in the world. For example, an LLM might infer that “Paris” is closely related, statistically, to “France”, but it doesn’t know that Paris is a city, that France is a nation-state, and that the relationship between the two entities is “is the capital of” (which also implies a one to one cardinality).</p>

<p>The challenge with LLMs at the moment is that they don’t have valid representations of relationships in the world. They can infer, statistically, what word comes next in a sequence, or generate plausible text, but we don’t trust the text they generate. Without real-world representations to validate against, we’re simply going to stop believing what ChatGPT and its kin generate.</p>

<p>And this is where the WikiData work has a huge role to play. By mapping relationships between entities, these can be used to validate the output from LLMs. “Is Paris the capital of France?” - using WikiData, and linked open data, the answer to this question can be <em>validated</em>.</p>

<h2 id="theme-supporting-our-public-service-to-deliver-digital-government-services-opengovernment-opendata">Theme: Supporting our public service to deliver digital government services (#OpenGovernment, #OpenData)</h2>

<p>With efforts in the Australian Public Service to create whole-of-government digital services in tatters with the already-poor reputation of the Digital Transformation Authority <a href="https://www.themandarin.com.au/200707-dta-damned-by-scathing-audit-report-future-uncertain/">eroded further by a damning Auditors’ Report</a>, there is a renewed opportunity to connect government efforts to broader open communities.</p>

<h3 id="pia-andrews---creating-open-source-legislation-as-code"><a href="https://2023.everythingopen.au/speaker/profile/21/">Pia Andrews - Creating open source legislation as code</a></h3>

<p>Pia is well known in open government circles, and as a founder of the GovHack movement, and here she advocated for creating open source legislation as code - helping to build trustworthiness into government services. By having legislation as code, the legality and validity of government decisions can be verified, which in turn helps to ensure repeated, correct decision making.</p>

<p>You can read more about the concept of trustworthiness in government decision making in <a href="https://arxiv.org/abs/2208.10087">this paper</a>, which I helped to peer-review:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@misc{andrews2022trust,
    title={A Trust Framework for Government Use of Artificial Intelligence and     Automated Decision Making},
    author={Pia Andrews and Tim de Sousa and Bruce Haefele and Matt Beard and Marcus Wigan and Abhinav Palia and Kathy Reid and Saket Narayan and Morgan Dumitru and Alex Morrison and Geoff Mason and Aurelie Jacquet},
    year={2022},
    eprint={2208.10087},
    archivePrefix={arXiv},
    primaryClass={cs.CY}
}
</code></pre></div></div>

<h2 id="parting-thoughts">Parting thoughts</h2>

<p>EverythingOpen undoubtedly delivered on its promise - it started to connect our disparate, diverse open communities of practice together, forging new relationships, and hopefully, fresh collaborations. My key concern is whether this initial impetus can be maintained; Joel and Sae Ra are both long overdue for a break! Will another group of community practitioners pick up the mantle - and help ensure Everything Open remains a fixture on the calendar? I hope so!</p>]]></content><author><name>Kathy Reid</name></author><category term="everythingopen" /><category term="linux-conf-au" /><category term="opendata" /><category term="datascience" /><category term="everythingopen" /><category term="foss" /><category term="linux" /><category term="linux-conf-au" /><category term="oer" /><category term="opendata-2" /><category term="openeducation" /><category term="opengov" /><category term="opengovernment" /><category term="opensource" /><category term="research" /><category term="thecarpentries" /><summary type="html"><![CDATA[EverythingOpen 2023 brought together several of Australia's open communities - open source, open hardware, open data and open education - to forge new connections and collaborations.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2023/04/2023-03-15-18.10.00-1024x768.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2023/04/2023-03-15-18.10.00-1024x768.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Mycroft Mark II and the wind-down of Mycroft AI: it’s all about ecosystems, infrastructures and the friction of privacy</title><link href="https://blog.kathyreid.id.au/2023/02/19/the-mycroft-mark-ii-and-the-wind-down-of-mycroft-ai-its-all-about-ecosystems-infrastructures-and-the-friction-of-privacy/" rel="alternate" type="text/html" title="The Mycroft Mark II and the wind-down of Mycroft AI: it’s all about ecosystems, infrastructures and the friction of privacy" /><published>2023-02-19T20:25:15+11:00</published><updated>2023-02-19T20:25:15+11:00</updated><id>https://blog.kathyreid.id.au/2023/02/19/the-mycroft-mark-ii-and-the-wind-down-of-mycroft-ai-its-all-about-ecosystems-infrastructures-and-the-friction-of-privacy</id><content type="html" xml:base="https://blog.kathyreid.id.au/2023/02/19/the-mycroft-mark-ii-and-the-wind-down-of-mycroft-ai-its-all-about-ecosystems-infrastructures-and-the-friction-of-privacy/"><![CDATA[<p>As avid readers may know, I <a href="https://mycroft.ai/blog/a-day-in-the-life-mycroft-support-team-kathy-reid/">used to work in DevRel for an open source voice assistant company</a> called <a href="https://mycroft.ai">Mycroft.AI</a>. In the past two weeks, Mycroft AI’s CEO, Michael Lewis, has announced that the <a href="https://community.mycroft.ai/t/update-from-the-ceo-part-1/13268">company is winding down operations</a>, and will be <a href="https://www.kickstarter.com/projects/aiforeveryone/mycroft-mark-ii-the-open-voice-assistant/posts/3729060?ref=activity">unable to fulfill any further Kickstarter pledges</a>. In this post, I first give the Mark II a technical once-over, and conclude that it’s a solid piece of kit. So, why couldn’t a privacy-focused voice assistant go to market and reach adoption in age of growing awareness of surveillance capitalism <sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>, datafication <sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> and commodified, open hardware? In the second half of this post, I take a critical lens to voice assistants more broadly, and reflect on the ecosystems, infrastructures and other components that are needed to provide value to the end user - and why voice assistants are currently hitting the “trough of disillusionment”.</p>

<p><em>For full transparency, it’s important that I state that as part of my contract arrangement with Mycroft - I contracted for around 18 months between September 2017 and January 2019 - I was offered, and took up, stock options - although they’re now worthless.</em></p>

<h2 id="the-mycroft-mark-ii-hardware">The Mycroft Mark II Hardware</h2>

<h3 id="unboxing">Unboxing</h3>

<div class="wp-block-media-text alignwide is-stacked-on-mobile">

<figure class="wp-block-media-text__media">
<img src="/assets/uploads/2022/12/2022-12-30-14.44.05-916x1024.jpg" class="wp-image-87915 size-full" alt="Mycroft Mark II box" />
</figure>

<div class="wp-block-media-text__content">

The box for the Mark II was sturdy, and well-designed, carrying forward many of the design features of its predecessor, the Mark 1: folded cardboard which provided protection and buffering for the device inside. It survived a long international journey without a scratch.

Inside was a useful "Get started" card that provide Quick Start links, and a hardware warranty leaflet.

</div>

</div>

<div class="wp-block-media-text alignwide is-stacked-on-mobile">

<figure class="wp-block-media-text__media">
<img src="/assets/uploads/2022/12/2022-12-30-13.36.57-282x300.jpg" class="wp-image-87916 size-full" alt="Mycroft smiley face upon opening the box" />
</figure>

<div class="wp-block-media-text__content">

The smiley face upon opening the box was a particularly thoughtful touch. We are used to anthropomorphising voice assistants - imbuing them with human characteristics. I'm torn on this - on one hand, they perform part of the function of interacting with another human, but lack so much of the nuance and meaning that emerges from engaging with humans.

</div>

</div>

<div class="wp-block-media-text alignwide is-stacked-on-mobile">

<figure class="wp-block-media-text__media">
<img src="/assets/uploads/2022/12/2022-12-30-14.16.52-1024x977.jpg" class="wp-image-87922 size-full" alt="Variety of power connectors" />
</figure>

<div class="wp-block-media-text__content">

One other very pleasing aspect of the unboxing was that I didn't have to buy an Australian general power outlet adaptor. Australia uses [Type I sockets](https://en.wikipedia.org/wiki/AS/NZS_3112) - and foreign-manufactured devices often require an adaptor (thank goodness for USB).

*The Australian Type I socket isn't shown here because it's connected to the Mycroft Mark II.*

</div>

</div>

<h3 id="setting-up-the-device">Setting up the device</h3>

<p>I found setting up the Mark II to be incredibly smooth. It ships with “Dinkum” software, which, according to the Mycroft website, <a href="https://community.mycroft.ai/t/new-software-options-for-the-mark-ii/12725">is a stable operating system for the Mark II</a>. However, it diverges significantly from the previous Mycroft Core software - meaning that Skills previously developed for previous iterations of Mycroft software - for Picroft, or the Mark I, or Mycroft on Linux - won’t work on the Mark II. I found Dinkum to be very stable - it “just worked” out of the box.</p>

<h3 id="connecting-to-wifi">Connecting to WiFi</h3>

<p>The Mark II uses WiFi connection technology from <a href="https://pantacor.com/">Pantacor</a>. Once the Mark II had finished booting, I was advised to connect to an SSID that the Mark II was advertising using my phone or laptop, and from there, enter my WiFi credentials. I wasn’t surprised that only my 2.4GHz SSID was detected - I have a dual band router that also advertises a 5GHz SSID - and <a href="https://mycroft-ai.gitbook.io/mark-ii/set-up">I wasn’t surprised that enterprise WiFi - WPA2 - wasn’t supported</a>. This appears to be a common issue with IoT devices; they will readily connect to consumer grade networks, but cannot handle the additional complexity - such as MSCHAPv2 authentication - required by WPA2 networks. I suspect this presents a barrier to enterprise IoT adoption - and certainly voice assistant adoption.</p>

<h3 id="pairing-the-device-with-the-backend-platform">Pairing the device with the backend platform</h3>

<p>When I worked at Mycroft.AI, pairing the device with the backend platform - <a href="https://home.mycroft.ai">https://home.mycroft.ai</a> - was one of the most frequently problematic parts of the device. This was seamless. The Mark II device displayed a pairing code on screen, along with a URL to visit, and it paired almost immediately. I was then able to set the device’s physical location and timezone.</p>

<h3 id="testing-out-skills">Testing out Skills</h3>

<p>One of the frequent criticisms of the Mark II running Dinkum software is its lack of Skills; this criticism is well founded. I can ask basic questions - which hit the Wikipedia backend - or ask for time and weather information - but anything more is unavailable. I was particularly disappointed that there wasn’t any music integration with the Mark II - <a href="https://mycroft.ai/product/mark-ii/">which boasts dual 1.5” 5W drivers</a> - but I can’t hold this against Mycroft.</p>

<p>In late 2020, <a href="https://community.spotify.com/t5/Desktop-Linux/Spotify-on-Mycroft-Smart-Speaker/td-p/5023988">Spotify revoked the API access that Mycroft was using to provide premium Spotify subscribers (Spotify’s API only works for subscribed users) with access to Spotify via Mycroft</a>. Local music is an option, but because I use music streaming - well, apart from my now-nearly-30-year-old CD collection - this wasn’t of much use.</p>

<h3 id="hardware-features">Hardware features</h3>

<p>The Mark II sports some impressive hardware. There is an inbuilt camera (not that any Skills make use of it), with a physical privacy shutter.</p>

<div class="wp-block-media-text alignwide is-stacked-on-mobile">

<figure class="wp-block-media-text__media">
<img src="/assets/uploads/2023/02/2023-02-18-14.53.25-768x1024.jpg" class="wp-image-87932 size-full" />
</figure>

<div class="wp-block-media-text__content">

The microphone is a 2-mic array with noise cancellation, and a physical mute switch - very important for those who like privacy - although I don't know the brand of the mic.

The mute button integrated very well with the design of the touch screen - with the NeoPixel indicator taking on a red hue, and the border of the touch screen rendering in red also when hardware mute is on.

[Seeed Studios](https://wiki.seeedstudio.com/) hardware are generally considered best-of-breed for embedded Linux devices, but I don't think this is a Seeed microphone.

</div>

</div>

<p>The screen is a 4.3” IPS touchscreen, and it boasts bright, bold colours. I’m guessing it has a resolution of 800px by 400px, but don’t hold me to that. The board itself is based on the Raspberry Pi 4, and the Pi’s GPIO pins 1, 12, 13, GND and 3.3V power are exposed so that you can integrate other hardware with the device; that is, it is extensible if you’re into open hardware. There’s also a 1GB Ethernet RJ45 socket - so you are not reliant on WiFi - which was quite useful. The case itself is very sturdy, and needs a torx screwdriver to open.</p>

<h3 id="sshing-into-the-device">SSH’ing into the device</h3>

<p>SSH on the default port 22 is blocked and you need to use a custom port to SSH into the device - this is <a href="https://mycroft-ai.gitbook.io/mark-ii/advanced/ssh-access">well documented</a>. For security, the Mark II uses SSH security keys; requiring you to generate an SSH key, and enter this on the home.mycroft.ai platform. The key is then sent to the device, and you then SSH in to the custom port using the key. In my opinion this is far more secure than depending on passwords, however, this introduces a closer dependency on the home.mycroft.ai platform - and as we’ll see later, this closely ties the hardware to a supporting platform.</p>

<h3 id="whats-under-the-hood">What’s under the hood?</h3>

<p>Once SSH’d into the device, I was able to take a closer look at the <a href="https://github.com/MycroftAI/mycroft-dinkum">mycroft-dinkum software</a> in operation.</p>

<h4 id="voice-activity-detection--keyword-spotter">Voice activity detection / keyword spotter</h4>

<p>One of the software layers in a voice assistant stack is a wake word listener or keyword spotter. This software constantly listens for spoken phrases - <em>utterances</em> - and classifies whether the utterance is a wake word. If the wake word listener detects a wake word, then the voice assistant listens for the next utterance, and assumes the next utterance spoken is a voice assistant command.</p>

<p>Previous versions of Mycroft used the <a href="https://github.com/MycroftAI/mycroft-precise">Precise</a> wake word listener, and I found it regularly had a high number of false positives - triggering when I didn’t say the “Hey Mycroft” wake word - and false negatives - not responding when I did utter the wake word. The Mark II was <em>incredibly</em> accurate in detecting my wake word utterances - especially considering I am female, and have an Australian accent - groups for which Precise performed poorly.</p>

<p>The <code class="language-plaintext highlighter-rouge">mycroft-dinkum</code> software uses several services. The <code class="language-plaintext highlighter-rouge">voice</code> service within <code class="language-plaintext highlighter-rouge">mycroft-dinkum</code> provides speech recognition, voice activity detection and microphone input. Unsurprisingly, because this service is constantly listening, it consumes a lot of the CPU of the device, which we can see if we run htop while <code class="language-plaintext highlighter-rouge">ssh</code>‘d in:</p>

<figure class="wp-block-image size-large">
<a href="/assets/uploads/2023/02/Screenshot-from-2023-02-19-13-14-45.png"><img src="/assets/uploads/2023/02/Screenshot-from-2023-02-19-13-14-45-1024x526.png" class="wp-image-87939" /></a>
<figcaption>htop output from the Mycroft II while ssh'd in</figcaption>
</figure>

<p>I was curious about what models were being used for wake word detection, and by looking into the GitHub code, I was able to determine that the Mark II was using the <a href="https://github.com/snakers4/silero-vad">Silero VAD</a> engine. Silero is a pre-trained model. However, there is no information available about the data it was trained on - the GitHub page doesn’t say - or the type of algorithm - such as a recurrent neural network - used to train the model.</p>

<p>I have a hunch - and it’s just a hunch - that Silero uses some of the Mycroft Precise wake word data that was captured via opt-in mechanisms. I was the main female contributor to that dataset - and if Silero was trained on Precise data, it would explain why it’s so accurate for my voice. But, because the provenance of the training data isn’t clear, I won’t be able to tell for sure.</p>

<h4 id="speech-recognition">Speech recognition</h4>

<p>Finding out what is used for speech recognition was slightly more challenging. In previous versions of Mycroft software, the speech recognition layer is configurable through the <code class="language-plaintext highlighter-rouge">mycroft-config.conf</code> file, allowing the use of on-device speech recognition, or a preferred cloud provider. That configuration is <a href="https://github.com/MycroftAI/mycroft-dinkum/blob/master/shared/mycroft/configuration/mycroft.conf">stored in a different location</a> under <code class="language-plaintext highlighter-rouge">mycroft-dinkum</code>, but I was able to find it. The STT module was set to <code class="language-plaintext highlighter-rouge">mycroft</code> - I’m not sure what this means, but I <em>think</em> it means Mark II is using the Google cloud service, anonymised through the home.mycroft.ai platform. Again, there’s a cloud - and network - dependency here.</p>

<h4 id="intent-parsing-and-skills">Intent parsing and Skills</h4>

<p>Once an STT utterance transcription has been identified by the speech recognition layer, the voice assistant needs to know how to tie the utterance to a command and pass it to a Skill for handling that command. In the Mark II, from what I could tell in the <a href="https://github.com/MycroftAI/mycroft-dinkum/blob/master/services/intent/service/intent_service.py">source code</a>, that layer is provided by <a href="https://github.com/MycroftAI/padatious">Padatious</a>, a neural-network based intent parser.</p>

<p>The Skills range on the Mark II is very limited - you can search for weather, find out the time in different timezones - which was one of my most-used Skills, play from a pre-defined list of internet radio stations, and query Wikipedia. Limiting the range of Skills means that intent parsing is easier - because you have fewer Skills to choose between. However, passing the right query to a Skill can be problematic if your speech recognition isn’t accurate. Intent parsing for Named Entities - people, places, products, especially Indigenous-language-derived ones, worked reasonably well. Finding out the weather for “Yarrawonga”, “Geelong” and “Canberra” were all recognised correctly; “Wagga Wagga” wasn’t. Queries to Wikipedia were parsed accurately - “tell me about pierogi” (Polish derivation) and “tell me about Maryam Mirzakhani” (Persian derivation) - were both correctly identified.</p>

<h4 id="text-to-speech">Text to speech</h4>

<p>Text to speech, or synthetic speech, is a complement to speech recognition, and takes written phrases and outputs speech as audio. For this layer, the Mark II uses the <a href="https://github.com/MycroftAI/mimic3">Mimic 3 engine</a>, a TTS engine based on the <a href="https://github.com/jaywalnut310/vits">ViTS</a> algorithm. The GitHub repo for Mimic 3 doesn’t contain the original data the Mimic 3 voices were trained on, <a href="https://mycroft.ai/blog/introducing-mimic-3/">but in this blog post, developer Mike Hansen provides a technical walkthrough of how the models were trained</a>, including the challenges of training new languages, and the phonetic and normalisation challenges that entails.</p>

<p>By default, the Mark II uses the UK English “Pope” Mimic 3 voice, which is a male-gendered voice. I was pleasantly surprised by this, given the industry default of gendering voice assistants as female, which is covered at length in the book <em><a href="https://mitpress.mit.edu/9780262542791/the-smart-wife/">The Smart Wife</a></em> by Yolande Strengers and Jenny Kennedy <sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup>. There were no Australian accents available.</p>

<p>I have a lot of my own (female, Australian) voice data recorded, but I didn’t want to contribute it to the Mimic 3 project. There are growing concerns around how voice and video data of people is being used to create realistic avatars - digital characters that sound, and look, like real humans - and until we have better regulation, I don’t particularly want a “Kathy” voice out in the wild - because I have no control over how it would be used. For example, I know that sex doll companies have approached voice startups wanting access to voices to put into their products. As we say in ‘Strayan: yeah, nah.</p>

<p>Mimic 3 works offline, and I was surprised at how fast it generated speech - there was a slight delay, but not very noticeable at all. Some of the pronunciations in the Pope voice were definitely a little off - a key issue in TTS is getting the generated voice to have the correct emphasis and prosody - but I was still pretty impressed. When I’m done with my PhD work, I’d love to train a Mimic 3 voice on my own voice data to understand the process a bit better.</p>

<h4 id="screen">Screen</h4>

<p>Mark II uses the <a href="https://wiki.ubuntu.com/Plymouth">Plymouth splash screen manager</a> for the touch screen visuals, and looking at the htop output, this one component uses over 16% of the available CPU. I found the visuals very well-designed and complementary to the audio information that was presented by the TTS layer.</p>

<p>The screen adds additional complexity and consideration for Skill designers however; not only do they have to design a pleasant <em>voice</em> interaction experience in a Skill , but for devices like the Mark II which are multi-modal, the Skill designer must now ensure a complementary <em>visual</em> experience.</p>

<h2 id="overall-impressions">Overall impressions</h2>

<p>The Mark II packs some impressive hardware, and mature software into a solid form factor. The visual design is well integrated with the conversational design, and it’s intended to be extensible - a boon for those who like to experiment and tinker. The software layers that are used are generally matured, and predominantly run on-device, with the exception of the speech recognition layer (I think). The Skills all have a dependency on external services - Wikipedia, weather and so on. The integration with the home.mycroft.ai backend serves to protect my privacy - as long as I trust that platform - and there was no evidence in any of the digging I did that the device is “leaking” data to third party services.</p>

<p>These positive factors are tarnished by the high price point (listed at $USD 499, although the Kickstarter price was a lot lower at $USD 199) and the lack of Skills that integrate with other services - like Spotify. This is a device that is capable of so much more - it’s a diamond in the rough. But what would give it more polish?</p>

<p>And that takes me to part 2 of this post - ecosystems, infrastructures and the friction of privacy.</p>

<h2 id="a-critical-lens-on-an-inflection-point-in-voice-assistant-technology-we-are-in-the-trough-of-disillusionment">A critical lens on an inflection point in voice assistant technology: we are in the trough of disillusionment</h2>

<p>It’s a difficult time for the voice assistant industry.</p>

<p>Amazon has recently announced huge layoffs to its Alexa voice assistant department (see write ups by <a href="https://arstechnica.com/gadgets/2022/11/amazon-alexa-is-a-colossal-failure-on-pace-to-lose-10-billion-this-year/">Ars Technica</a>, <a href="https://www.businessinsider.com/amazon-alexa-layoff-disney-iger-taylor-swift-ticketmaster-2022-11">Business Insider</a>, and <a href="https://www.vox.com/recode/2022/11/16/23463223/amazon-layoffs-2022-alexa-luna-voluntary-release-program">Vox</a>), as it struggles to find a path to monetisation for the loss-leading hardware devices that its been shipping. Google has <a href="https://www.sfchronicle.com/tech/article/google-mass-layoffs-here-s-how-many-bay-area-17742171.php">followed this trend</a>. This also comes off the back of an <a href="https://9to5google.com/2022/06/13/google-assistant-voice-apps/">architectural change at Google where it dropped support for third party applications on its Assistant voice apps and devices</a>, which has the effect of more tightly integrating its hardware with the Android ecosystem. Apple - the other big player in the voice assistant space, with Siri, has begun quietly laying off third-party contractors, according to <a href="https://kathyreid.com.au/contact/">reports</a>. Baidu, the largest voice player outside of Western Europe and America, with its Xiaodu assistant, which had a <a href="https://www.reuters.com/technology/baidus-ai-voice-assistant-xiaodu-closes-funding-51-bln-valuation-2021-08-24/">$5b valuation</a> just two short years ago, has also <a href="https://intellizence.com/insights/layoff-downsizing/major-companies-that-announced-mass-layoffs/">shed 10-15% of its staff.</a> The outlier here is the open source Home Assistant, and its commercial sister operation, Nabu Casa, who have <a href="https://arstechnica.com/gadgets/2022/12/with-voice-assistants-in-trouble-home-assistant-starts-a-local-alternative/">announced the impending launch of a voice-assistant-with-screen competitor</a> to Google Nest Hub and to the Amazon Echo Show, the Home Assistant Yellow.</p>

<p>Previous <a href="https://www.zdnet.com/article/eight-billion-voice-assistants-will-be-in-use-by-2023/">predictions that there will be 8 billion voice assistant devices in use by this year</a> now appear idealistic indeed.</p>

<h3 id="voice-assistants-and-theories-of-innovation">Voice assistants and theories of innovation</h3>

<p>It’s fair to say that voice assistants have reached the “trough of disillusionment”. This term belongs to Gartner and their Hype Cycle; a frame they use to plot the adoption and integration of emerging technology. The “trough of disillusionment” refers to a period in a technology’s history where:</p>

<blockquote>
  <p>Interest wanes as experiments and implementations fail to deliver. Producers of the technology shake out or fail. Investments continue only if the surviving providers improve their products to the satisfaction of early adopters.</p>

  <p><cite><a href="https://www.gartner.com/en/research/methodologies/gartner-hype-cycle">Gartner Hype Cycle</a> </cite></p>
</blockquote>

<p>The Gartner Hype Cycle is a theory of innovation; different technologies move through the Hype Cycle at varying rates, influenced by a range of factors. Other theories of innovation use divergent analytical lenses, or ascribe primacy to differing drivers and constraints on technology. The <a href="https://en.wikipedia.org/wiki/Diffusion_of_innovations">diffusion of innovation</a> theory gave us the terms “early adopters” and “laggards”. <a href="https://en.wikipedia.org/wiki/Induced_innovation">Induced innovation</a> <sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup> for example places emphasis on economic factors such as market demand. Evolutionary theory focuses on the search for better tools and technologies, with the market selecting - and ensuring the survival - of the best. <a href="https://en.wikipedia.org/wiki/Path_dependence">Path dependence</a> models valorize the role of seemingly insignificant historical changes that compound to shape a technology’s dominance or decline. The <a href="https://en.wikipedia.org/wiki/Technological_transitions#Multi-level_perspective_(MLP)_on_technological_transitions">multi-level perspective</a> blends the micro and macro levels together, showing how they interact to influence technological development. <a href="https://hbr.org/2015/12/what-is-disruptive-innovation">Disruptive innovation theory</a> <sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup> takes a contingent approach; different innovations require different strategies to challenge and unseat established incumbents. Apple unseated Nokia with touch screens. Linux dominated the data centre due to higher reliability and performance. Netflix swallowed Blockbuster by leveraging increasing internet speeds for content delivery. Disruptions harnesses interacting social, economic and political developments.</p>

<p>I digress. What all of these views of innovation have in common, regardless of their focus - is inter-dependency of factors that influence a technology’s trajectory - of adoption, success, return on investment.</p>

<p>So what are the inter-dependencies in voice assistant technology that lead us to our current inflection point?</p>

<h3 id="platform-and-service-inter-dependencies">Platform and service inter-dependencies</h3>

<p>Voice assistants are interfaces. They enable interaction with other systems. We speak to our phones to call someone. We speak to our televisions to select a movie. We speak to our car console to get directions. A voice assistant like Mycroft, or Alexa, or Google Home or Siri is a multi-purpose interface. It is reliant on connecting to other systems - systems of content, systems of knowledge, and systems of data. Wikipedia for knowledge articles, a weather API for temperature information, or a music content provider for music. These are all platform inter-dependencies.</p>

<p>Here, large providers have an advantage because they can <a href="https://en.wikipedia.org/wiki/Vertical_integration">vertically integrate</a> their voice assistant. Google has Google Music, Amazon has Amazon Music, Apple has Apple Music. Mycroft has no music service, and this has no doubt played into Spotify’s decision to block Mycroft from interfacing with it. Content providers know that their content is valuable; this is why Paramount and HBO are launching their own platforms rather than selling content to Netflix.</p>

<p>Voice assistants need other platforms to deliver value to the end user. Apple knew this when they <a href="https://www.theverge.com/2020/3/31/21201666/apple-acquires-weather-app-dark-sky-shut-down-android-wear-os-ios">acquired Dark Sky</a> and locked Android users out of the platform; although platforms like <a href="http://openweathermap.org/">Open WeatherMap</a> are filling this gap. We’ve seen similar content wars play out in the maps space; Google Maps is currently dominant, but <a href="https://www.openstreetmap.org/user/Pieter%20Vander%20Vennet/diary/400909">Microsoft and Bing are leveraging OpenStreetMap to counter this with Map-Builder - raising the ire of open source purists in the process</a>.</p>

<p>Voice assistants need content, and services, to deliver end user value.</p>

<h3 id="discovery---or-identifying-what-skills-a-voice-assistant-can-respond-to">Discovery - or identifying what Skills a voice assistant can respond to</h3>

<p>Voice assistants are interfaces. We use myriad interfaces in our everyday lives; a steering wheel, a microwave timer, an espresso coffee maker, an oven dial, a phone app, natural language, a petrol bowser, an EV charger. I doubt you RTFM’d for them all. And here’s why: interfaces are designed to be intuitive. We intuitively know how a steering wheel works (even if, for example, you’ve never driven a manual). If you’ve used one microwave, you can probably figure out another one, even if the display is in a foreign language. Compare this with the <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/ConcordeCockpitSinsheim.jpg/1280px-ConcordeCockpitSinsheim.jpg">cockpit of the Concorde</a> - a cacophony of knobs, buttons and dials.</p>

<p>If you’ve used Alexa or Siri, then you could probably set a timer, or ask about something from Wikipedia. But what else can the assistant do? This is the discovery problem. We don’t know what interfaces can do, because we often don’t use all the functions an interface provides. When was the last time you dimmed the dashboard lights in your car? Or when did you last set a defrost timer on your microwave?</p>

<p>The same goes for voice assistants; we don’t know what they <em>can</em> do, and this means we don’t maximise their utility. But what if a voice assistant gave you hints about what it could do? As <a href="https://www.bbc.com/news/business-64371426">Katherine Latham reports in this article for the BBC</a>, it turns out that people find that incredibly annoying; we don’t want voice assistants to interrupt us, or suggest things to us. We find that intrusive.</p>

<p>How, then, do we become more acquainted with a voice assistant’s capabilities?</p>

<blockquote>
  <p>For more information on skill discovery in voice assistants, <a href="https://dl.acm.org/doi/pdf/10.1145/3185336?casa_token=sgydV0H4utsAAAAA:1NBGYaY90JyH3QtzD8LGmXPubyCQ-M5B4_bj0ocsaL2-qpCvE4AMYjwPRxQVokxIgZI1eHlcuxly1SE">you might find this paper interesting</a>.</p>

  <p><cite>White, R. W. (2018). Skill discovery in virtual assistants. <em>Communications of the ACM</em>, <em>61</em>(11), 106-113.</cite></p>
</blockquote>

<h3 id="privacy-and-the-surveillance-economy---or---who-benefits-from-the-data-a-voice-assistant-collects">Privacy and the surveillance economy - or - who benefits from the data a voice assistant collects?</h3>

<p>There is a clear trade-off in voice assistants between functionality and privacy. Amazon Alexa can help you order groceries - from Amazon. Google Home can read you your calendar and email - from Gmail. Frictionless, seamless access to information and agents which complete tasks for you requires sharing data with the platforms that provide those functions. This is a two-fold dependency; first the platforms that provide this functionality must be <em>available</em> - my vertical dependency argument from above. Secondly, you must <em>provide personal information</em> - preferences, a login, something trackable - to these platforms in order to receive their benefits.</p>

<p>I’m grossly oversimplifying his arguments here, however the well-known science and technology studies scholar, Luciano Floridi, has argued that “privacy is friction” <sup id="fnref:6"><a href="#fn:6" class="footnote" rel="footnote" role="doc-noteref">6</a></sup>. The way that information is organised contributes to, or impinges upon, our privacy. Voice assistants that track our requests, record our utterances, and then use this information to suggestively sell more products to us reduce friction by reducing privacy. Mireille Hildebrandt, in her book <em><a href="https://www.e-elgar.com/shop/gbp/smart-technologies-and-the-end-s-of-law-9781786430229.html">Technology and the Ends of the Law</a></em>, goes one step further: voice assistants impugn our personal agency through their anticipatory nature <sup id="fnref:7"><a href="#fn:7" class="footnote" rel="footnote" role="doc-noteref">7</a></sup>. By predicting, or assuming our desires and needs, our ability to be reflective in our choices, to be be mindful of our activities, is eroded. Academic Shoshana Zuboff takes a broader view of these developments, theorising that we live in an age of <a href="https://en.wikipedia.org/wiki/Surveillance_capitalism">surveillance capitalism</a>; where the data produced through technologies which surveil us - our web browsing history, CCTV camera feeds - and yes - utterances issued to a voice assistant - become a form of capital which is traded in order to more narrowly market to us. Jathan Sadowski has argued, similarly, for the concept of <em>datafication</em>; when our interactions with the world become a form of capital - for trading, for investing, and for extraction.</p>

<p>Many of us have become accustomed to speaking with voice interfaces, and glossing over how those utterances are stored, or linked, or mined - downstream in an ecosystem. In fact, Professor Joe Turow argues this case eloquently in his book, <em><a href="https://yalebooks.yale.edu/book/9780300268164/the-voice-catchers/">The Voice Catchers</a>:</em> <sup id="fnref:8"><a href="#fn:8" class="footnote" rel="footnote" role="doc-noteref">8</a></sup> by selling voice assistants at less than cost, their presence, and our interactions with them have been normalised, and backgrounded. We don’t think anything of sharing our data with the corporate platforms on which they rest. Giving personal data to a voice assistant is something we take for granted. By design. We trade the utility of frictionless access to services with the friction to privacy.</p>

<p>And this points to a key challenge for open source and private voice assistants - like Mycroft and like Home Assistant; in order to deliver services and content through those voice assistants, we have to give up some privacy. Mycroft handles this by <em>abstraction</em>; for example, the speech recognition that is done through Google’s cloud service is channelled through home.mycroft.ai - and done under a single identifier so that individual Mycroft users’ privacy is protected.</p>

<p>How do voice assistants overcome the tradeoff between utility and privacy?</p>

<h3 id="hardware-is-hard">Hardware is hard</h3>

<p>One of my favourite books is by the developer of the almost-unheard-of open source assistant, <a href="https://www.chumby.com/">Chumby</a> - Bunnie Huang - <a href="https://www.penguinrandomhouse.com/books/565617/the-hardware-hacker-by-andrew-bunnie-huang/">The Hardware Hacker</a> <sup id="fnref:9"><a href="#fn:9" class="footnote" rel="footnote" role="doc-noteref">9</a></sup>. It is a chronicle of the myriad challenges involved in designing, manufacturing, certifying and bringing to market a new consumer device. For every mention of “Chumby” in the book, you could substitute “Mycroft Mark II”. Design tradeoffs, the capital required to fund manufacturing, quality control issues, a fickle consumer market - all are present in the tale of the Mark II.</p>

<p>Hardware is hard.</p>

<p>Hardware has to be designed, tested, integrated with software through drivers and embedded libraries, it has to be certified compliant with regulations. And above all, it has to yield a profit for the hardware manufacturer to <em>keep</em> manufacturing the hardware. If we think about the escalating costs of the Mark II - the Chumby - and then look at how cheaply competitor devices - Alexa, Google Home - are sold for - then it becomes clear that hardware is a <a href="https://en.wikipedia.org/wiki/Loss_leader">loss leader</a> for ecosystem integration. I have no way to prove this, but I strongly suspect that the true cost of an Alexa or Google Home is four or five times more than what a consumer pays for it.</p>

<p>Voice assistants are interfaces.</p>

<p>And by having a voice assistant in a consumer’s home, it becomes an interface into a broader ecosystem - more closely imbricating and embroiling the customer in the manufacturer’s ecosystem. And if you can’t transform that loss leader into a recurrent revenue stream - through additional purchases, or through paid voice search, or through voice advertising revenue - then the hardware becomes a sunk cost. And you start laying off staff.</p>

<p>An open source voice assistant strategy is different - its selling point is in opposition to a commercial assistant - its privacy, its interoperability, its extensibility. Its <em>lack</em> of lock in to an ecosystem. And the Mark II is all of those things - private, interoperable and extensible. But it still hasn’t achieved product market fit, particularly at its high, true-cost price point.</p>

<p>How do voice assistants reconcile the cost of hardware and the ability to achieve product market fit?</p>

<h3 id="overcoming-the-trough-of-disillusionment">Overcoming the trough of disillusionment</h3>

<p>So how might voice assistants overcome the trough of disillusionment?</p>

<h4 id="higher-utility-through-additional-content-data-sources-and-apis">Higher utility through additional content, data sources and APIs</h4>

<p>Voice assistant utility is a function of how many Skills the device has, how useful those Skills are to the end user, and how frequently they are used. Think about your phone. What apps do you use the most? Text messaging? Facebook? Tik Tok? What app could you not delete from your phone? Skills require two things; a data source or content source, and a developer community to build them. Open source enthusiasts may build a Skill out of curiosity or to slake a desire to be able to build a Skill, but commercial entities will only invest in Skill building if it generates revenue for a product or service. And then what does the voice assistant manufacturer do to share in that revenue? So we need to find ways to incentivise Skill development (and maintenance) as well as revenue sharing models that help support the infrastructure, Skill development - and the service or data that the Skill interfaces with. For example, Spotify understands this - and will reserve access to their highly-valued content only for business arrangement that help them generate additional revenue.</p>

<p>I also see governments having a role to play here - imagine for example accessing government services through your voice assistant - no sitting in queues on a phone. The <a href="https://en.wikipedia.org/wiki/Minitel">French Minitel service</a> was originally a way to help citizens access services like telephone directories, and postal information. But governments want to both streamline the development they do in-house, and control access to API information; will there be a level of comfort in opening access - and if so, who bears the cost of development?</p>

<h4 id="distinguishing-voice-assistants-in-the-home-from-the-voice-assistant-in-your-pocket-your-mobile-phone">Distinguishing voice assistants in the home from the voice assistant in your pocket (your mobile phone)</h4>

<p>Most of us already have a voice assistant in our pocket - if we have an Android or iPhone mobile phone. So what niche does a physical voice assistant serve? One differentiator I see here is privacy; a voice assistant on a mobile phone ties you to the ecosystem of that device - to Apple, or Google or another manufacturer. Another differentiator is the context in which the voice assistant operates; few of us would want to use a voice assistant in a public or semi-public context, such as on a train or a bus or in a crowd. But a home office is semi-private; and many of us are now working from home. Is there an opportunity for a home office assistant? That isn’t tied to a mobile phone ecosystem? But thinking this through its trajectory of development, if we’re working from home, then we’re <em>working</em>. How will employers seek to leverage voice assistants, and does this sit in opposition to privacy? We are already seeing a backlash against the <a href="https://www.nytimes.com/2022/08/24/podcasts/the-daily/workplace-surveillance-productivity-tracking.html">rise of workplace surveillance</a> (itself a form of surveillance capitalism), so I think there will be barriers to employment or work-based technology being deployed on voice assistants.</p>

<h4 id="towards-privacy-user-agency-and-user-choice">Towards privacy, user agency and user choice</h4>

<p>I’m someone who places a premium on privacy: I pay for encrypted communications technology and pay for encrypted email that isn’t harvested for advertising. I pay for services like relay that hide my email address from those who would seek to harvest it for surveillance capitalism.</p>

<p>But not everyone does; because privacy is friction, and we have normalised the absence of friction for the price of privacy. As we start to see models like ChatGPT and Whisper that hoover up all the public data on the internet - YouTube videos, public photographs on platforms like Flickr - I think we will start to see more public awareness of how are data is being used - and not always in our own best interests. In voice assistants, this means more safe-guarding of user data, and more protection against harnessing that data for profit.</p>

<p>Voice assistants also have a role to play in user agency and user choice. This means giving people choice about where intents - the commands used to activate Skills - lead. For example, if a commercial voice assistant “sells” the intent “buy washing powder” to the highest “washing powder” bidder, then this restricts user agency and user choice. So we need to think about ways that put control back in the user’s hands - or, in this case, voice. But this of course constrains the revenue generation capabilities of voice assistants.</p>

<p>For voice assistants to escape the trough of disillusionment, they will need to prioritise privacy, agency, utility and choice - and still find a path to revenue.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Zuboff, S. (2019). <em>The age of surveillance capitalism: The fight for a human future at the new frontier of power: Barack Obama’s books of 2019</em>. Profile books. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:2">
      <p>Sadowski, J. (2019). When data is capital: Datafication, accumulation, and extraction. <em>Big data &amp; society</em>, <em>6</em>(1), 2053951718820549. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:3">
      <p>Strengers, Y., &amp; Kennedy, J. (2021). <em>The smart wife: Why Siri, Alexa, and other smart home devices need a feminist reboot</em>. Mit Press. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:4">
      <p>Ruttan, V. W. (1997). Induced innovation, evolutionary theory and path dependence: sources of technical change. <em>The Economic Journal</em>, <em>107</em>(444), 1520-1529. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:5">
      <p>Si, S., &amp; Chen, H. (2020). A literature review of disruptive innovation: What it is, how it works and where it goes. <em>Journal of Engineering and Technology Management</em>, <em>56</em>, 101568. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:6">
      <p>Floridi, L. (2005). The ontological interpretation of informational privacy. <em>Ethics and information technology</em>, <em>7</em>, 185-200. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:7">
      <p>Hildebrandt, M. (2015). <em>Smart technologies and the end (s) of law: novel entanglements of law and technology</em>. Edward Elgar Publishing. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:8">
      <p>Turow, J. (2021). <em>The voice catchers: How marketers listen in to exploit your feelings, your privacy, and your wallet</em>. Yale University Press. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
    <li id="fn:9">
      <p>Huang, A. B. (2019). <em>The hardware hacker: Adventures in making and breaking hardware</em>. No Starch Press. <a href="#fnref:9" class="reversefootnote" role="doc-backlink">↩︎</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Kathy Reid</name></author><category term="hardware" /><category term="opensource" /><category term="technology" /><category term="voice-and-speech-technology" /><category term="hardware" /><category term="innovation" /><category term="mark-ii" /><category term="mycroft" /><category term="opensource" /><category term="privacy" /><category term="voice" /><category term="voice-assistant" /><summary type="html"><![CDATA[In this post, I first take the Mycroft Mark II for a technical deep dive and find that it's a solid piece of hardware, but with a lack of useful Skills. Secondly, I reflect on the inflection point we are seeing in the innovation of voice assistants and speculate on where the industry may need to go next. It's all about ecosystems, infrastructures and the friction of privacy.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2023/02/2023-02-18-14.53.25-768x1024.jpg" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2023/02/2023-02-18-14.53.25-768x1024.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">State of my toolchain 2022</title><link href="https://blog.kathyreid.id.au/2022/11/13/state-of-my-toolchain-2022/" rel="alternate" type="text/html" title="State of my toolchain 2022" /><published>2022-11-13T22:08:05+11:00</published><updated>2022-11-13T22:08:05+11:00</updated><id>https://blog.kathyreid.id.au/2022/11/13/state-of-my-toolchain-2022</id><content type="html" xml:base="https://blog.kathyreid.id.au/2022/11/13/state-of-my-toolchain-2022/"><![CDATA[<p>Welcome to my now-nearly-yearly State of my Toolchain report (you can see previous editions for <a href="/2021/05/02/state-of-my-toolchain-2021/">2021</a>, <a href="/2019/09/05/toolchain-2018-2/">2019</a>, <a href="/2018/06/25/toolchain-2018/">2018</a> and <a href="/2016/09/30/toolchain-2016/">2016</a>). I began these posts as a way to document the tools, applications and hardware that were useful to me in the work that I did, but also to help observe how they shifted over time - as technology evolved, my tasks changed, and as the underpinning assumptions of usage shifted. In this year’s post, I’m still going to cover my <a href="#ataglance">toolchain at a glance</a>, and report on what’s changed, and what gaps I still have in my workflow - and importantly - <a href="#toolchaintrends">reflect on the shifts that have occurred over 5 years</a>.</p>

<h2 id="at-a-glance">At a glance</h2>

<h3 id="hardware-wearables-and-accessories">Hardware, wearables and accessories</h3>

<ul>
  <li>My main laptop is an <a href="https://rog.asus.com/laptops/rog-zephyrus/rog-zephyrus-g15-series/">ASUS ROG Zephyrus G15 GA502IV</a> (no change since last report)</li>
  <li>Google Pixel 4a 5G running stock Android (<em>changed since last report</em>)</li>
  <li>Mobvoi Ticwatch Pro 2020 model (<em>changed since last report</em>)</li>
  <li><a href="https://www.officeworks.com.au/shop/officeworks/p/fellowes-book-stand-fe21100">Fellowes book stand</a> - again, very light and easily portable</li>
  <li><a href="https://www.logitech.com/en-au/products/webcams/c920-pro-hd-webcam.960-000770.html">Logitech C920 web cam</a> (no change since last report)</li>
  <li><a href="https://www.jbhifi.com.au/products/stadium-usbkit-microphone-pack">Stadium USB microphone</a> (no change since last report)</li>
  <li><a href="https://www.sennheiser-hearing.com/en-AU/p/momentum-wireless/">Sennheiser Momentum 3 wireless bluetooth headphones</a> (<em>changed since last report</em>)</li>
</ul>

<h3 id="software">Software</h3>

<ul>
  <li><a href="https://atom.io/">Atom</a> with a range of plugins for writing code, thesis notes (no change since last report)</li>
  <li><a href="https://pandoc.org/">Pandoc</a> for document generation from MarkDown (no change since last report)</li>
  <li><a href="https://www.zotero.org/">Zotero</a> for referencing (using Better BibTeX extension) (no change since last report)</li>
  <li><a href="https://github.com/patrikx3/onenote">OneNote for Linux by @patrikx3</a> (no change since last report)</li>
  <li><a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Nightly</a> edition of Firefox (no change since last report)</li>
  <li><a href="https://zoom.us">Zoom</a> (no change since last report)</li>
  <li><a href="https://www.microsoft.com/en-au/microsoft-teams/download-app">Microsoft Teams for Linux</a> (no change since last report)</li>
  <li><a href="http://mayccoll.github.io/Gogh/">Gogh</a> for Linux terminal preferences (no change since last report)</li>
  <li><a href="https://super-productivity.com/">Super productivity</a> (instead of Task Warrior) (<em>changed since last report</em>)</li>
  <li><a href="https://cuckoo.team">Cuckoo Timer</a> for Pomodoro sessions (<em>changed since last report</em>)</li>
  <li><a href="https://rescuetime.com">RescueTime</a> for time tracking (no change since last report)</li>
  <li><a href="https://www.beeminder.com/">BeeMindr</a> for commitment based goals (no change since last report)</li>
  <li><a href="https://mycroft.ai">Mycroft</a> as my Linux-based voice assistant (no change since last report)</li>
  <li><a href="https://okular.kde.org/">Okular</a> as my preferred PDF reader (instead of Evince on Linux and Adobe Acrobat on Windows) (<em>changed since last report</em>)</li>
  <li><a href="https://www.nocodb.com/">NocoDB</a> for visual database work (<em>changed this report</em>)</li>
  <li><a href="http://observablehq.com/">ObservableHQ</a> for data visualistion (<em>changed this report</em>)</li>
</ul>

<h3 id="techniques">Techniques</h3>

<ul>
  <li>Pomodoro (no change since last report)</li>
  <li><a href="https://passionplanner.com/">Passion Planner</a> for planning (no change since last report)</li>
  <li><a href="https://blog.rescuetime.com/time-blocking-101/">Time blocking</a> (used on and off, but a lot more recently)</li>
</ul>

<h2 id="whats-changed-since-the-last-report">What’s changed since the last report?</h2>

<p>There’s very little that’s changed since my last State of My Toolchain report in 2021: I’m still doing a PhD at the <a href="https://cybernetics.anu.edu.au">Australian National University’s School of Cybernetics</a>, and the majority of my work is researching, writing, interviewing, and working with data.</p>

<h3 id="tools-for-phd-work">Tools for PhD work</h3>

<p>My key tools are <a href="https://www.maxqda.com/">MaxQDA</a> for qualitative data analysis - Windows only, unfortunately, and prone to being buggy with <a href="/2022/06/25/maxqda-error-1001-error-converting-project-onedrive/">OneDrive</a>. My <a href="/2020/12/27/academic-writing-workflow/">writing workflow</a> is done using Atom. One particularly useful tool I’ve adopted in the last year has been <a href="/2022/07/27/using-nocodb-build-database-interview-tracking/">NocoDB</a> - it’s an opensource alternative to visual database interfaces like Notion and AirTable, and I found it very useful - even if the front end was a little clunky. Working across Windows and Linux, I’ve settled on Okular as my preferred PDF reader and annotator - I read on average about 300-400 pages of PDF content a week, and Adobe Acrobat was buggy as hell. Okular has fine-grained annotating tools, and the interface is the same across Windows and Linux. Another tool I’ve started to use a lot this year is <a href="http://observablehq.com/">ObservableHQ</a> - it’s like Jupyter notebook, but for d3.js data visualisations. Unfortunately, they’ve <a href="https://talk.observablehq.com/t/faq-october-2022-platform-change/7120">recently brought in a change to their pricing structure</a>, and it’s going to cost me $USD15 a month for private notebooks - and I don’t think the price point is worth it.</p>

<h3 id="hardware-and-wearables">Hardware and wearables</h3>

<p>The key changes this year are a phone upgrade - my Pixel 3 screen died, and the cost to replace the screen was exorbitant - a classic example of planned obsolescence. I’ve been happy with Google’s phones - as long as I disable all the <del>spyware</del> voice enabled features, and settled on the Pixel 4a 5G. It’s been a great choice - clear, crisp photos, snappy processor, and excellent battery life.</p>

<p>After nearly four years, my Mobvoi Ticwatch Pro started suffering the “ghost touch” problem, where the touch interface started picking up non-existent taps. A factory restart didn’t solve the problem, so I got the next model up - the Ticwatch Pro 2020 - at 50% off. This wearable has been one of my favourite pieces of hardware - fast, responsive, durable - and I can’t imagine not having a smartwatch now. I’ve settled on the <a href="https://play.google.com/store/apps/details?id=fr.thema.wear.watch.flower">Flower watch face</a> after using <a href="https://play.google.com/store/apps/details?id=com.pujie.wristwear.pujieblack">Pujie Black</a> for a long time - both heavily customisable. The love Google is giving to Wear OS is telling - I have much smoother integration between phone apps and Wear OS apps than even 1-2 years ago.</p>

<p>After having two Plantronics Backbeat Pro headphones - one from around 2017 and the other circa 2021, both still going, but the first with a very poor battery life and battered earpads, I invested in my first pair of reasonable headphones - the Sennheiser Momentum Pro 3. The sound quality is incredible - I got them for $AUD 300 which I thought was a lot to pay for headphones, but they’ve been worth every penny - particularly when listening to speech recognition data.</p>

<p>With so much PhD research and typing, I found my Logitech MK240 just wasn’t what I needed - it’s a great little unit if you don’t have anything else, but it was time for a mechanical keyboard <del>because I love expensive hobbies</del>. After some research, and a mis-step with the far too small <a href="http://szhuoji.com/z88rgb81keys/huo-ji-z-88-rgb-mechanical-gaming-keyboard-blue-switch-led-backlit-water-resistant-compact-81-keys-anti-ghosting-for-mac-pc-white-.html">HuoJi Z-88, (the keypresses for linux command line tasks were horrendous)</a> I settled on the Keychron K8 and haven’t looked back. Solid, sturdy, blue Gateron switches - it’s a dream to type on, and works well across Windows and Linux. However, on Linux it is using a Mac keyboard layout and I had to do some tweaking with a keymapper - and used <a href="https://github.com/rvaiya/keyd">keyd</a>. My only disappointment with Keychron is the hackyness needed to get it working properly on Linux.</p>

<h3 id="productivity">Productivity</h3>

<p>My Passion Planner is still going strong, but I haven’t been as diligent as using it as a second brain as I have been in the past, and the price changes this year meant that shipping one to Australia cost me nearly $AUD 120 in total - and that’s unaffordable in the longer term - so I’m actively looking at alternatives as as <a href="https://bulletjournal.com/">Bullet Journalling</a>. The Passion Planner is great - it’s just expensive.</p>

<p>I’ve also dropped Task Warrior in favour of Super Productivity this year. Task Warrior isn’t cross-platform - I can’t use it on Android, or on Windows, and thanks to MaxQDA software, I’m spending a lot more of my time in Windows. The Gothenberg Bit Factory are actively developing Task Warrior - full transparency, I’m a GitHub sponsor of theirs - but the cloud-based and cross-platform features seem to be taking a while to come to fruition.</p>

<p>I’m also using time-blocking a lot more, and am regularly using Cuckoo as a pomodoro timer with a PhD cohort colleague, T. We have an idea for a web app that optimises the timing of Pomodoros based on a feedback loop - but more on that next year.</p>

<h2 id="current-gaps-in-my-toolchain">Current gaps in my toolchain</h2>

<h3 id="visual-git-editor">Visual Git editor</h3>

<p>In my last State of My Toolchain report, I lamented having a good Visual Git Editor. That’s been solved in Windows with <a href="https://desktop.github.com/">GitHub’s desktop application</a>, but as of writing the Linux variant appears to be permanently mothballed. I’m sure this has nothing to do with Microsoft buying GitHub. So I am still on the lookout for a good Linux desktop Git GUI. On the other hand, doing everything by CLI is always good practice.</p>

<h3 id="second-brain">Second Brain</h3>

<p>In my last report I also mentioned having taken Huginn for a spin, and being let down at its immaturity. It doesn’t seem to have come very far. So I’m still on the lookout for “Second Brain” software - this is more than the knowledge management software in the space that tools like <a href="https://roamresearch.com/">Roam</a> and <a href="https://obsidian.md/">Obsidian</a> occupy, but much more an organise-your-life tool. The Microsoft suite - Office, Teams, and their stablemates - are trying to fill this niche, but I want something that’s not dependent on an enterprise login. But I’ve decided to reframe this gap as a “Second Brain” gap - after reading <a href="https://www.goodreads.com/book/show/59989919-building-a-second-brain">Tiago Forte’s book on the topic</a>.</p>

<h3 id="the-fediverse">The Fediverse</h3>

<p>Triggered by Elon Musk’s purchase, and subsequent transformation of Twitter into a flaming dumpster fire, I’ve become re-acquainted with the Fediverse - you can find me on <a href="https://aus.social/@KathyReid">Mastodon</a> here, on <a href="https://pixelfed.au/i/web/profile/493763049940066528">Pixelfed.au</a> here, and on <a href="https://bookwyrm.social/user/KathyReid">Bookwyrm</a> here. However, the tooling infrastructure around the Fediverse isn’t as mature - understandably - as commercial platforms. I’m using Tusky as my Android app, and the advanced web interface. But there are a lack of hosting options for the Fediverse - I can’t find a pre-configured Digital Ocean Droplet for Mastodon, for example - and I think the next year will see some development in this space. If you’re not across Mastodon, I <a href="https://cybernetics.anu.edu.au/2022/11/10/whats-mastodon-and-whats-it-to-do-with-cybernetics/">wrote a piece that uses cybernetic principles to compare and contrast it with Twitter</a>.</p>

<h2 id="5-years-of-toolchain-trends">5 years of toolchain trends</h2>

<p>After five years of the State of My Toolchain report, I want to share some reflections on the longer-term trends that have been influential in my choice of tools.</p>

<h3 id="cross-platform-availability-and-dropping-support-for-linux">Cross-platform availability and dropping support for Linux</h3>

<p>I work across three main operating systems - Linux, Windows (because I have to for certain applications) and Android. The tools I use need to work seamlessly across all three. There’s been a distinct trend over the last five years for applications to start providing Linux support but then move to a “community” model or drop support altogether. Two cases in point were Pomodone - which I dropped because of its lack of Linux support, and RescueTime - which still works on Linux for me, albeit with some quirks (such as not restarting properly when the machine awakes from suspend). This is counter-intuitive given the increasing usage of Linux on the desktop. The aspiration of many Linux aficionados that the current year will be “The Year of Linux on the Desktop” is not close to fruition - <a href="https://gs.statcounter.com/os-market-share/desktop/worldwide">but the statistics show a continued, steady rise - if small - in the number of Linux desktop users</a>. This is understandable though - startups and small SaaS providers cannot justify supporting such a small user base. That said, they shouldn’t <em>claim</em> to support the operating system then <em>drop</em> support - as both Pomodone and RescueTime have done.</p>

<figure class="wp-block-pullquote">
<blockquote>
<p><strong>Takeaway</strong>: products I use need to work cross-platform, anywhere, anytime - and especially on Linux.</p>
</blockquote>
</figure>

<h3 id="please-dont-make-me-change-my-infrastructure-to-work-with-your-product">Please don’t make me change my infrastructure to work with your product</h3>

<p>A key reason for choosing the Ticwatch Pro 2020 over other Mobvoi offerings was that the watch’s charger was the same between hardware models. I’d bought a couple of extra chargers to have handy, and didn’t want to have to buy more “spares”. This mirrors a broader issue with hardware - it has a secondary ecosystem. I don’t just need a mobile phone, I need a charger, a case, and glass screen protectors - a bunch of accessories. These are all different - they exhibit <em>variety</em> - a deliberate reduction in re-usability and a buffer against commodification. But in choosing hardware, one of my selection criteria is now re-usability or upgradeability - how can I re-use this hardware’s supporting infrastructure. The recent <a href="https://www.europarl.europa.eu/news/en/press-room/20220930IPR41928/long-awaited-common-charger-for-mobile-devices-will-be-a-reality-in-2024">decision by Europe to standardise on USB-C</a> is the right one.</p>

<figure class="wp-block-pullquote">
<blockquote>
<p><strong>Takeaway</strong>: don't make me buy a second infrastructure to use your product.</p>
</blockquote>
</figure>

<h3 id="im-happy-to-pay-for-your-product-but-it-has-to-represent-value-for-money-or-its-gone">I’m happy to pay for your product, but it has to represent value for money, or it’s gone</h3>

<p>Several of my tools are open source - Super Productivity, NocoDB, Atom, Pandoc - and where I can, I GitHub sponsor them or provide a monetary contribution.On the whole, these pieces of software are often worth a lot more too me than the paid proprietary software I used - for example, MaxQDA is over $AUD 300 a year - predominantly because it only has one main competitor, NVIVO. I have no issue paying for software, but it has to represent value for money. If I can get the same value - or nearly equivalent - from an open source product, then I’m choosing open source. Taguette wasn’t there over MaxQDA, but Super Productivity has equivalent functionality to Pomodone. Open source products keep proprietary products competitive - and this is a great reason to invest in open source where you are able.</p>

<p>That’s it! Are there any products or platforms you’ve found particularly helpful? Let me know in the comments.</p>]]></content><author><name>Kathy Reid</name></author><category term="research" /><category term="technology" /><category term="data-visualisation" /><category term="hardware" /><category term="opensource" /><category term="personal-productivity" /><category term="productivity" /><category term="toolchain" /><category term="tools" /><summary type="html"><![CDATA[An overview of the software, hardware and other personal productivity toolchains I'm using as of November 2022.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2022/07/nocodb-logo.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2022/07/nocodb-logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Building a database to handle PhD interview tracking using MySQL and noco-db</title><link href="https://blog.kathyreid.id.au/2022/07/27/using-nocodb-build-database-interview-tracking/" rel="alternate" type="text/html" title="Building a database to handle PhD interview tracking using MySQL and noco-db" /><published>2022-07-27T01:23:44+10:00</published><updated>2022-07-27T01:23:44+10:00</updated><id>https://blog.kathyreid.id.au/2022/07/27/using-nocodb-build-database-interview-tracking</id><content type="html" xml:base="https://blog.kathyreid.id.au/2022/07/27/using-nocodb-build-database-interview-tracking/"><![CDATA[<p>So, as folx probably know, I’m currently during a PhD at the <a href="https://cybernetics.anu.edu.au">Australian National University’s School of Cybernetics</a>, investigating voice data practices and what we might be able to do to change them to have less biased voice data, and less biased voice technology products. If you’d like to see some of the things I’ve been working on, you can check out my <a href="https://kathyreid.com.au/portfolio">portfolio</a>. Two of my research methods are related to interviews; the first tranche being shorter exploratory interviews and the second being in-depth interviews with machine learning practitioners.</p>

<p>Because there are many stages to interviews - identifying participants, approaching them for interviews, obtaining consent, scheduling, transcription and coding - I needed a way to manage the pipeline. My <a href="https://cybernetics.anu.edu.au/2020/08/03/the-3ai-phd-sculpting-a-landscape-practice/">PhD cohort colleagues</a> use a combination of AirTable and Notion, but I wanted an opensource alternative (surprise!).</p>

<h2 id="identifying-alternatives-and-choosing-one-to-use">Identifying alternatives and choosing one to use</h2>

<p>I did a scan of what alternatives were available simply by searching for “open source alternative to AirTable”. Some of the options I considered but discarded were:</p>

<ul>
  <li><a href="https://baserow.io">BaseRow</a>: While this is <a href="https://gitlab.com/bramw/baserow">open source,</a> and built in widely adopted frameworks such as Django and Vue.js, and available in Docker and Heroku deploys, the commercial framing behind the product is very much open core. That is, there are a lot of features that are only available in the paid / premium version. I’ve worked with open core offerings before, and I’ve found that the most useful features are usually those that are behind the paywall.</li>
  <li><a href="https://www.appflowy.io/">AppFlowy</a>: While this looked really impressive, and the community behind it looked strong, the use of Flutter and Rust put me off - I’m not as familiar with either of them compared to Vue.js or Django. I also found the documentation really confusing - for example, to install the Linux version it said to “use the official package”, but it didn’t give the name of the official package. Not helpful. On this basis I ruled out AppFlowy.</li>
  <li><a href="https://dbeaver.io/">DBeaver</a>: This tool is more aimed at people who have to work with multiple databases; it provides a using GUI over the top of the database, but is not designed to be a competitor to Notion or AirTable. I wanted something more graphically-focused, and with multiple layout styles (grid, card etc).</li>
</ul>

<p>This left me with <a href="https://www.nocodb.com/">NoCoDB</a>. I kicked the tyres a bit by looking at the <a href="https://github.com/nocodb/nocodb">GitHub</a> code, and read through the <a href="https://docs.nocodb.com/">documentation</a> to get a feel for whether it was well constructed; it was. Importantly, I was able to install it on my localhost; my ethics protocol for my research method prevented it being hosted on a cloud platform.</p>

<h2 id="installation">Installation</h2>

<p>Installation was a breeze. I set up a database in MySQL (also running locally), then <code class="language-plaintext highlighter-rouge">git clone</code>‘d the repo, and used <code class="language-plaintext highlighter-rouge">npm</code> to install the software:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/nocodb/nocodb-seed
cd nocodb-seed
npm install
npm start
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">nocodb</code> uses node.js’s httpd server, and starts the application by default on port 80, so to start using it, you simply go to: <a href="http://localhost:8080/">http://localhost:8080/</a>. One slightly frustrating thing is that it does require an email address and password to log in. <code class="language-plaintext highlighter-rouge">nocodb</code> is a commercial company - they’ve recently done a raised and are hiring - and I suspect this is part of their telemetry, even for self-hosted solutions. I run <a href="https://pi-hole.net/">Pihole</a> as my DNS server, and I don’t see any telemetry from <code class="language-plaintext highlighter-rouge">nocodb</code> in my block list, however.</p>

<p>Next, you need to provide <code class="language-plaintext highlighter-rouge">nocodb</code> with the MySQL database details that you created earlier. This creates some additional tables. <code class="language-plaintext highlighter-rouge">nocodb</code> then creates some base views, but at this point you are free to start creating your own.</p>

<h2 id="deciding-what-fields-i-needed-to-capture-to-be-able-to-visualise-my-interview-pipeline">Deciding what fields I needed to capture to be able to visualise my interview pipeline</h2>

<p>Identifying what fields I needed to track was a case of trial and error. As I added new fields, or modified the datatypes of existing ones, <code class="language-plaintext highlighter-rouge">nocodb</code> was able to be easily re-synced with the underlying database schema. This makes</p>

<p>Identifying what fields I needed to track was a case of trial and error. As I added new fields, or modified the datatypes of existing ones, <code class="language-plaintext highlighter-rouge">nocodb</code> was able to be easily re-synced with the underlying database schema. This makes <code class="language-plaintext highlighter-rouge">nocodb</code> ideal for prototyping database structures.</p>

<figure class="wp-block-image size-large">
<a href="/assets/uploads/2022/07/nocodb-out-of-sync.png"><img src="/assets/uploads/2022/07/nocodb-out-of-sync-1024x395.png" class="wp-image-87881" /></a>
<figcaption><code>nocodb</code> showing tables out of sync</figcaption>
</figure>

<figure class="wp-block-image size-large">
<a href="/assets/uploads/2022/07/nocodb-in-sync.png"><img src="/assets/uploads/2022/07/nocodb-in-sync-1024x348.png" class="wp-image-87882" /></a>
<figcaption><code>nocodb</code> now in sync with the underlying tables</figcaption>
</figure>

<p>In the end, I settled on the following tables and fields:</p>

<h3 id="interviewees-table">Interviewees table</h3>

<ul>
  <li>INTERVIEWEE_ID - a unique, auto-incrementing ID for each participant</li>
  <li>REAL_NAME - the real name of my participant (and one of the reasons this is running locally and not in the cloud)</li>
  <li>CODE_NAME - a code name I ascribed to each participant, as part of my Ethics Protocol</li>
  <li>ROLE_ID - foreign key identifier for the ROLES table.</li>
  <li>EMAIL_ADDRESS - what it says on the tin.</li>
  <li>LINKEDIN_URL - I used LinkedIn to contact several participants, and this was a way of keeping track of that information.</li>
  <li>HOMEPAGE_URL - the participant’s home page, if they had one. This was useful for identifying the participant’s background - part of the <a href="https://en.wikipedia.org/wiki/Nonprobability_sampling">purposive sampling</a> technique.</li>
  <li>COUNTRY_ID - foreign key identifier for the COUNTRIES table - again used for purposive sampling.</li>
  <li>HOW_IDENTIFIED - to identify whether people had been <a href="https://en.wikipedia.org/wiki/Snowball_sampling">snowball sampled</a></li>
  <li>HAS_BEEN_CONTACTED - Boolean to flag whether the participant had been contacted</li>
  <li>HAS_AGREED_TO_INTERVIEW - Boolean to flag whether the participant had agreed to be interviewed</li>
  <li>NO_RESPONSE_AFTER_SEVERAL_ATTEMPTS - Boolean to flag whether the participant hadn’t responded to a request to interview</li>
  <li>HAS_DECLINED - Boolean to flag an explicit decline</li>
  <li>INTERVIEW_SCHEDULED - Boolean to indicate a date had been scheduled with the participant</li>
  <li>IS_EXPLORATORY - Boolean to indicate the interview was exploratory rather than in-depth. Having an explicit Boolean for the interview type allows me to add others if needed (while I felt that a full blown table for interview type was overkill).</li>
  <li>IS_INDEPTH - Boolean for the other type of interview I was conducting.</li>
  <li>INTERVIEWEE_DESCRIPTION - descriptive information about the participant’s background. Used to help me formulate questions relevant to the participant.</li>
  <li>CONSENT_RECEIVED - Boolean to flag whether the participant had provided informed consent.</li>
  <li>CONSENT_URL - A space to record the file location of the consent form.</li>
  <li>CONSENT_ALLOWS_PARTICIPATION - A flag relevant to specific type of participation in my ethics protocol, and my consent form</li>
  <li>CONSENT_ALLOWS_IDENTIFICATION_VIA_PARTICIPANT_CODE - A flag relevant to how participants were able to elect to be identified, as part of my ethics protocol.</li>
  <li>INTERVIEW_CONDUCTED - Boolean to flag that the interview had been conducted.</li>
  <li>TRANSCRIPT_DONE - Boolean to flag that the transcript had been created (I used an external company for this).</li>
  <li>TRANSCRIPT_URL - A space to record the file location of the transcript.</li>
  <li>TRANSCRIPT_APPROVED - Boolean to indicate the participant had reviewed and approved the transcript.</li>
  <li>TRANSCRIPT_APPROVED_URL - A space to record the file location of the approved transcript</li>
  <li>CODING_FIRST_DONE - Boolean to indicate first pass coding done</li>
  <li>CODING_FIRST_LINK - A space to record the file location of the first coding</li>
  <li>CODING_SECOND_DONE - Boolean to indicate second pass coding done</li>
  <li>CODING_SECOND_URL - A space to record the file location of the second coding</li>
  <li>NOTES - I used this field to make notes about the participant or to flag things to follow up.</li>
  <li>LAST_CONTACT - I used this date field so I could easily order interviewees to follow them up.</li>
  <li>LAST_MODIFIED - This field auto-updated on update.</li>
</ul>

<h3 id="countries-table">Countries table</h3>

<div class="wp-block-group">

- COUNTRY_ID - Unique identifier, used as primary key and foreign key reference in the INTERVIEWEES table.
- COUNTRY_NAME - human readable name of the country, useful for demonstrating purposive sampling.
- LAST_MODIFIED - This field auto-updated on update.

### Roles table

- ROLE_ID - Unique identifier, used as primary key and foreign key reference in the INTERVIEWEES table.
- ROLE_TITLE - human readable title of the role, used for purposive sampling.
- ROLE_DESCRIPTION - descriptive information about the activities performed by the role.
- LAST_MODIFIED - This field auto-updated on update.

If I were to update the database structure in the future, I would be inclined to have a "URLs" table, where the file links for things like consent forms and transcripts are stored. Having them all in one table would make it easier to do things like URL validation. This was overkill for what I needed here.

Thinking also about the [interview pipeline](#pipeline), the status of the interviewee in the pipeline is a combination of various Boolean flags. I would have found it useful to have a summary STATUS_ID with a useful descriptor of the status.

</div>

<h2 id="get-the-sql-to-replicate-the-database-table-structure">Get the SQL to replicate the database table structure</h2>

<p>I’ve exported the table structure to SQL in case you want to use it for your own interview tracking purposes. It’s a Gist because I can’t be bothered altering my <code class="language-plaintext highlighter-rouge">wp_options.php</code> to allow for <code class="language-plaintext highlighter-rouge">.sql</code> uploads, and that’s probably a terrible idea, anyway ;-)</p>

<div class="wp-block-buttons">

<div class="wp-block-button has-custom-width wp-block-button__width-100 has-custom-font-size is-style-outline has-medium-font-size">

<a href="https://gist.github.com/KathyReid/a09d264c645f59ad091060b1ebd9018e" class="wp-block-button__link">get the SQL file (.sql for MySQL, hosted as a Gist, 5Kb)</a>

</div>

</div>

<h2 id="creating-views-based-on-field-values-to-track-the-interview-pipeline">Creating views based on field values to track the interview pipeline</h2>

<p>Now that I had a useful table structure, I settled on some <a href="https://docs.nocodb.com/setup-and-usages/views/">Views</a> that helped me create and manage the interview pipeline. Views in <code class="language-plaintext highlighter-rouge">nocodb</code> are lenses on the underlying database - that restrict or constrain the data that is shown so that it’s more relevant to the task at hand. This is done through showing or hiding fields, and then filtering the selected fields.</p>

<ul>
  <li><em>Data entry view</em> - this was a <a href="https://docs.nocodb.com/setup-and-usages/views/#form-view">form view</a> where I could add new Interviewees.</li>
  <li><em>Views for parts of the pipeline</em> - I set up several <a href="https://docs.nocodb.com/setup-and-usages/views/#grid-view">grid views</a> that restricted Interviewees using filters to the part of the interview pipeline they were in. These included those I had and hadn’t contacted, those who had a scheduled interview, those who hadn’t responded, as well as several views for where the interviewee was in the coding and consent pipeline.</li>
  <li><em>At a glance view</em> - this was a gallery view, where I could get an overview of all the potential and confirmed participants.</li>
</ul>

<p>A limitation I encountered working with these views is that there’s no way to provide summary information - like you might with a <code class="language-plaintext highlighter-rouge">SUM</code> or <code class="language-plaintext highlighter-rouge">COUNT</code> query in SQL. Ideally I would like to be able to build a dashboard that provides statistics on how many participants are at each part of the pipeline, but I wasn’t able to do this.</p>

<h2 id="updating-nocodb">Updating <code class="language-plaintext highlighter-rouge">nocodb</code></h2>

<p><code class="language-plaintext highlighter-rouge">nocodb</code> is under active development, and has regular updates. Updating the software proved to be incredibly easy through npm, with a two-line command:</p>

<h4 id="uninstall-nocodb-package">Uninstall NocoDB package</h4>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm uninstall nocodb
</code></pre></div></div>

<h4 id="install-nocodb-package"><a href="https://docs.nocodb.com/getting-started/upgrading/#install-nocodb-package"></a>Install NocoDB package</h4>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm install --save nocodb
</code></pre></div></div>

<h2 id="parting-thoughts">Parting thoughts</h2>

<p>Overall, I have been really impressed by <code class="language-plaintext highlighter-rouge">nocodb</code> - it’s a strong fit for my requirements in this use case - easily prototypable, runs locally, and is easily updateable. The user interface is still not perfect, and is downright clunky in places, but as an open source alternative to AirTable and Notion, it hits the spot.</p>]]></content><author><name>Kathy Reid</name></author><category term="academic" /><category term="design" /><category term="opensource" /><category term="technology" /><category term="mysql" /><category term="nocodb" /><category term="opensource" /><category term="phd" /><category term="phdlife" /><summary type="html"><![CDATA[Learn how I used nocodb to build an open source alternative to AirTable and notion to track my PhD interviews.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2022/07/nocodb-logo.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2022/07/nocodb-logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Solving MaxQDA error 1001: Error while converting the project!</title><link href="https://blog.kathyreid.id.au/2022/06/25/maxqda-error-1001-error-converting-project-onedrive/" rel="alternate" type="text/html" title="Solving MaxQDA error 1001: Error while converting the project!" /><published>2022-06-25T12:06:18+10:00</published><updated>2022-06-25T12:06:18+10:00</updated><id>https://blog.kathyreid.id.au/2022/06/25/maxqda-error-1001-error-converting-project-onedrive</id><content type="html" xml:base="https://blog.kathyreid.id.au/2022/06/25/maxqda-error-1001-error-converting-project-onedrive/"><![CDATA[<p>As folx might know, I’m currently undertaking a PhD at ANU’s School of Cybernetics - where I’m researching voice and speech data and datasets that are used to train machine learning models used for things like speech recognition and wake word detection. And if you’ve been following my posts on the <a href="/tag/toolchain/">State of my Toolchain</a>, and my previous post exploring <a href="/2021/11/16/taguette-review/">Taguette</a>, you’ll know that I’ve settled on <a href="https://www.maxqda.com/">MaxQDA</a> as my qualitative data analysis software. In general, I’ve found MaxQDA to be great software - the user interface is intuitive and the analytical features it have make qualitative data analysis faster. It’s expensive - and is a yearly subscription - but at the moment, it’s earning its price tag.</p>

<p>One definite bugbear I have though is how MaxQDA interacts with SharePoint. As part of my ethics protocol, I am storing my PhD data on university systems - not to external cloud tools like DropBox or Next Cloud. Instead, I save the MaxQDA files to my local (Windows - MaxQDA doesn’t have a Linux client, unfortunately) machine. This is then synced with OneDrive to the University’s SharePoint server.</p>

<p>This works well. Except when it doesn’t.</p>

<p>A couple of months ago I had an error that seemed like a once-off; an error where MaxQDA apparently couldn’t convert the project file. This error was presented when I opened the MaxQDA file (a <code class="language-plaintext highlighter-rouge">.mx22</code> file):</p>

<figure class="wp-block-image size-full">
<a href="/assets/uploads/2022/06/maxqda-error1001.png"><img src="/assets/uploads/2022/06/maxqda-error1001.png" class="wp-image-87860" alt="MaxQDA error 1001: Error while converting the project!" /></a>
<figcaption>MaxQDA Error code: 1001 "Error while converting the project!"</figcaption>
</figure>

<p>Like so many error messages, it violated <a href="https://www.nngroup.com/articles/error-message-guidelines/">design principles for good error messages</a>; it wasn’t a precise description of what had gone wrong, it wasn’t human readable, and it didn’t give me any helpful advice on how to solve the problem. So, I had to figure it out myself.</p>

<p>I tried the obvious things first;</p>

<ul>
  <li>I closed MaxQDA and re-launched the software; the error persisted.</li>
  <li>I restarted my computer and then re-launched the MaxQDA software; the error persisted.</li>
  <li>I stopped and started the OneDrive service; the error persisted.</li>
</ul>

<p>At this point, it was clear I’d have to dig deeper into OneDrive. In File Explorer, I could see that the file was still synchronising with OneDrive:</p>

<figure class="wp-block-image size-large">
<a href="/assets/uploads/2022/06/maxqda-error-1001-file-listing.png"><img src="/assets/uploads/2022/06/maxqda-error-1001-file-listing-1024x647.png" class="wp-image-87862" alt="Windows file explorer showing MaxQDA file still synchronising in OneDrive" /></a>
<figcaption>MaxQDA file still synchronising with OneDrive</figcaption>
</figure>

<p>By rights, stopping and starting OneDrive should have re-synchronised the file; but it hadn’t.</p>

<p>OneDrive was also showing a synchronisation error:</p>

<figure class="wp-block-image size-full">
<a href="/assets/uploads/2022/06/maxqda-file-still-open.png"><img src="/assets/uploads/2022/06/maxqda-file-still-open.png" class="wp-image-87864" alt="MaxQDA file causing a Sync issue in OneDrive. OneDrive thinks that the file is in use. " /></a>
<figcaption>MaxQDA - file still open in OneDrive</figcaption>
</figure>

<p>Clearly, OneDrive thought that the MaxQDA file was still open; and was not syncing the file to the cloud for this reason. However, closing MaxQDA, OneDrive and a whole reboot had not fixed this error.</p>

<p>My conclusion from this investigation is that MaxQDA somehow leaves an open <a href="https://docs.microsoft.com/en-us/windows/win32/fileio/file-handles">file handle</a>; for example if the application closes unexpectedly. The open file handle is not cleared via MaxQDA, via OneDrive, or via the underlying Windows operating system. So how else might you clear an open file handle?</p>

<p>Windows isn’t my preferred operating system; and I don’t know enough about the OS internals to go digging into file handles and how to clear them. So I went <code class="language-plaintext highlighter-rouge">rm -rf</code>; or about as close to it as you can get on Windows …</p>

<h2 id="the-solution">The solution</h2>

<p>The only thing that <em>did fix the issue</em> was uninstalling OneDrive, <a href="https://www.microsoft.com/en-au/microsoft-365/onedrive/download">re-installing OneDrive</a>, and then re-authenticating OneDrive and allowing it to sync to the cloud. My working hypothesis is that the uninstallation of OneDrive forces Windows to clear any open OneDrive file handles; then the re-installation returns the MaxQDA file to a known good state.</p>

<p>All in all, this took about an hour of investigation to identify the issue and find a workaround. And to be clear - the solution is just a <em>workaround</em> - it doesn’t address the underlying problem - which is that MaxQDA files that synchronise from a local machine to the cloud via OneDrive or SharePoint are prone to synchronisation failure that manifests in an open file handle; which in turn leads to an obscure error message.</p>

<p>This has now happened to me twice - but at least now I know how to fix it next time …</p>

<h2 id="update-resetting-the-onedrive-cache-appears-to-resolve-this-issue">Update: Resetting the OneDrive cache appears to resolve this issue</h2>

<p>So, after encountering this issue with MaxQDA for around the fifth time, and even after uninstalling and reinstalling OneDrive, I did a bit more digging, and found some blog posts that suggested resetting the OneDrive cache.</p>

<p>This is covered in <a href="https://www.minitool.com/news/reset-onedrive.html">this how-to-guide</a>, but the commands are essentially:</p>

<ol>
  <li>Open the Windows command tool as Administrator (you need to be an administrator to clear the OneDrive cache)</li>
  <li>Run the command <code class="language-plaintext highlighter-rouge">%localappdata%\Microsoft\OneDrive\onedrive.exe /reset</code>\</li>
  <li>Then restart OneDrive by running the application</li>
</ol>

<p>This worked for me - so it’s another possible workaround for this very frustrating issue!</p>]]></content><author><name>Kathy Reid</name></author><category term="research" /><category term="technology" /><category term="computers-are-terrible" /><category term="error" /><category term="maxqda" /><category term="toolchain" /><summary type="html"><![CDATA[Learn how I debugged an error between MaxQDA and OneDrive]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2022/06/maxqda-logo.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2022/06/maxqda-logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Building a Linux video production workflow for the SRA22 Social Responsibility of Algorithms conference</title><link href="https://blog.kathyreid.id.au/2022/05/14/linux-video-production/" rel="alternate" type="text/html" title="Building a Linux video production workflow for the SRA22 Social Responsibility of Algorithms conference" /><published>2022-05-14T01:42:51+10:00</published><updated>2022-05-14T01:42:51+10:00</updated><id>https://blog.kathyreid.id.au/2022/05/14/linux-video-production</id><content type="html" xml:base="https://blog.kathyreid.id.au/2022/05/14/linux-video-production/"><![CDATA[<p>As you might know, most of my <a href="/tag/toolchain/">toolchain</a> is Linux and opensource-based. So when it came time to produce a video for the upcoming <a href="https://algorithmicfutures.org/sra22/">Social Responsibility of Algorithms</a> conference, with my doctoral supervisor, <a href="https://elizabethtwilliams.com/">Dr. Liz T. Williams</a>, Linux-based options were my first choice. However, the Linux video production workflow is not as smooth as it could be - and this blog post documents my trials and tribulations.</p>

<h2 id="web-camera-software">Web camera software</h2>

<p>While web cameras on Linux these days tend to “just work”, there are no Linux counterparts to the Logitech or other vendor-specific software that the hardware usually ships with. Way in back in January when I presented at linux.conf.au, part of my tech check (big thanks, Chris and <code class="language-plaintext highlighter-rouge">jwoithe</code>!) involved using the <code class="language-plaintext highlighter-rouge">qv4l2 </code>utility to provide finer-grained control over settings such as white balance, contrast, and brightness. This handy utility also controls auto and manual zoom on cameras, and I adjusted the zoom to better fill the screen.</p>

<p>From memory, I didn’t have to add an apt repository for this - it’s in the <a href="https://manpages.ubuntu.com/manpages/impish/man1/qv4l2.1.html">Ubuntu repos by default</a> - and can be installed with:</p>

<p>sudo apt install qv4l2</p>

<h2 id="recording-video-and-setting-up-a-virtual-background">Recording video and setting up a virtual background</h2>

<h3 id="open-broadcaster-software">Open Broadcaster Software</h3>

<p>The next challenge was to record the video, using a virtual background. The problem of recording video on Linux is mostly solved these days using the <a href="https://obsproject.com/">Open Broadcaster Software (OBS) software</a>.</p>

<h3 id="background-removal-plugin">Background removal plugin</h3>

<p>While this software comes with a “chroma key” plugin (for green screens), it <em>doesn’t</em> come with an automatic background removal plugin. I read up on what plugins were available and ended up choosing this one from <a href="https://twitter.com/RoyShilkrot">Roy Shilkrot</a> (big thank you, Roy!) -</p>

<p><a href="https://github.com/royshil/obs-backgroundremoval">https://github.com/royshil/obs-backgroundremoval</a></p>

<p>It was well documented, and very clear about the installation steps. It <em>did</em> require compiling from source, but the instructions were detailed. Because I already had CUDA installed on my machine (I have an RTX2060 NVIDIA GPU, don’t get me started on Nvidia and Linux drivers and how hard they are to get working, <a href="https://github.com/NVIDIA/open-gpu-kernel-modules">but there are signs of hope, with NVIDIA recently open sourcing their Linux drivers - albeit through moving most of the functionality to firmware</a>), I opted to compile with GPU support. Compilation was very straightforward, however the instructions provided for sym-linking the compiled binaries were out of date. Luckily, there was already an <a href="https://github.com/royshil/obs-backgroundremoval/issues/14">Issue</a> that had been raised for this, and I used the information in the Issue to fix the sym-linking. This exercise gave me a deep appreciation for the effort that goes into packaging, and the complexity that it abstracts away for the end user.</p>

<h4 id="machine-vision-algorithms">Machine vision algorithms</h4>

<p>This plugin uses machine vision (which is why <a href="https://opencv.org/">OpenCV</a> is one of the package’s dependencies) to determine the outline of the subject from the background, and then uses the Chroma Key to fill the non-subject space with a single colour. It allows you to choose from a range of algorithms to do the subject outline, such as <a href="https://github.com/DengPingFan/SINet/">SINet</a>, <a href="https://github.com/ZHKKKe/MODNet">MODnet</a>, <a href="https://github.com/google/mediapipe">mediapipe</a> and a model for selfies. I found I got the best results using mediapipe. The plugin also allows you to configure other inference settings, such as the frame interval between which inference samples are taken. Again, there is another trade-off here; if you resample the image frequently, this takes more computational power, but if you sample less frequently then the outline may not “keep up” with the movement of the subject. I chose to inference every frame - primarily because I had the compute power to do so 😈.</p>

<p>All of these computer vision (CV) algorithms are very recent - for example SINet [<a href="#0">0</a>] was developed just over a year ago, and MODnet [<a href="#1">1</a>] is less than 6 months old; I continue to be surprised at how fast the ML space is moving, and how commodotised it has become. If you have ever used the “virtual background” feature in a videoconferencing application like Zoom or Teams, it will be using a similar algorithm. However, a lot of the implementation decisions - like how often to do inference, which algorithm to use, or the characteristics of the algorithm such as smoothing or contrast, are abstracted away from the end user in these applications. What we lose in complexity and control, we gain in ease of use.</p>

<h2 id="running-a-noise-removal-filter-on-the-video-using-ffmpeg">Running a noise removal filter on the video using <code class="language-plaintext highlighter-rouge">ffmpeg</code></h2>

<p>Although I had managed to do a video recording, sans background, when I played back the video, the audio had a lot of background noise. This came from the sound of the fans on my laptop; when the GPU is under load, the fans increase their speed to dissipate the heat that is generated. The inference of the background removal algorithm was causing the fans to spin up - and to generate background noise that was captured by the microphone. Tradeoffs, tradeoffs and more tradeoffs!</p>

<p>Rather than re-record the video, or reduce the inference frequency of the background removal plugin, I decided to see if I could improve the noise quality by running the video through a noise reduction filter. Signal processing, and acoustic signal processing, is definitely not an area that I feel comfortable with, but I had a general idea of how <a href="https://en.wikipedia.org/wiki/Noise_reduction">noise reduction filters</a> worked - by gating (cutting off) noise above or below a particular frequency (the gating floor or gating ceiling). When I worked in videoconferencing, I’d seen a similar approach used with special digital signal processing equipment in videoconferencing-equipped spaces. Again, there’s a tradeoff - if you have a quietly spoken person, and a loud, deep speaker, but use the same gating settings, you’re going to get unexpected results.</p>

<p>Although I had Audacity installed, I reached for the command-line tool <a href="https://ffmpeg.org"><code class="language-plaintext highlighter-rouge">ffmpeg</code></a>. The newer versions of <a href="https://ffmpeg.org"><code class="language-plaintext highlighter-rouge">ffmpeg</code></a><code class="language-plaintext highlighter-rouge"> </code>have noise reduction filters built in, and the <a href="https://ffmpeg.org/ffmpeg-filters.html#afftdn">documentation includes several command line examples</a>. Running the video through the noise reduction filter improved the quality markedly.</p>

<h2 id="video-editing-compositing-and-rendering-in-openshot">Video editing, compositing and rendering in OpenShot</h2>

<p>Next, I used <a href="https://www.openshot.org/">OpenShot</a> to do video editing, addition of slides, and “topping and tailing” with the conference branding. OpenShot is a breeze to use, and although it doesn’t have a lot of fancy transitions, it’s an excellent choice for this step of the workflow. I previously converted the PowerPoint I was using for slides into PDF, then used <a href="https://www.gimp.org/">GIMP</a> to create a 1920 x 1080 px PNG image of each PDF. The PNG images were then imported into OpenShot and overlaid over the video tracks.</p>

<p>One of the branding artefacts was in a format (Quicktime MOV) that OpenShot didn’t particularly work well with; so I changed the format using <a href="https://handbrake.fr/">Handbrake</a>.</p>

<p>Again, having a reasonable GPU helped with the rendering process; each conference video is around 15 minutes long, and OpenShot rendered them at 1080p 30fps resolution in around 5 minutes 😈.</p>

<h2 id="subtitles">Subtitles</h2>

<p>Subtitles are helpful for many people, and in particular they increase the accessibility of video content for folx who are hard of hearing. Several video creation tools can produce automatic subtitles. However, <a href="https://www.w3.org/WAI/media/av/captions/#automatic-captions-are-not-sufficient">these are usually inaccurate at best, and at worst can semantically change the meaning of the video content</a>. Moreover, I knew that in this video we would be using some domain-specific vocabulary (the video is all about accent bias in language technologies like speech recognition) - and that the automatic subtitles would be even less accurate.</p>

<p>For this task, I tried out the application <a href="https://github.com/SubtitleEdit/subtitleedit/releases">Subtitle Editor</a>, but found the interface difficult to use. I’d heard good things too about <a href="https://www.aegisub.org/">Aegisub</a>, but in the end I just manually created the<code class="language-plaintext highlighter-rouge"> .srt</code> file by hand-editing it in Atom. The .srt file format is surprisingly basic - and hand-editing was made a lot easier because we created a script for the video beforehand. It may not work as well if you are transcribing the subtitles from the spoken audio.</p>

<p><em>Edit: I eventually figured Subtitle Editor’s interface out, when I needed to move all the subtitles back by 7 seconds after topping and tailing the video; this feature itself is worth installing the application.</em></p>

<p>The one thing that tripped me up in hand-editing subtitles was forgetting that the time format is <code class="language-plaintext highlighter-rouge">HH:MM:SS,ms</code>. My video was only 16 minutes in length, and I erroneously placed the “minutes” in the “hours” column. For example, I wrote 00:05:00, 400 to mean 5 <em>seconds</em> into the video, but this is actually 5 <em>minutes</em> into the video. The millisecond separator - the comma - is unusual in English, but the <a href="https://en.wikipedia.org/wiki/SubRip">SRT format was developed in France</a>; which uses the comma. This reminded me of <a href="https://sociology.msu.edu/people/directory/busch-lawrence.html">Lawrence Busch</a>’s excellent book <em><a href="https://direct.mit.edu/books/book/2928/StandardsRecipes-for-Reality">Standards: Recipes for reality</a></em>, which articulates the path dependencies that standards create.</p>

<p>1<br />
00:00:05,400 –&gt; 00:00:12,300<br />
[Kathy] Hi everyone, I’m Kathy Reid, a PhD candidate<br />
at the School of Cybernetics<br />
at Australian National University,</p>

<p>2<br />
00:00:12,400 –&gt; 00:00:22,300<br />
and I’m recording today from the unceded lands<br />
of the Wadawarrung people here in Geelong,<br />
on the south-west coast of Victoria.</p>

<h2 id="conclusion">Conclusion</h2>

<p>Video production for conferences is becoming more prevalent, particular as the COVID-19 pandemic has taken many conferences online. Tools like Zoom and Camtasia, while mature, abstract away many of the underlying algorithms, and simplify their interfaces for usability by removing fine-grained controls from the user. By exploring open source tools for video production workflows, we obtain a deeper understanding of “what’s under the hood”.</p>

<p>To extend this work in the future, one of the capabilities I would like to explore is automation of the workflow pipeline. This may be possible for tasks such as topping and tailing videos with conference branding, but the actual composition of video and slides is still going to require human attention.</p>

<h2 id="footnotes">Footnotes</h2>

<p>[0] Fan, D. P., Ji, G. P., Sun, G., Cheng, M. M., Shen, J., &amp; Shao, L. (2020). Camouflaged object detection. In <em>Proceedings of the IEEE/CVF conference on computer vision and pattern recognition</em> (pp. 2777-2787).<br />
<a href="https://github.com/DengPingFan/SINet">https://github.com/DengPingFan/SINet</a></p>

<p>[1] Ke, Z., Sun, J., Li, K., Yan, Q., &amp; Lau, R. W. (2020). MODNet: real-time trimap-free portrait matting via objective decomposition.<br />
<a href="https://github.com/ZHKKKe/MODNet">https://github.com/ZHKKKe/MODNet</a></p>]]></content><author><name>Kathy Reid</name></author><category term="design" /><category term="opensource" /><category term="technology" /><category term="ffmpeg" /><category term="gimp" /><category term="handbrake" /><category term="linux" /><category term="obs" /><category term="obs-studio-2" /><category term="sra22" /><category term="subtitle-editor" /><category term="video" /><category term="vlc" /><summary type="html"><![CDATA[An end to end video recording and production workflow using opensource software.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.kathyreid.id.au/assets/uploads/2022/05/openshot-1024x590.png" /><media:content medium="image" url="https://blog.kathyreid.id.au/assets/uploads/2022/05/openshot-1024x590.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>