write. dream. debug! repeat..
Welcome to Emre Şahin’s digital garden. 🪴
It’s mostly (in)tended for my future self as a technical logbook.
Continuous Developer
Everyone knows software development never finishes. You have to keep up, learn new technologies and fix (or replace) the bugs. I’ve been developing software since around 1996. These are mostly tidbits and development journals.
- Developing a Gitignore crate: This is an example of developing via writing. It details the step-by-step development of a .gitignore library from scratch.
- A file system watcher with ignore rules: Similar to the above. This one adds
notifyon top of ignore to report changes in a directory. - Creating OS-dependent temp directories in Rust: For Rust beginners.
- Behavior differences in ends_with and strip_prefix functions in Path and str (Rust): For Rust beginners.
- Converting MNIST dataset to Numpy: I believe converting data formats and filling the gaps is about 80% of the work we do. It may be an exaggeration, but this post explains how to convert the custom data format of the venerable MNIST dataset to Numpy arrays for processing with Python.
- Another post about converting Numpy image to QImage: This was for a face recognition application with Qt and Python I was building at the time.
- Anonymous functions in Dart: Some time ago, I was using Dart and Flutter to build mobile apps for dervaze.
Perpetual Learner
- A quote about estimation from Mythical Man-Month
- Another quote from Mythical Man-Month: I believe this book should be read and interpreted like a holy book in our profession.
- Coursera Deep Learning Course Notes
- R Notes: Some notes about the R language.
- RNN Notes
Masochistic Minimalist
- Using cat for writing: I was using a simple script based on
catto write notes and posts. It was an experiment to encourage myself to think more about content and less about minor errors. I think I’ve lost that kind of minimalist enthusiasm, and switching from Emacs to Neovim has also helped. - Using todo.txt for recurring tasks: I gave up using todo.txt after the list grew to be unmanageable. These days I use Trello to forget tasks.
Manager
- Burnouts: I’ve read a lot about them, but I don’t think I’ve ever experienced one. This is mostly because I haven’t had to work on projects I dislike over the long term.
- Energy for taking risks: How do you get people to work on long-term goals?
Tool-Junkie
- Deleting Google Drive files in Rclone
- Aerc and Goneovim: I’ve noticed that when I’m learning a language, I’m more inclined to use tools written in it. This post is an example, though I don’t use them anymore.
- mu4e (Emacs): Once upon a time, I was an avid Emacs user.
Lazy Scripter
Software Architect
- A draft post about finding trees in the jungle
- Object-Oriented Brain-Damage: A bit controversial, but I don’t like OOP and this was to show why.
- Death of Agile
- Premature Caching is the root of all evil
Researcher
These are mostly about my Ph.D. work in building OCR for Ottoman Turkish. They are dated. I may return to work on this some time in the future, as the problem still seems open.