<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Projects on hacklog</title>
    <link>https://sjp38.github.io/tags/projects/</link>
    <description>Recent content in Projects on hacklog</description>
    <image>
      <title>hacklog</title>
      <url>https://sjp38.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://sjp38.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.131.0</generator>
    <language>en</language>
    <lastBuildDate>Fri, 18 Oct 2024 11:57:51 +0000</lastBuildDate>
    <atom:link href="https://sjp38.github.io/tags/projects/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Hackermail v1 is released</title>
      <link>https://sjp38.github.io/posts/hackermail_v1/</link>
      <pubDate>Sat, 17 Feb 2024 10:40:58 -0800</pubDate>
      <guid>https://sjp38.github.io/posts/hackermail_v1/</guid>
      <description>I started subscribing linux kernel mailing list with my gmail account in 2013. Dealing with the large amount of mails was not that easy, probably due to my poor setup and being lazy at trying more tools.
In 2019, while returning from Linux Plumbers Conference, I read an LWN article saying Linus Torvalds is now considering unsubscribing the linux kernel mailing list, owing to the evolvement of the public-inbox and lore.</description>
    </item>
    <item>
      <title>Perfbook 2nd edition translation is complete</title>
      <link>https://sjp38.github.io/posts/ko/perfbook_2nd_edition_translation_complete/</link>
      <pubDate>Sun, 11 Feb 2024 10:05:34 -0800</pubDate>
      <guid>https://sjp38.github.io/posts/ko/perfbook_2nd_edition_translation_complete/</guid>
      <description>제 작은 취미 프로젝트[1]였던 Paul E. McKenney 의 책 한국어 번역이 약 8년 만에 소박한 이정표[2]를 완성했습니다. 매우 재미있고 유익한 여정이었습니다.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/perfbook.git/commit/?id=edbfcdee0460 [2] https://lore.kernel.org/perfbook/20240211175355.4986-1-sj38.park@gmail.com/</description>
    </item>
    <item>
      <title>Perfbook 2nd edition translation is complete</title>
      <link>https://sjp38.github.io/posts/perfbook_2nd_edition_translation_complete/</link>
      <pubDate>Sun, 11 Feb 2024 10:05:34 -0800</pubDate>
      <guid>https://sjp38.github.io/posts/perfbook_2nd_edition_translation_complete/</guid>
      <description>After about 8 years of progress on my little hobby project[1], the Korean translation of Paul E. McKenney &amp;rsquo;s book, I&amp;rsquo;m marking it as completed a humble milestone[2]. It was a very fun and informative journey.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/perfbook.git/commit/?id=edbfcdee0460 [2] https://lore.kernel.org/perfbook/20240211175355.4986-1-sj38.park@gmail.com/</description>
    </item>
    <item>
      <title>DAMON News List</title>
      <link>https://sjp38.github.io/posts/damon_news/</link>
      <pubDate>Sat, 06 May 2023 11:27:07 -0700</pubDate>
      <guid>https://sjp38.github.io/posts/damon_news/</guid>
      <description>This post has migrated to https://damonitor.github.io/posts/damon_news.</description>
    </item>
    <item>
      <title>DAMON-based System Optimization Guide</title>
      <link>https://sjp38.github.io/posts/damon_optimization_guide/</link>
      <pubDate>Sun, 15 Jan 2023 10:36:11 -0800</pubDate>
      <guid>https://sjp38.github.io/posts/damon_optimization_guide/</guid>
      <description>This post has migrated to https://damonitor.github.io/posts/damon_optimization_guide.</description>
    </item>
    <item>
      <title>perfbook 번역 재시작</title>
      <link>https://sjp38.github.io/posts/ko/perfbook_translate_restart/</link>
      <pubDate>Sat, 27 Mar 2021 13:01:07 +0100</pubDate>
      <guid>https://sjp38.github.io/posts/ko/perfbook_translate_restart/</guid>
      <description>2019-09-27 이후로 perfbook 번역을 멈췄었군요. 이제 perfbook 2nd 에디션도 나왔으니[0], 바닥부터 번역을 다시 시작해 봅니다[1]. 물론, 예전 번역본은 여전히 있습니다[2].
