41554 blogs · [ { "id": "01a08724-9d83-721b-bd02-70a475deef30", "title": "Effect Runtime", "url": "https://alexn.org/blog/2020/10/12/effect-runtime/?pk_campaign=rss", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a4767fc98e", "title": "When My World Vanishes", "url": "https://alexn.org/blog/2020/10/10/when-my-world-vanishes/?pk_campaign=rss", "published_at": "2020-10-10T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a476e3587d", "title": "Scala Snippet: Unlawful Effects", "url": "https://alexn.org/blog/2020/10/08/unlawful-effect.scala/?pk_campaign=rss", "published_at": "2020-10-08T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a477b75e7c", "title": "Running integration tests, with Scala + sbt", "url": "https://alexn.org/blog/2020/10/05/running-integration-tests.scala/?pk_campaign=rss", "published_at": "2020-10-05T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47854d4c2", "title": "Scala Snippet: Flow/Processor to Effect", "url": "https://alexn.org/blog/2020/09/25/flow-processor-to-effect/?pk_campaign=rss", "published_at": "2020-09-25T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47950f4ba", "title": "Privilege", "url": "https://alexn.org/blog/2020/09/10/privilege/?pk_campaign=rss", "published_at": "2020-09-10T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a479eed2f0", "title": "Scala Snippet: Safe Passwords", "url": "https://alexn.org/blog/2020/08/27/safe-password.scala/?pk_campaign=rss", "published_at": "2020-08-27T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47a73a61b", "title": "Sample Error Hierarchy in Scala", "url": "https://alexn.org/blog/2020/08/14/error-hierarchy.scala/?pk_campaign=rss", "published_at": "2020-08-14T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47aed9adb", "title": "Snippet: turn on JVM debugging in sbt", "url": "https://alexn.org/blog/2020/08/13/sbt-fork-debug.sbt/?pk_campaign=rss", "published_at": "2020-08-13T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47b8e7533", "title": "TypeScript Sample: Flow Sensitive Typing", "url": "https://alexn.org/blog/2020/08/11/flow-sensitive-typing.ts/?pk_campaign=rss", "published_at": "2020-08-11T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47b9b40ff", "title": "Retry Failing Tasks with Cats and Scala", "url": "https://alexn.org/blog/2020/08/03/on-error-retry-loop/?pk_campaign=rss", "published_at": "2020-08-03T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47be04bcf", "title": "Scala Snippet: Cats-Effect Resource to Reactive Streams", "url": "https://alexn.org/blog/2020/07/30/from-resource-to-reactivestreams.scala/?pk_campaign=rss", "published_at": "2020-07-30T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47ccf4087", "title": "ExecutionContext Must Be Stack-safe", "url": "https://alexn.org/blog/2020/05/27/future-stack-overflow.scala/?pk_campaign=rss", "published_at": "2020-05-27T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47cd8e3f5", "title": "Fatal Warnings and Linting in Scala", "url": "https://alexn.org/blog/2020/05/26/scala-fatal-warnings/?pk_campaign=rss", "published_at": "2020-05-26T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47da359da", "title": "Parallelizing Work via a JavaScript Semaphore", "url": "https://alexn.org/blog/2020/04/21/javascript-semaphore/?pk_campaign=rss", "published_at": "2020-04-21T16:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47e2e37e7", "title": "Blog Updates", "url": "https://alexn.org/blog/2020/04/21/blog-updates/?pk_campaign=rss", "published_at": "2020-04-21T10:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47e315f9a", "title": "Python Snippet: Send Email via SMTP", "url": "https://alexn.org/blog/2020/03/18/send-mail.py/?pk_campaign=rss", "published_at": "2020-03-18T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47e86229b", "title": "Shell Snippet: Encrypt Files with AES256", "url": "https://alexn.org/blog/2020/02/18/encrypt.sh/?pk_campaign=rss", "published_at": "2020-02-18T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47ebaca2a", "title": "Haskell Snippet: Sierpinski Triangle", "url": "https://alexn.org/blog/2019/11/29/sierpinski.hs/?pk_campaign=rss", "published_at": "2019-11-29T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47f29f706", "title": "Regexp Replacement via Function in Java/Scala", "url": "https://alexn.org/blog/2019/11/22/howto-regexp-replacement-via-function-java-scala/?pk_campaign=rss", "published_at": "2019-11-22T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a47ff1a687", "title": "Async Queue in TypeScript", "url": "https://alexn.org/blog/2019/10/07/async-queue.ts/?pk_campaign=rss", "published_at": "2019-10-07T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48037953a", "title": "Scala Snippet: Blocking Task", "url": "https://alexn.org/blog/2019/09/02/blocking-task.scala/?pk_campaign=rss", "published_at": "2019-09-02T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a480faf37e", "title": "Scala's isInstanceOf is an Anti-Pattern", "url": "https://alexn.org/blog/2019/08/11/isinstanceof-anti-pattern/?pk_campaign=rss", "published_at": "2019-08-11T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a481be1708", "title": "On Bifunctor IO and Java's Checked Exceptions", "url": "https://alexn.org/blog/2018/05/06/bifunctor-io/?pk_campaign=rss", "published_at": "2018-05-06T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a4828d519e", "title": "In Defense of OOFP", "url": "https://alexn.org/blog/2018/02/12/in-defense-oofp/?pk_campaign=rss", "published_at": "2018-02-12T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a483694be1", "title": "Minitest: Zero Crap Scala Testing Library", "url": "https://alexn.org/blog/2017/11/10/minitest-no-crap-scala-library/?pk_campaign=rss", "published_at": "2017-11-10T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a483fc335f", "title": "What is Functional Programming?", "url": "https://alexn.org/blog/2017/10/15/functional-programming/?pk_campaign=rss", "published_at": "2017-10-15T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a484f2b6d6", "title": "Scala Days 2017 — Monix Task", "url": "https://alexn.org/blog/2017/10/13/scaladays-copenhagen/?pk_campaign=rss", "published_at": "2017-10-13T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a485173b5a", "title": "Introduction", "url": "https://alexn.org/blog/2017/10/11/javascript-promise-leaks-memory/?pk_campaign=rss", "published_at": "2017-10-11T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a485ce2c4d", "title": "Automatic Releases to Maven Central with Travis and SBT", "url": "https://alexn.org/blog/2017/08/16/automatic-releases-sbt-travis/?pk_campaign=rss", "published_at": "2017-08-16T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a4868f1183", "title": "Functional Programming Inception (Presentation)", "url": "https://alexn.org/blog/2017/03/15/fp-inception/?pk_campaign=rss", "published_at": "2017-03-15T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a486a6703a", "title": "Asynchronous Programming and Scala", "url": "https://alexn.org/blog/2017/01/30/asynchronous-programming-scala/?pk_campaign=rss", "published_at": "2017-01-30T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a4878754bb", "title": "Fixing scala.collection.Iterator", "url": "https://alexn.org/blog/2017/01/16/iterator/?pk_campaign=rss", "published_at": "2017-01-16T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a487ea4dfd", "title": "Why Scala's Traversable Is Bad Design", "url": "https://alexn.org/blog/2017/01/13/traversable/?pk_campaign=rss", "published_at": "2017-01-13T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48814f40d", "title": "Add to NewsBlur Bookmarklet", "url": "https://alexn.org/blog/2016/11/11/newsblur-bookmarklet/?pk_campaign=rss", "published_at": "2016-11-11T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a4882929b6", "title": "Monix Task vs Scalaz vs Future, The Benchmark", "url": "https://alexn.org/blog/2016/08/25/monix-task-performance/?pk_campaign=rss", "published_at": "2016-08-25T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a4886f6289", "title": "Akka & Monix - Typelevel Summit, Oslo 2016", "url": "https://alexn.org/blog/2016/05/15/monix-observable/?pk_campaign=rss", "published_at": "2016-05-15T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a488f0c50f", "title": "Monix Task - flatMap(Oslo) 2016", "url": "https://alexn.org/blog/2016/05/10/monix-task/?pk_campaign=rss", "published_at": "2016-05-10T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a4898ca8f8", "title": "Avoid Javaisms: Mocks, Stubs, DI is Code Smell", "url": "https://alexn.org/blog/2015/12/15/avoid-javaisms-code-smell/?pk_campaign=rss", "published_at": "2015-12-15T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a489cc038b", "title": "Monifu vs Akka Streams", "url": "https://alexn.org/blog/2015/09/06/monifu-vs-akka-streams/?pk_campaign=rss", "published_at": "2015-09-06T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48a1b4ff0", "title": "Scala Best Practices", "url": "https://alexn.org/blog/2014/10/20/scala-best-practices/?pk_campaign=rss", "published_at": "2014-10-20T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48a7dfde8", "title": "Resources for Learning Scala", "url": "https://alexn.org/blog/2013/05/13/getting-started-with-scala/?pk_campaign=rss", "published_at": "2013-05-13T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48ac2a515", "title": "Towards a Better AtomicReference", "url": "https://alexn.org/blog/2013/05/07/towards-better-atomicreference-scala/?pk_campaign=rss", "published_at": "2013-05-07T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48b79400a", "title": "JVM Multithreading: Monitor Locks and Visibility", "url": "https://alexn.org/blog/2013/03/14/jvm-multithreading-monitor-locks-visibility/?pk_campaign=rss", "published_at": "2013-03-14T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48c4f01ec", "title": "Notes On JavaScript Client-side Development", "url": "https://alexn.org/blog/2012/11/07/notes-javascript-development/?pk_campaign=rss", "published_at": "2012-11-07T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48c8e3070", "title": "On Scala, Functional Programming and Type-Classes", "url": "https://alexn.org/blog/2012/11/02/scala-functional-programming-type-classes/?pk_campaign=rss", "published_at": "2012-11-02T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48d62f899", "title": "How To Build a Naive Bayes Classifier", "url": "https://alexn.org/blog/2012/02/09/howto-build-naive-bayes-classifier/?pk_campaign=rss", "published_at": "2012-02-09T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48db80bdb", "title": "Data Mining: Finding Similar Items and Users", "url": "https://alexn.org/blog/2012/01/16/cosine-similarity-euclidean-distance/?pk_campaign=rss", "published_at": "2012-01-16T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48e3c66c0", "title": "Blogging Platform for Hackers", "url": "https://alexn.org/blog/2012/01/05/blogging-for-hackers/?pk_campaign=rss", "published_at": "2012-01-05T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48ea02d84", "title": "Crawling the Android Marketplace", "url": "https://alexn.org/blog/2011/12/15/crawling-the-android-marketplace-155200-apps/?pk_campaign=rss", "published_at": "2011-12-15T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48ed1213d", "title": "Android Learning Resources", "url": "https://alexn.org/blog/2011/12/12/android-learning-resources/?pk_campaign=rss", "published_at": "2011-12-12T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48f6bd477", "title": "Earning Money as an Amazon Affiliate", "url": "https://alexn.org/blog/2011/11/29/earning-money-as-an-amazon-affiliate/?pk_campaign=rss", "published_at": "2011-11-29T00:00:00+00:00" }, { "id": "01a08724-9d83-721b-bd02-70a48f7ad412", "title": "4 Books For Learning to Design, The Hard Way", "url": "https://alexn.org/blog/2011/11/25/4-books-for-learning-to-design-the-hard-way/?pk_campaign=rss", "published_at": "2011-11-25T00:00:00+00:00" }, { "id": "01a08724-9d84-709c-9b43-adec78cfc080", "title": "How I Use Flickr: For Backup", "url": "https://alexn.org/blog/2011/10/29/how-i-use-flickr/?pk_campaign=rss", "published_at": "2011-10-29T00:00:00+00:00" }, { "id": "01a08724-9d84-709c-9b43-adec79149564", "title": "Why I Find Heroku Suboptimal", "url": "https://alexn.org/blog/2011/10/23/why-i-find-heroku-suboptimal/?pk_campaign=rss", "published_at": "2011-10-23T00:00:00+00:00" }, { "id": "01a08724-9d84-709c-9b43-adec7965ea20", "title": "Cross-Domain, Cross-Browser AJAX Requests", "url": "https://alexn.org/blog/2011/03/24/cross-domain-requests/?pk_campaign=rss", "published_at": "2011-03-24T00:00:00+00:00" }, { "id": "01a08724-9d84-709c-9b43-adec7a1b78fe", "title": "I hate NULL and all its variants!", "url": "https://alexn.org/blog/2010/05/25/i-hate-null/?pk_campaign=rss", "published_at": "2010-05-25T00:00:00+00:00" }, { "id": "01a08724-9d84-709c-9b43-adec7aaf6a1c", "title": "Introduction", "url": "https://alexn.org/blog/2009/02/20/tips-for-creating-voip-dialer/?pk_campaign=rss", "published_at": "2009-02-20T00:00:00+00:00" }, { "id": "01a08724-9d84-709c-9b43-adec7b68df6f", "title": "Using the Best Tools in Programming: Not Really Doable", "url": "https://alexn.org/blog/2009/02/01/using-best-tools-programming-not-doable/?pk_campaign=rss", "published_at": "2009-02-01T00:00:00+00:00" } ] posts Claim your blog
Back to alexn.org
Blog · corpus.blog/blogs/alexn.org/posts

alexn.org

alexn.org

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009