Cemre Efe Karakas shielding his eyes from a low golden sun in a tree-lined London square

Cemre Efe
Karakas

engineer · tinkerer

Read on

I'm a software engineer in London. I write about software, retro technology, mindful social media, languages and the experience of living abroad. When I'm not working on hard problems, I procrastinate with small web apps. I founded Lisan to help minority languages thrive.

London plane trees, pollarded to knuckles. The 88 in the distance. Contrails going pink over the White Swan. A robin that held still just long enough. A fox doing its rounds at dusk. Commuting by rented scooter, badly. The sea doing its restless thing. Someone flew a leopard. The last boat to Kadıköy, more or less. The Bosphorus emptying the day out. One of Istanbul's landlords. Moda İskelesi, holding its corner of the water. A working sea, a defaced sign. Chin scratch, gratefully received. A kitten deciding whether to trust me. A cloud catching the last of it. Chimney pots and weather over London. Regent's Canal from above, a Royal Mail red. St Pancras, five o'clock gold. Someone's plate said everything.

English Turkish

Blog

Welcome to my blog! I'll be sharing my thoughts on a variety of topics, from hobby projects to concepts in tech and my personal experiences living abroad. See archive for all posts.

More writing

2026-03-20

My personal tech stack in 2026

I previously did a post like this in the beginning of 2025. This is updated version for 2026.

Email

  • Current: Gmail, (+)Posteo
  • Desired: ?
  • Others Tried: Yahoo, Mail.com, Outlook

2026 update: I wanted to try posteo in 2025. I now have both posteo and gmail, and I still have gmail as my daily driver. This boils down to personal preference. I really like what posteo offers, but I don't like standalone email apps. And posteo's web ui is just repulsive for me. Also I seem to have an irrational fear of tediously migrating all my apps' emails. I'm wary about being stuck in an inbetween state, not able to ditch neither, and have to use both indefinitely.

(Read more)
2025-01-27

Community-based peer-reviewed education concept

When I moved to the UK, the cost of university here made me think harder about what a degree actually provides. I started trying to separate the credential from the education, and the more I thought about it, the more they seemed like two different things that just happen to be bundled together.

The lectures are online. The textbooks are online. The research papers are online. A lot of the best educational content out there exists precisely because universities produced the people who made it. The institution enabled the expertise, but the expertise doesn't have to stay locked inside the institution. If you can find the motivation (which is hard!), a physical classroom is no longer required. It's just a respected institution that supplies a path to the credentials.

That led me to this idea: what if getting a degree meant producing real work, having it reviewed by a community of people who know the subject, and accumulating enough approvals to be recognized as competent? No exams, no tuition, no gatekeeping by geography or income. Just you, the material, a set of deliverables, and a community willing to evaluate them honestly.

Here's how it could work, sketched out as a GitHub organization.

(Read more)
2025-01-17

Why I left Twitter & why I chose Mastodon over Bluesky

On the beginning of 2025, in line with my new year's aspirations, I left Twitter. I chose Mastodon to be my new microblogging home on the web. I was asked why I didn't go for Bluesky. I wanted to give a comprehensive response to this, and here it is.

1. The Algorithm

Ever since my first exposure to "the algorithm" (which was many years ago when facebook switched from the chronologic feed to an algorithmic one) [1], I did not like the experience. I remember, neither did many people and there was a push against it. Facebook later made that the hard-default [2]. IIRC they later removed the chronological timeline as it hurt their business as people were spending less time on facebook that way. This hurt their business because it relies on maximizing the time you spend there. The latter was quite addictive and it beat the purpose for which I was on social media; to connect with people. Instead it became a tool of media consumption.

[1] https://www.huffpost.com/entry/facebook-news-feed-timeline_b_2821060

(Read more)
2025-01-14

What if we could construct our outgoing hrefs with testability from T0?

