Categories
tools

Kamusi.io

Introducing https://kamusi.io, offline mobile friendly dictionary for Swahili words. The kamusi consists of a random word of the day and a search feature to look up words. The search results include the definition of searched word and some might have example usage in a sentence and synonyms.

You can install this dictionary on your mobile device, laptop or desktop. This was designed as a progressive web app meaning it’s a website that can be accessible as a mobile application. Once installed you can access it even when offline.

To install visit the website http://kamusi.io on your mobile or laptop browser then “Add to Home Screen”. On Android (Chrome/Firefox) tap the three-dot menu and select Install app or Add to Home screen. On iPhone (Safari) tap the share button then scroll down to select “Add to Home screen”. On Mac (Safari) click on the share button and then the “Add to Dock” option will install it on your dock. On a laptop (Chrome) you will see “Install App” icon at the far right end of the URL bar.

screenshot of kamusi.io

I would like to mention that this an ad free resource with no tracking of usage which means I don’t get to know from where and how many people are using the kamusi. I do hope you share your feedback with me 🙂

I would like to thank Kaleb for the words. The words on the kamusi come from his GitHub repository here https://github.com/Kalebu/kamusi. This project is also open sourced and the code can be accessed here https://github.com/bmwasaru/kamusi-io

Categories
quote

Tigers and Sheep

Tigers are more beautiful than sheep, but we prefer them behind bars. The typical romantic removes the bars and enjoys the magnificent leaps with which the tiger annihilates the sheep. He exhorts men to imagine themselves tigers, and when he succeeds the results are not wholly pleasant.

from the introduction of the book History of Western Philosophy by Bertrand Russell

Categories
python TILs

secrets.randbelow(x)

TIL (Today I learned) about the python programming language module secrets that can be used to generate random numbers. You can generate random integer below a certain upper bound, say we can generate a number below 200 as follows:

import secrets
print(secrets.randbelow(200))

