Facts about Bash/Dash/sh

  • Arch Linux uses Bash(Bourne Again Shell) for POSIX shell (/bin/sh)
  • When Bash is called with sh, it tries to emulate the POSIX shell
  • Dash is POSIX compatible, making it Bash incompatible.

Facts about of V-Table

In C++, the virtual table pointer is located in the head of the class instance.

The virtual table is a table of pointer to virtual(overridden or not) functions.

Therefore, to invoked these virtual methods, a mechanism called thunk(a jocular form of think) is needed. It means doing something before the actual function is called. And functional language relies largely on this mechanism.

Fact about Zeromq

  • It is a distributed communication library.
  • It sits on top of the TCP/IP layer, means the possibility is huge that it sends message by syscalls like send.

Facts about lttng

  • Means Linux Tracing Tool, next generation
  • In Artful repo, for older Ubuntu versions, go to ppa:lttng
  • Can be used to trace syscall, or even user application(need to write code into the program)
  • babeltrace could be used to translate the file.

Facts about Ubuntu

  • The life span of Zesty(17.04) has ended in Jan. 2018. Artful will meets its end in Jul. 2018.
  • The life span of non-LTS versions is 9 months.
  • 18.04 is called Bionic, will upgrade later

Facts about Opam

The package manager of OCaml. Not a kind of mineral.

Facts about type algebra

Refer to this page.

The type could be expressed in an algebra-like manner:

0: None type, there is 0 way to construct an empty type object

1: Singleton

2: Two ways to construct the type, boolean type is an example

++: Sum type, the object of type a+ba+b could be either type a or type b, but not both, there are exactly a+ba+b ways to construct the object. Injection is used to construct an instance, if it is called an instance. ×\times: Product type, the object of type a×ba\times b is a combination of an object of type a and one of type b. OCaml adopts this notation, an constructor applied to type a×ba\times b is written as `Foo of a*b`.

And as a surprising yet unsurprising coincidence, the sum and product obey the rules:

Communicative: a+b=b+aa+b=b+a

Associative: a+(b+c)=(a+b)+ca+(b+c)=(a+b)+c

Distributive: a×(b+c)=a×b+a×ca\times(b+c)=a\times b+a\times c

For recursive types like the tree, which is

data Tree a = Leaf a | Branch (Tree a) (Tree a)

The formula is:

T=a+T2T = a + T^2

Therefore, we have:

T2T+a=0T^2-T+a=0 T=114a2T = \frac{1-\sqrt{1-4a}}{2} (Why choose the minus sign?)

Use Taylor series, we could obtain:

T=1+a+a2+2a3+5a4+14a5+42a6T=1 + a + a^2 + 2 a^3 + 5 a^4 + 14 a^5 + 42 a^6 \cdots

And the coefficients of a are Catalan numbers.

Zippers means we could turn the pocket inside out and focus on one element in a data structure, in a way that updating the focused element , as well as moving the focus around, takes O(1)O(1) time.

And we can focus on the holes of a type.

a×ba\times b has one hole of a a+aa+a has two holes of a, that is `data _, a` and `data a, _`

It is likened to partial differentiation, for example:

(u×v)a=ua×v+va×u\frac{\partial (u \times v)}{\partial a} = \frac{\partial u}{\partial a} \times v + \frac{\partial v}{\partial a} \times u

If ta\frac{\partial t}{\partial a} means the hole numbers of a in t, and let the g of constant be zero, and g of other variables be one, then magic!

It can be applied to the list type:

data List a = [] | Cons a (List a)
L=1+aLL=1+aL , take both sides' derivative of a, we got: La=L+La×a\frac{\partial L}{\partial a} = L + \frac{\partial L}{\partial a} \times a La=L1a\frac{\partial L}{\partial a}=\frac{L}{1-a} andLa=L2\frac{\partial L}{\partial a}=L^2. Bravo! That is the zipper type, one pointing to left and the other right.

Added 3/29:

But the same thing could not be perfectly applied to the binary tree type.

Recall, we have the binary tree type:

data Tree a = Leaf | Branch a (Tree a) (Tree a)

Then the formula is:

T=1+aT2T=1+aT^2

The best I could get is about:

Ta=T2L\frac{\partial T}{\partial a}=T^2L, and the LL is a list of type 2aT2aT.

According to LYAHFGG, the zipper of a binary tree should be something like this:

data Crumbs a = LeftCrumb a (Tree a) | RightCrumb a (Tree a)
type BreadCrumbs a = [Crumbs a]
type Zipper a = (Tree a, Breadcrumbs a)

It is easy to see that Crumbs a has a type of 2aT2aT and BreadCrumbs a has a type of 112aT\frac{1}{1-2aT}.

But wait! That gives TT rather than a T2T^2 in the numerator.

Maybe we’ve just started wrong, like, we took the wrong differentiation.

That would be left for future investigation.

Misc

PEBKAC (Problem Exists Between Keyboard And Chair) is the word that describes user error.

Comment and share

Memories, Off

in writing

The title of this post refers to the galgame series produced by the once existing KID, though there is no obvious relevance between the game and this article(though the protagonist in Yubikiri no Kioku does have a memory loss and mistakes himself for someone else). By the way, an eighth installment of it is near its publication by MAGES, the franchise’s now owner, along with GloriaWorks. It was once decided to be a homage to one of the songs of Jin’s Kagerou Project, but you are not seeing it here because I forgot that and went for this one.

This article contains spoilers, which may harm or even completely ruin your playing or reading experience of the works, including but not limited to:

Game Shichinen go de Matteiru (waiting for you seven years later), fumi_md Lightnovel Tosho Meikyuu (the labyrinth of book), Juuji Shizuka, Shirabi Lightnovel Boku no Shiranai Rabukome (the love comedies I don’t know), Kashimoto Tsubame, Pyon-Kti Lightnovel Owari no Album (album of the end), Sugii Hikari

Note the pen names are kept as is: their surnames – if those could be called surnames – sits before their names. Make sure before reading on.

Continue reading

This article contains spoilers, which may harm or even completely ruin your playing experience of the games, including but not limited to: Doki Doki Literature Club!

Proceed at your own risk.

Continue reading

虫子

in writing

我的脑子里栖息着虫子。

它积蓄着体力,等待着有一天破壳而出

虫子从我的瞳孔中

虫子从我的鼻孔中

虫子从我的毛孔中

如雨后春笋般

破壳而出

虫子虫子虫子虫子虫子虫子虫子虫子虫子虫子虫子虫子虫子虫子

虫z

Continue reading
Author's picture

NoirGif

A prog®amer.

(click me to see some )


No longer a student