<?xml version="1.0" encoding="UTF-8" standalone="yes"?><oembed><version><![CDATA[1.0]]></version><provider_name><![CDATA[Experimental chill]]></provider_name><provider_url><![CDATA[http://danlark.org]]></provider_url><author_name><![CDATA[Danila Kutenin]]></author_name><author_url><![CDATA[https://danlark.org/author/kutdanila/]]></author_url><title><![CDATA[Random engineering blog]]></title><type><![CDATA[link]]></type><html><![CDATA[
<hr class="wp-block-separator is-style-wide" />



<p class="has-text-align-center"><a href="https://danlark.org/2020/01/11/about-me-and-this-blog/">About the author</a></p>


				<div
			class="wp-block-newspack-blocks-homepage-articles is-style-default wpnbha ts-3 is-style-default"
			style=""
			>
			<div data-posts data-current-post-id="8">
								
	<article data-post-id="726"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2021/06/11/beyond-malloc-efficiency-to-fleet-efficiency-a-hugepage-aware-memory-allocator/" rel="bookmark">Beyond malloc efficiency to fleet efficiency: a hugepage-aware memory&nbsp;allocator</a></h2>						<p>TCMalloc team recently published a paper on OSDI&#8217;21 about Google&#8217;s allocator internals, specifically on how huge pages are used. You can read the full paper here. TL;DR. Google saved 2.4% of the memory fleet and increased the QPS performance of the most critical applications by 7.7%, an impressive result worth noting. Code is open sourced, [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published updated" datetime="2021-06-11T18:32:08+00:00">June 11, 2021</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="687"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2021/03/08/how-a-bug-in-the-linux-crc-32-checksum-turned-out-not-to-be-a-bug/" rel="bookmark">How a Bug(?) in the Linux CRC-32 Checksum Turned out not to be a&nbsp;Bug</a></h2>						<p>A friend of mine nerd sniped me with a good story to investigate which kinda made me giggle and want to tell to the public some cool things happened to me during my experience with hashing and other stuff. The story is simple and complex at the same time, I&#8217;d try to stick to a [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published" datetime="2021-03-08T12:33:51+00:00">March 8, 2021</time><time class="updated" datetime="2021-03-09T11:28:02+00:00">March 9, 2021</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="555"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/11/11/miniselect-practical-and-generic-selection-algorithms/" rel="bookmark">Miniselect: Practical and Generic Selection&nbsp;Algorithms</a></h2>						<p>Today I present a big effort from my side to publish miniselect &#8212; generic C++ library to support multiple selection and partial sorting algorithms. It is already used in ClickHouse with huge performance benefits. Exact benchmarks and results will be later in this post and now let&#8217;s tell some stories about how it all arose. [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published" datetime="2020-11-11T03:39:23+00:00">November 11, 2020</time><time class="updated" datetime="2020-11-19T19:15:43+00:00">November 19, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="502"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/10/08/i-need-extra-c-c-performance-now-how/" rel="bookmark">I need extra C/C++ performance now.&nbsp;How?</a></h2>						<p>Hello everyone, today we are going to talk about C++ performance. Again, another &#8220;usual&#8221; perf blog as you may think. I promise to give really practical advice and don&#8217;t get bullshitty (okay, a little bit) talks about how C++ is performant. We are gonna roast the compilers and think about what we should do about [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published" datetime="2020-10-08T11:13:29+00:00">October 8, 2020</time><time class="updated" datetime="2020-10-08T11:36:38+00:00">October 8, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="382"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/07/31/news-aggregator-from-scratch-in-2-weeks/" rel="bookmark">News Aggregator from Scratch in 2&nbsp;Weeks</a></h2>						<p>Data Clustering Contest&nbsp;was a two-week data science and engineering competition held by Telegram in May. The Telegram team wanted participants to build a simple yet effective news aggregator that consolidates thousands of articles from various publishers and websites into a single page, which shows the latest news in real time, exactly like&nbsp;Google News,&nbsp;Bing News or [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published" datetime="2020-07-31T22:55:14+00:00">July 31, 2020</time><time class="updated" datetime="2020-07-31T23:42:27+00:00">July 31, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="288"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/06/14/128-bit-division/" rel="bookmark">Optimizing 128-bit Division</a></h2>						<p>When it comes to hashing, sometimes 64 bit is not enough, for example, because of birthday paradox &#8212; the hacker can iterate through random entities and it can be proven that with some constant probability they will find a collision, i.e. two different objects will have the same hash. is around 4 billion objects and [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published" datetime="2020-06-14T20:48:36+00:00">June 14, 2020</time><time class="updated" datetime="2020-07-19T11:47:55+00:00">July 19, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="246"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/04/13/why-is-stdpair-broken/" rel="bookmark">Why is std::pair&nbsp;broken?</a></h2>						<p>Today we are going to talk about C++ basic std::pair class in a way how and why it is broken. Story std::pair first appeared in C++98 as a pretty basic class with a very simple semantics &#8212; you have two types T1 and T2, you can write std::pair&lt;T1, T2&gt; and access .first and .second members [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published updated" datetime="2020-04-13T17:21:36+00:00">April 13, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="168"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/03/13/how-to-crack-hashcode-competition-with-some-engineering-skills/" rel="bookmark">How to crack HashCode competition with some engineering&nbsp;skills</a></h2>						<p>Hi everyone, hashcode is over. As now I can tell anything, I want just to tell how I was solving this problem, my methodologies, overall the structure of the data sets. I am not going to provide any internals and whatsoever, all data can be checked and much of it is my personal opinion though [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published updated" datetime="2020-03-13T21:41:15+00:00">March 13, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="147"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/01/31/i-wrote-go-code-for-3-weeks-and-you-wont-believe-what-happened-next/" rel="bookmark">I wrote Go code for 3 weeks and you won&#8217;t believe what happened&nbsp;next</a></h2>						<p>Historically, I am a C++ programmer and really like all this kind of C-ish stuff &#8212; from raw assembly to high level abstractions and SFINAE methods. For the past three weeks I managed to write lots of Go code &#8212; around 10k LOC without almost knowing anything when I started. I want to talk what [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published" datetime="2020-01-31T19:16:13+00:00">January 31, 2020</time><time class="updated" datetime="2020-03-28T00:58:08+00:00">March 28, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="97"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/01/12/how-to-contribute-to-abseil-with-a-visible-performance-gain/" rel="bookmark">How to contribute to Abseil with a visible performance&nbsp;gain</a></h2>						<p>Overview of Abseil Abseil is a great C++ library with a special and unique philosophy inside it. While there is a lot of debate what C++ is prioritizing more &#8211; portability or performance with possibly breaking changes, Abseil library aims in a standard compatible way to provide best library features of all standards sometimes with [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published updated" datetime="2020-01-12T00:53:52+00:00">January 12, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

		
	<article data-post-id="24"
		class="category-uncategorized type-post"
				>
		
		<div class="entry-wrapper">
			<h2 class="entry-title"><a href="https://danlark.org/2020/01/11/about-me-and-this-blog/" rel="bookmark">About me and this&nbsp;blog</a></h2>						<p>I am Danila Kutenin. I am an engineer working at Google and doing distributed and high performance C++ software. My main interests are distributed systems, operating systems design, hardware testing, compilers, APIs, algorithms and theoretical computer science. I worked for almost for 2 years at Yandex doing the core search engine &#8211; one of the [&hellip;]</p>
				<div class="entry-meta">
												<span class="byline">
								by <span class="author vcard"><a class="url fn n" href="https://danlark.org/author/kutdanila/">Danila Kutenin</a></span>							</span><!-- .author-name -->
							<time class="entry-date published" datetime="2020-01-11T12:59:49+00:00">January 11, 2020</time><time class="updated" datetime="2020-07-19T11:10:04+00:00">July 19, 2020</time>				</div><!-- .entry-meta -->
					</div><!-- .entry-wrapper -->
	</article>

					</div>
			
		</div>
				


<hr class="wp-block-separator is-style-wide" />



<div class="wp-block-jetpack-subscriptions wp-block-jetpack-subscriptions__supports-newline wp-block-jetpack-subscriptions__use-newline"><div class="jetpack_subscription_widget">			<form
				action="https://subscribe.wordpress.com"
				method="post"
				accept-charset="utf-8"
				id=""
			>
								<p id="subscribe-email">
					<label
						id="subscribe-field-label"
						for="subscribe-field"
						class="screen-reader-text"
					>
						Email Address:					</label>

					<input
							type="email"
							name="email"
							
							style="font-size: 16px; padding: 15px 23px 15px 23px; border-radius: 0px; border-width: 1px;"
							placeholder="Enter your email address"
							value=""
							id="subscribe-field"
						/>				</p>

				<p id="subscribe-submit"
									>
                    <input type="hidden" name="action" value="subscribe"/>
                    <input type="hidden" name="blog_id" value="171375525"/>
                    <input type="hidden" name="source" value="https://public-api.wordpress.com/oembed/?format=xml&#038;url=https%3A%2F%2Fdanlark.org%2F&#038;for=wpcom-auto-discovery"/>
                    <input type="hidden" name="sub-type" value="widget"/>
                    <input type="hidden" name="redirect_fragment" value="531"/>
					<input type="hidden" id="_wpnonce" name="_wpnonce" value="3f996e063d" />                    <button type="submit"
	                    	                        class="has-text-color has-background-color has-background has-primary-background-color"
	                    		                			                style="background: #020202; font-size: 16px; padding: 15px 23px 15px 23px; margin-top: 10px; border-radius: 0px; border-width: 1px;"
		                	                >
	                    Subscribe                    </button>
                </p>
            </form>
			
</div></div>
]]></html></oembed>