Top all-time · #1963
Russell O’Connor
Personal blog · r6.caprogrammingmath
Russell O’Connor's personal blog at r6.ca covers programming and math. Since 2009, 40 different Hacker News readers have linked it 59 times, most often “A Very General Method of Computing Shortest Paths”. No feed was found, so read it on the site itself.
Most-linked posts?
- A Very General Method of Computing Shortest Paths6 people · 6 mentions · first linked 2011-08-15
- Confession of a Haskell Hacker4 people · 6 mentions · first linked 2012-07-08
- It Is Never a Compiler Bug Until It Is4 people · 4 mentions · first linked 2020-09-29
- Do Not Play the Lottery Unless You Are a Millionaire4 people · 4 mentions · first linked 2009-05-24
- Git is Inconsistent3 people · 3 mentions · first linked 2011-04-17
- /thesis.pdf2 people · 3 mentions · first linked 2021-09-21
- How can basic arithmetic make a self-referential sentence?2 people · 2 mentions · first linked 2023-11-23
- /blog/20060919T084800Z.html2 people · 2 mentions · first linked 2017-11-23
- The ACM and me (on refusal to publish arXived public domain papers)2 people · 2 mentions · first linked 2011-09-30
- /blog/20200929T023701Z.html2 people · 2 mentions · first linked 2021-11-08
What Hacker News says?
The post "A Very General Method of Computing Shortest Paths" ( https://r6.ca/blog/20110808T035622Z.html ) shows that the Gauss-Jordan algorithm for solving matrix equations, the Floyd-Warshall algorithm for all-pairs shortest paths, and Kleene's algorithm for converting DFAs to regular expressions, are all the same algorithm on matrices of elements from a star-semiring.
Comment linking /blog/20110808T035622Z.html
on “The hunt for the missing data type”Submitted Why Is It Taking 20 Minutes to Mine This Bitcoin Block? as a story · 258 points
HN discussionI am still learning this stuff (and have only had undergrad abstract algebra), so thank you for the context and motivation. As it happens, today I was thinking about semirings, and how to apply them to discrete event systems[1][2], and was fascinated to see that both algebraic geometers (Alexander Grothendieck) and computer scientists (Robin Milner) were doing[3] some of the same[4] sorts of tricks to transfer algeb…
Comment linking /blog/20110808T035622Z.html
on “From Design Patterns to Category Theory (2017)”Submitted It Is Never a Compiler Bug Until It Is as a story · 256 points
HN discussionNope! Not a troll question. At the end of the day, we're human beings interacting with a bunch of electrified rocks. There will always be a layer of subjectivity and expertise involved in translating informal (or perhaps even unknown) desires into formal specs. It gets even worse when you are designing software that needs to take into account the underlying behavior of hardware; you wouldn't program an autopilot for…
Comment linking /blog/20200929T023701Z.html
on “The Math Is Haunted”Submitted Functor-Oriented Programming as a story · 179 points
HN discussionHowever, even with positive expectation value, you should not always play. One should first check the Kelly criterion, which is well explained Russel O’Connor’s blog post: “Do Not Play the Lottery Unless You Are a Millionaire” http://r6.ca/blog/20090522T015739Z.html
Comment linking /blog/20090522T015739Z.html
on “Couple wins millions using lottery loophole”Submitted Kelly Criterion (2007) as a story · 164 points
HN discussionI mostly agree with what you are getting at here. However occasionally it is useful to abstract over all Functor or all Monads, etc. For example, when using the Van Laarhoven free monad[0] implementation, I'll quantify over all monads. While, there is a simple data type definition for free monads[1], it suffers from a well-known issue that the bind operation has quadratic complexity. The Van Laarhoven free monad cir…
Comment linking /blog/20140210T181244Z.html
on “Functors and Monads for People Who Have Read Too Many “Tutorials””Submitted Confession of a Haskell Hacker as a story · 163 points
HN discussionOr a compiler bug... http://r6.ca/blog/20200929T023701Z.html
Comment linking /blog/20200929T023701Z.html
on “An Update on Our Outage”Submitted Git is Inconsistent as a story · 157 points
HN discussionA set of elements that lead to the concept of provability[1] are: 0, 1, addition, multiplication, quotient, remainder and inequality. Quotient and remainder are definable implicitly in the language of number theory (the language of Peano Arithmetic). Sometimes inequality is explicitly defined, and sometimes it is implicitly defined using exists and addition. From these elements you can go on to define the Goedel bet…
Comment linking /blog/20190223T161625Z.html
on “1931: Kurt Gödel shows limits of math, logic, computing, AI”Submitted Do Not Play the Lottery Unless You Are a Millionaire as a story · 31 points
HN discussionSince you allege the existence of I'mUnprovable propositions renders Peano Arithmetic (see < http://tachyos.org/godel/Godel_statement.html > cited above), Coq, HOL Light, Isabelle and every other proof assistant that has proven the incompleteness theorem inconsistent, I look forward to you facilitating the development of a formal contradiction in any one of these systems. In particular a proof of False in Coq[1] wou…
Comment linking /blog/20061211T203500Z.html
on “1931: Kurt Gödel shows limits of math, logic, computing, AI”Submitted Object Oriented Programmer’s Productivity as a story · 9 points
HN discussionFor the record, Gödel proposition can be constructed[1] in the same manner that Quines[2] can be constructed. I myself have formalized[3] the first incompleteness theorem in the Coq proof assistant, and many others have as well in various proof assistants. You can find specific and concrete instance of a Gödel proposition written by Stephen Lee at < http://tachyos.org/godel/Godel_statement.html >. It really is not t…
Comment linking /blog/20190223T161625Z.html
on “1931: Kurt Gödel shows limits of math, logic, computing, AI”Submitted It Is Never a Compiler Bug Until It Is as a story · 3 points
HN discussionReminds me of: "It Is Never a Compiler Bug Until It Is" ( https://r6.ca/blog/20200929T023701Z.html , https://news.ycombinator.com/item?id=24636326 ). The bottom of the modern stack is really reliable, until it isn't;)
Comment linking /blog/20200929T023701Z.html
on “How I found a bug in Intel Skylake processors (2017)”Submitted Git Is Inconsistent as a story · 3 points
HN discussionIt's valid Haskell 98 with a type constructor: http://r6.ca/blog/20060919T084800Z.html . But in GHC I think the first code snippet without NOINLINE still crashes, it's a perma-bug: https://downloads.haskell.org/~ghc/latest/docs/html/users_gu... Some type systems do support equi-recursive types without the type constructor, e.g. Whiley ( http://whiley.org/2013/04/21/iso-recursive-versus-equi-recur... ). Maybe there y…
Comment linking /blog/20060919T084800Z.html
on “Lisp is not based on the Lambda Calculus”Submitted A Very General Method of Computing Shortest Paths as a story · 3 points
HN discussionFWIW, this is traditionally quite possible with Darcs. I sort of misformulated in my original post; it's not like it just gives up and you're at square one. The workflow IIRC was basically the same as Git: it'll throw its hands up and you make a new commit to fix everything. So that isn't really a problem or any different. Note that Darcs 1 did have the exponential merge case on top of this, however, which was prett…
Comment linking /blog/20110416T204742Z.html
on “Pijul – A free and open source distributed version control system”Submitted On the Static Nature of Traversals as a story · 2 points
HN discussionThe original secp256k1 developer Russell O’Connor who was hit by the bug (was on HN [0]) [1] said he rebuilt every package in his system after the bug was identified, and found only 10 lines of code that were miscompiled. Also, note that the bug was found during an attempt to add more test cases, pre-existing code in secp256k1 was not affected. > Three lines are tests. All of the lines could be rewritten as a compar…
Comment linking /blog/20200929T023701Z.html
on “Memcmp being wrongly stripped like strcmp”Submitted Why Is It Taking 20 Minutes to Mine This Bitcoin Block? (2018) as a story · 2 points
HN discussionI've use archforms in my custom markup before: https://r6.ca/HtmlAsSgml.html For example added an <nbsp> attribute to turn all spaces into non-breaking spaces, and used archforms to remove the attribute afterwards. But yeah, maybe for Makrdown you don't need archforms. On the other hand, perhaps there is some super clever way to use archforms to get your reference links working.
Comment linking /HtmlAsSgml.html
on “Markdown is holding you back”Submitted Confession of a Haskell Hacker (2012) as a story · 2 points
HN discussionNot only can you do that in NixOS, but you can even do something lighter weight and apply a patch to an existing package. This has the advantage that the patch often persists through software updates. For example, I used to patch OpenSSH to increase the minimum field size for DH key exchanges [1]. Eventually OpenSSH did update their minimum field sizes so I do not use this patch anymore. [1] https://r6.ca/blog/20150…
Comment linking /blog/20150111T040537Z.html
on “I don't like computers (2016)”Submitted The ACM and me (on refusal to publish arXived public domain papers) as a story · 2 points
HN discussion