Computers are all haunted
May. 28th, 2026 02:44 pm(Based on a thread I posted on Bluesky which then I reposted on Mastodon.)

As has become a tradition, I am reproducing a social media thread I posted that I think is worthy of preserving, as a lightly edited blog post. This post has a somewhat authoritative tone, which is self-evident on social media but perhaps not in a blog post, so I want to explicitly say that this is a satirical and humorous post, and not a serious suggestion and/or the product of any philosophical or empirical process. That's not to say it's just a joke and/or invalid, but simply, the points made are my personal observations from following and studying metascientific issues.
Introducing: the Wakefield test.
It's simple. When you see a new research publication, evaluation, or accountability buzzword, you stop to think, would this have prevented the infamous, deadly, and shameful work of Wakefield being published on the Lancet. Prevent is the operative word, cos we've seen how futile the attempts to put the genie back in the bottle is, once bollocks as Wakefield's is given any modicum of scientific endorsement.
The main conclusion of the applications of Wakefield test I "did" so far is very clear:
Any proposed measure is nil unless it deals with social problems of academia in a concrete manner. Most bad research is caused by endemic malincentives and malignant power structures of academia. Publish or perish, white supremacy, extractive labour practices, economical disparities, publishing companies who are some of the closest institutions we have in real life to cartoon villain organisations.
But there's another key observation, that interacts with the above:
Any proposed measure that has no effect in the above finding is bound to repeat the said problems of academic research, while also failing to improve any matters and most importantly, offloading even more of the burden of academic bullshit onto disenfranchised members of the institution, including the research subjects, and the public itself.
So, stuff that fails the Wakefield test have a very concrete cost.
Now you might criticise me for saying stuff off the top of my head with an academic language, pretending its some sort of truth, but I must disagree. See, even tho I've just thought these things up right now, they are no less well-studied than all the wank quantitative supremacists and lovers of academic status quo spout like as if it was a cinnamon gobbling challenge and create policy on the basis of.
And jokes aside, anybody who follows any metascience knows they're true...
In case anybody out there was using my RSS feeds generated from some Hacettepe University announcements pages and from the updates of LingBuzz, they've become offline, because I have deleted my Gitlab account. The reason is simple, Gitlab is a terrible website and it's a hassle to deal with it, so I deleted my account, having run out of patience.
In case you want to take over, this is the source code for the LingBuzz scraper. Note that the readme is out of date, the repo is a fork and the readme pertains only to the original code. My fork applies a couple fixes to the JavaScript, and I used to run it on Gitlab CI, generating RSS inside a Gitlab Pages website. The Hacettepe scrapers worked similarly but their source code isn't public for now, and honestly you don't want it anyways, it's a few lines of Ruby and Nokogiri, and you are better off just periodically looking at the pages. Assuming there were any users of the scripts besides me, of course. But life is full of surprises, isn't it :D
Edit: Sadly, the solution described here worked for me for ten days, but then stopped working, and I got leaks again.
I have a green Pilot Metropolitan Retro Pop which is a beautiful beautiful fountain pen (which I have fitted with an extra fine nib yoinked from a Pilot Kakuno, which if you like you a good EF nib, a worthwhile hack in my opinion). It is beautiful enough that for the longest time I tolerated it's one annoying issue: an inky grip.
Yesterday I found a fix. So first, the fix, and then the reason I think it leaks and the solution works.
If your grip gets ink drops near where the nib is and there are no cracks, look at the grip closely. At two sides of it, you will notice lines which you can also feel with touch: they are probably an artefact of the manufacturing process, the seams of the two halves of the grip. Check if they coincide with any part of the nib and feed assembly that gets inky, for example the right and left edges of the nib's root. If yes, gently but firmly rotate the nib and feed assembly so that those seams no longer coincide with any part of the nib and feed assembly that gets inky in normal operation. With my pen, I've rotated it such that, one of the seams rest at something like 20 degrees of angle relative to the nib's surface. In that configuration, the other seam coincides with the opposite back side of the feed in a similar angle, which part of the feed does not get inky.
Now, rub the grip, and the exposed part of the feed and nib with a paper towel, thoroughly to make sure no part of the grip in particular has any ink. Use Q-tips then to thoroly dry the inside of the cap, which likely has accrued some ink from the leakiness. Then cap and uncap the pen a few times, and each time check for ink sizzling out on to the grip like before. If with luck, I explained the fix well and you repeated it accurately, and if there was no other problem causing a leak, like a crack, the issue must be fixed, the grip should cease getting inky.
So, why does this work, what does it fix? Well, I have no definitive answer, but what I imagine is this: the seams, which are each tiny straight bumps, provide a structure which provokes a weak instance of capillary action—the same process by means of which the fountain pen itself works, tangentially—by means of which a tiny amount of ink travels along the seams, after finding them at the point they (almost?) contact the exposed sides of the feed. Capillary action does not really need an external force to provoke it; it depends surface tension and adhesive forces, as the Wikipedia article says, but I imagine the capping/uncapping action may be contributing to the movement of the ink as well. By rotating the nib and feed assembly, we break the contact of the ink with the seams, so the capillary action cannot start, even assuming the (un)capping catalyse it.
I did a little thing in Loop Habits and I put some thought into it so maybe it’s helpful to someone else, so I’m blogging about it.
First, what is Loop Habits? quoting from its homepage,
( What is Loop Habits and what does it do? )Loop is a mobile app that helps you create and maintain good habits, allowing you to achieve your long-term goals. Detailed graphs and statistics show you how your habits improved over time.
The problem I wanted to fix was to reinstate some sort of morning routine, which I have mostly lost due to the pandemic and the way I am having to work on my thesis, in this limbo in my life when I can’t be employed. Due to ADHD and sleep drifting around, I have come to lose all my routines, which then affects mental health negatively, as well. I wanted to have something that is ADHD friendly and something that doesn’t assume that my sleep schedule will be fixed somehow, magically.
I have been thinking of making a mobile app or using some Android automation apps to help with this, but it’s no easy task and it takes a lot of time. Finally, I think I figured out a way to do this with a nice tool I already had, tho: Loop Habits, which I already use every day.
So, what I did. Made a habit in Loop that is titled starting the day, and it’s question is my morning routine summarised visually with emoji: «🙌🚾🪥 / 🍳☕📔 / 🚿🧖 ?»
The name is important because it doesn’t assume it’s morning, it’s merely the “starting the day”, the period right after I wake up. Whether it’s 6am, midday, 6pm, or midnight; none of which is unlikely these days.
The series of emoji is helpful because it serves visual memory. To me it’s meant to communicate: “get up, stretch at least elementarily, go to the loo, brush teeth; make some sort of breakfast, even a slice of break, and coffee, and look at the bujo; consider taking a shower”
You may notice a pattern to the way emoji are grouped, and you’d be spot on. It’s something that happened unintentionally but turned out to be helpful: the groupings are such that that a reminder is entangled with a need: my body will tell me to go to the loo, but seldom to stretch or to brush teeth. It will feel hungry in the morning, but not automatically want my morning coffee or the bullet journal (yes, I never experience caffeine withdrawal, so I’ll sometimes forget my morning coffee, which is actually integral to me starting out my day). And those two groups are entangled with showering, which I tend to forget a lot when a lot of my days are spent home, which does happen often when I’m unemployed and my sleep is drifting around the clock, throughout the weeks. Which, not ideal of course, but it is an issue of it’s own, and one that I will not be able to solve by avoiding trying to fix other problems in my life until that is resolved.
Using emoji is helpful because having separate habits like brush teeth or shower feels self-infantilising, at least for me. I feel embarrassed about it even tho nobody will ever see it but me. It feels bad, which means it will harm my mental health, even if it helped some with habit building. But a silly little emoji summary of the morning routine I wanna build is merely that, a summary. It’s not chiding me or reminding me that i’m shit at these things these days.
( Aside: how not being too strict with my agenda and habit tracking actually helps more with being more “productive” and building and sticking to the habits. (Not essential but I do suggest you come back to this after reading the rest of the post.) )I cannot really use notification based reminders with any of my habits because they assume you have a somewhat regular sleep cycle. So, in my experience, reminder notifications for habits pile up, after popping up usually in times I can’t do them, at least straight away, and I forget about them. I have recently come up with a solution to this tho, thankfully: not having too many habits in Loop, and using widgets.
( TL;DR: having too many habits is overwhelming. )As for widgets, I use them as a replacement for notifications for reminders, that do not need to fire on a given time of day. On my phone’s home screen, the top row is dedicated to a row of checkmark widgets that Loop Habits provides. These widgets display the state of the habit for the current day, and they also contain the title. When you tap them, the habit is marked as done. They are always in the home screen of my phone, which I almost always unlock as I wake up, and of course many times throughout the day, and as I see these buttons, I am reminded of the tasks/habits they entail.
This is another place where having an emoji summary instead of a laundry list of what to do in my morning routine helps: because I can’t rely on notifications, which show you your habit question which you can use to remind yourself of what to do as part of that habit, I would have to consult some morning routine to-do list to remember things. But instead, with the emoji summary, I have the whole string of emoji in my visual memory, so I don’t need to look at anything. It is surprising that this works and frankly at this stage I don’t know if it will keep working, so I have a plan in case it ends up not working: making the emoji string the title of the habit itself. I don’t do it right now because it looks a bit ugly and hard to parse, and for some reason the toothbrush emoji shows up as an empty box on the widget, for which I will make a bug report. For now, I do use a notification for starting the day only, just so that the emoji string is in my notification list on the phone, just in case I forget. But I haven’t needed it so far.
As shown in the screenshot, I make the widget for starting the day habit bigger than others, giving it emphasis. Because, usually, being able to check it out means I am likelier to also do the other stuff that day. I also organise them right to left, because I am right handed and that puts this habit’s widget right under my thumb to start the day out with. Using whatever cues to direct me towards it, basically.
And so that’s it, that’s the experiment, and it’s working for me for the last couple of days. Hopefully this helps someone else too, if not as is, as food for thought when you come up with your own system.
Lastly, if you skipped the cut about non-strictness, I do suggest you give it a read. Maybe this whole starting the day shenanigans is useless to you, but I bet you might find that bit interesting regardless of what your planning and habit building needs are.
For a while I had wanted to write about my bullet journaling as a grad student but never really bothered because what I did was not really all that interesting. Mostly just vanilla bullet journaling with a few little modifications and novelties, like a failed attempt at using a Gantt chart to organise long stretches of thesis work.
But during the last fall, more like since june, I have been developing a way to organise stuff that actually stuck and is still enjoyable to use for me. Simple yet sufficient, so doesn’t get in my way, and doesn’t require nor encourage too much meticulous micro-planning.
It is nothing too interesting regardless, and it boils down to two notebooks and two referencing schemes. In this blog post I want to record this method in order to share it and as a reference for its reuse in my future projects.
So, one of the notebooks is my bullet journal, and the other is what I refer to as the Thesis book or Project book, TB for short. For both notebooks I use Rhodia A5 dotpads with 48 sheets, so 96 pages. Project book is the more generic name I plan to use for future iterations of this style of notebook, with Thesis book being the specific name for the project book I use to help with my thesis.
First, why use pen and paper for this? Well, there’s no reason to, other than if it works for you. Bullet journalling works for me, because I tend to overcomplicate planning with computers, and I don’t want to depend on the computer for planning because that has proved to encourage procrastination on the web or fiddling with the puter. The thesis notebook is simply an extension of this, I want to be able to work on my thesis task list without having to open the computer, even if most tasks involve the computer. I want to open the computer with an intent. Doesn’t work every time, nothing is a silver bullet, but it is better than the alternative for me, and a pleasant part of my daily life.
So let’s start with the bullet journal itself. My bullet journals are fairly vanilla with a few interesting novelties. I use one 96 page dotpad of A5 size per quarter, i.e. per three months. One notebook from january to march, another from april to june, another from july to september, and another from october up to december. This is an optimal way to do it for me because the smaller notebooks are easier to carry, I can fit two notebooks this way into my notebook sleeve I like, and more importantly, starting a new notebook every three months specifically has two main advantages: firstly, I can review my plans more often, given the requirement to move and evaluate them all four times a year; and secondly, I like to scan my notebooks to store them digitally and have them easily accessible in case I need to reference them, on my laptop. Scanning 60-80 pages (which is usually what I use up) is tedious, but much less so compared to scanning double that or more for an entire semester, which is what I used to do for a few years, up until the last quarter of 2021.
I number my bullet journal pages using small roman numerals for the front matter, that is from the front page where I put contact information up to the first month spread, and the rest of the pages are numbered with arabic numerals. It’s mostly an aesthetic choice but has a wee little effect on the referencing scheme.
Let’s talk about the bullet journal referencing scheme. First, a recap: I have four journals per year, one per quarter, I use lowercase roman numerals and arabic numerals for page numbers. I developed this scheme a long time before I even had the idea of a thesis book, simply to be able to refer to pages in past bullet journals from my current one in a consistent manner.
My reference scheme is as follows: YYYYQXX:pp, that is, the four
digit year, the capital letter ‘Q’ standing for quarter, the quarter
number in uppercase roman numerals, a colon, and a page number,
lowercase if it’s a roman numeral. Let’s explain what this means based
on two examples: (1) 2022QI:8 and (2) 2022QIV:vi.
Example (1) refers to the first journal of the year 2022, because QI
is «quarter I». After the colon there’s the number 8, and that indexes
a page number. With the way I number my pages and set up my spreads,
it should probably coincide with a spread the middle of january 2022.
Example (2) refers to the last (i.e. fourth) journal of 2022, because
QIV is «quarter IV», fourth quarter. The number after the colon is
vi, i.e. 6, so the sixth page of the front matter, probably the page
right before the first month’s monthly spread for that quarter.
Having smaller, quarterly journals means that this referencing scheme comes in handy pretty often, and I can use it almost whenever because the scans of the older journals are on my laptop’s hard drive. They take up about 20 megabytes in 150 DPI, so not much to worry about.
Another relevant part of the bullet journal is my week spreads. I divide the spread into a 2x4 grid, with days of the week assigned to each left to right. But I reserve the bottom left square for a section titled Current week. The current week box usually looks like a to-do list for the current week, but it functions more like the theme of the week: I never require myself to complete everything there in a given week, nor are the list items in there are simple to-do items to be added to days’ boxes later. Usually it is something more general like PhD shopping to remind me to do some work about my search for PhD opportunities. Seeing this I may add some more specific task for a day, like read this vacancy in UiO or figure out requirements at YTÜ. Where this becomes relevant is, this section is where I add a similar, general reference to the thesis notebook, the details of which we will talk about later.
Here is a representation of what my weekly spreads look like:
| Page 1 Column 1 | Page 1 Column 2 | Page 2 Column 1 | Page 2 Column 2 |
|---|---|---|---|
| 1 Monday | 2 Tuesday | 3 Wednesday | 4 Thursday |
| Current week | 5 Friday | 6 Saturday | 7 Sunday |
I have a very similar spread right in between the weekly agendas and the month planner: the Weekly routine. I had used various designs for this, as the older blog post linked above can attest to, but I have come to prefer repeating the weekly agenda layout with little modifications. This spread is for distributing routine tasks and interests across the week. Interests is the key word because not everything is a to-do item here, and they are not meant to represent a perfect blue print for the week. Instead, it’s a suggestion as to what a healthy week could look like. Below is an example. Notice the lack of day numbers, and how the area/box for Current week has become the space for a decorative title for the spread:
| Page 1 Column 1 | Page 1 Column 2 | Page 2 Column 1 | Page 2 Column 2 |
|---|---|---|---|
| Monday | Tuesday | Wednesday | Thursday |
| * thesis | * thesis | * day off | * thesis |
| * news | * tabdequeue | * laundry | |
| Weekly | Friday | Saturday | Sunday |
| Routine | * thesis | * thesis | * day off |
| * update computers |
Notice how instead of any particular, explicit task relating to the thesis, the list item merely reads thesis. This is indeed how it is in my book: it simply suggests that a given day is a day where I expect to work on my thesis. In order to know what to do, I need to refer to the Thesis book, which we will now talk about. But also notice simpler items in these lists like laundry or update computers, these do indeed become simple to-do items in the weekly agendas. I do not force myself tho. They are merely reminders, suggestions. Because every week is ultimately unique, one can’t go about it like a theoretical robot in a vacuum, repeating oneself, having no ups and downs. So I try to never set myself up to fail, to keep morale and affection for whatever I’m doing up.
Now ’bout the Thesis book! The Thesis book is again a Rhodia notebook, A5 sized, 48 sheets and thus 96 pages, a dotpad. I don’t think a dotpad is necessary, but I like dotpads and I had a spare, so I just went with that. The added benefit is, I have a fancy leather notebook sleeve I use to keep my bullet journal and my regular pens and triangular ruler together, and I can fit both the bullet journal and the thesis book into that sleeve. (Side note but one can’t overestimate how useful a sturdy, safe notebook sleeve is. So if you work with notebooks and would rather not they die at the first accident, do acquire or make a good notebook sleeve, if you can.)
Unlike my bullet journal, which is inspired obviously by the original Bullet Journalling Method, my thesis book is more influenced by a lesser known DIY planner thing, Strikethru. The basic principle of Strikethru is that, you have a page dedicated to live tasks, i.e. stuff that you want to get down now, and you have other lists or pages with diagrams or prose planning future stuff, and you have the past stuff to refer to. It gets more complicated, but that portion is what I have roughly based my Thesis book on.
The thesis book is simple: first, there’s a cover page with contact details, in case it’s lost and then found by a benevolent person who would wish to return it, hopefully. Then, there is an Index page, that is pretty similar to a bullet journal index page, or any other simple table of contents: a flat list of what’s where.
After that, there is the first to-do list page. The title of a to-do list page is the date that to-do list was created. My most recent to-do list was created on 23rd of November, 2022, so that is the title.
From the first to-do list page on, pages are numbered with arabic numerals, and before that they are numbered with lowercase roman numerals, just like with the bullet journal.
The to-do list page is an outline of active tasks that summarise what I am trying to do right now, at the current phase of the project. They are not minutiae or implementation details, and not everything is necessarily a task. Some are notes and ideas jotted down in a few words.
It is meant to be a single page long and brief and abstract.
When most of the items in a to-do list page get checked out, I start a new one on the first available empty page, migrate incomplete tasks if I am still interested in them, and add new stuff as necessary.
Now some extra information about my workflow that will help clarify examples, but you don’t really need to remember after reading. Detailed notes are on the computer, in an outline that divides up the whole project into Phases. So far I have completed phases titled preparation, bureaucracy, and readings, and I am currently at the analysis phase where I collect data and do my analyses. Subsequent phases are writing, defence, conferment, publications based on thesis. The structure of each of these documents is unique, but roughly, it is a mix of notes, tasks, ideas, questions, and so on that I can refer to. Thus, I create my to-do lists for the Thesis book by consulting the notes for the current phase, and essentially summarising it in an outline that resembles a to-do list.
For the current phase of analysis, based on my methodology and theory, I have decided to apply my analytical device in a repeated manner, such that each application revises and enhances the previous, and applies the improved methodology to new data. I call each repetition a round, and I am now at the first such round. This isn’t really grounded in any theory (pun intended!), it simply felt like a nice way to represent how my methodology, genre analysis, is usually applied: early pilot applications that generate an analytical method that’s then more widely applied in a repeated fashion until some metric represents a good enough final analysis (usually inter-rater agreement: one or more other researcher(s) analysing the same text coming up with a similar enough structure). The relevant part is, because of this structure, for the analysis phase, my active to-do list page represents the active round (round 1) of the active phase (analysis). Here is what it looks like:
23 november 2022 a) review page 4--8 b) analysis: round 1i) collect data✓ ii) visit locations iii) finalise theory iv) pilot analyses c) notes from meeting with advisor i) revise bureaucratic documents ii) revise research questions iii) use this particular theoretical constructiv) a task I gave up on❌d) learn about the software I will use✓ e) after round 1: ... (Page number: 11)
Let’s observe this some before we move on to how this is referred to from the bullet journal. It is first and foremost an outline made up of two levels. For the toplevel I use lowercase letters of the latin alphabet, a--b. For the second level, I use lowercase roman numerals. And each page is numbered, with this page being the 11th page of the Thesis book.
With these facts, how is the Thesis book referenced? As visible, in the thesis book itself, I simply use the bare page numbers. I do not expect this to be a problem because I do not expect to use more than one notebook for the project. This notebook is an helper for the bullet journal, and while in between to-do lists I have some pages dedicated to random notes, most of the notetaking happens on the computer. This is a planner.
So, the reference looks like: TBppaxx. That is, TB which stands
for Thesis book, page number represented by pp (and it is always
arabic numerals because the front matter of this book has nothing
interesting), a which represents the letter of alphabet that indexes
the toplevel of the outline, and the roman numeral that indexes the
second level of the hierarchy, xx. It is important to note that this
is based on the peculiar structure of the current phase: at the
reading phase, I merely had a flat to-do list, with no hierarchy, so I
used arabic numerals for those lists. I also allow myself to refer to
any level of this hierarchy, so a reference can be made merely to the
page, or to a toplevel item, or to a sub-item.
A couple examples then: (1) TB11, (2) TB11a, (3) TB11biv, (4)
TB2:3.
Example (1) is the simplest useful reference: it refers to the page 11 of the Thesis book.
Example (2) refers to the toplevel list item a in the to-do list
found on the 11th page of the Thesis book.
Example (3) refers to the second level list item iv found under the
toplevel item b on the page 11 of our notebook.
Example (4), finally, is a referencing style I used during the reading
phase. Notice the colon character that separates the page number (2)
from the index of the referenced list item (3).
How are these references used in the bullet journal then? Well, there is no real limitation, but the pattern that’s been useful for me is as follows: I will refer to the active to-do list’s page from the Current week box of weekly spreads, indicating that that todo list represents the current state and short-term plan of the work. Every day, when making that day’s agenda, if that day is one of the days which my Weekly routine suggests I do thesis work on, I will add current tasks from the active to-do list in the Thesis book using references. Usually I simply refer to an earlier thesis work day to determine which tasks are current: if a task was recently scheduled, and not striked out on the Thesis book to indicate it is done, it means it’s current. So it’s a candidate for the current day I am making the agenda for. It is of course also a matter of thinking what I want to get done that day, reasoning about what can be get done, and I determine tasks to work on for the day.
If I did any work on a task in a given day, I mark it as done in the Bullet journal. That merely indicates that some work was done. Whether a task itself is completed or not is indicated by whether or not it’s striked out in the Thesis book: I strike out completed tasks, add a checkmark near them if I did do them, or a cross mark if I decided to not do them or failed them. At times also I take small notes near these tasks in the Thesis book using a differently coloured, finer-tipped pen; these are comments on the task and often relate to why they failed or how to modify them when I move them to or repeat them in the next to-do list.
As a result of this, a week spread in the bullet journal may end up looking like this:
| Page 1 Column 1 | Page 1 Column 2 | Page 2 Column 1 | Page 2 Column 2 |
|---|---|---|---|
| 1 Monday | 2 Tuesday | 3 Wednesday | 4 Thursday |
| * TB11biv | |||
| * TB11ciii [add to | |||
| this round’s notes] | |||
| * TB11a | |||
| * news | |||
| Current week | 5 Friday | 6 Saturday | 7 Sunday |
| * TB11 | |||
Notice how the Current week area merely refers to the page 11 in the Thesis book, and how the plan for monday has detailed references as to what tasks to work on that day, and even a little comment on in what manner to complete that task near one of them.
This is basically how it all works. It is complicated to explain because it requires some context to show how everything works, but the principle is simple: A bullet journal, and a project book with to-do lists that can be indexed into using a system that is simple enough that it isn’t a hassle to use. And I think the most important part is how most of these supposed to-do lists aren’t made up of references to particular small tasks but are instead representations of a plan, or a routine, or a state/portion of the whole project. It provides me with a flexibility without which I get overwhelmed, and fail to be fruitive.
Ultimately this is what works for me, what I developed to help me. It may or may not work for you. So this is more of a record for myself and a suggestion for the reader, rather than a getting things done tutorial. That is the nice thing here, it can be your personal thing that is specialised to work for you. It can inform your fully digital task management setup, or an example for your fully pen and paper workflow, and anything in between. I hope it helps the reader in that, inspirational way.
Feel free to ask any questions in the comments.
Productivity is a concept that is inherently tied to a capitalistic understanding of self and of labour. And yet it has also filled a conceptual space that is pretty relevant for a lot of people, me included. But, as ever, for me at least this is in conflict with a desire to reject the imposed capitalistic conception, perception and existence as self-realisation.
Whatever «productivity» is in my life, it is not about goals set for me by higher ups, it is not about the judgements of people, it's not about whether there is some concrete result of effort spent that is valuable in a market. It is about fulfilment, it is about living a joyful life—as a radical act, in the face of imposed turmoil and unhappiness—, and it is about an existential sense of engagement with the world.
So I just came up with an idea to materialise this disregard, to follow this desire to visibly dissociate from a social construct that is infested by such destructive things as wage labour, gig work, hustle culture, self-help, and all the other ways we are made to ostensibly-willingly spend our (free) time1 along with labour hours for the benefit of the surplus-parasites, all the while trying to protect and appropriate the positive aspects of «productivity» as a current cultural phenomenon.
From now on, I will try to use the concept of «fruitivity» instead of «productivity». This is not just a pure word swap. Because, of course, when I used the word productivity, I did so to refer to my conception of it. As with all words and every person uttering them. The reason then to coin this word (and a set of accompanying words which I'll expose soon) is to detach a non/anti-capitalistic, personal conception of productivity from the semantic baggage of capitalistic productivity. I want to have words to talk about what I have so far referred to using productivity, or its sibling terms.
Fruitivity thus is an existential/epicurean conception that refers to the kinetic pleasure gained from spending a satisfactory amount of voluntary effort on self-determined personal goals or momentary, fleeting interests. Its goal is to maintain a state of aponia and ataraxia that stems from self-realisation. But it does not concern the false dichotomy of individualism and collectivism either. Neither a moment of fruition nor the conception of self-realisation it relates to needs necessarily to concern the individual only. One can make their communities, their collaboration with others, a major, or even a central part of their self-realisation.
I explicitly do not wish to bring any etymology into this write-up. For me, it is not the etymology of productivity that is the problem, but the set of connotations associated with that name-concept. The main reason for using a word like fruitivity here is, (i) it is different from productivity and does not share in common parlance the capitalistic connotations of the latter, and (ii) I like the word.
A (potentially) completed episode of fruitivity can be referred to as fruition. When I check off a to-do list item, it is a moment of fruition. The effort, or the kind of effort, that lead to such an outcome might be described as fruitive, just like a time-period or space that is associated with fruitivity. Library is a fruitive space for me, I can engage fruitively with self-realising effort in the realm of academic/intellectual pursuit there.
From this seed vocabulary, one can replace an entire realm of capitalistic/ablist jargon that infests our lives and dirties our discourses when attempting to talk about how we attach meaning to our lives. Occasio praeceps, vita brevis, we have no time to share with the capitalists. And yet they demand, and they enforce. In the face of that, the words, concepts, ideas we use are a frontier. We must push back. This is one of my attempts.
1 «free time», of course, itself is a capitalistic concept as it necessitates the existence of time dedicated to labouring for the extractor classes.
tabqueue, and close them. After, when I have the time, I schedule a tabdequeue session where I process these bookmarks one by one, after opening them all in a fresh new window and deleting the tabqueue folder, and moving the tabs open on my phone there also (for this purpose I use KDEConnect). Of course I don't just throw them away, but they get reviewed, and they have a few fates available to them:You may have encountered me endorsing the "Philosophize This!" podcast before, saying something along the lines of "it's a very white podcast but a good intro to the canon of philosophy as it would be taught in universities, thus useful to go thru".
I retract that endorsement because for the second time I notice the host talking about a philosopher who has deeply fascist and Nazi roots, without mentioning these facts. First it was Heidegger, who he talked about in multiple episodes and only ever mentioned the Naziness in the end. Recently I noticed the same repeated with the episodes on Emil Cioran, whose interactions with fascists and Nazis was never mentioned. I only learned about it when I decided to read the wiki page on the guy.
The most important fact about a nazi-fascist philospher is that he's a nazi-fascist philosopher. No amount of contributions to anything neutralises, overshadows, or excuses that. I thus can't recommend a podcast which is aimed at people who don't know much about these people's lives, especially lesser known ones like Cioran, talking about them without mentioning their ties to these "movements".
If you know about 20th century European history, you probably can tell from the ideas and historical clues that, oh, this guy probably was a Nazi, but that relies on the listener looking for it (and I've been looking for it since the Heidegger episode), and is knowledgeable enough, as the host doesn't mention when these philosophers were born, which years they were active in, or when they died.
I don't know if the host has sympathies or if he has bought into some very nonsensical and harmful interpretation of separating the art from the artist, so to speak, but honestly I don't really care, it's irresponsible either way to not mention this.
Just listened to @nasser@merveilles.town's talk on multilingual programming, titled "A Personal Computer for Children of All Cultures" again.
As a (for now) linguistics student I really like this talk and highly recommend it. But also as a linguistics person coming from a programming background, it has me thinking and I have some questions and ideas I want to voice, with the belief that asking these questions early on in a project like Ramsey's will help us design these solutions such that in departing from the domination of English in programming languages and communities, we don't involuntarily find ourselves in another form of inequity's dominion: that of monolingualism, which itself comes from the exact same source as English's global dominance and destructive status.
First of all, I think the next step / next big question here is how to enable bilingual programming, code switching in code.
Code switching is extremely common, and in ways we don't often think it exists. E.g. languages have registers and styles, and we go between these pretty frequently (e.g. formal to informal, programmer jargon to kitchen jargon to just small talk [hehe] vocabulary), besides switching between more major linguistic varieties, like what we call languages and dialects (which are political terms and not linguistically sound, but I'll avoid that discussion here).
Could that happen in code within this framework?
So my languages are Turkish, English, and Italian. With Ramsey's ideas, I can write modules that are in one language or another, and my whole program can be multilingual. But could it be possible for a declaration, say the body of a function to be code switching between Turkish and English? I could of course do that with "local identifiers", using Ramsey's terminology, but could I also do it with keywords and external identifiers? Because it's very common for a bilingual community to do code switching not only at conversation or whole text level, not only between sentences, but even mid-sentence.
So imagine:
int main (void) {
const char* w = "world";
puts(sprintf("hello, %s", w));
return 0;
}
How could we allow, then:
sayma_s baş (boş) {
sabit harf* m = "il mondo";
puts(sprintf("ciao, %s", m));
ritorna 0;
}
which starts out with Turkish but outputs and ends with Italian, and has some English identifiers in the middle. (There's also the %s in there which is a complicating factor, as it definitely comes from the English string, but that can be completely replaced with something like string interpolation probably.)
This is a toy example of course, but there can be real-world situations where this becomes a cultural question. Imagine me collaborating with an Arabic/Armenian/Greek/Kurdish-speaking programmer on a given module as a speaker of Turkish. There's a cultural domination/injustice relationship there, and every time we decide on a module's language, that'll come into play as I'm relative to them, privileged. And it's not only a me-question, as it's likely that this decision takes place in Turkish-dominated spaces in Turkish-dominated conurbations and political settings.
And then a related question is of course what linguistic varieties get access to being a "language" versus a "dialect" versus an "argot/jargon/style/slang" and similar. None of these categories are scientifically sound, they are all political. Which is why we invent terms like "variety", "register" and similar in linguistics, because the structural properties are seldom what political properties capture.
This of course leads us on to the question of how we encode linguistic varieties, how do we decide which linguistic variety is active for a given snippet of code at each level, and how do we do this without making it difficult so that the devised solutions don't lead English or some other lingua franca to take over all other practical uses of the solution. Yes we have international codes for languages, but they are also centrally gatekept by institutions of the Western world, and they carry the same (de)politicising linguistic ideologies that today govern the statuses and the status quo regarding which varieties get to be called languages and which dialects, which get representation and which are devalued, which are kept around and which are left to wither.
Another question is how this maps to existing ways of combining multiple programming languages, because it poses both opportunities and challenges.
E.g. we readily use the ironically named FFI's to communicate across programming-linguistic boundaries, so using extern "C" or it's analogue in many programming languages, you can combine them at some level. And there are other facilities, like RPy, Pymacs, and similar. I think reworking these a little bit should actually really help with going beyond human-linguistic boundaries in programming too.
For example new ABIs can be developed for existing libraries that do not use the English names, but some other identifiers, hashes or otherwise. I believe (as a fairly inexperienced programmer when it comes to anything beyond small stuff and scripting, but still) that there should be ways to incorporate the existing codebase the world has developed into an emergent multi-human-lingual paradigm of programming without simply having to rewrite it all.
But also we have other ways of multi-programming-lingual combination, or code switching, if you will. These manifest themselves in the likes of Knuth's literate programming or Emacs' Org Mode's and Rmarkdown's similar-but-not-exactly-the-same mechanisms. Could we exploit these systems' ideas in developing programming environments that can combine multiple human languages and multiple programming languages? Why shouldn't that be possible?
Because in Org mode, which is the system I'm most familiar with at
this point, the programming languages bit is at least possible,
practical, and also highly useful. For example consider this
setup
script I have for my Raspberry PI which combines Emacs Lisp and
Bourne Shell programming languages liberally, using Org Mode's
mechanisms for doing so. (You can search for begin_src in
the file to explore how the two very different languages are used and
combined in the literate script.)
These literate programming environments could easily be used for any compiler for a multi-human-lingual programming language/environment, that's pretty straight-forward, but what's food for thought is how such a sytem can take advantage of the ideas and tools developed by the said literate environments over the last ~50 years, despite relative obscurity among especially professional programmers.
This is all I have for now. I am really excited for a future where programming becomes customarily multilingual in both human and programming language dimensions, because as someone who is advancing towards a career in academic scholarship and as a long-time hobbyist programmer, and as a non-native speaker of English, I have personally experienced how limiting it can be when programming tools are exclusively targeted at English-speaking professionals, and what sort of things become possible once we start breaking those barriers.
I believe Ramsey's doing god's work in breaking some of these barriers with thinking about how to make programming work for all human linguistic varieties, and hope that this text here contributes some questions/ideas to consider in such efforts. Really, thank you Ramsey!
A lot of "my email setup" posts start with telling how the author deals with thousands or millions of messages with probably tens or hundreds of interactions each day.
This blog post instead is about how I deal with a humane level of email messaging, with a local-first approach, using a smallish variety of software, which you can just set up and forget about.
Let me start with a list of software, then go on with describe the setup.
Of this list, the following can easily be factored out if you want: Python 3, mairix, pass, procmail, gnupg, and K-9 Mail. Furthermore, it should actually be possible to replicate this whole setup with only ever using GNU Emacs and Rmail (which comes with Emacs itself), if your system has movemail handy, or if your Emacs includes it (which was common up until recently, but is a workflow deprecated by Emacs developers). Then, you might ask, why do you bother? The answer is simple: if I use external programs to fetch and send mail, then I can use multiple email clients with the same setup. E.g., I sometimes use the mutt email client with this setup with no modifications or fragile repetitions. I'll in fact talk a bit about how you can use mutt and another tool to just totally factor Emacs out of this setup while retaining a similar workflow.
With that unrefined intro done, let's get to talking about what, why and how. ( Read more... )