So how did I come across this? I was looking at how the Hushline (https://hushline.app), a whistleblower platform that provides secure and anonymous tip lines, was handling authentication. They use the secrets module to generate two random numbers for the CAPTCHA math question to verify if a human and not a bot is trying to authenticate. You can look at the code here https://github.com/scidsg/hushline/blob/main/hushline/routes/auth.py#L62. They use the secrets library to generate two random numbers below 10 then add 1 to the numbers that will be displayed to the human to do the math.

Categories
quote thoughts

Thinking is Hard Work

While I was reading Politics Without Guarantees (https://thepointmag.com/politics/politics-without-guarantees/) I came across these words by Stuart Hall on intellectual work.

There is a sense in which one has to stand back, outside of oneself, in order to make the detour through thought, to approach what it is one is trying to think about indirectly, obliquely, in another way, another mode. I think the world is fundamentally resistant to thought, I think it is resistant to “theory.” I do not think it likes to be thought. I do not think it wants to be understood. So, inevitably, thinking is hard work, a kind of labor. It is not something that simply flows naturally from inside oneself. Thus, one of the perplexities about doing intellectual work is that, of course, to be any sort of intellectual is to attempt to raise one’s self-reflexiveness to the highest maximum point of intensity. 

Prof. Wandia makes the case that most people struggle with thinking in her interactions with people in the digital space. One can say that you shouldn’t take all discourse online as the real representation of real thoughts as there has been many cases of paid accounts or bots that are just farming engagement. Though in every day interactions with people you can see how it’s difficult for many to connect dots. This is something that is systematic, we are taught not to think or present different thought. This is very evident through our education system where cramming is encouraged and everything is forgotten after the exam. We see comments like “work smart not hard”. With the so called age of artificial intelligence, we are told we don’t even need to read or research anymore. Just ask ChatGPT.

Should we leave this to the public intellectuals or should we get back to building brain muscles and capacities to think?

Categories
bash scripting

mkdir and cd

Here is a bash function I recently added to my dotfiles specifically .bashrc

function mcd() {
    mkdir -vp "$1"
    cd "$1"
}

To use this on my terminal, I need to export this in the same .bashrc file

export -f mcd

So from the command line, I can create and immediately change to the created directory.

mcd name_of_new_folder
Categories
photography privacy tools

EXIF Remover Desktop App

UPDATE: This was replaced with a progressive web app (PWA) because that’s easier to use and main cross platforms. Source here https://github.com/bmwasaru/Scrub-Metadata

Spent some time building a desktop app to help me remove EXIF data from my photographs before posting them online. This matters to me because I don’t want to be profiled based on the location, time and even the device I use to take the photos on. Also the other thing that matters is I wouldn’t want to expose others through the location data that may be included in the photographs.

If you look at the info section of the photos on my previous post here https://britone.xyz/2025/10/06/at-the-workshop/ you might catch the data that was uploaded with the photos. Data such as the phone type and the app that I used to take the photo. Previously, I had worked on an AppleScript (https://britone.xyz/2024/11/11/remove-exif-data-on-macos/) to help with cleaning of data but that was not very intuitive.

For the technicalities about the development; its build using electronjs meaning its cross platform out of the box. All you need is to run the build.sh command to generate the assets (apps) for MacOS, Windows and Linux platforms. The code is open sourced on my GitHub account here https://github.com/bmwasaru/exif-scrubber

Here is how it looks on the desktop:

Categories
quote

blues 🎵

The blues is an impulse to keep the painful details and episodes of a brutal experience alive in one’s aching consciousness, to finger its jagged grain, and to transcend it, not by the consolation of philosophy but by squeezing from it a near-tragic, near-comic lyricism. As a form, the blues is an autobiographical chronicle of personal catastrophe expressed lyrically.

Ralph Ellison, Living with Music: Jazz Writings

Categories
quote

Truth

Q. Finally, why have you criticised the formula ‘to speak truth to power,’ which was used by the late Edward Said to describe the role of intellectuals?

A. That’s actually a Quaker slogan, and I like the Quakers and I do a lot of things with them, but I don’t agree with the slogan. First of all, you don’t have to speak truth to power, because they know it already. And secondly, you don’t speak truth to anybody, that’s too arrogant. What you do is join with people and try to find the truth, so you listen to them and tell them what you think and so on, and you try to encourage people to think for themselves.

The ones you are concerned with are the victims, not the powerful, so the slogan ought to be to engage with the powerless and help them and help yourself to find the truth. It’s not an easy slogan to formulate in five words, but I think it’s the right one.

from https://chomsky.info/20100603/

Categories
photography

At the Workshop

Categories
thoughts

Cheating

High school was interesting for me, not because I was the fun or cool kid but because of the different people I was able to school with. My schoolmates were from very diverse backgrounds and this was very crucial to my education. I say education and not schooling because as we might know those are two different things.

Recently, I have been thinking about cheating. Schools have a not so good way of dividing students of the same class into different streams. They somehow put the “smartest” one together then there is the stream that seems to have the not so smart students, the ones who have the most fun. I say fun because we seemed like the most united ones and we took P.E (physical education) time very seriously. Unlike the other students who would use this time to go the library, we would go play. Yes, we took the “all work and no play makes Jill a dull girl” saying seriously.

You might notice the smartest is quotes because passing the exams is not about knowledge of a subject but your ability to cram and write all that on a piece of paper. Ask a student about the topic and they don’t remember after the exam. This need for cramming made my life later in University a bit difficult. The clustering of students based on their performance is a problem that I hadn’t thought of while in high school. The problem is that some students thought they were less capable than others. This might lead to a lack of confidence in one’s ability to learn new things or maybe think they are not the smart type. This really affects one in life. There are times I find someone comparing themselves to others. Where one’s life is at is compared to the other or who is driving the best car. The comparison has been beaten into us. You find that some would refuse to collaborate on projects because of this competitiveness.

Interestingly, I would hear rumours of how even these smartest students would get access to exams before we all got them during the exam time a.k.a cheating. At the time I would hear stories of how teachers would actually buy the exams on behalf of their students. I always wondered, if they were so smart why would they need to cheat and why would the teachers be willing participants.

As I navigate life it’s become clear why this was the case. When you are told that a set of exams at the end of your four years in high school will determine where you end up in life you might be tempted to cheat. We were told how important the Kenya Certificate of Secondary Education (K.C.S.E) exam was. The results would determine the university you get to go, your career prospects and ultimately how life turns out. For teachers, their students’ performance was tied to promotions or demotions (might be in the form of teaching the not so smart students), getting fired and maybe their salaries or bonuses. If these things depended on your students’ performance then you might be incentivised to help. Then again, exam cheating is a huge business. The other incentive for the teachers might be that the students were customers.

According to a Daily Nation article 70 teachers were arrested in 2024 for compromising the integrity of the exams. What happens if we design an education system where a single set of exam does not determine one’s “future”. Future is in quotes because one comes to realise that that was not entirely true. I am not saying that getting A grade and going to prestigious university does not set one to success. It really depends on your interpretation of “making it” in life.