[0] https://mirrors.edge.kernel.org/.../perfbook/perfbook.html
[1] https://github.com/sjp38/perfbook-ko_KR/commit/1c44ef30179b
[2] https://github.com/sjp38/perfbook-ko_KR-pdf</description>
    </item>
    <item>
      <title>Starting perfbook translation again</title>
      <link>https://sjp38.github.io/posts/perfbook_translate_restart/</link>
      <pubDate>Sat, 27 Mar 2021 13:01:07 +0100</pubDate>
      <guid>https://sjp38.github.io/posts/perfbook_translate_restart/</guid>
      <description>I stopped translation of perfbook since 2019-09-27. Because the 2nd edition of perfbook is released[0], I&amp;rsquo;m starting the translation again[1], from the scratch. The old versions are still available, of course[2].
[0] https://mirrors.edge.kernel.org/.../perfbook/perfbook.html
[1] https://github.com/sjp38/perfbook-ko_KR/commit/1c44ef30179b
[2] https://github.com/sjp38/perfbook-ko_KR-pdf</description>
    </item>
    <item>
      <title>Shallow Thought: Simple and safe thoughts management</title>
      <link>https://sjp38.github.io/posts/ko/shallow_thought/</link>
      <pubDate>Sat, 03 Oct 2020 10:40:28 +0200</pubDate>
      <guid>https://sjp38.github.io/posts/ko/shallow_thought/</guid>
      <description>다양한 형태로 생각을 기록하고 가끔은 공유도 해왔습니다. 그 생각들을 오래도록 안전히 보관하고 싶었지만 몇차례 시행착오를 거치며 그게 쉽지 않음을 깨달았습니다.
시작은 일기장과 노트였습니다. 분실하기도 쉽고 구석에 쳐박아 두면 다시 볼일도 거의 없더군요.
클라우드 문서 서비스가 매력적이어 보였습니다. 하지만 영원한 건 없고 결국 그때 그때 흥하는, 또는 사용 가능한 서비스를 옮겨다녀야 하더군요. 그러다보니 서비스마다의 호환성이 문제가 됩니다.
https://yargerdotblog.files.wordpress.com/2019/02/cloudmeme.jpg
Hugo 와 같은 README 등 표준적 포맷의 plain text 기반 static site generator 를 사용하고 Git 으로 원격 repo 도 관리하는 게 괜찮은 방법 같아 보였습니다.</description>
    </item>
    <item>
      <title>RCX: Read-Copy Transact</title>
      <link>https://sjp38.github.io/posts/ko/rcx/</link>
      <pubDate>Sat, 15 Feb 2020 09:11:55 +0100</pubDate>
      <guid>https://sjp38.github.io/posts/ko/rcx/</guid>
      <description>Read-copy update (RCU) can provide ideal scalability for read-mostly workloads, but some believe that it provides only poor performance for updates. This belief is due to the lack of RCU-centric update synchronization mechanisms. RCU instead works with a range of update-side mechanisms, such as locking. In fact, many developers embrace simplicity by using global locking. Logging, hardware transactional memory, or fine-grained locking can provide better scalability, but each of these approaches has limitations, such as imposing overhead on readers or poor scalability on non-uniform memory access (NUMA) systems, mainly due to their lack of NUMA-aware design principles.</description>
    </item>
    <item>
      <title>RCX: Read-Copy Transact</title>
      <link>https://sjp38.github.io/posts/rcx/</link>
      <pubDate>Sat, 15 Feb 2020 09:11:55 +0100</pubDate>
      <guid>https://sjp38.github.io/posts/rcx/</guid>
      <description>Read-copy update (RCU) can provide ideal scalability for read-mostly workloads, but some believe that it provides only poor performance for updates. This belief is due to the lack of RCU-centric update synchronization mechanisms. RCU instead works with a range of update-side mechanisms, such as locking. In fact, many developers embrace simplicity by using global locking. Logging, hardware transactional memory, or fine-grained locking can provide better scalability, but each of these approaches has limitations, such as imposing overhead on readers or poor scalability on non-uniform memory access (NUMA) systems, mainly due to their lack of NUMA-aware design principles.</description>
    </item>
    <item>
      <title>DAMON: Data Access Monitor</title>
      <link>https://sjp38.github.io/posts/damon/</link>
      <pubDate>Fri, 27 Dec 2019 18:21:07 +0100</pubDate>
      <guid>https://sjp38.github.io/posts/damon/</guid>
      <description>This post has migrated to https://damonitor.github.io/posts/damon.</description>
    </item>
    <item>
      <title>DAPHICX: Data Access Pattern Hint Injecting Compiler Extension</title>
      <link>https://sjp38.github.io/posts/daphicx/</link>
      <pubDate>Thu, 30 May 2019 18:59:53 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/daphicx/</guid>
      <description>Memory pressure is inevitable as the size of working sets is rapidly growing while the capacity of dynamic random access memory (DRAM) is not. Meanwhile, storage devices have evolved so that their speed is comparable to the speed of DRAM while their capacity scales are comparable to that of hard disk drives (HDD). Thus, hierarchial memory systems configuring DRAM as the main memory and high-end storages as swap devices will be common.</description>
    </item>
    <item>
      <title>DAPHICX: Data Access Pattern Hint Injecting Compiler Extension</title>
      <link>https://sjp38.github.io/posts/ko/daphicx/</link>
      <pubDate>Thu, 30 May 2019 18:59:53 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/ko/daphicx/</guid>
      <description>Memory pressure is inevitable as the size of working sets is rapidly growing while the capacity of dynamic random access memory (DRAM) is not. Meanwhile, storage devices have evolved so that their speed is comparable to the speed of DRAM while their capacity scales are comparable to that of hard disk drives (HDD). Thus, hierarchial memory systems configuring DRAM as the main memory and high-end storages as swap devices will be common.</description>
    </item>
    <item>
      <title>Idle Page Tracking Tools</title>
      <link>https://sjp38.github.io/posts/idle_page_tracking/</link>
      <pubDate>Wed, 13 Sep 2017 13:46:00 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/idle_page_tracking/</guid>
      <description>idle_page_tracking[1] is a simple, stupid toolbox for idle pages tracking. It can be used to get real working set size of a process.
