Denys Zadorozhnyi (@greenden) header
Denys Zadorozhnyi (@greenden) profile picture

Software engineer.

Joined August 2008
Photo by Denys Zadorozhnyi (@greenden)Photo by Denys Zadorozhnyi (@greenden)Photo by Denys Zadorozhnyi (@greenden)Photo by Denys Zadorozhnyi (@greenden)Photo by Denys Zadorozhnyi (@greenden)Photo by Denys Zadorozhnyi (@greenden)Photo by Denys Zadorozhnyi (@greenden)Photo by Denys Zadorozhnyi (@greenden)
Dear friend, your actions matter. Your voice can be decisive to strengthen Western resolve and protect the security of Ukraine, Europe and the democratic world. Act NOW! See thread with a few simple steps to support Ukraine 👇
1,449
30,848
1,230
89,441
Denys Zadorozhnyi retweeted
This is great advice. I've started using GitHub's search to look for definitions and usage examples. Made my life much easier. It took some practice—GitHub search isn't always great—but now it's my go-to option when Stack Overflow and the official docs don't cut it.
This quoted post is unavailable.
2
3
16
Denys Zadorozhnyi retweeted
Nice capsule description of Technical Debt for non-technical stakeholders.
32
1,016
182
3,015
Denys Zadorozhnyi retweeted
Verifying vs testing? Why not both? New blog post about our work on Rust verification based on reimplementing the proptest library for formal verification tools so you can use the same test harness with both proptest and with “propverify”. @rustlang #KLEE alastairreid.github.io/why-n…
7
50
8
165
This is special. Once in a decade stuff. Detailed histories of APL, C++, Clojure, D, ELisp, F#, Fortran, Groovy, JavaScript, LabVIEW, Logo, Lisp hygienic macros, MATLAN, Objective-C, Oz, S, R, Smalltalk, SML, and Verilog. All written by key players. All open access.
5
246
11
591
Make incorrect states unrepresentable.
Love these moments where you suddenly realise your code is a lot easier to read when you describe the state machine as sum types
1
Denys Zadorozhnyi retweeted
Determinism and generative testing, a neat combo! 👏
Dropbox blogged about rewriting the core sync engine from Python to Rust. - Rust has been a force multiplier for our team - betting on Rust was one of the best decisions we made - ergonomics + correctness + encoding complex invariants in type system helped tame sync’s complexity
9
23
I’ll never be able to write such amazing PR review note as @lexi_lambda. It’s all you need to know about folds! github.com/hasura/graphql-en…
1
13
1
52
Replying to @Iceland_jack
2 intuitions that I use when explaining folds. Olin Shivers explains (srfi.schemers.org/srfi-1/srf…) foldl as the fundamental list iterator and foldr as the fundamental list recursion operator. And Tony explains how foldr is used to do constructor replacement data.tmorris.net/talks/list-…
1
6
Denys Zadorozhnyi retweeted
This includes @haskellhutt's Programming in Haskell and many others!!
Cambridge University Press has just made all 700 textbooks currently available in HTML format on Cambridge Core free to access until the end of May to assist readers during the Covid-19 outbreak. This also includes 58 textbooks in Language and Linguistics. cambridge.org/core/what-we-p…
Denys Zadorozhnyi retweeted
stuck home and social distancing... perfect time to watch some of the Programming with Categories lectures brendanfong.com/programmingc…
1
4
15
Denys Zadorozhnyi retweeted
Big-O Notation in One Picture
15
187
10
562
Denys Zadorozhnyi retweeted
How laziness in #haskell makes `minimum = head . sort` efficient (O(n)): apfelmus.nfshost.com/article…
2
2
17
Denys Zadorozhnyi retweeted
Step-by-step explanation of how lazy evaluation works in #haskell apfelmus.nfshost.com/article…
3
9
Denys Zadorozhnyi retweeted
Happy Tuesday! We just got Clang running in the browser (no server needed!) You can now compile C to WASI online in the #WebAssembly shell 🤯 webassembly.sh/?run-command=…
10
271
49
852
Golden testing. WANT. “... which it will serialize to a JSON string and write to a test resource file. The next time we run the test, it will find that file and will confirm that the current decoder can decode it, as well as that the current encoder will produce the same result.”
The auto derivation mode of Circe was a bad idea. To remove that once it's in your project, good luck.. 😕 Use the semi-auto mode with some golden tests, folks! (See github.com/circe/circe-golde…)
2
Denys Zadorozhnyi retweeted
This is maybe one of the best examples of what I call "separation of the what and the how". In the first version, the "what" is not (explicitly) expressed. Only the how is. That's one reason why I love inner functions and Scala ❤ – at Sydney, New South Wales
This Post is from an account that no longer exists. Learn more
1
1
6
“// TODO:” and “// FIX ME:” are kind of okay in feature branches (although I prefer a todo list in PR description), but should be moved to issues when it’s time to merge. It’d nice to see a CI check for this.
It's common for programmers to write something like "// FIX ME: ..." in code, where an expedient but distasteful solution is used in a pinch. I propose we start writing "// FORGIVE ME" instead, acknowledging that it will likely never be fixed.
Can confirm! Scalafmt on file save is a savior. Thanks @scalameta !
I'm amazed at how freeing it is to avoid formatting code manually. I don't care which formatter you use, but try one out!
1
Hot Path™️ 😍
VSCode plugin: Haskell profiling information as source code highlight. Try out the prototype: github.com/Petrosz007/haskel…