<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on 0xcc.re</title><link>https://0xcc.re/posts/</link><description>Recent content in Posts on 0xcc.re</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 03 May 2026 18:00:00 +0200</lastBuildDate><atom:link href="https://0xcc.re/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Skynet: Towards Synthetic Neurobiology</title><link>https://0xcc.re/2026/05/03/skynet-towards-synthetic-neurobiology.html/</link><pubDate>Sun, 03 May 2026 18:00:00 +0200</pubDate><guid>https://0xcc.re/2026/05/03/skynet-towards-synthetic-neurobiology.html/</guid><description>&lt;p&gt;The original idea was a joke.&lt;/p&gt;
&lt;p&gt;I was looking at LLM loops and thinking about how they map onto Elixir&amp;rsquo;s actor model — GenServers that receive messages, process them, maybe spawn new processes. The jump from &amp;ldquo;LLM reasoning step&amp;rdquo; to &amp;ldquo;GenServer handling a message&amp;rdquo; is not that far, and once you see it you can&amp;rsquo;t unsee it. What if you gave a Soul GenServer access to &lt;code&gt;Code.eval_string&lt;/code&gt;? What if the agents could fork themselves, spawn new processes mid-reasoning, grow the supervision tree dynamically? I called it Skynet mostly because I thought it was funny.&lt;/p&gt;</description></item><item><title>Prism: Why I built my own search engine</title><link>https://0xcc.re/2026/05/01/prism-why-i-built-my-own-search-engine.html/</link><pubDate>Fri, 01 May 2026 18:00:00 +0200</pubDate><guid>https://0xcc.re/2026/05/01/prism-why-i-built-my-own-search-engine.html/</guid><description>&lt;p&gt;At some point at work I had to delete a large Elasticsearch index. Straightforward task, you&amp;rsquo;d think. The index had grown out of control, nothing useful in it anymore, and it was eating disk.&lt;/p&gt;
&lt;p&gt;The problem was how you delete in Elasticsearch. &lt;code&gt;delete_by_query&lt;/code&gt; doesn&amp;rsquo;t just delete — it copies the data to a new index first, then removes the old one. So before you can delete your way out of a disk space problem, you need&amp;hellip; disk space. Enough to hold a second copy of the index you&amp;rsquo;re trying to get rid of.&lt;/p&gt;</description></item><item><title>Checkout pull requests from github locally</title><link>https://0xcc.re/2022/03/20/checkout-pull-requests-from-github-locally.html</link><pubDate>Sun, 20 Mar 2022 17:45:00 +0100</pubDate><guid>https://0xcc.re/2022/03/20/checkout-pull-requests-from-github-locally.html</guid><description>&lt;p&gt;Sometimes for various reasons I want to get one or more pull requests from github to my local copy of the repository. In the beginning I went as far as checking out the repository of whoever wrote the pull request, if small enough copy paste when it&amp;rsquo;s only for quick tests. Luckly that&amp;rsquo;s past, there is better ways of doing it!&lt;/p&gt;
&lt;p&gt;In &lt;code&gt;.gitconfig&lt;/code&gt; add the following:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[remote &amp;#34;origin&amp;#34;]
 fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Testing with a random golang project found on github the results are like this (I checked it out some days ago, and is now updaing my local copy):&lt;/p&gt;</description></item><item><title>Dangerous toys: Anything to ed25519 (SSH Keys)</title><link>https://0xcc.re/2022/02/01/dangerous-toys-anything-to-ed25519-ssh-keys.html</link><pubDate>Tue, 01 Feb 2022 14:00:00 +0100</pubDate><guid>https://0xcc.re/2022/02/01/dangerous-toys-anything-to-ed25519-ssh-keys.html</guid><description>&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; I&amp;rsquo;m not a professional cryptographer or anything like that, I&amp;rsquo;ve found it interesting to dig deep into ECC and alike crypto, use at own risk and such :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BIG NOTE:&lt;/strong&gt; After much discussion in communities it seems like a general misunderstanding from many people where they think this is a &amp;ldquo;password to key&amp;rdquo; tool.
It is not, if you use it for that purpose you&amp;rsquo;re stupid. This is for allowing you to generate more pleasant seeds for your private key, like a 64char HEX string. Rather than having to fight the keyboard typing in a base64 key when you&amp;rsquo;re already super stressed because your infrastructure is down and you&amp;rsquo;re in the middle of a disaster recovery. (Ref bellow) Wouldn&amp;rsquo;t you love enter those A&amp;rsquo;s and beg you counted right?&lt;/p&gt;</description></item><item><title>I2P outproxies: How to and General information</title><link>https://0xcc.re/2019/04/07/i2p-outproxies-howto-and-general-information.html</link><pubDate>Sun, 07 Apr 2019 09:05:18 +0200</pubDate><guid>https://0xcc.re/2019/04/07/i2p-outproxies-howto-and-general-information.html</guid><description>&lt;h2 id="what-is-a-outproxy"&gt;What is a outproxy?&lt;/h2&gt;
&lt;p&gt;A outproxy would be the same as a Tor exit node for http(s). It&amp;rsquo;s a way to allow your tunnel clients to exit via your router to the &amp;ldquo;clearnet&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="background-history"&gt;Background History&lt;/h2&gt;
&lt;p&gt;As you might not know, I2P was designed to be an internal network, which where outproxies weren&amp;rsquo;t used since all traffic where expected to remain inside the I2P network. Compared to Tor, I2P focused on internal hidden services rather than exits. For a long time it only existed 1-2 outproxies which comes with the default I2P config on new installations. It&amp;rsquo;s first now in recent time that I2P has gotten more focus on outproxies and their service.&lt;/p&gt;</description></item><item><title>How to run 128 (testnet) I2P routers in multiple subnets on a single Linux system.</title><link>https://0xcc.re/2018/10/16/howto-run-128-i2p-routers-in-multiple-subnets-on-a-single-linux-system.html</link><pubDate>Tue, 16 Oct 2018 13:36:20 +0200</pubDate><guid>https://0xcc.re/2018/10/16/howto-run-128-i2p-routers-in-multiple-subnets-on-a-single-linux-system.html</guid><description>&lt;p&gt;For a long time, at least internally it&amp;rsquo;s been talking about the need of a testnet for &lt;a href="https://geti2p.net/en/"&gt;I2P&lt;/a&gt;. Testing in production isn&amp;rsquo;t trivial :)&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been on and off the mission in quiet for myself for a while now, but finally completed something worty publishing, in other words a working testnet setup/teardown script. When I was thinking about the case two technologies comes to mind which might help getting the testnet idea an reality is &lt;a href="http://man7.org/linux/man-pages/man8/ip-netns.8.html"&gt;cgroups(namespaces)&lt;/a&gt; in Linux and &lt;a href="http://man.openbsd.org/rdomain.4"&gt;rdomains&lt;/a&gt; in OpenBSD - both of them for network isolation and virtualization. It&amp;rsquo;s probably more as well, but it&amp;rsquo;s the ones I know of by the time of writing.&lt;/p&gt;</description></item><item><title>Gitifying I2P: How to make git clone resumable</title><link>https://0xcc.re/2018/09/07/gitifying-i2p-how-to-make-git-clone-resumable.html</link><pubDate>Fri, 07 Sep 2018 20:50:45 +0200</pubDate><guid>https://0xcc.re/2018/09/07/gitifying-i2p-how-to-make-git-clone-resumable.html</guid><description>&lt;p&gt;Have you ever cloned a git repository on a bad internet connection? I have, it &lt;strong&gt;don&amp;rsquo;t work&lt;/strong&gt;. When I lived in the Philippines for a year and a half, I had to clone repositories to a server of mine in Norway, for then sharing the repo via torrent so I could download it to my laptop in the Philippines. And it seems many has asked for this feature, or workarounds when I&amp;rsquo;ve googled the topic. Luckly, it&amp;rsquo;s hope for git and resumable clone/fetch(es).&lt;/p&gt;</description></item><item><title>Russia, shame on you! Censorship is lame.</title><link>https://0xcc.re/2018/04/19/russia-shame-on-you-censorship-is-lame.html</link><pubDate>Thu, 19 Apr 2018 20:13:35 +0200</pubDate><guid>https://0xcc.re/2018/04/19/russia-shame-on-you-censorship-is-lame.html</guid><description>&lt;p&gt;Or in Russian; Позор Российскому руководству! Цензура это полный бред.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NOTE: In the bottom, this text is translated into Russian by orignal from I2Pd. Thanks to him. I barely knows a word Russian myself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before, I kind of respected you, as the gov. - But now you totally lost me.&lt;/p&gt;
&lt;p&gt;Anyway, I&amp;rsquo;m deeply invovled in the I2P project these days. And saw a way to help poor russian citicens reaching Telegram even their government is totally fucked up. Long live the internet!&lt;/p&gt;</description></item><item><title>R.I.P Return-oriented Programming (ROP)</title><link>https://0xcc.re/2018/04/02/r.i.p-return-oriented-programming.html</link><pubDate>Mon, 02 Apr 2018 13:12:12 +0200</pubDate><guid>https://0xcc.re/2018/04/02/r.i.p-return-oriented-programming.html</guid><description>&lt;p&gt;Intel has this &lt;a href="https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf"&gt;Control-flow Enforcement Technology (CET)&lt;/a&gt;, as of October 20th 2017 there are no Intel processors currently being sold that support it yet. But it will be available sooner or later- however for now, have fun :)&lt;/p&gt;
&lt;p&gt;Control-flow Enforcement Technology aims to prevent return-oriented programming (ROP) and call-jump-oriented programming (COP/JOP) attacks. The Intel-developed technology tries to prevent control-flow attacks by the concept of having a shadow stack to keep track of the expected return addresses and will raise faults if the return addresses does not match what is expected by the shadow stack. CET also has indirect branch tracking for stopping jump/call oriented attacks.&lt;/p&gt;</description></item><item><title>RSA key strength and math</title><link>https://0xcc.re/2017/08/24/rsa-strength-and-math.html</link><pubDate>Thu, 24 Aug 2017 12:37:33 +0200</pubDate><guid>https://0xcc.re/2017/08/24/rsa-strength-and-math.html</guid><description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Since time is a factor here, \(2048\) bit is probably fine for most systems and users as long as it is replaced often, like let&amp;rsquo;s encrypt does with it&amp;rsquo;s &lt;a href="https://letsencrypt.org/2015/11/09/why-90-days.html"&gt;ninety-day lifetimes&lt;/a&gt;. However for an &lt;a href="https://en.wikipedia.org/wiki/Certificate_authority"&gt;CA&lt;/a&gt; I wouldn&amp;rsquo;t use less than \(4096\) bit keys, and probably \(8192\) bit keys if they where to live longer than ~2030 maybe.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: There are algorithms with sub-exponential running time for factoring integers, which is much more faster than iterating through all the numbers. I&amp;rsquo;m aware of that.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Setup EFI Development environment on Mac OSX Sierra (10.12.X)</title><link>https://0xcc.re/2017/07/10/setup-efi-development-on-macosx-sierra-10-12.html</link><pubDate>Mon, 10 Jul 2017 05:55:39 +0200</pubDate><guid>https://0xcc.re/2017/07/10/setup-efi-development-on-macosx-sierra-10-12.html</guid><description>&lt;p&gt;Oh no! a lot of text. Well, luckly half of the post is troubleshooting. EFI development setup is easy :)&lt;/p&gt;
&lt;p&gt;Okay, before starting this guide you should have some tools installed already.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mac OS X. For this guide I run version 10.12.5 (16F73)&lt;/li&gt;
&lt;li&gt;Xcode 8. For this guide I run version 8.3.2 (8E2002)&lt;/li&gt;
&lt;li&gt;Homebrew. A package manager for Mac OS X. &lt;a href="https://brew.sh"&gt;https://brew.sh&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;First of all visit &lt;a href="https://opensource.apple.com/release/developer-tools-821.html"&gt;https://opensource.apple.com/release/developer-tools-821.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You need to download the &lt;code&gt;cctools&lt;/code&gt; package. This package contains various tools to deal with Mach-O files, which is the default binary file format used by the XNU kernel. It is an equivalent to the GNU binutils package on the GNU OS. (&lt;a href="https://opensource.apple.com/tarballs/cctools/cctools-895.tar.gz"&gt;directlink&lt;/a&gt;)&lt;/p&gt;</description></item><item><title>Building the XNU kernel on Mac OS X Sierra (10.12.X)</title><link>https://0xcc.re/2017/06/17/building-the-xnu-kernel-on-mac-osx-sierra-10.12.html</link><pubDate>Sat, 17 Jun 2017 21:46:00 +0200</pubDate><guid>https://0xcc.re/2017/06/17/building-the-xnu-kernel-on-mac-osx-sierra-10.12.html</guid><description>&lt;h2 id="introduction-to-xnu-compiling"&gt;Introduction to XNU compiling&lt;/h2&gt;
&lt;p&gt;From version to version, I always love to play around with the kernel. And it has always been a great lack in guides and documentation on how to build Mac OSX&amp;rsquo;s kernel, XNU. For those of you that already have tried compiling XNU for Mac OSX 10.12 (Sierra), you probably noticed that earlier build guides like &lt;a href="http://shantonu.blogspot.no/2015/12/building-xnu-for-os-x-1011-el-capitan.html"&gt;ssen&amp;rsquo;s blog - Building xnu for OS X 10.11 El Capitan&lt;/a&gt; don&amp;rsquo;t work anymore. However, many thanks to ssen to put in time to write a guide.&lt;/p&gt;</description></item></channel></rss>