<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://nondv.wtf/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://nondv.wtf/" rel="alternate" type="text/html" /><updated>2025-11-12T20:18:30+00:00</updated><id>https://nondv.wtf/blog/feed.xml</id><title type="html">Dmitry Non</title><subtitle>Personal blog and CV</subtitle><author><name>Dmitry Non</name></author><entry><title type="html">Common Lisp is a dumpster</title><link href="https://nondv.wtf/blog/posts/common-lisp-is-a-dumpster.html" rel="alternate" type="text/html" title="Common Lisp is a dumpster" /><published>2025-06-01T00:00:00+00:00</published><updated>2025-06-01T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/common-lisp-is-a-dumpster</id><author><name>Dmitry Non</name></author><category term="Functional Programming" /><category term="Weird Programming" /><category term="lisp" /><category term="common lisp" /><category term="sbcl" /><category term="prog" /><summary type="html"><![CDATA[Common Lisp has a LOT of stuff in it. Some of it is charming. Some of it is plain weird]]></summary></entry><entry><title type="html">Code review guide</title><link href="https://nondv.wtf/blog/posts/code-review-guide.html" rel="alternate" type="text/html" title="Code review guide" /><published>2024-05-09T00:00:00+00:00</published><updated>2024-05-09T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/code-review-guide</id><author><name>Dmitry Non</name></author><category term="Software Engineering" /><category term="Productivity" /><category term="github" /><category term="pr" /><category term="cr" /><category term="code review" /><category term="codereview" /><category term="communication" /><category term="pr comments" /><summary type="html"><![CDATA[Recommendations on how to make code review process efficient and useful]]></summary></entry><entry><title type="html">Implementing OOP in FP</title><link href="https://nondv.wtf/blog/posts/implementing-oop-in-fp.html" rel="alternate" type="text/html" title="Implementing OOP in FP" /><published>2023-11-12T00:00:00+00:00</published><updated>2023-11-12T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/implementing-oop-in-fp</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="Software Engineering" /><category term="OOP" /><category term="Functional Programming" /><category term="programming" /><category term="oop" /><category term="fp" /><category term="actors" /><category term="clojure" /><category term="elixir" /><category term="erlang" /><summary type="html"><![CDATA[Trying to "implement" OOP in a functional language. What is OOP? Is it really different?]]></summary></entry><entry><title type="html">Microservices aren’t the problem. Incompetent people are</title><link href="https://nondv.wtf/blog/posts/microservices-arent-the-problem-incompetent-people-are.html" rel="alternate" type="text/html" title="Microservices aren’t the problem. Incompetent people are" /><published>2023-11-08T00:00:00+00:00</published><updated>2023-11-08T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/microservices-arent-the-problem-incompetent-people-are</id><author><name>Dmitry Non</name></author><category term="Software Engineering" /><category term="Productivity" /><category term="microservices" /><category term="programming" /><category term="architecture" /><category term="incompetence" /><summary type="html"><![CDATA[There's been a lot of (deserved) criticism towards microservice architecture and how it's usually hurtful to the companies. However, I believe SOA isn't bad for the companies. Incompetence is.]]></summary></entry><entry><title type="html">Coding alone vs coding in a team</title><link href="https://nondv.wtf/blog/posts/coding-alove-vs-coding-in-a-team.html" rel="alternate" type="text/html" title="Coding alone vs coding in a team" /><published>2023-03-01T00:00:00+00:00</published><updated>2023-03-01T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/coding-alove-vs-coding-in-a-team</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="Functional Programming" /><category term="Clojure" /><category term="lisp" /><category term="common lisp" /><category term="functional programming" /><category term="fp" /><category term="programming" /><category term="clojure" /><summary type="html"><![CDATA[The excitement of coding just for yourself and by yourself as a professional software engineer]]></summary></entry><entry><title type="html">Yet another validation DSL</title><link href="https://nondv.wtf/blog/posts/yet-another-validation-dsl.html" rel="alternate" type="text/html" title="Yet another validation DSL" /><published>2023-02-19T00:00:00+00:00</published><updated>2023-02-19T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/yet-another-validation-dsl</id><author><name>Dmitry Non</name></author><category term="Ruby" /><category term="Clojure" /><category term="Weird Programming" /><category term="DSL" /><category term="validation" /><summary type="html"><![CDATA[A validation DSL generator based on pure functions and data.]]></summary></entry><entry><title type="html">I hate Ruby constants</title><link href="https://nondv.wtf/blog/posts/i-hate-ruby-constants.html" rel="alternate" type="text/html" title="I hate Ruby constants" /><published>2023-01-29T00:00:00+00:00</published><updated>2023-01-29T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/i-hate-ruby-constants</id><author><name>Dmitry Non</name></author><category term="Ruby" /><category term="ruby" /><category term="constants" /><category term="lookup" /><category term="const_missing" /><summary type="html"><![CDATA[Short explanation of how constant lookup works in Ruby]]></summary></entry><entry><title type="html">ruby -e for better console experience</title><link href="https://nondv.wtf/blog/posts/ruby-e-for-better-console-experience.html" rel="alternate" type="text/html" title="ruby -e for better console experience" /><published>2023-01-29T00:00:00+00:00</published><updated>2023-01-29T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/ruby-e-for-better-console-experience</id><author><name>Dmitry Non</name></author><category term="Ruby" /><category term="Tooling" /><category term="Productivity" /><category term="ruby" /><category term="bash" /><category term="one-liners" /><category term="console" /><category term="terminal" /><summary type="html"><![CDATA[Using ruby one-liners in terminal]]></summary></entry><entry><title type="html">ruby -run</title><link href="https://nondv.wtf/blog/posts/ruby-run.html" rel="alternate" type="text/html" title="ruby -run" /><published>2023-01-29T00:00:00+00:00</published><updated>2023-01-29T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/ruby-run</id><author><name>Dmitry Non</name></author><category term="Ruby" /><category term="Tooling" /><category term="Productivity" /><category term="ruby" /><category term="run" /><category term="unix" /><category term="linux" /><category term="bash" /><category term="shell" /><category term="one-liners" /><category term="windows" /><summary type="html"><![CDATA[One-liners and cross-platform unix tools with ruby -run]]></summary></entry><entry><title type="html">How I use git</title><link href="https://nondv.wtf/blog/posts/how-i-use-git.html" rel="alternate" type="text/html" title="How I use git" /><published>2023-01-27T00:00:00+00:00</published><updated>2023-01-27T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/how-i-use-git</id><author><name>Dmitry Non</name></author><category term="Productivity" /><category term="Tooling" /><category term="git" /><category term="bash" /><summary type="html"><![CDATA[Everyday tips & tricks I use in git]]></summary></entry><entry><title type="html">Getting rid of OOP in Javascript with lodash/fp</title><link href="https://nondv.wtf/blog/posts/getting-rid-of-oop-in-js.html" rel="alternate" type="text/html" title="Getting rid of OOP in Javascript with lodash/fp" /><published>2021-04-09T00:00:00+00:00</published><updated>2021-04-09T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/getting-rid-of-oop-in-js</id><author><name>Dmitry Non</name></author><category term="Functional Programming" /><category term="JavaScript" /><category term="javascript" /><category term="js" /><category term="oop" /><category term="fp" /><category term="lodash" /><category term="lodash/fp" /><summary type="html"><![CDATA[Trying to make my code more consistent and to make it feel more FP-like.]]></summary></entry><entry><title type="html">Programming only with classes</title><link href="https://nondv.wtf/blog/posts/classes-only.html" rel="alternate" type="text/html" title="Programming only with classes" /><published>2020-09-17T00:00:00+00:00</published><updated>2020-09-17T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/classes-only</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="OOP" /><category term="Ruby" /><category term="ruby" /><category term="oop" /><category term="classes" /><category term="object-oriented programming" /><category term="pure oop" /><summary type="html"><![CDATA[What we had an OOP language with NOTHING except classes and variables?]]></summary></entry><entry><title type="html">Sleep sort algorithm</title><link href="https://nondv.wtf/blog/posts/sleep-sort.html" rel="alternate" type="text/html" title="Sleep sort algorithm" /><published>2020-07-02T00:00:00+00:00</published><updated>2020-07-02T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/sleep-sort</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="Algorithms" /><category term="sleep sort" /><category term="sorting" /><category term="algorithm" /><summary type="html"><![CDATA[Fun and creative concurrent sorting algorithm]]></summary></entry><entry><title type="html">Implementing integer expressions in Haskell data types</title><link href="https://nondv.wtf/blog/posts/implementing-integer-expressions-with-only-data-types-and-pattern-matching.html" rel="alternate" type="text/html" title="Implementing integer expressions in Haskell data types" /><published>2020-04-06T00:00:00+00:00</published><updated>2020-04-06T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/implementing-integer-expressions-with-only-data-types-and-pattern-matching</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="Functional Programming" /><category term="haskell" /><category term="functional programming" /><category term="fp" /><category term="data types" /><category term="pattern matching" /><summary type="html"><![CDATA[Let's write our own integer expressions language using only data types and pattern matching in haskell]]></summary></entry><entry><title type="html">Functional programming, meet OOP</title><link href="https://nondv.wtf/blog/posts/functional-programming-meet-oop.html" rel="alternate" type="text/html" title="Functional programming, meet OOP" /><published>2020-03-15T00:00:00+00:00</published><updated>2020-03-15T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/functional-programming-meet-oop</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="OOP" /><category term="Functional Programming" /><category term="Clojure" /><category term="functional programming" /><category term="object-oriented programming" /><category term="fp" /><category term="oop" /><category term="clojure" /><summary type="html"><![CDATA[Implementing OOP in a functional programming language]]></summary></entry><entry><title type="html">Writing a small web service with Ruby, Rack, and functional programming</title><link href="https://nondv.wtf/blog/posts/writing-a-small-web-service-with-ruby-rack-and-fp.html" rel="alternate" type="text/html" title="Writing a small web service with Ruby, Rack, and functional programming" /><published>2020-02-16T00:00:00+00:00</published><updated>2020-02-16T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/writing-a-small-web-service-with-ruby-rack-and-fp</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="Functional Programming" /><category term="Ruby" /><category term="ruby" /><category term="rack" /><category term="fp" /><category term="functional programming" /><summary type="html"><![CDATA[Let's write a Ruby web service using pure lambdas and Rack]]></summary></entry><entry><title type="html">Implementing numbers in “pure” Ruby</title><link href="https://nondv.wtf/blog/posts/implementing-numbers-in-pure-ruby.html" rel="alternate" type="text/html" title="Implementing numbers in “pure” Ruby" /><published>2020-01-17T00:00:00+00:00</published><updated>2020-01-17T00:00:00+00:00</updated><id>https://nondv.wtf/blog/posts/implementing-numbers-in-pure-ruby</id><author><name>Dmitry Non</name></author><category term="Weird Programming" /><category term="OOP" /><category term="Ruby" /><category term="ruby" /><category term="oop" /><category term="numbers" /><category term="object-oriented programming" /><summary type="html"><![CDATA[Let's implement our own numbers in Ruby without standard library functions]]></summary></entry></feed>