I was reading How bad is link rot on my blog? on Terence Eden's blog. It’s an article where he shares his experience tending to outgoing links in his blog. He shares some interesting data on it as well. I encourage you to have a read.

This is an interesting topic. Let me quote some relevant bits for me to set the scene if you're not bothering to read his full post.

Why don't I just cURL the URL and see if it responds with a 2xx HTTP code?

I used to use an automated checker to test my links. But spam sites lie. Lots of the dead sites have been taken over by scammers, spammers, and AI grifters. They return an HTTP OK and then serve up advertising. Yeuch! So now I spend each morning Tending To My Digital Garden and manually checking the links.

(Read more)
2025-01-06

Quoting Manuel Moreale

Manuel's new years resolution closely resembles what I've been murmuring to myself for a couple years and I have the same wishes.

(...) I want 2025 to be a year where my focus is on the output, rather than on the input. Rather than being concerned with what’s happening out there, I want to focus on what I can control and that is my output, my contribution to my life and the life of others.

I also want to focus more on the analogue. As much as I love the digital world, I think I need to spend more time disconnected in order to restore some semblance of mental sanity. So books, in paper form, are gonna play a huge role in this 2025.

A year with fewer inputs, and more output. This is my hope for 2025. Happy New Year!

on manuel's blog

2024-06-28

Tax-free investment in the UK: What is an ISA?

In this article, I will explain what ISAs are, why they are profitable, and how to open them for those residing in the UK looking for easy and tax-free investment opportunities.

Why should you invest?

Growing up in Turkey, the common forms of investment around me were: saving money in the bank, buying gold, and buying foreign currency. I also bought foreign currency with all the money I saved because if the money was kept in TL (Turkish Lira), it would lose value due to inflation, while foreign currency always increased in value compared to TL (interest rates were around 14%).

When I started living in the UK, the money you earn is already in foreign currency, so it becomes clear again that money loses value if it just sits there. There is inflation in sterling as well as in dollars. Especially if you are trying to save. (Gold is a different topic).

(Read more)
2024-06-06

Managing LLM Conversations Using a Graph Structure

Introduction

Ever felt frustrated when a chatbot loses context after you explore a side topic? Current LLM (Large Language Model) conversation models are limited by their linear structure, which hinders context preservation and flexibility in branching and merging conversations. To overcome this, I propose a graph-managed LLM conversation approach, allowing for broader discussions with specific side topics while maintaining the full context.

Setting the Glossary

The Conversation Node

(Read more)
2024-05-07

Host Flask app on Vercel for Free

What is Vercel?

First, a short introduction. Most people know Vercel as a front-end solution, however Vercel introduced many new features recently that make it a powerful tool for running small webapps for free. If you know what vercel is and why you want to deploy your project to vercel, skip here.

Vercel is a platform that enables developers to build, deploy, and manage modern web applications. Having tested it myself, I can vouch for the fact that once integrated, it is quite simple to use. With Vercel, developers can simply push their changes to their GitHub repository, and the platform will automatically redeploy the site and update the server with the new code (CI/CD Anyone?). The platform also provides a dashboard for each site, offering insights into status, recent deploys, and domain information.

(Read more)
2023-09-07

What is Immutability in Software Design?

What is immutability?

Immutability is a concept in computer science and programming that refers to the property of an object or data structure being unable to be modified or changed after it is created. In immutable systems, once an object is created, its state cannot be altered. Instead, if a change is needed, a new object or data structure is typically created with the desired changes, leaving the original object unchanged. Immutability is often valued for its benefits in maintaining data integrity, simplifying code, and enhancing concurrency in multi-threaded applications. Immutable objects are commonly used in functional programming and in scenarios where predictability and consistency are crucial.

Okay but what does that mean?

Immutability means that once you create something, like a piece of data or an object, you can't change it. It's like having a sealed, unchangeable package. If you want to make any modifications, you have to create a completely new package instead of altering the existing one.

(Read more)
2023-04-27

