{"id":15035112,"url":"https://github.com/dobiasd/articles","last_synced_at":"2025-05-14T13:07:48.083Z","repository":{"id":11675194,"uuid":"14185011","full_name":"Dobiasd/articles","owner":"Dobiasd","description":"thoughts on programming","archived":false,"fork":false,"pushed_at":"2025-02-16T07:10:31.000Z","size":4700,"stargazers_count":1586,"open_issues_count":0,"forks_count":93,"subscribers_count":76,"default_branch":"master","last_synced_at":"2025-04-12T03:44:52.592Z","etag":null,"topics":["articles","blog","functional-programming"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dobiasd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-11-06T20:43:19.000Z","updated_at":"2025-04-08T15:47:33.000Z","dependencies_parsed_at":"2024-01-14T07:02:05.194Z","dependency_job_id":"9fec7db4-0761-447e-802a-652f430e06ca","html_url":"https://github.com/Dobiasd/articles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dobiasd%2Farticles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dobiasd%2Farticles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dobiasd%2Farticles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dobiasd%2Farticles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dobiasd","download_url":"https://codeload.github.com/Dobiasd/articles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149959,"owners_count":22022851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["articles","blog","functional-programming"],"created_at":"2024-09-24T20:27:33.163Z","updated_at":"2025-05-14T13:07:43.069Z","avatar_url":"https://github.com/Dobiasd.png","language":"Python","readme":"# [Dobiasd](https://github.com/dobiasd)'s articles\n\nThis repository serves as a programming-related brain dump.\n\nIf you enjoy my articles, feel free to [![buymeacoffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://buymeacoffee.com/tobiashermann). ;-)\n\n### C++\n\n[From goto to std::transform](https://github.com/Dobiasd/articles/blob/master/from_goto_to_std-transform.md)\n\n[Functional programming in C++ with the FunctionalPlus library; today: HackerRank challange \"Gemstones\"](https://github.com/Dobiasd/articles/blob/master/functional_programming_in_cpp_with_the_functionalplus_library_today_hackerrank_challange_gemstones.md)\n\n[Creating a replacement for the switch statement in C++ that also works for strings](https://github.com/Dobiasd/articles/blob/master/creating_a_replacement_for_the_switch_statement_in_cpp_that_also_works_for_strings.md)\n\n### Elm\n\n[Switching from imperative to functional programming with games in Elm](https://github.com/Dobiasd/articles/blob/master/switching_from_imperative_to_functional_programming_with_games_in_Elm.md)\n\n### Fun\n\n[Learning Curves (for different programming languages)](https://github.com/Dobiasd/articles/blob/master/programming_language_learning_curves.md)\n\n[Programming language subreddits and their choice of words](https://github.com/Dobiasd/programming-language-subreddits-and-their-choice-of-words)\n\n### Haskell\n\n[From Object Oriented Programming to Functional Programming - Inheritance and the Expression Problem](https://github.com/Dobiasd/articles/blob/master/from_oop_to_fp_-_inheritance_and_the_expression_problem.md)\n\n### Kotlin\n\n[What Kotlin could learn from C++'s keyword `const`](https://github.com/Dobiasd/articles/blob/master/what_kotlin_could_learn_from_cpps_keyword_const.md)\n\n[When does a when expression in Kotlin need to be exhaustive, and when does it not](https://github.com/Dobiasd/articles/blob/master/when_does_a_when_expression_in_kotlin_need_to_be_exhaustive_and_when_does_it_not.md)\n\n[From Spaghetti to Ravioli - a Refactoring Example (using Kotlin)](https://github.com/Dobiasd/articles/blob/master/from_spaghetti_to_ravioli_-_a_refactoring_example_using_kotlin.md)\n\n[Using `fold` to mimic mutation](https://github.com/Dobiasd/articles/blob/master/using_fold_to_mimic_mutation.md)\n\n### Statistics\n\n[Basic measures of descriptive statistics](https://github.com/Dobiasd/articles/blob/master/basic_measures_of_descriptive_statistics.md)\n\n[Mechanical analogies for basic measures of descriptive statistics](https://github.com/Dobiasd/articles/blob/master/mechanical_analogies_for_basic_measures_of_descriptive_statistics.md)\n\n[Do A/B tests - because correlation does not imply causation](https://github.com/Dobiasd/articles/blob/master/do_a_b_tests_because_correlation_does_not_imply_causation.md)\n\n[Simple collaborative filtering in pure PostgreSQL](simple_collaborative_filtering_in_pure_postgresql.md)\n\n### Misc\n\n[How touch typing and keyboard shortcuts can improve the quality of the software you create](https://github.com/Dobiasd/articles/blob/master/how_touch_typing_and_keyboard_shortcuts_can_improve_the_quality_of_the_software_you_create.md)\n\n[A too naive approach to video compression using artificial neural networks](https://github.com/Dobiasd/articles/blob/master/a_too_naive_approach_to_video_compression_using_artificial_neural_networks.md)\n\n[A personal, generic, things-I-learned-as-a-software-developer list](https://github.com/Dobiasd/articles/blob/master/a_personal_generic_things_i_learned_as_a_software_developer_list.md)\n\n[Implementation inheritance is bad - the fragile base class problem](https://github.com/Dobiasd/articles/blob/master/implementation_inheritance_is_bad_-_the_fragile_base_class_problem.md)\n\n[Refactoring suggestions are a compliment](https://github.com/Dobiasd/articles/blob/master/refactoring_suggestions_are_a_compliment.md)\n\n[Threads can infect each other with their low priority](https://github.com/Dobiasd/articles/blob/master/threads_can_infect_each_other_with_their_low_priority.md)\n\n[Why a generic implementation can be the easier-to-understand solution](https://github.com/Dobiasd/articles/blob/master/why_a_generic_implementation_can_be_the_easier_to_understand_solution.md)\n\n[Covariance and contravariance explained without code](https://github.com/Dobiasd/articles/blob/master/covariance_and_contravariance_explained_without_code.md)\n\n[How I got rid of the crosstalk in my headset](https://github.com/Dobiasd/articles/blob/master/how_i_got_rid_of_the_crosstalk_in_my_headset.md)\n\n[Avoid methods to reduce coupling](https://github.com/Dobiasd/articles/blob/master/avoid_methods_to_reduce_coupling.md)\n\n[\"A monad is just a monoid in the category of endofunctors.\" - explained](https://github.com/Dobiasd/articles/blob/master/a_monad_is_just_a_monoid_in_the_category_of_endofunctors_explained.md)\n\n[Accurate timing of Strava segments](https://github.com/Dobiasd/articles/blob/master/accurate_timing_of_strava_segments.md)\n\n[Internals of the async/await pattern from first principles](https://github.com/Dobiasd/articles/blob/master/internals_of_the_async_await_pattern_from_first_principles.md)\n\n[On feeling deceived when receiving (non-labeled) LLM-generated messages](on_feeling_deceived_when_receiving_non_labeled_llm_generated_messages.md)\n","funding_links":["https://buymeacoffee.com/tobiashermann"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobiasd%2Farticles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdobiasd%2Farticles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobiasd%2Farticles/lists"}