Tools This section describes two tools in the box though more tools exists. You can get more description about each tool from the README in the repository[1].
userprog userprog is a sample synthetic workload for test of other tools. It interactively allocates and access specified pages in the allocated pages.</description>
    </item>
    <item>
      <title>Idle Page Tracking Tools</title>
      <link>https://sjp38.github.io/posts/ko/idle_page_tracking/</link>
      <pubDate>Wed, 13 Sep 2017 13:46:00 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/ko/idle_page_tracking/</guid>
      <description>idle_page_tracking[1] is a simple, stupid toolbox for idle pages tracking. It can be used to get real working set size of a process.
Tools This section describes two tools in the box though more tools exists. You can get more description about each tool from the README in the repository[1].
userprog userprog is a sample synthetic workload for test of other tools. It interactively allocates and access specified pages in the allocated pages.</description>
    </item>
    <item>
      <title>lkml livestream</title>
      <link>https://sjp38.github.io/posts/ko/lkml_go/</link>
      <pubDate>Sun, 28 May 2017 17:51:43 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/ko/lkml_go/</guid>
      <description>쏟아지는 LKML[2] 의 메일들을 트위터 라이브스트림처럼 터미널에 보여주는 간단한 프로그램[1] 을 go 언어로 만들어 봤습니다. 아직 보완할 점 투성이지만 이제 최초의 목적대로는 동작하는군요.
References [1] https://github.com/sjp38/lkml
[2] https://en.wikipedia.org/wiki/Linux_kernel_mailing_list</description>
    </item>
    <item>
      <title>lkml livestream</title>
      <link>https://sjp38.github.io/posts/lkml_go/</link>
      <pubDate>Sun, 28 May 2017 17:51:43 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/lkml_go/</guid>
      <description>I wrote a simple, stupid program[1] that showing LKML[2] mails in terminal briefly like twitter livestream in Go language. It is just an early version and so many things to be complemented exists, though. Nevertheless, now it just works as I wanted at first.
