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.

Perpetual Learner

Masochistic Minimalist

Manager

Tool-Junkie

Lazy Scripter

Software Architect

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.

Recent Updates

categories

#AI[2] #Android[1] #Automation[2] #AWS[1] #Bits[16] #blog[1] #Book Notes[1] #C++[1] #C/C++[1] #CI/CD[1] #CLI[5] #Cloud[1] #Cloud Computing[1] #Cloud Storage[1] #CMake[1] #Computer Science[1] #Computer Vision[8] #Concurrency[1] #Cryptography[1] #Dart[1] #Data Engineering[1] #Data Science[4] #Debugging[1] #Deep Learning[1] #Dervaze[4] #Development[25] #Devlog[23] #DevOps[4] #Dialogues[1] #Digital Garden[1] #Digital Humanities[1] #Docker[1] #Document Analysis[1] #Emacs[1] #Email[1] #engineering[1] #free software[1] #Git[2] #Golang[2] #History[1] #Homebrew[1] #ideas[1] #Language Processing[2] #Leadership[1] #Learning[1] #Linguistics[3] #Linux[1] #Machine Learning[5] #Management[3] #Memory Management[1] #meta[1] #ML[1] #MLOps[1] #neovim[1] #Networking[1] #Nginx[1] #NLP[2] #Nushell[1] #Opinion[1] #Organizational Culture[1] #Ottoman[1] #Ottoman Turkish[2] #Paleography[1] #Paper Review[4] #Paper Reviews[2] #Personal[3] #Product Management[1] #Productivity[5] #Programming[10] #Programming Paradigms[1] #project-management[1] #psychology[1] #publishing[1] #Python[6] #Qt[1] #Quotations[1] #R[1] #Research[1] #Rust[8] #Scripting[2] #Scripts[1] #search[1] #Security[2] #Server[1] #Shell[10] #Software[6] #Software Architecture[2] #Software Design[1] #Software Development[18] #Software Engineering[2] #Statistics[1] #Storage[2] #Summary[1] #SysAdmin[1] #technology[1] #Telegram[1] #Terminal[1] #Testing[1] #TIL[8] #To Be Tagged[1] #tool[1] #tooling[1] #Tools[13] #Tutorial[1] #Typography[1] #Version Control[1] #Vim[4] #Web[1] #work[1] #Writing[2] #XVC[30]

tags