Creating a static archive of Emoji images

Introducing Emoji.dutl.uk: A Simple Website that Serves Emojis as Images

Emojis have become a part of our daily communication on social media, messaging apps, and other digital platforms. However, quite often when you need the emoji in image format, it is not a very trivial task. That's why I have created Emoji.dutl.uk.

As the creator of Emoji.dutl.uk, I wanted a simple solution to serve emojis as images on my websites. I found it tedious to create an image file for each emoji, so I created this website to solve that problem. It's a static website that serves emojis as .png files, making it easy to use them as favicons.

Using Emoji.dutl.uk is straightforward. You can choose the emoji you want to use, such as the dolphin emoji (🐬). Then, you can go to the website and enter the following URL: https://emoji.dutl.uk/png/128x128/🐬.png. This will generate a 64x64 pixel image of the dolphin emoji that you can download and use as your favicon. In fact, my blog (yes, this website!) uses Emoji.dutl.uk to set its favicon!

(Read more)
2023-04-18

Spring for beginners

This article assumes you have basic programming skills and an engineering/programming background.

What is Spring?

Spring is an open-source framework for building enterprise-grade applications in Java. It provides a comprehensive programming and configuration model for modern Java-based enterprise applications, covering everything from basic infrastructure support to advanced integration patterns. Spring is widely used for building web applications, microservices, and other types of software systems.

The Spring framework is built around the core concept of dependency injection, which allows developers to write loosely coupled code that can be easily tested and maintained. Spring also provides support for a wide range of other features, including declarative transaction management, data access, security, and more.

(Read more)
2023-04-15

Creating a website with SimplyMarkdown

(Copied over from the SimplyMarkdown repository. This website is entriely composed with SimplyMarkdown as well.)

Welcome to SimplyMarkdown, the simplest framework for creating websites from your Markdown files! With SimplyMarkdown, you can easily and quickly turn your directory of Markdown files into a stunning website without having to deal with any complicated configurations or bloated features.

As a solo developer who enjoys creating fun and easy-to-use tools in my free time, I wanted to make something that was both lightweight and effective. And that's exactly what SimplyMarkdown is all about! It's a simple and straightforward framework that lets you focus on your content, not the technical details.

So whether you're a blogger, writer, or just someone who wants to share their thoughts and ideas with the world, SimplyMarkdown has got you covered. With its easy-to-setup environment, you'll be up and running in no time!

(Read more)
2020-12-04

Exploring Language study Optimization

Coursemaker is program to parse sentences in a corpus, and sort them in an order ideal for vocabulary study. See github repo for the complete source code.

The idea

Most used 100 words in a language make up approximately 50% of words in a corpus (This of course varies from language to language. E.g. it is lover in agglutinative languages). If you sort the most used words and start learning words from this list (frequency sorted list fsl) you can effectively increase your hit rate in the corpus.

(Read more)
2020-10-03

Typ-o and Typ-v: Foreign keyboard writing practice game

typ-o is a simple js-based web application that allows you to type in the standard Russian Cyrillic input method, while highlighting the keys you press.

I wrote it on a Thursday night after I couldn't find one that highlighted the pressed keys and was frustrated.

I plan to implement a simple game-based practice mode too, that's future work. (done!) Check typ-o out!

UPDATE: I made typ-v, which has a game mode. It does not have a virtual keyboard support (I found it quite limiting, and hard to make cross-platform compatible.)

(Read more)
2020-03-24

Mask detection using CV2 and a custom ML model trained from scratch

Situation

People started wearing masks in Istanbul during the coronavirus outbreak. After I realized this, I wanted to know what percentage of people were wearing masks and since I had all the time in the world due to schools getting cancelled, I took on this personal project.

I used OpenCV to detect people in a video stream provided by İBB (the metropolitan municipality of Istanbul). I saved the people detected in the last minute and when new detections arrived, I compared them with the saved images to avoid duplicates.