References [1] https://github.com/sjp38/lkml
[2] https://en.wikipedia.org/wiki/Linux_kernel_mailing_list</description>
    </item>
    <item>
      <title>GCMA: Guaranteed Contiguous Memory Allocator</title>
      <link>https://sjp38.github.io/posts/gcma/</link>
      <pubDate>Sat, 14 Jan 2017 23:11:23 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/gcma/</guid>
      <description>The importance of physically contiguous memory has increased in modern computing environments, including both low- and high-end systems. Existing physically contiguous memory allocators generally have critical limitations. For example, the most commonly adopted solution, the memory reservation technique, wastes a significant amount of memory space. Scatter/Gather direct memory access (DMA) and input-output memory management units (IOMMUs) avoid this problem by utilizing additional hardware for address space virtualization. However, additional hardware means an increase in costs and power consumption, which is especially disadvantageous for small systems and they do not provide real contiguous memory.</description>
    </item>
    <item>
      <title>GCMA: Guaranteed Contiguous Memory Allocator</title>
      <link>https://sjp38.github.io/posts/ko/gcma/</link>
      <pubDate>Sat, 14 Jan 2017 23:11:23 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/ko/gcma/</guid>
      <description>The importance of physically contiguous memory has increased in modern computing environments, including both low- and high-end systems. Existing physically contiguous memory allocators generally have critical limitations. For example, the most commonly adopted solution, the memory reservation technique, wastes a significant amount of memory space. Scatter/Gather direct memory access (DMA) and input-output memory management units (IOMMUs) avoid this problem by utilizing additional hardware for address space virtualization. However, additional hardware means an increase in costs and power consumption, which is especially disadvantageous for small systems and they do not provide real contiguous memory.</description>
    </item>
    <item>
      <title>&#34;Is Parallel Programming Hard, And, If So, What Can You Do About It?&#34; Translation</title>
      <link>https://sjp38.github.io/posts/ko/perfbook-kokr/</link>
      <pubDate>Tue, 10 Jan 2017 13:46:00 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/ko/perfbook-kokr/</guid>
      <description>&amp;ldquo;Is Parallel Programming is Hard, And, If So, What Can You Do About It?&amp;quot;[1] 은 parallel programming 분야에서 대가라 불릴만한 분으로, 이쪽 분야에서 매우 중요한 동기화 메커니즘인 RCU[2] 를 개발했으며 리눅스 커널의 RCU 메인테이너로 활동하고 있는 Paul E. McKenney[3] 가 오픈소스 방식으로 저술하고 있는, parallel programming 에 대한 책입니다.
개인적으로 이 책의 한국어 번역을 오픈소스[4]로 진행하고 있습니다. 이 프로젝트는 원저작자인 Paul 에게 공식 한국어 번역으로 인증받았습니다[5].
컨트리뷰션에 대해서도 열려 있으니, 이에 관심 있는 분은 repository 내의 README 문서의 Contribution 섹션[6] 을 참고 바랍니다.</description>
    </item>
    <item>
      <title>&#34;Is Parallel Programming Hard, And, If So, What Can You Do About It?&#34; Translation</title>
      <link>https://sjp38.github.io/posts/perfbook-kokr/</link>
      <pubDate>Tue, 10 Jan 2017 13:46:00 +0900</pubDate>
      <guid>https://sjp38.github.io/posts/perfbook-kokr/</guid>
      <description>&amp;ldquo;Is Parallel Programming is Hard, And, If So, What Can You Do About It?&amp;quot;[1] 은 parallel programming 분야에서 대가라 불릴만한 분으로, 이쪽 분야에서 매우 중요한 동기화 메커니즘인 RCU[2] 를 개발했으며 리눅스 커널의 RCU 메인테이너로 활동하고 있는 Paul E. McKenney[3] 가 오픈소스 방식으로 저술하고 있는, parallel programming 에 대한 책입니다.
개인적으로 이 책의 한국어 번역을 오픈소스[4]로 진행하고 있습니다. 이 프로젝트는 원저작자인 Paul 에게 공식 한국어 번역으로 인증받았습니다[5].
컨트리뷰션에 대해서도 열려 있으니, 이에 관심 있는 분은 repository 내의 README 문서의 Contribution 섹션[6] 을 참고 바랍니다.</description>
    </item>
  </channel>
</rss>