#about[1] #Activation Functions[1] #add-in[2] #aerc[1] #agile[1] #ai[2] #airmux[1] #Algorithms[2] #alienation[1] #Allen Holub[1] #alphabet[1] #ancient[1] #android[1] #Anemone[1] #anonymous-functions[1] #anonymous struct[1] #API[1] #apple silicon[1] #approximation[1] #Arabic[2] #Arabic Script[1] #arc42[1] #architecture[4] #arrays[1] #auto-save.nvim[1] #Automation[11] #awk[1] #AWS[1] #Backpropagation[1] #backup[1] #Bash[6] #Bayesian[1] #Bcrypt[1] #best practices[2] #Binarization[1] #binary descriptor[1] #biography[1] #Bitbucket[1] #Blake3[1] #blink-cmp[1] #blog[1] #BOM[1] #boost[1] #Bot[1] #Bots[1] #browsers[1] #bug-fix[1] #Build Systems[1] #burnout[1] #bvi[1] #C[4] #c++11[1] #Cairo Genizah[1] #Calculator[1] #Calendar[1] #carapace[1] #Cargo[2] #cargo-geiger[1] #cargo-publish[2] #Cat[1] #celeste[1] #CentOS[1] #changelog[1] #channels[2] #character recognition[1] #chatgpt[1] #CI/CD[4] #clap[7] #clap-complete[5] #clap_complete_nushell[1] #clap-completion[1] #classic CV[2] #Claude[2] #CLI[15] #CLI design[1] #clipboard[2] #clippy[1] #Cloud Computing[1] #cloud-storage[1] #CMake[1] #CNN[1] #Code Quality[1] #codecov[2] #Coding Tips[1] #colorscheme[1] #ColQwen2[1] #comm[1] #command-line[1] #commands[1] #Common Lisp[1] #completions[3] #complex numbers[1] #complexity[1] #Computer Vision[4] #Concurrency[5] #Conditional Compilation[1] #Config[2] #Configuration[7] #confy[1] #connected components[1] #constructors[1] #contract[1] #conversion[1] #conversions[1] #copy[1] #Coursera[1] #coverage[2] #COVID-19[1] #crates[1] #crates.io[1] #cron[2] #cross-compilation[2] #crossbeam[2] #cv[1] #DAISY[1] #Dart[3] #dart-lang[1] #data[1] #data-analysis[1] #data pipelines[1] #Data Preprocessing[1] #data-science[1] #data storage[1] #Data Structures[1] #data-versioning[1] #data-visualization[1] #database[1] #Debian[2] #debug[2] #debugging[4] #Decorators[1] #deep learning[2] #dense matching[1] #Dervaze[3] #descriptor[1] #design[1] #design-patterns[1] #desktop[1] #Development[2] #development log[1] #devlog[2] #DevOps[2] #diagrams[1] #dialog[1] #dictionary search[1] #digital garden[2] #Disruptor[1] #dlib[1] #doc tests[1] #Docker[1] #doctests[1] #doctor[1] #document analysis[2] #document processing[2] #documentation[1] #drive[1] #dropout[1] #dufs[2] #duplicates[1] #dvc[3] #dynamic completion[1] #dynamic completions[2] #ECS[4] #ecs index[1] #Ed[1] #Emacs[3] #email[1] #embedded struct[1] #employee-engagement[1] #Encoding[1] #Encryption[1] #energy[1] #engineering management[1] #English[1] #Environment Variables[1] #error-handling[1] #espanso[1] #estimates[1] #estimator[1] #eye-tracking[1] #Face Detection[1] #factory-pattern[1] #Fashion-MNIST[1] #Feature Extraction[1] #Feature Flags[3] #Feedback Loops[1] #File System[1] #filesystem[1] #finite state machines[1] #FREAK[1] #Fred Brooks[2] #Frontmatter[1] #FST[1] #futures[1] #gawk[1] #Gemini[6] #ggplot2[1] #gh[2] #ghostty[1] #Git[17] #Git Annex[2] #git-hooks[1] #git-lfs[1] #GitHub[2] #GitHub Actions[8] #github-cli[1] #github-copilot[1] #gitignore[2] #gitoxide[1] #Go[3] #golang[1] #goneovim[1] #Google Cloud Run[1] #google-drive[1] #graphite[1] #graphs[2] #gui[1] #handwriting[1] #handwriting recognition[1] #Hashing[1] #Haskell[1] #Heap[1] #Hex-editor[1] #Histogram[1] #historical documents[2] #history[1] #hmm[1] #homebrew[1] #hooks[1] #Hough transform[1] #Hu moments[1] #Hugo[2] #i3[1] #ideavim[1] #IDX[1] #IDX3[1] #ignore[1] #Image Processing[5] #Imputation[1] #Inboxbot[1] #initialization[1] #integration tests[1] #Intention[1] #Iterative.ai[1] #Java[1] #JavaScript[2] #jetbrains[1] #jj[1] #jni[1] #JSON[2] #Jupyter[3] #jupyter-lab[1] #kagi[1] #keyboard[1] #keymaps[1] #keypoint[1] #knot[1] #knowledge accumulation[1] #knowledge-management[1] #l1 regularization[1] #l2 regularization[1] #lambda[1] #lanyon[1] #latex[1] #layout-analysis[1] #Lazygit[1] #LazyVim[3] #legalops[1] #Libraries[1] #librclone[1] #libssh2[1] #libssl[1] #line estimation[1] #linear dynamical systems[1] #Linguistics[1] #Linux[7] #literate-programming[1] #LLM[5] #LMS[1] #Locking[1] #lsof[1] #LSP[1] #Lua[4] #Machine Learning[4] #macos[2] #Manifest[1] #manpower[1] #map[1] #Markdown[3] #Marx[1] #Mathematics[1] #Maturin[2] #mdBook[1] #meaning[1] #Meetings[1] #Memory Management[1] #mermaid[1] #Messaging[1] #Microsoft 365[1] #Microsoft Word[2] #midori[1] #Mime-types[1] #miniflux[1] #Missing Data[1] #ml[2] #MLOps[3] #MNIST[1] #mocl[1] #Morphology[1] #motivation[2] #mu4e[1] #multiprocessing[1] #Multithreading[2] #mutt[1] #Mythical Man-Month[3] #Natural Language Processing[1] #ndk[1] #negotiation[1] #Neovim[7] #Netlify[1] #netstat[1] #Neural Networks[2] #nginx[1] #NLP[2] #noremap[1] #Nota[1] #note-taking[1] #notebook[1] #notify[1] #NumPy[3] #Nushell[12] #Object-Oriented Programming[1] #OCR[3] #Office[2] #offlineimap[1] #once-cell[1] #ONNX[1] #OOP[2] #Open Source[2] #OpenCV[1] #OpenFST[1] #OpenSSL[1] #Optimization[1] #options[1] #Org-mode[3] #organization[1] #organizations[1] #ORM[1] #OS[1] #Ottoman[5] #Ottoman Turkish[4] #Outlook[1] #Package Management[1] #paleography[1] #Paper review[3] #Parallel[1] #pass[1] #Passwords[1] #paste[1] #Path[2] #PathBuf[1] #Performance[3] #Perl[2] #PGM[1] #php[1] #php-fpm[1] #pinecone[1] #pip[1] #pipeline[1] #plugin[1] #Principle of Locality[1] #Probabilistic Graphical Models[1] #process[1] #processes[1] #Productivity[11] #programming[3] #projects[1] #public-domain[1] #PyO3[2] #PyPI[2] #PySide2[1] #pytest[2] #Python[17] #python-bindings[2] #qdrant[1] #QImage[1] #query[1] #R[1] #rand[1] #Random[2] #randomness[1] #Rare Variable[1] #rclone[5] #rclone alias[1] #recommendation-systems[1] #recurrent neural networks[1] #recursive[1] #redirection[1] #refactoring[1] #reflinks[1] #regex[7] #regular expressions[1] #regularization[1] #release checklist[1] #repr[1] #Representation[1] #Requirements[1] #resume[1] #ripgrep[1] #risk[1] #risk-taking[1] #RNN[2] #RSS[1] #rsync[4] #Ruby[1] #Rust[34] #rust-analyzer[2] #rustmark[1] #S3[2] #s3cmd[1] #s5cmd[1] #sampling[1] #Scheduling[1] #Script[2] #scripting[1] #Scripts[1] #scrum[1] #search[2] #secrets-management[1] #Security[1] #sed[1] #select[1] #self-hosting[1] #self-improvement[1] #semantic search[1] #sequence learning[1] #sequential-modeling[1] #Serde[2] #Serialization[1] #server[1] #SHA-1[1] #Shape classification[1] #Shell[11] #shell completion[1] #shell-script[1] #SIFT[1] #Snippets[1] #software[2] #Software Architecture[1] #Software Crisis[1] #Software Design[2] #software development[1] #Software Engineering[1] #Space Complexity[1] #sparse coding[1] #Spell Check[1] #spelling conversion[1] #sqlite[1] #SSH[3] #Stack[1] #standard library[1] #state machines[1] #Static Site Generator[2] #Static-Site-Generators[1] #static-sites[1] #Static Variables[1] #Statistics[2] #std[1] #storage[3] #str[1] #struct[1] #subcommands[1] #summarizer[1] #Summary[1] #syntax[1] #Syntax Highlighting[1] #TDD[2] #Technical Debt[1] #Telegram[1] #telescope[1] #templates[1] #temporary directory[1] #TensorFlow[1] #Terminal[4] #Testing[9] #tests[1] #text line segmentation[1] #Theme[1] #TIL[4] #tips[1] #Tmux[7] #todo.txt[1] #tools[2] #torch[1] #trace[1] #transcription[2] #Transliteration[5] #Tree[1] #Troubleshooting[1] #trycmd[2] #Turkish[2] #tutorial[1] #type-checking[1] #Undotree[1] #unison[1] #unit tests[1] #unsafe_code[1] #urdu[1] #UTF-8[2] #uv[1] #ux[1] #ValueError[1] #variable length arrays[1] #Variables[1] #VCS[1] #vector database[1] #venv[1] #Versioning[2] #video[1] #Vim[3] #Vimrc[1] #virtualenv[1] #Visual Encoding[2] #w3m[1] #wait_status[1] #watcher[1] #web development[1] #wget[1] #which[1] #Workflow[4] #Writing[1] #X[1] #xsel[1] #XVC[27] #xvc aliases[1] #xvc-config[2] #xvc-ecs[1] #xvc-file[2] #xvc file list[1] #xvc-pipeline[1] #xvc pipeline step dependency[1] #xvc.py[2] #xvc-root[1] #xvc storage[2] #xvc storage new generic[1] #xvc-test-helper[1] #xwindow[1] #YOLO[1] #zenity[1] #Zernike moments[1] #Zettelkasten[3] #Zola[1] #Zsh[10]