• Middle Persian & Pahlavi script

  • Uganda: eighteen days in Africa

    I and a friend of mine from Iran decided to go to Uganda to explore the country, culturally and ecologically. This is our first trip to Africa so we learned a lot and had a lot of new experiences! Our idea was to volunteer to have free accommodation and food as much as possible and also to be able to experience the local culture of people more closely. We wanted to talk their language, dance their dance, follow their customs and also see the beautiful land and animals.

  • Rukiga: An African Language

    During my trip to south of Uganda I interacted with people who mainly spoke a local language called Rukiga (pronounced rutʃɪga). They said there is no dictionary for their language as of yet (although it is apparently being worked on), so I just kept asking them to teach me words and phrases and their grammar bit by bit. So here I’m sharing what I learned from my friends here in Uganda with you. Thanks to Tabitha and Tutamuzongoza and Jovan Tumwijukye specially who taught me and my friend a lot of these words and they spent time correcting the writing and pronunciation.

  • You can read my blog posts using curl

    I realised that my blog and its content, even though very simple and lightweight, are only accessible using a full-fledged web browser. I thought it would be interesting if my blog posts were available to be read using an even simpler interface, cURL!

  • Embodying the Avatar in Videogames

    Videogames are a pervasive part of lives of children and adults alike, with 73% of Americans older than 2 years engaging with them (Group, 2019). Playing videogames can be seen as an activity that is done through our fingertips and with our visual apparatus focused on a screen, without involvement of the rest of our body, and it is usually considered as such from a cognitivist point of view (Campbell, 2012) (Gee, 2003) (Klimmt & Hartmann, 2006) however this raises the question of whether videogames can alternatively be thought of as an embodied experience, and if so, how can we formulate them as such, and what factors are at play?

  • What is Box<str> and how is it different from String in Rust?

    Today I and a friend went down a rabbit hole about Rust and how it manages the heap when we use Box, or String, or Vec, and while we were at it, I found out there is such a thing as Box<str>, which might look a bit strange to an untrained eye, since most of the time the str primitive type is passed around as &str.

  • On Inherent Subjectivity of Some Things

    As a computer scientist and someone who loves mathematics and abstractions, I was obsessed with the idea of rationality, that is, an objective and absolute rationality, however I ended up in a philosophy course that showed me the opposite.

  • Iran Sanctions: A Story of Discrimination and Isolation

    Let me take you through a story on what it feels like to be isolated from the world, not by choice, but rather, by force. This is a story of discrimination, of monopoly, of people shrugging to these issues and of utterances that affect lives of millions.

  • Going Self-Hosted: Moving away from Google and others

    Since 3 years ago, I have always been eager to move away from Google and other privacy-invading companies. I have had my successes and failures in doing so, here I’m going to put out my stack of tools for moving away from Google and going self-hosted.

  • Mathematical Induction for proving tiling methods

    On my way towards self-taught data science, I’ve stumbled upon the need to be proficient with mathematical proofs, so I picked up the amazing How To Prove It: A Structured Approach by Daniel J. Velleman; and I’ve been fascinated by mathematical proofs since then.

  • Typoclassopedia: Exercise solutions

    I wanted to get proficient in Haskell so I decided to follow An [Essential] Haskell Reading List. There I stumbled upon Typoclassopedia, while the material is great, I couldn’t find solutions for the exercises to check against, so I decided I would write my own and hopefully the solutions would get fixed in case I have gone wrong by others. So if you think a solution is wrong, let me know in the comments!

  • DIY Cardboard Kindle Stand (for bed)

    a view of the stand + kindle

    I’ve had a Kindle for more than a year now, but I’ve only recently started to read books on it frequently, I used to read paperworks before that, and I still do sometimes prefer paperbooks if available. Anyways, my Kindle has helped me to fall asleep without struggling with all my thoughts, all I have to do is read until I fall asleep, so in a way, it has also been a remedy for my insomnia.

    Now to read the Kindle in bed, you would have to hold it using your hands or buy a stand or make one, motivated by The Pursuit of Laziness I set to create mine, but I didn’t use a piece of steel, instead I used a single box of cardboard I had in home to create one in minutes. :D

  • Difference between Travis CI tests: PR and Push

    I just want to leave this here as I often tend to look it up myself and the first time it was not as easy to figure out.

    When using Travis CI along with GitHub (or other git integrations), Travis runs two tests: pr and push.

    travis-pr-push-github

    Most of the time you see both tests passing and you do not have to even wonder how they are different, but it has happened to me that one of the tests fails while the other passes and I started to wonder why.

    pr The pr test is a test run on the result of a merge between

    the pull-request branch and the main branch. As an example, let’s say your pull-request’s branch is called fix-user-auth and your main branch is master, in this case, pr merges fix-user-auth into master and then runs the tests on the result of the merge.

    push On the other hand, push is run on the pull-request branch

    itself, without merging. So in our example above, Travis would checkout to fix-user-auth and run the tests.

    A case of difference

    A case in which this difference might be more apparent is when your pull-request is based on a branch other than master, and some changes that your pull-request depends on are missing from master, in this case the push test may pass, but the pr test will fail.

  • Primitive Living Lessons Learned, Episode 0

    general view of the forest

    So I just went on my first primitive living practice trip in the woods, alone, with only a pocket knife.

    I decided I’m going to share the lessons I’ve learned in each trip as they are certainly going to be useful if you want to practice primitive living, I would find these useful if I could find them anywhere. I spend a lot of time reading and watching primitive living guides and experience reports, but they are never exhaustive, and this series is not meant to be exhaustive either.

  • Don’t chase: Become the good one

    When it comes to relationships, most (unsuccessful) people are chasing the good ones. They spend time trying to find their dream partner, the perfect match, but hey, do you qualify as the dream partner of your dream partner? You fantasize about your dream partner, but have you ever thought what kind of partner does he/she dream of?

    I want an angel with... I want an angel with…

  • Stop High-Frequency Fuck-ups

    High-Frequency Fuck-Ups:

    The cyclic process of “pushing yourself hard for a week, getting something done, and then feeling depressed and fucked up for the next week”

    Sounds familiar? Read on.

    High-Frequency Fuck-ups Visual demonstration of High-Frequency Fuck-ups

  • Immortals go extinct

    We are all going to die, we all know that well.

    Now I want to take you to a world of immortals where humans don’t die, they live and live and live and… you know, live. From now on, pretend I’m a human on this world of immortals, I’m immortal bitches.

    immortals chatting There is no campfire because they don’t need it

  • Open-source: The Good, The Bad and The Ugly

    I have been doing Open-source for a while, I don’t call myself an “expert” or something like that, but I’d like to share my opinion and experience on contributing to, and maintaining open-source code.

  • Autocomplete using Tries

    In this article, I’m going over creating an autocompletion/prediction system using a data-structure called Trie, it’s fast and easy to customize.

  • ES7 Array and Generator comprehensions

    Array comprehension is a new feature proposed for ES7, with a new syntax to create new arrays from existing iterables, comprehensions can replace map and filter.

  • BroadcastChannel API

    BroadcastChannel API is a new API used to communicate between same-origin tabs opened by the same user.

  • CSS Filters are awesome!

subscribe via rss