# 服務器被入侵手記

## 背景與起因

shipyard 終於成功跑起來了，我玩了一會，得意之至，忘記了上面的警告和自己親手暴露的端口。接著我就折騰 Jenkins 之類的去了，玩得不亦樂乎。

# Banana Algebra

Abstract: I’ll be talking about the F-Algebra Category and related applications of F-Algebra in function programming in this post.

## F-Algebra

So first of all, an algebra over a type $a$ is set of functions that converts an algebra structure $f a$ to $a$ CoAlg. An algebra consists of:

• An algebra structure: $\rm{F}$
• A carrier type: $\rm{a}$
• A total function: $\rm{F(a)} \to \rm{a}$

An example of an algebra looks like:

• Algebra struct: data F1 a = Zero | One | Plus a a
• A carrier type: it could be any instance of a: Int, String, etc.
• A total function:

Or we can have:

## F-Algebra Arrows

All algebras for an algebra structure $\rm{F}$ forms a category $\cal{C}$. The objects are, of course, the algebras, while the arrows are defined as morphisms between each two pair of algebras that transforming the carrier type: $\hom_{\cal{C}}(\rm{Alg}(\rm{F},\rm{a}), \rm{Alg}(\rm{F},\rm{b}))$.

For an arrow in F-algebra category, we need a transformation from F a to a.

# 誡之二

host 曰：即有大樂者，與悲治之。

# Undeepening Continuations

Continuation was always a mystery to me since I started to learn monad.

My friend Javran once sent me a link to ‘the mother of all monads’, from where I start to rethink the significance of the continuation monad. That article, to me as a novice, wasn’t enough explanative for me to comprehend. Therefore, to demystify the significance of the continuation monad, I spend several hours to read through articles about it last night. In the final, I eventually carried my understanding to continuation out into code and achieved enlightenment. (not really)

So let’s get started. First of all, we need to know, at least have a primitive concept of, what continuation is used for. So here is my understanding,

A continuation is an intermediate state that allows computation to run at that point.

You don’t need to try hardly on comprehending the statement above. By going through this tutorial you will make your own understanding out.

# 深淵

Lambda 醬想遲些再去打掃房間～

# Function Calling Syntax

We use programming languages to indicate a process of actions/computations. Therefore programming languages tends to be more procedual. In other words, they are used to indicate how a thing is done.

Just as the role of verbs in a nature language sentence, an action is the most essential part of ‘doing a task’ in programming language. Of course the syntax of a programming language could be complex. I’d be here to discuss only the simplest cases of function calling among different programming languages.