网上冲浪指南 |> λ

修改 DarkTable 界面语言

2019/04/14

如何让 DarkTable 的界面显示简体中文。

Safari 无法刷新缓存

2019/03/24

Safari 浏览器并不能手动强制刷新缓存

在 MacBook Pro 2015 款上安装 Manjaro

2019/03/21

最近一直在折腾公司给配的 MacBook Pro 2015 款,费了很大的劲终于装好了我心爱的 Manjaro,在这里稍微记录一下安装要点。

F# 4.6 预览版正式公布

2019/01/31

1月24日,随着 Visual Studio 2019 一同发布的还有 F# 4.6,更新虽小,但惊喜很大

如何对付运行时可能为 null 的 Record Type

2019/01/15

尽管 F# 不允许使用 Record 类型表达 null 的含义,但在运行时 Record 仍然可能为 null,如何处理这样的问题?

使用 Immutable Subject 来驱动 Angular 应用

2019/01/14

在一个不可变的世界中订阅变化

Angular Forms - 自定义 ngModel 绑定值的方式

2018/12/08

ControlValueAccessor 接口是 Angular Forms API 与 DOM 之间的桥梁,通过提供不同的 ControlValueAccessor,我们就可以使用统一的 Angular Forms API 来操作不同的 HTML 表单元素。

不要使用 JWT 进行会话管理

2018/10/14

最近我发现越来越多的人推荐使用 JWT 来在 Web 应用中管理会话(Session),这是一个非常非常糟糕的主意,在这篇文章中我会详细地解释为什么“不要使用 JWT 进行会话管理”。

C# 函数式编程:LINQ

2018/09/30

使用 LINQ 来对 IEnumerable<T> 之外的 Monad 进行运算。

一分钟快速上手 F# 语法

2018/09/15

这是对 F# 语法的一个简单的介绍,来帮助完全不会 F# 的新手阅读 F# 代码。时间紧迫,所以我在这里没法详细的介绍,不过本文的内容应该足够让你拥有理解这个系列中出现的代码样例的要点。

为什么要用 F#

2018/09/15

F# 就像其他的函数式编程语言一样,在科学计算、数据分析等领域中表现相当出色,不过使用它来进行企业级的应用开发也是一个很棒的选择。在你开始你的下一个项目之前,不妨看看下面我列出来的 5 个使用 F# 的理由。

今日份的闲的无聊:一行代码实现简单的四则运算器

2018/09/03

今天在网上看到有人用 Haskell 写了一个一行代码实现四则运算的帖子,感觉十分厉害就想着自己也实现一个,但是无奈我看不懂 Haskell 代码,所以就找了一个 F# 版本的例子来模仿

如何在 ASP.NET Core 测试中操纵时间?

2018/08/15

⏳ 时间的膜法,来看一看如何 Mock DateTime.Now 吧~

如何简单的在 ASP.NET Core 中集成 JWT 认证?

2018/07/30

自上一篇介绍如何在 ASP.NET Core 中集成 JWT 的博文发布接近一年后,我又想来分享一些使用 JWT 的经验了。过去的一年中,我每次遇到一些小的,垃圾的项目,就会按照去年的那片文章来进行配置,虽然代码不多,但是每次写这么一些模板代码,又感觉很枯燥、冗余,而且稍不注意就有可能配置的有问题,导致验证不成功。前几天,我继续写自己的垃圾毕设,写到集成 JWT 的时候,我终于忍受不了这种重复的配置工作了,于是便着手封装一个简单易用的 JWT 插件。

博客系统的又一次大重构

2018/07/16

最近在网上瞎逛,发现了一个使用 F# 编写的服务端框架:Giraffe。它除了拥有函数式编程的优雅之外,在自带了一个 Giraffe View Engine —— 可以使用类似 Elm 的 API 来创建服务端页面模板,这对我来这种苦于 Razor 很久的人来说简直是充满了重构的诱惑。另一个使我更加坚定的原因就是 Giraffe 可以非常容易的与 ASP.NET Core 接入,只需 3 行代码,就可以让一个 Giraffe APP 成为 ASP.NET Core 中间件。

Rancher 到 Portainer

2018/07/09

前几天大公鸡突然失去网络连接,向主机商提交了工单后过了大半个星期一直没有回复,我这才断了继续使用大公鸡的念头,于是就着手把博客站点迁移到一台小鸡(1C1G)上面,这种小鸡当然是没法运行 Rancher 的,所以我就使用了 Portainer 作为替代品。

CIL - 运算符

2018/06/29

C# 内置有多种常用的运算符,在这篇文章中,我们将从 CIL 的角度重新学习 C# 中的那些运算符。

CIL - 变量之间的赋值

2018/06/29

在 C# 中,单个 = 表示变量赋值的意思,对于值类型来说,赋值相当于把值拷贝了一份,对于引用类型来说,赋值相当于把引用拷贝了一份,那在 CIL 中是如何实现这样的赋值功能呢?

CIL - 变量类型

2018/06/29

CIL 是一种面向栈设计的语言,我们可以通过 CIL 提供的很多个操作符来对一个栈进行操作,例如,将一个值推入栈的末尾,或者,把栈末尾的值弹出。他的规则设计的如此简单,以至于让第一次见到它的人感到无所适从。不过这并不重要,我们可以先从 CIL 的变量类型开始上手。

CIL - 声明变量与初始化

2018/06/29

在 C# 中我们可通过 类型 变量名 [= 初始值] 这样的语句来定义变量,如果变量被定义在一个函数中,那么,这些变量就被称为本地变量(local variable)。为了简单起见,让我们先从最常见的几种类型的变量的声明与初始化来看 IL 是如何达成这个简单的任务的。

1