<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mulander</title><link>https://news.ycombinator.com/user?id=mulander</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 19:37:56 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mulander" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mulander in "How we enabled ARM64 VMs"]]></title><description><![CDATA[
<p>In the article, mentioned Linux is mentioned as the underlying OS. Wonder what approach Ubicloud takes (if any) to have actual diversity in the software stack for the purpose of reliability and security. My assumption here being, that different OSes, while increasing the attack vector also make it more likely that the whole fleet is not susceptible to the same software problem or vulnerability at roughly the same time. Just something I started pondering about after seeing Hetzner, which is quite popular in the BSD land.</p>
]]></description><pubDate>Mon, 27 May 2024 15:45:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=40491861</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=40491861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40491861</guid></item><item><title><![CDATA[New comment by mulander in "Citus 12: Schema-based sharding for PostgreSQL"]]></title><description><![CDATA[
<p>Because with schema-based sharding in Citus, the schemas are the sharding unit and the system can move them to new nodes being added to the cluster.<p>You can start with all your microservices sharing a single node, add nodes and have the storage layer distributed horizontally in a way transparent to the services themselves.</p>
]]></description><pubDate>Thu, 20 Jul 2023 12:57:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=36799780</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=36799780</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36799780</guid></item><item><title><![CDATA[New comment by mulander in "Citus 12: Schema-based sharding for PostgreSQL"]]></title><description><![CDATA[
<p>Hi, we open-sourced the project fully: <a href="https://www.citusdata.com/blog/2022/06/17/citus-11-goes-fully-open-source/" rel="nofollow noreferrer">https://www.citusdata.com/blog/2022/06/17/citus-11-goes-full...</a><p>There no longer is an enterprise version, what runs on Azure is the exact same Citus that you can run yourself. We even invested in Patroni, to make it easier for the community to self-host Citus with HA setups.<p>While we obviously want people using Citus on Azure, having Citus as a viable open-source choice is our path to achieving that. I wasn't part of the company when the acquisition happened so can't speak to that, but I can imagine how that could have made sales at the transition time unclear.<p>Personally I would also like to add, that the team is full of long term open-source contributors. We contribute both to PostgreSQL and projects around it (like pgbouncer). I understand and respect your reservation, but wanted to share my perspective on it.</p>
]]></description><pubDate>Thu, 20 Jul 2023 07:20:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=36797723</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=36797723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36797723</guid></item><item><title><![CDATA[New comment by mulander in "Citus 12: Schema-based sharding for PostgreSQL"]]></title><description><![CDATA[
<p>Great observation! :)<p>We worked upstream to have `search_path` properly handled (tracked per client) by pgbouncer.<p><a href="https://github.com/pgbouncer/pgbouncer/commit/8c18fc4d213ad425841434767b71616dc3386102">https://github.com/pgbouncer/pgbouncer/commit/8c18fc4d213ad4...</a><p>Check config.md in that commit for a verbose, humanized description.</p>
]]></description><pubDate>Tue, 18 Jul 2023 22:34:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=36779951</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=36779951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36779951</guid></item><item><title><![CDATA[New comment by mulander in "Citus 12: Schema-based sharding for PostgreSQL"]]></title><description><![CDATA[
<p>They can be different, as long as your application can handle them being different (which makes sense for microservices as an example).</p>
]]></description><pubDate>Tue, 18 Jul 2023 19:45:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=36778171</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=36778171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36778171</guid></item><item><title><![CDATA[New comment by mulander in "Citus 12: Schema-based sharding for PostgreSQL"]]></title><description><![CDATA[
<p>Schemas are groupings of tables and other entities that can be defined within a database. You can think of them like of a namespace in programming languages. You can have the same table definition, within the same database, defined multiple times (each in a different schema) and each holding different data.<p>By large and small we are referring to the amount of data each schema holds currently. They can grow over time and some of them may become very big while others will remain small (storage wise).</p>
]]></description><pubDate>Tue, 18 Jul 2023 19:24:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=36777908</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=36777908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36777908</guid></item><item><title><![CDATA[Citus 12: Schema-based sharding for PostgreSQL]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.citusdata.com/blog/2023/07/18/citus-12-schema-based-sharding-for-postgres/">https://www.citusdata.com/blog/2023/07/18/citus-12-schema-based-sharding-for-postgres/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=36777053">https://news.ycombinator.com/item?id=36777053</a></p>
<p>Points: 160</p>
<p># Comments: 45</p>
]]></description><pubDate>Tue, 18 Jul 2023 18:22:16 +0000</pubDate><link>https://www.citusdata.com/blog/2023/07/18/citus-12-schema-based-sharding-for-postgres/</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=36777053</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36777053</guid></item><item><title><![CDATA[New comment by mulander in "Scaling Databases at Activision [pdf]"]]></title><description><![CDATA[
<p>Hi Nathanba, I am a technical program manager for the Citus extension at Microsoft.<p>> Citus also exists for Postgres but their docs basically tell you that it's only recommended for analytics<p>Could you point me at the docs that made you think that? We find Citus very good at multi-tenant SaaS apps (OLTP), IoT (HTAP) workloads and analytics (OLAP).<p>> And it sounds like all it's doing is a basic master-slave postgres setup with quite a few manual things you have to do to even benefit (manually altering tables to make them sharded/partitioned)<p>This is true for now. We are looking into ways to make onboarding easier. That said, the time spent on defining a good sharding model for your data often leads to very good perf characteristics. Regarding the architecture, I personally find Citus closer in spirit/design to what Vitess is doing. Additionally, every node in the cluster is able to take both writes and reads, so I don't see the parallel to a basic primary/secondary setup.</p>
]]></description><pubDate>Sat, 22 Apr 2023 10:37:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=35665115</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=35665115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35665115</guid></item><item><title><![CDATA[New comment by mulander in "Erlang: ‘Let It Crash’ under attack"]]></title><description><![CDATA[
<p>> But with all that, as Joe Armstrong once jeered, no amount of type checking would catch the following bogus code:<p>It is worth to note that the stated problem, of accessing a file after it is closed was addressed in the Phd thesis by [1] Joe Armstrong in which he suggested a solution for exactly this problem by introducing a new testing & development methodology he named "protocol checkers" (9.1 Protocols, page 195). Relevant quote from the thesis:<p>> Given a protocol which is specified in a manner similar to the above
it is possible to write a simple “protocol checking” program which can be
placed between any pair of processes.<p>The protocol is a state machine, which would detect the attempt to write to a file after it was closed.<p>[1] - <a href="https://erlang.org/download/armstrong_thesis_2003.pdf" rel="nofollow">https://erlang.org/download/armstrong_thesis_2003.pdf</a></p>
]]></description><pubDate>Wed, 30 Nov 2022 13:58:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=33800811</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=33800811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33800811</guid></item><item><title><![CDATA[New comment by mulander in "OpenBSD folklore and share/misc/airport"]]></title><description><![CDATA[
<p>Developers are categorized as people with commit access to the project. So contributing patches itself is not enough to add entries to this specific file.</p>
]]></description><pubDate>Thu, 09 Jun 2022 08:04:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=31678695</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=31678695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31678695</guid></item><item><title><![CDATA[OpenBSD folklore and share/misc/airport]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.cambus.net/openbsd-folklore-and-share-misc-airport/">https://www.cambus.net/openbsd-folklore-and-share-misc-airport/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=31678336">https://news.ycombinator.com/item?id=31678336</a></p>
<p>Points: 207</p>
<p># Comments: 77</p>
]]></description><pubDate>Thu, 09 Jun 2022 07:04:41 +0000</pubDate><link>https://www.cambus.net/openbsd-folklore-and-share-misc-airport/</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=31678336</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31678336</guid></item><item><title><![CDATA[New comment by mulander in "Ask HN: Hybrid/Remote software team rituals"]]></title><description><![CDATA[
<p>- Meetings are remote first. If at least one person is remote then the whole team video calls in. There is nothing worse than being a person on the virtual end trying to understand a mic grabbing voice from a room full of people.<p>- Schedule peer programming sessions, especially with less senior staff. Without the office environment they have less opportunities to grow.<p>- All meetings should have a note listing all decisions made.<p>- Promote async communication. Have people describe a problem instead of saying hi and waiting for a reply.</p>
]]></description><pubDate>Fri, 08 Apr 2022 07:35:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=30954322</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=30954322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30954322</guid></item><item><title><![CDATA[New comment by mulander in "Safari: Point to specific bugs and missing support that frustrate you"]]></title><description><![CDATA[
<p>> just that it minimizes the attack surface<p>I stopped using multiple browser for exactly that purpose. It actually increases your attack surface. While compartmentalization of browsers helps somewhat against tracking you now have to keep all of them updated. RCE bug in one of them already compromises everything you have on your machine, so having multiple browsers just means the attacker can pick from a wider array of targets.</p>
]]></description><pubDate>Wed, 09 Feb 2022 18:08:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=30275919</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=30275919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30275919</guid></item><item><title><![CDATA[New comment by mulander in "Safari: Point to specific bugs and missing support that frustrate you"]]></title><description><![CDATA[
<p>History is funny. KHTML (a KDE project) was repurposed to WebKit by Apple and integrated with Safari. Which in turn was taken by Google that built Chrome on it. They later diverged more and now other browser are being built on repurposed Chrome. It would be funny if Safari was really replaced by Chromium as that would mean the offspring has eaten the parent.</p>
]]></description><pubDate>Wed, 09 Feb 2022 17:23:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=30275269</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=30275269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30275269</guid></item><item><title><![CDATA[New comment by mulander in ""Secret" Agent Exposes Azure Customers to Unauthorized Code Execution"]]></title><description><![CDATA[
<p>It used to have actual Windows specific crypto code[1] which has been removed in the linked commit.<p>I assume this has been ported from Windows and later never implemented the ripped out components. That said, I don't know the windows API so apart from confirming that they exist in Windows docs[2] I can't assess how valid their usage was.<p>[1] - <a href="https://github.com/microsoft/omi/commit/edbe231042173018c52903e4170dd8b782fc4f8a#diff-6cee851bf2bc6078f7906b3b25069ec4fed59845438ef44d8df736529cc3a33cL50" rel="nofollow">https://github.com/microsoft/omi/commit/edbe231042173018c529...</a><p>[2] - <a href="https://docs.microsoft.com/en-us/windows/win32/api/dpapi/nf-dpapi-cryptprotectdata" rel="nofollow">https://docs.microsoft.com/en-us/windows/win32/api/dpapi/nf-...</a></p>
]]></description><pubDate>Wed, 15 Sep 2021 10:59:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=28537564</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=28537564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28537564</guid></item><item><title><![CDATA[New comment by mulander in "Show HN: Minimal versioned log structured relational DB in Common Lisp"]]></title><description><![CDATA[
<p>Cool project. Have you known that PostgreSQL was initially written in Lisp?<p>> By a process of elimination, we decided to try writing POSTGRES in LISP. We expected that it
would be especially easy to write the optimizer and inference engine in LISP, since both are mostly tree processing modules. Moreover, we were seduced by AI claims of high programmer productivity for applications written in LISP.<p>> We soon realized that parts of the system were more easily coded in C, for example the buffer
manager which moves 8K pages back and forth to the disk and uses a modified LRU algorithm to control
what pages are resident. Hence, we adopted the policy that we would use both C and LISP and code
modules of POSTGRES in whichever language was most appropriate. By the time Version 1 was operational, it contained about 17000 lines of LISP and about 63000 lines of C.<p>src: <a href="https://dsf.berkeley.edu/papers/ERL-M90-34.pdf" rel="nofollow">https://dsf.berkeley.edu/papers/ERL-M90-34.pdf</a><p>It also had time travel (from the same paper):<p>> Lastly, POSTGRES supports the notion of time travel. This feature allows a user to run historical
queries. For example to find the salary of Sam at time T one would query:<p><pre><code>    retrieve (EMP.salary)
    using EMP [T]
    where EMP.name = "Sam"

</code></pre>
> POSTGRES will automatically find the version of Sam’s record valid at the correct time and get the
appropriate salary.<p>Regarding your project:<p>> Databases are implemented as directories containing one file per table.<p>PostgreSQL splits tables into 1 GB segments (1 segment is one file). This is done for filesystems that can't have large files. Isn't one file per DB too limiting in that regard?<p>Are you aiming to be ACID compliant? Can you expand on 'versioned'? PostgreSQL achieves that with copy-on-write, did you take the same approach? I quickly looked over the code, it's been a while since I read some lisp. The on-disk representation seems to be just key value records where each record can be a sexp(?). Where is the relational part and do you plan to implement a query language?</p>
]]></description><pubDate>Tue, 29 Jun 2021 00:09:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=27669966</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=27669966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27669966</guid></item><item><title><![CDATA[New comment by mulander in "Internal Amazon documents shed light on how company pressures out office workers"]]></title><description><![CDATA[
<p>He assumed I was not working or doing work for a different manager (they implemented matrix management and he was at HQ 70 km away from the town I worked at). I made a judgement call as that migration was a $20 mln project. That corporation had time budgeting. I was supposed to account in a production tracking system every task I did in 15 minute granularity. I have a ton of crazy stories like that out of that place.<p>In essence, the guy was a micromanager with trust issues. They later replaced him, with someone that was actually worse.</p>
]]></description><pubDate>Mon, 21 Jun 2021 22:02:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=27585117</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=27585117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27585117</guid></item><item><title><![CDATA[New comment by mulander in "Internal Amazon documents shed light on how company pressures out office workers"]]></title><description><![CDATA[
<p>> had fewer commits and SLOC compared to my teammates<p>Hope this makes you feel slightly better: <a href="https://www.folklore.org/StoryView.py?story=Negative_2000_Lines_Of_Code.txt" rel="nofollow">https://www.folklore.org/StoryView.py?story=Negative_2000_Li...</a><p>It is impossible to measure someones productivity using metrics like commit counts and SLOC. There are times where I don't commit for weeks and provide actual business value by solving direct client issues without even a ticket being present.<p>At one time at my second IT job, I had a manager reprimand me (yelling over the phone) that I was away from my desk. I was remotely supporting a bank fixing consortium credit contracts (substantial amounts) after a migration. I was told to stop doing that. So, I told the support tech that my 1-up blocked this. He told the people at the bank; this went up the chain at the bank to the main accountants which resulted in a nasty call from the client to the skip manager of my manager. He called me back and asked me to resume what I did almost crying on the phone. Later that year I was selected employee of the year mostly because of that client constantly sending positive feedback on my help.</p>
]]></description><pubDate>Mon, 21 Jun 2021 21:15:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=27584599</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=27584599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27584599</guid></item><item><title><![CDATA[New comment by mulander in "EA got hacked and games source code leaked including new game Battlefield 2042"]]></title><description><![CDATA[
<p>I would say that "source code is the blueprint of a computer program". If you look at the wikipedia entry:<p>> A blueprint is a reproduction of a technical drawing or engineering drawing [...] allowed rapid and accurate production of an unlimited number of copies.<p>and even if no-one reads the definition, the term is in common use. Spies stealing blueprints of weapons in movies / real-life being an immediate example.</p>
]]></description><pubDate>Fri, 11 Jun 2021 17:14:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=27475981</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=27475981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27475981</guid></item><item><title><![CDATA[New comment by mulander in "Fastmail accounts blocked in Russia, here's what we know"]]></title><description><![CDATA[
<p>Well, I would expect them to address this issue specifically as that is one of the selling points of fastmail. You can get banned on Google for nothing and not being able to reach a person with your data held hostage. Now, this is a comparable situation where data is held hostage unless the customers in Russia have a way to access and retrieve whatever is stored on their accounts.<p>On top of that there is a question of billing and refunds in the case of long-term plans being paid up front (eg. one year subscription).</p>
]]></description><pubDate>Wed, 09 Jun 2021 14:07:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=27447995</link><dc:creator>mulander</dc:creator><comments>https://news.ycombinator.com/item?id=27447995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27447995</guid></item></channel></rss>