<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dmitry Leskov</title>
	<atom:link href="http://blog.dmitryleskov.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dmitryleskov.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Oct 2018 17:01:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>How I Play 18xx Games Online &#8211; Oct 2018 Edition</title>
		<link>http://blog.dmitryleskov.com/board-games/how-i-play-18xx-games-online-oct-2018-edition/</link>
		<comments>http://blog.dmitryleskov.com/board-games/how-i-play-18xx-games-online-oct-2018-edition/#comments</comments>
		<pubDate>Thu, 04 Oct 2018 17:01:31 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[18xx]]></category>
		<category><![CDATA[Board Games]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1529</guid>
		<description><![CDATA[18xx games are quite suitable for asynchronous online play. First, computer aided play relieves you from the need to track money and shares and care about rules enforcement. Second, you have more time to think about your moves, maybe even play out some scenarios on a spreadsheet at a critical moment of the game. Third, [...]]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/board-games/how-i-play-18xx-games-online-oct-2018-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TIL That Layered Coffee Drinks Make Themselves</title>
		<link>http://blog.dmitryleskov.com/photography/til-that-layered-coffee-drinks-make-themselves/</link>
		<comments>http://blog.dmitryleskov.com/photography/til-that-layered-coffee-drinks-make-themselves/#comments</comments>
		<pubDate>Sun, 30 Jul 2017 06:33:18 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1501</guid>
		<description><![CDATA[I used to think that making a layered coffee drink takes as much care as pouring a layered cocktail. Got a glass mug the other day and discovered that the process is pretty simple.]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/photography/til-that-layered-coffee-drinks-make-themselves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opening My First Ever Donations Season</title>
		<link>http://blog.dmitryleskov.com/business-of-software/opening-my-first-ever-donations-season/</link>
		<comments>http://blog.dmitryleskov.com/business-of-software/opening-my-first-ever-donations-season/#comments</comments>
		<pubDate>Mon, 02 Jan 2017 16:27:40 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Business of Software]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1441</guid>
		<description><![CDATA[&#34;Start donating to the authors of free and open source programs that I am using&#34; was one of my failed New Year resolutions on multiple occasions. It is not anymore, and I hope this post will inspire you to follow suit.
]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/business-of-software/opening-my-first-ever-donations-season/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Finite Laziness of Scala Streams</title>
		<link>http://blog.dmitryleskov.com/programming/scala/the-finite-laziness-of-scala-streams/</link>
		<comments>http://blog.dmitryleskov.com/programming/scala/the-finite-laziness-of-scala-streams/#comments</comments>
		<pubDate>Sun, 03 Jul 2016 09:35:05 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1346</guid>
		<description><![CDATA[The official Haskell wiki discusses literally dozens of ways to produce a list of prime numbers, but the one that caught my attention the other day is not listed there. Its centerpiece is a fold of a recursively defined infinite list of infinite lists (lists are lazy in Haskell). In this post, I've documented my attempt to rewrite it in Scala using streams.]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/programming/scala/the-finite-laziness-of-scala-streams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I Would Have Price Positioned JetBrains Toolbox</title>
		<link>http://blog.dmitryleskov.com/business-of-software/how-i-would-have-price-positioned-jetbrains-toolbox/</link>
		<comments>http://blog.dmitryleskov.com/business-of-software/how-i-would-have-price-positioned-jetbrains-toolbox/#comments</comments>
		<pubDate>Sun, 06 Sep 2015 18:29:23 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Business of Software]]></category>
		<category><![CDATA[business models]]></category>
		<category><![CDATA[positioning]]></category>
		<category><![CDATA[software pricing]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1318</guid>
		<description><![CDATA[Now that my previous post on the topic has got so much attention from Reddit users, as a software engineer turned marketer I feel obliged to follow up. I do not know for sure the reasons for JetBrains to introduce subscriptions in the first place, but judging just by the price points, it does not [...]]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/business-of-software/how-i-would-have-price-positioned-jetbrains-toolbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Microsoft Got Right That JetBrains Didn&#8217;t</title>
		<link>http://blog.dmitryleskov.com/business-of-software/what-microsoft-got-right-that-jetbrains-didnt/</link>
		<comments>http://blog.dmitryleskov.com/business-of-software/what-microsoft-got-right-that-jetbrains-didnt/#comments</comments>
		<pubDate>Sat, 05 Sep 2015 19:16:59 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Business of Software]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1295</guid>
		<description><![CDATA[Blog postsrants, angry tweets, comment threads hundreds of items long &#8212; the user community has unleashed quite some emotion onto JetBrains after the company&#8217;s decision to change the pricing model for its desktop products to 100% subscription-based. The news seems to have made the day for Eclipse guys, and at least one other commercial IDE [...]]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/business-of-software/what-microsoft-got-right-that-jetbrains-didnt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scala Stream Hygiene III: Scalaz EphemeralStream Fills Quite A Canyon</title>
		<link>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-iii-scalaz-ephemeralstream-fills-quite-a-canyon/</link>
		<comments>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-iii-scalaz-ephemeralstream-fills-quite-a-canyon/#comments</comments>
		<pubDate>Mon, 11 Aug 2014 03:13:24 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[Scalaz]]></category>
		<category><![CDATA[streams]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1241</guid>
		<description><![CDATA[Scalaz, an open-source pure functional programming library for Scala, provides the EphemeralStream class that does not exhibit the memory leak issues inherent to the standard scala Stream. However, it carries its own set of problems: memory overheads, performance penalties, and application disk footprint increase.]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-iii-scalaz-ephemeralstream-fills-quite-a-canyon/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scala Stream Hygiene II: HotSpot Kicks In</title>
		<link>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-ii-hotspot-kicks-in/</link>
		<comments>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-ii-hotspot-kicks-in/#comments</comments>
		<pubDate>Fri, 25 Jul 2014 15:29:41 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[streams]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1194</guid>
		<description><![CDATA[Infinite Scala streams should be marked "not for production use", even though you can get away with breaking most of the rules listed in Part I.]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-ii-hotspot-kicks-in/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scala Stream Hygiene I: Avoiding Memory Leaks</title>
		<link>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-i-avoiding-memory-leaks/</link>
		<comments>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-i-avoiding-memory-leaks/#comments</comments>
		<pubDate>Sat, 19 Jul 2014 08:21:25 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[streams]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1174</guid>
		<description><![CDATA[The standard Scala <code>Stream</code> class is essentially a lazy <code>List</code> with memoization. However, memoization is undesirable when defining infinite data structures. It is possible to avoid memoization of streams by following a set of five rules, described in this first post in a 3-part series.]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/programming/scala/stream-hygiene-i-avoiding-memory-leaks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Updated AddFLACs to Extract Track Metadata From Pathnames</title>
		<link>http://blog.dmitryleskov.com/small-hacks/itunes-automation/updated-addflacs-to-extract-track-metadata-from-pathnames/</link>
		<comments>http://blog.dmitryleskov.com/small-hacks/itunes-automation/updated-addflacs-to-extract-track-metadata-from-pathnames/#comments</comments>
		<pubDate>Sat, 17 May 2014 13:35:07 +0000</pubDate>
		<dc:creator>Dmitry Leskov</dc:creator>
				<category><![CDATA[iTunes Automation]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://blog.dmitryleskov.com/?p=1147</guid>
		<description><![CDATA[Match your FLAC files pathnames against a regular expression, then refer to capture groups when specifying iTunes field values.]]></description>
		<wfw:commentRss>http://blog.dmitryleskov.com/small-hacks/itunes-automation/updated-addflacs-to-extract-track-metadata-from-pathnames/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