Shortcomings

(Read more)
2019-11-09

Generating Images from Sketches using SketchyGAN

In this project, we implemented SketchyGAN, an image-to-image GAN model that allowed for non-pixel-to-pixel transformations which was novel at the time. We followed the SketchyGAN paper and implemented the model in Keras instead of TensorFlow as the paper did.

Read about our project from inzva:

Having graduated from the “junior position” they were assigned to in the previous batch of AI Projects, undergraduates from Boğaziçi University, Cemre Efe Karakaş and Eylül Yalçınkaya, along with another undergraduate from Istanbul Technical University, Burak Bekçi, a previous participant in our Applied AI Study Group, had one of the most acclaimed presentations in AI Projects history as they showcased a very fun way to implement GANs by turning their faces into sketches.

The purpose of this project was to convert a sketch image into an actual image. A GAN architecture is used since this is an image-to-image translation problem. The team first wanted to replicate the results of their reference paper, SketchyGAN [1]. This special GAN architecture contains the masked residual unit (MRU) as a novel component. Apart from the traditional convolutions and the features obtained from them, MRU layer takes downsampled and upsampled versions of the actual images as input during the encoding and decoding part in the generator. Apart from this novel architecture, SketchyGAN also use extra loss terms added to the original GAN loss, such as perceptual loss and diversity loss. The team showed their results by also presenting their own sketches translated into actual images.

https://inzva.com/reports/2019/ai-projects-3

  • See our presentation for more details.
  • See our GitHub repo for the implementation.
2019-08-24

North Korean Economy, its establishment, its collapse and its present

How did North Korea's economy, once better than the South, end up where it is today? A review of the economic plummet of one of the most closed modern societies and what led to it.

Author's Note:

One should be extremely wary of political agendas and propaganda while consuming any articles, pieces of news, or media about the handful of leftist governments in our world.

Throughout our lives, we are bombarded with western-originating propaganda in our news outlets and even social media. This should not be surprising as the latter (social media on the American internet) virtually emerged from the same ecosystem of capital gains as the former, unlike Minitel and the like, which promised a more decentralized internet). We often don't give a second thought or the benefit of the doubt when talking about conditions or situations in socialist states, even though sources are often murky.

It is important to remember that mega-corporations mostly own what we see and hear around us, and no leftist government is a friend of mega-corporations. It should not come as a surprise that money will be spent to keep leftist ideas out of the minds of the working class.

Now, to be quite frank, this was not an awareness I had as a sophomore year student, and this article is from around that time. Half of my references being from Wikipedia should be self-explanatory. It is possible that a good chunk of information I used in this article originates from propaganda outlets. So take everything with a grain of salt.

Cemre, July 2023


Now one of the most infamous, North Korea's living standards and economy were once way above average.

(Read more)
2019-07-08

Earthquake time-to-failure prediction using a trigger word detection algorithm

In this project, we aimed to explore the feasibility of using trigger word detection models to predict earthquakes. We were fortunate to have the guidance and expertise of a senior engineer from Is Bankasi, who provided valuable insights and guidance throughout the project. This project was part of Inzva's Applied AI Projects, which aims to give hands-on experience to aspiring data scientists and machine learning engineers.

To accomplish our goal, we used Andrew Ng's trigger word detection model, which is a widely used approach in the field of natural language processing. We adapted this model to listen to audio recordings of seismic activity continuously and output a higher value when the waveform suggests that the last waves might have been formed by the trigger word. Our hypothesis was that the preceding waves in the recording could provide information about the time to failure, allowing us to predict an earthquake.

We were excited to participate in a Kaggle competition where we applied our model to predict the timing of earthquakes based on seismic activity. The competition was a challenge, as we were working with a large dataset of around 610 million points, making data processing and training time-consuming. Despite these challenges, our team was able to place in the top 11% of participants, which was a great achievement for our first deep learning project.

(Read more)