# kleiber.me / Ingo Kleiber A personal website on which I occasionally talk about things that interest me. These include, for example, education, programming, artificial intelligence, cybersecurity, and photography. At its core, this is a blog on which I try to semi regularly share my thoughts and especially things that I've learned. ## Pages - [Index](https://kleiber.me/index.md) ## Posts - [Title: The Switch to Jekyll Description: Switching to Jekyll as a replacement for non-static blogging engines has its benefits.](https://kleiber.me/blog/2016/06/12/the-switch-to-jekyll/index.md) - [Title: Quick Tip: Mobile Friendly JIRA Issue Collector Description: ](https://kleiber.me/blog/2016/07/30/quick-tip-mobile-friendly-jira-issue-collector/index.md) - [Title: Der Perfekte Jodel - Teil 1 Description: ](https://kleiber.me/blog/2016/08/07/der-perfekte-jodel-teil-eins/index.md) - [Title: Der Perfekte Jodel - Teil 2 Description: ](https://kleiber.me/blog/2016/08/29/der-perfekte-jodel-teil-zwei/index.md) - [Title: 800,000 #InaugurationDay Tweets - Preliminary Analysis Description: ](https://kleiber.me/blog/2017/01/21/800000-inaugurationday-tweets-priliminary-analyis/index.md) - [Title: Quick Tip: Changing MongoDB's Storage Directory Description: This quick tip deals with changing MongoDB's storage directory after moving a MongoDB installation.](https://kleiber.me/blog/2017/03/11/mongodb-change-dbpath/index.md) - [Title: Quick Tip: GitLab CI XML Linting Description: ](https://kleiber.me/blog/2017/07/09/quick-tip-gitlab-xml-testing/index.md) - [Title: Quick Tutorial: Topic Modeling with LDA Description: ](https://kleiber.me/blog/2017/07/21/tutorial-lda-wikipedia/index.md) - [Title: Quick Tutorial: Introduction to Python Decorators Description: ](https://kleiber.me/blog/2017/08/09/tutorial-decorator-primer/index.md) - [Title: Quick Tip: High-Resolution Export from Microsoft Office (2016) to PDF Description: ](https://kleiber.me/blog/2017/08/23/msoffice-to-pdf/index.md) - [Title: Quick Tip: Simple Sparklines with 'AtF Spark' (Sparks) by After the Flood Description: After the Flood's font 'AtF Spark' can be used to include beautiful sparklines into text very easily. This works on the web, in Microsoft Word, and many other applications.](https://kleiber.me/blog/2017/09/11/quick-tip-sparklines-atfspark/index.md) - [Title: Nikon MB-D14 vs. Minadax Clone - A 150 Euro Decision Description: The original Nikon MB-D14 (D600/D610 battery grip) is four times as expensive as the Minadax clone. What are the differences? Which one should you buy?](https://kleiber.me/blog/2017/09/21/nikon-mb-d14-vs-minadax-grip/index.md) - [Title: Quick Tip: Using Ctypes in Python Description: Python's ctype library allows calling C functions in DLLs and shared libraries. This functionality can be used to access interesting functions and to optimize your Python programs.](https://kleiber.me/blog/2017/10/05/quick-tip-using-ctypes-in-python/index.md) - [Title: Nikon AF-S DX NIKKOR 35 MM 1:1,8G on an FX Body Description: Nikon's AF-S DX Nikkor 35mm 1:1.8G lens works relatively well on FX bodies if you can live with (heavy) vignetting at lower apertures and a loss in edge sharpness.](https://kleiber.me/blog/2017/10/13/nikon-35mm-1.8-on-fx/index.md) - [Title: Curriculum Design: n-Week Flipped-Classroom Seminar with Student's Video Presentations Description: This post summarizes a curriculum framework for an n-week long flipped-classroom seminar that features student's video presentations.](https://kleiber.me/blog/2017/10/14/flipped-classroom-with-video-presentations-2017/index.md) - [Title: 'Broken Beyond Repair' - A Tale of One Broken Lens (Nikkor 35-70mm 2.8) Description: My Nikon Nikkor 35-70 2.8 lens has the notorious haze (delamination) issue and was deemed broken beyond repair by Nikon. I'm discussing why it is still worthwhile to keep.](https://kleiber.me/blog/2017/10/28/broken-beyond-repair/index.md) - [Title: Extracting Keywords from Newspapers via newspaper Description: The newspaper Python library is able to download and parse various newspaper sources with ease. This tutorial deals with extracting keywords from a small newspaper corpus.](https://kleiber.me/blog/2017/11/30/extracting-keywords-newspaper/index.md) - [Title: Top 10 Python Libraries for Natural Language Processing (2018) Description: There are various Python libraries for natural language processing (NLP). This article discusses ten of the most important Python libraries and modules for analyzing language computationally.](https://kleiber.me/blog/2018/02/25/top-10-python-nlp-libraries-2018/index.md) - [Title: Quick Tip: Converting a Likert Scale to a Stacked Horizontal Barchart in R Description: We will present the answers to a likert-type scale (survey) into a stacked horizontal barchart in R (ggplot2).](https://kleiber.me/blog/2018/04/21/R-stacked-horizontal-barcharts-likert-type-scale/index.md) - [Title: Utilizing TextDirectory for Corpus Compilation and Management Description: In this article I'll be showing how to utilize TextDirectory for corpus compilation and management.](https://kleiber.me/blog/2018/04/29/utilizing-textdirectory-for-corpus-compilation-and-management/index.md) - [Title: DataCamp Python Career Track Review Description: A fairly comprehensive review of the DataCamp (Data Scientist) career track.](https://kleiber.me/blog/2018/06/25/datacamp-python-career-track-review/index.md) - [Title: Yongnuo 35mm f/2.0 Nikon (YN35) Review Description: A quick review of the Yongnuo 35mm f/2.0 (YN35) lens for Nikon](https://kleiber.me/blog/2018/06/30/yongnuo-35-mm-f2-nikon-review/index.md) - [Title: Quick Tip: Text Generation with Rant (C#) in Python Description: A short tutorial on how to generate text with Rant (C#) in Python.](https://kleiber.me/blog/2019/02/08/quick-tip-text-generation-rant-python/index.md) - [Title: Quick Tip: Beware of Metadata in PDF Exports Description: This article discusses metadata stored in exported PDF files as well as their security implications.](https://kleiber.me/blog/2019/07/12/quick-tip-beware-pdf-export-metadata/index.md) - [Title: I Am Switching to VS Code Description: In this post I am describing why I switched from Sublime Text to VS Code.](https://kleiber.me/blog/2020/02/03/i-am-switching-to-vs-code/index.md) - [Title: Thingyfy Pinhole Pro X 18-36mm Review (Fujifilm / X-Mount) Description: This post is a brief review of the thingyfy Pinhole Pro X 18-36mm.](https://kleiber.me/blog/2020/02/23/thingyfy-pinhole-pro-x-18-36mm-review/index.md) - [Title: Quick Tip: Capture Geolocation Data in Qualtrics Surveys Using JavaScript Description: This post describes how you can capture geolocation data in Qualtrics using JavaScript.](https://kleiber.me/blog/2020/03/25/quick-tip-qualtrics-geolocation-data-javascript/index.md) - [Title: TodayIngoLearned - Personal Learning Management System Description: This post introduces TodayIngoLearned, a side project aimed at building myself a new personal learning and knowledge management system.](https://kleiber.me/blog/2020/05/31/today-ingo-learned-personal-learning-management-system/index.md) - [Title: Quick Tip: Four Use Cases for Assignment Expressions (aka. the Walrus Operator) in Python Description: In this brief article, Python 3.8's assignment expressions (aka. the walrus operator) are introduced using four common use cases.](https://kleiber.me/blog/2020/07/31/quick-tip-python-assignment-expressions-walrus-operator-use-cases/index.md) - [Title: E-Learning Done Right - eLearnSecurity's PTS Course and eJPT Certification Description: This article reviews eLearnSecurity's PTS course and eJPT certification from an educational point of view.](https://kleiber.me/blog/2020/08/13/e-learning-done-right-elearnsecurity-pts-ejpt/index.md) - [Title: Top 10 Python Libraries for Natural Language Processing (NLP) in 2020 Description: In this article, ten of the most import Python libraries for Natural Language Processing (NLP) in 2020 are discussed.](https://kleiber.me/blog/2020/08/26/top-10-python-nlp-libraries-2020/index.md) - [Title: How Do You Blur Your Background? My Home Office Video and Audio Setup in 2020 Description: In this article, I describe my 2020 home office video and audio setup. I also describe how XSplit VCam and virtual webcams (OBS) can be used to get a blurred video as well as a greenscreen effect.](https://kleiber.me/blog/2020/12/10/how-do-you-blur-your-camera-home-office-video-audio-setup-2020/index.md) - [Title: Quick Tip: Adding (Automatic) Open Captions to Your Webcam Description: In this post I am discussing open captions in the context of virtual conferences. I am also describing how you can use OBS and Twitch Subtitles to add open captions to your webcam video.](https://kleiber.me/blog/2021/01/31/quick-tip-adding-captions-subtitles-to-your-webcam/index.md) - [Title: Quick Tip(s): Five Useful Mural.co Tips Description: This posts presents five useful tips for working and faciliating with Mural.co.](https://kleiber.me/blog/2021/03/09/quick-tip-five-useful-mural-tips/index.md) - [Title: An Extremely Simple Docker, Traefik, and Python FastAPI Example Description: An extremely simple example of two containerized Python FastAPI services orchestrated and routed using Docker (Docker Compose) and Traefik.](https://kleiber.me/blog/2021/03/23/simple-docker-traefik-python-fastapi-example/index.md) - [Title: Finally, a Good Calculator! The NumWorks Graphing Calculator (Running Omega) Description: This article is a review of the NumWorks graphing calculator, especially running the Omega operating system, as an educational tool.](https://kleiber.me/blog/2021/05/29/numworks-omega-calculator-review/index.md) - [Title: TTArtisan APS-C 35mm F1.4 (Fuji X Mount) Review Description: A short and non-technical review of the TTArtisan APS-C 35mm F1.4 lens for Fuji X Mount.](https://kleiber.me/blog/2021/07/11/TTArtisan-35mm-f14-APS-C-review/index.md) - [Title: TCM Security's Practical Network Penetration Tester (PNPT) Certification - Seven Days of Authentic Penetration Testing Description: In this article, I review the recently launched Practical Network Penetration Tester (PNPT) Certification by TCM Security (TheCyberMentor).](https://kleiber.me/blog/2021/08/29/TCM-Security-PNPT-Certification-Seven-Days-of-Penetration-Testing/index.md) - [Title: A Simple Flask (Jinja2) Server-Side Template Injection (SSTI) Example Description: This article, inspired by Temple on TryHackMe, demonstrates and dicusses Server-Side Template Injection in Flask and Jinja2.](https://kleiber.me/blog/2021/10/31/python-flask-jinja2-ssti-example/index.md) - [Title: Hamlet on TryHackMe – Learning by Teaching Description: This article discusses the creation of the Hamlet room on TryHackMe as well as why creating learning experiences is learning.](https://kleiber.me/blog/2022/01/18/hamlet-on-tryhackme-learning-by-teaching/index.md) - [Title: Short Review: eLearnSecurity's Network Defense Professional (eNDP) in 2022 Description: This article is a short review of eLearnSecurity's Network Defense Professional (eNDP) in 2022.](https://kleiber.me/blog/2022/02/12/short-review-els-endp-2022/index.md) - [Title: Answering Question About Custom Documents Using LangChain (and OpenAI) Description: This article demonstrates how to use LangChain to answer questions about custom documents using OpenAI's API.](https://kleiber.me/blog/2023/02/25/question-answering-using-langchain/index.md) - [Title: Tracking and Inspecting Prompts of LangChain Agents Using Weights & Biases Description: This article demonstrates how to track and inspect (executed) LangChain agent prompts using Weights & Biases.](https://kleiber.me/blog/2023/05/14/tracking-inspecting-prompts-langchain-agents-weights-and-biases/index.md) - [Title: LLMs as Drop-in Replacements for Traditional Models – Performing Sentiment Analysis Using GPT-3.5 Description: This article demonstrates how to use GPT-3.5 as a drop-in replacement for more traditional sentiment analysis models.](https://kleiber.me/blog/2023/05/15/llms-drop-in-replacements-traditional-models-sentiment-analysis-gpt-35/index.md) - [Title: Forgotten Implant on TryHackMe – Learning Experience Design Description: This article discusses some of the Learning Experience Design considerations for the Forgotten Implant room on TryHackMe.](https://kleiber.me/blog/2023/09/05/forgotten-implant-on-tryhackme-learning-experience-design/index.md) - [Title: Linux Professional Institute (LPI) Linux Essentials – A Great Starting Point for Structured Learning Description: In this article, I am reviewing and discussing the Linux Essentials certification by the Linux Professional Institute (LPI). The article consideres both the learning experience as well as the certification exam.](https://kleiber.me/blog/2023/11/04/lpi-linux-essentials-certification/index.md) - [Title: Seven Ways of Running Large Language Models (LLMs) Locally (April 2024) Description: This article demonstrates seven ways of running (open) Large Language Models (LLMs) locally.](https://kleiber.me/blog/2024/01/07/seven-ways-running-llm-locally/index.md) - [Title: A Primer on LLM Security – Hacking Large Language Models for Beginners Description: This article provides a short introduction into Large Language Model (LLM) security as well as red teaming LLMs.](https://kleiber.me/blog/2024/03/17/llm-security-primer/index.md) - [Title: Quick Tip: Mermaid – Representing and Creating Diagrams Using Text Description: This article introduces Mermaid, a tool for representing and creating diagrams in a markdown-like format.](https://kleiber.me/blog/2024/03/24/quick-tip-mermaid/index.md) - [Title: Write-Up: TryHackMe – Bypass Description: This is a short write-up of TryHackMe's Bypass room.](https://kleiber.me/blog/2024/04/07/write-up-thm-bypass/index.md) - [Title: Short Review – Zenlet 3 Pro Description: A short review of the Zenlet 3 Pro wallet, especially in comparison to the older Zenlet 2 Plus.](https://kleiber.me/blog/2024/04/27/short-review-zenlet-3-pro/index.md) - [Title: Short Review – Bloomberg Finance Fundamentals (BFF) Description: A short review of Bloomberg's Bloomberg Finance Fundamentals (BFF) course offered via Bloomberg for Education.](https://kleiber.me/blog/2024/06/15/short-review-bloomberg-finance-fundamentals/index.md) - [Title: Demystifying Vector Stores – A (LangChain) Vector Store from Scratch Description: This article discusses the role of vector stores in modern NLP (and ML). Furthermore, a simple vector store, compatible with LangChain, is implemented in Python.](https://kleiber.me/blog/2024/08/04/demystifying-vector-stores-lanchain-vector-store-from-scratch/index.md) - [Title: PolyBotConversation – An Experiment with LLM Group Chats Description: In this article, I am discussing PolyBotConversation, an experimental web application and project through which I want to explore the interactions of AI/LLM chatbots in a group chat setting.](https://kleiber.me/blog/2024/10/06/PolyBotConversation-llm-group-chat-experiment/index.md) - [Title: AZ-Delivery Surprise Box XXXL Review Description: This review looks at AZ-Delivery's discounted XXXL electronics mystery box, exploring its contents, estimated value, and potential for inspiring DIY projects. With components like microcontrollers, sensors, and displays, the box offers quality parts for tech enthusiasts.](https://kleiber.me/blog/2025/01/04/AZ-Delivery-Surprise-Box-XXXL-Review/index.md) - [Title: Quick Tip: Reasoning Model Inference (DeepSeek R1) Using Python Description: In this article, I am demonstrating how to run a DeepSeek R1, a reasoning model, locally.](https://kleiber.me/blog/2025/03/14/reasoning-model-inference-deepseek-r1-python/index.md) - [Title: Short Review: TCM Security's Practical Help Desk Associate (PHDA) Description: This article is a short review of TCM Security's Practical Help Desk Associate (PHDA) in 2025.](https://kleiber.me/blog/2025/04/01/short-review-tcm-security-practical-help-desk-associate/index.md) - [Title: Adding an llms.txt to kleiber.me Description: A brief discussion of adding an llms.txt to this website for GEO and LLMO purposes.](https://kleiber.me/blog/2025/06/14/adding-llms-txt/index.md)