H

hsfzxjy 的博客

Creation and blogs by hsfzxjy.

为什么 AArch64 获取符号地址总是采用 ADRP + ADD 的形式

<p >刚接触 AArch64 汇编的人往往会对编译器生成的一类代码感到困惑。</p> <p >考虑下面这样一个简单的 C 函数:</p> <div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-disp

2026/7/6
阅读更多

解决 VSCode + CMake + MSVC 编译器信息乱码的问题

<p >在 VSCode 中使用 <a href="https://marketplace.visualstudio.com/items/?itemName=ms-vscode.cmake-tools">CMake Tools</a> 插件开发 C++ 时,如果选用 MSVC 编

2025/4/19
阅读更多

使用 3090 部署 1.58bit 动态量化版 DeepSeek R1 671b

<p >1.58 bit 量化技术通过将每个权值量化为仅有三个状态,最大程度地节约显存并加速推理。</p> <p >Unsloth AI 在 <a href="https://unsloth.ai/blog/deepseekr1-dynamic">Run DeepSeek R1

2025/2/22
阅读更多

如何在 VS Code DevContainer 中配置 HTTP 代理

<p ><a href="/devcontainers-behind-jump-proxy/">上回</a> 我们讲了如何在跳板机背后的服务器上使用 VS Code Remote - Containers。DevContainer 中还有个棘手的问题是网络代理,本文将聊聊在 VS

2025/1/21
阅读更多

如何在跳板机背后的服务器上使用 VS Code Remote - Containers

<p >假设有如下网络拓扑:</p> <figure class="d2"><svg xmlns="http://www.w3.org/2000/svg" width="452" height="59" preserveAspectRatio="xMinYMin meet" vi

2025/1/20
阅读更多

Cohesive Digests for Ints and Floats

<p >On developing <a href="https://github.com/hsfzxjy/sdxtra">sdxtra</a> there comes a problem that is to calculate cohesive digests for num

2025/1/14
阅读更多

Rust 中的隐匿概念 —— Place(位置)

<p >在本文开始前,我们先看一个奇怪的问题。以下两个函数,为什么 <code>reborrow_good</code> 能通过编译,而 <code>deref_bad</code> 不能?</p> <div class="gk-code hljs" data-gk-id="BL

2024/11/10
阅读更多

美术馆

<p >三号和她逛了美术馆。</p> <p >此前她已经来过一次,说这里面有好些标榜着“现代艺术”的新奇玩意儿,一个人逛完感觉要长脑子了。美术馆外的景观更是一绝,隔江远眺,对岸高楼参差,繁华尽收眼底,只可惜当时天气不好,灰蒙蒙的。但现在秋高气爽,天空湛蓝而清澈,再没比这更适合出游

2024/10/11
阅读更多

一尺之槌,日取其半,1075日而竭

<p >今天的故事源自数月前我在 r/learnpython 上<a href="https://www.reddit.com/r/learnpython/comments/19d29rm/comment/kj2zei5/?utm_source=share&utm_medium=

2024/10/10
阅读更多

老生常谈:使用 Cloudflare 自选 IP 加速站点访问

<p >本站此前是依托 Github Pages 搭建的,即静态文件托管于 Github 上,再将自定义域名 i.hsfzxjy.site CNAME 到 hsfzxjy.github.io。这种方案免费是免费,但国内的访问速度不甚良好,有几个省甚至出现了超时的现象<sup id

2024/9/15
阅读更多

辩义 State、Nation 与 Country

<p >State、Nation 与 Country,汉语皆常译为“国家”。事实上在当代英文的多数使用场景中,这三个词的的确确可互换表达相同的意思。但在某些场合中,表达者会斟酌其细微语义差别以突出重点,此时若再通译为“国家”,难免有些不准确,乃至引起不必要的误会。</p> <h2

2024/8/9
阅读更多

将 Base64 编码的数据快速转换为 Uint8Array

<p >为了方便节省请求数,有时我们会将二进制数据以 Base64 编码的形式嵌入 HTML 或 JavaScript 中,再于运行时解码成 Uint8Array,进行后续运算。然而浏览器没有提供直接的 API 来完成这种解码转换,需要我们自己实现。本文介绍两种快速的解码方法。<

2024/8/4
阅读更多

折腾 NPU·第1章 —— 搭建 Level Zero 开发环境

<p >在上一章 <a href="../l0-npu-prologue/">折腾 NPU·第0章 —— Intel NPU 概述与 Level-Zero</a> 中,我们了解了 NPU 的概念以及 NPU 技术栈。本章将介绍如何在 VS Code 中搭建 Level-Zero

2024/6/21
阅读更多

折腾 NPU·第0章 —— Intel NPU 概述与 Level-Zero

<p >最近入了台 Thinkbook 14p 2024,CPU 是 Intel Ultra5 125H,内有一枚 3720 NPU 芯片,可用于实现低功耗模型推理。藉此机会我深入了解了 NPU 开发的相关知识,以此系列为记。</p> <h2 id="npu-vs-gpu">NP

2024/6/13
阅读更多

新增域名 monad.run

<p >本站将新增一个域名 <a href="https://monad.run">monad.run</a>,此后旧域名 <a href="https://i.hsfzxjy.site">i.hsfzxjy.site</a> 也将继续保留,与新域名共存,二者皆可用于访问。</p

2024/4/28
阅读更多

CSS 中为特定字符设置不同字体

<p >为追求更好的阅读体验,本站的中文文章采用了混合字体的排版方式。例如在 Windows 环境中,中文字符以 <code>Microsoft Yahei</code> 渲染,而英文字符则使用 <code>Open Sans</code> 渲染。由于 <code>Microso

2024/4/14
阅读更多

Arbitary Lifetime Transmutation via Rust Unsoundness

<p >Do you believe that one can write a function in safe Rust which can arbitrarily change the lifetime of a reference? For clarity, try to

2024/2/10
阅读更多

Dijkstra 算法的延伸

<p >我们知道 Dijkstra 算法是一个高效的单源最短路径(SSSP)算法,本文将不再赘述他的细节。但同时,Dijkstra 也是一个动态规划算法。Dijkstra 算法的正确性源自无负边权图的若干性质。如果一个问题本身也满足这些性质,那么即使它不是一个图论最短路径问题,也

2024/1/21
阅读更多

Manacher 回文计数算法

<blockquote> <p >以下假设字符串下标从 $0$ 开始,子串记号 $s[i..j]$ 左闭右闭。</p> </blockquote> <p >给定长度为 $n$ 的字符串 $s$,Manacher 算法可以在 $O(n)$ 的时间复杂度内找到 $s$ 的所有回文子串

2024/1/15
阅读更多

硬卧

<p >我醒了,闹钟仍未响,窗外却已见鱼肚白。从帽子里掏出手机,才六点出头。</p> <p >硬卧的床仿佛是量身定制的,不宽不窄,恰能容下一个我。我睡前戴上了连衣的帽子,将手机放在帽子里,既防止手机从上铺跌落,也不怕错过了闹钟——现在看来是多余了。我小心翼翼地侧过身,对面的人还在

2023/11/18
阅读更多

Go Fact: Zero-sized Field at the Rear of a Struct Has Non-zero Size

<p >There’s a concept in Golang called <em>zero-sized type</em> (or ZST), namely, a type whose variables take up zero bit of memory. One of

2023/11/3
阅读更多

Display *big.Rat Losslessly and Smartly in Golang

<p >Floating-point numbers, as we know, are notorious for losing precision when their values become too large or too small. They are also ba

2023/10/9
阅读更多

代码的仪式

<p >我们常能在英文社区看到 coding ceremory 一词,或译为 代码的仪式。Stack Overflow 上有个问题 <a href="https://stackoverflow.com/questions/68092498/what-does-low-ceremo

2023/9/6
阅读更多

Building Electron From Scratch

<p >Last night I started a journey to build <a href="https://github.com/electron/electron">Electron</a> completely from the ground up, for i

2023/7/6
阅读更多

中式亲属称谓研究之一:构建半群

<p >前段时间在 V2EX 的一个帖子 <a href="https://www.v2ex.com/t/943948">/t/943948</a> 中看到了一个有趣的问题:</p> <blockquote> <p >在中文的亲属称谓体系中,我们会有“爸爸的爷爷”与“爷爷的爸爸”

2023/6/15
阅读更多

Some Notes on Kotlin Coroutines

<p >This post is written to dictate some opinionated explanation that dispels my confusion to Kotlin coroutines during learning.</p> <h1 id=

2023/5/9
阅读更多

Git sparse-checkout and partial clones for Mega-Repos

<p >Recently I was planning to make a small contribution to project <a href="https://github.com/DefinitelyTyped/DefinitelyTyped">DefinitelyT

2023/5/4
阅读更多

辩义“封建”

<p >“封建”一词很有意思。作为一个土生土长的中国词,它于千年前便有了固定而确切的含义。然而在近代西方思潮的冲击下,这个词的意义先是遭到了替换,而后又在近百年的传播中演化成了与本义毫不相干的概念。如今的人们谈及封建一词时,心中不免会有困惑,因为其现代含义与汉字构成相去甚远。更糟

2023/4/19
阅读更多

Diving from the CUDA Error 804 into a bug of libnvidia-container

<p >Several users reported to encounter <code>&quot;Error 804: forward compatibility was attempted on non supported HW&quot;</code> during t

2023/3/18
阅读更多

Modern Cryptography, GPG and Integration with Git(hub)

<p ><a href="https://gnupg.org/">GPG</a> (the GNU Privacy Guard) is a complete and free implementation of the <a href="https://www.openpgp.o

2023/1/2
阅读更多

Move the Root Partition of Ubuntu

<p >A few days ago, I decided to shrink the footprint of the Windows system on my laptop and reallocate the freed-up disk space to Ubuntu, w

2022/11/12
阅读更多

A New Programmer Kicks a Roadblock

<p >The time I composed my first program can be back to my junior high school age. It was the first day of PC lesson, and everybody crowded

2022/9/19
阅读更多

Git-based Dependencies in Dart and Go

<p >Both Dart and Go support decentralized package distribution. One is able to directly adopt an existing git repository as dependency, eas

2022/7/4
阅读更多

Reversy Naming

<p >I am always a dedicated fan of writing naturally readable code – by “naturally readable” I mean, one can read a line of code as if it we

2022/6/20
阅读更多

人类一败涂地

<p >轻微的一阵异响。面前说话的她随即模糊起来,声音也渐渐远去,趋于缥缈。我这才注意到从一开始就没有看清她的脸——原来只是个梦罢了。意识跌落回现实。我又重新感受到了我的双腿,久坐后腰的酸痛,最后是沉重的眼皮。睁开眼,还是熟悉的银色舷窗。</p> <p >窗外的天王星已经很大了。

2022/5/13
阅读更多

Invalid Golang Pointers Can Bite You Even If You Don't Dereference

<p >In Golang, if you coerce a <code>uintptr</code> variable into <code>unsafe.Pointer</code> (or further, to some <code>*T</code>), the lin

2022/4/18
阅读更多

Side Project(副业)

<p >计算机从业者们似乎都喜欢写 side project,这在中文社区中有个通俗的说法即「搞副业」。如果你经常逛 V2EX、Reddit 的编程板块或是 Hacker News,你会看到人们分享的各种各样的 side project,小到一个百余行代码的实用小工具,大至一个框

2022/4/11
阅读更多

A Flaw of Promoting Complex Trait Bounds in Rust

<p >Days ago, for some reason, I was trying to implement a function that can polymorphize over its return type. The solution is simple, but

2022/3/29
阅读更多

Initialize Process Pool Worker with Individual Value

<p >There could be scenes when you are using <code>multiprocessing.pool.Pool</code> and you want to perform some initialization for each wor

2022/3/20
阅读更多

Rust - Python FFI From Scratch

<p >I was recently working on a side project that involves communication between binaries written in Rust and web interfaces written in Pyth

2022/3/11
阅读更多

[Extending Hexo For My Site] Part 1 - Better Mathjax Rendering

<p >I am a heavy user of <a href="https://www.mathjax.org/">Mathjax</a>. Mathjax is a library that renders Tex-compatible syntax into pretty

2022/1/2
阅读更多

[Extending Hexo For My Site] Part 0 - Preface

<p >I’ve been struggling to choose a handy tool for blogging about seven or eight years ago. Before the day I’ve tried building my own blog

2021/12/31
阅读更多

Debug a 'torch.tensor(1).cuda()' hanging

<p >Today a user of our GPU cluster ran into a problem where executing <code>python -c &#39;import torch; torch.tensor(1).cuda()</code> woul

2021/12/13
阅读更多

不自由的互联网

<p >互联网正在变得不自由——这已经成为了一种共识。这种不自由是从获取内容的角度出发,我们依自己的意愿获取知识/资讯的难度在增加。「中文互联网已死」。优质资源被各大互联网巨头所垄断,人们只能从应用内部访问,并时常受到推荐算法的说教。在巨头领域之外的公网则是一片荒漠,充斥着大量低

2021/11/22
阅读更多

Retrieve Contents over HTTP without curl or wget

<p >I came across a piece of interesting vulnerable script from a post on V2EX <sup id="fnref:1"><a href="#fn:1">1</a></sup>) on V2EX. A bas

2021/10/29
阅读更多

[Unravelling mocona] Part 1 - Verbosity or Anti-Pattern

<p >I was once working as an intern at MSRA around two years ago, at which I joined a research project and started developing upon a large c

2021/9/15
阅读更多

[Unravelling mocona] Part 0 - Preface

<p >The early idea of <a href="https://github.com/hsfzxjy/mocona">hsfzxjy/mocona</a> was come up with in late April. It was not until July t

2021/9/11
阅读更多

Understanding pickle in Python

<p >The module <code>pickle</code> shipped in Python could be used for generic-purpose object serialization and de-serialization. It’s been

2021/8/13
阅读更多

Rough Notes on Deploying Vaultwarden & NextCloud Bookmarks

<p >I’ve been struggling for years on two things: synchronize passwords and blog posts I have read across devices. The problem kills me so m

2021/7/25
阅读更多

语言狂热者与实用主义者

<p >编程语言界有着一场旷日持久的争论。人们会为了一种(或一类)语言,或是自己熟用的,或是自己所欣赏的,与他人吵得不可开交。而争论的起点,可能只是某人一句小小的抱怨。各方各为其主,剑拔弩张,俨然一次声势浩大的圣战。</p> <p >尽管众语言不可一概而论,我们还是可以粗略地将争

2021/7/7
阅读更多

Demystify the randomness in CUDA kernels

<p >You might have heard that many CUDA operators contains some kind of non-determinism, and to eliminate the randomness, one must pay for t

2021/6/10
阅读更多

Performant Bulk Mutations in IndexedDB

<p >IndexedDB seems to be inefficient when working on bulk mutations, such as dumping a huge list of items into an object store – at least I

2021/5/29
阅读更多

Auto Rebuild .pyx Files with pyximport

<p >Modules written in Cython usually comes with a <code>setup.py</code> script that compiles Cython source codes into native shared libary.

2021/5/15
阅读更多

Cython and Threads

<p >Pure Python <em>sucks</em> in the scene of parallel computing, due to the existence of the Global Interpreter Lock (aka GIL). GIL preven

2021/5/6
阅读更多

Obtain a Random Available TCP Port with Bash

<p >On Linux, we might sometimes want to choose an unused TCP port randomly. This occurs from time to time on a server, when the administrat

2021/3/9
阅读更多

Information Theory: KL Divergence

<p >Assume there are two hypotheses $H_1$ and $H_2$, r.v. $X$ ranged in alphabets $\{a_1,\ldots\,a_k\}$. Under hypothesis $H_i$, $X$ has pdf

2020/1/14
阅读更多

Information Theory: Entropy and Mutual Information

<p >Given a discrete r.v. $X$, where $X$ ranged in $\{a_1, \ldots, a_n\}$, $\mathbb{P}(X=a_k)=p_k$. Entropy $H(X)$ is defined as:</p> <p >$$

2020/1/3
阅读更多

铁板烧

<p >最近喜欢上了那家铁板烧。在寸土寸金的北京,那家店占据了食街不大的一角。开放式的厨房几乎就是它的全部。一圈细长的大理石柜台,被椅子围得严严实实。人们就此坐下,点菜,颇有一番日式的味道。隔着不高的玻璃,可以看到三个大厨在柜台另一边忙碌。食材触到铁板的「吱」响,伴随时不时的爆裂

2019/12/9
阅读更多

西郊线

<p >西郊线真的是电车,那种拖着两个辫子,走得不快的电车。沿途的车站也是很小的车站。不到两米宽的站台,甚至比广州的 BRT 站更窄一些,立了一排凳子,仅此而已。半露天的车站,有遮雨棚,却没有真正意义的墙。透过一人多高的玻璃看,站台外沿长满了狗尾巴草,再往后铺开了大片的草甸和桦林

2019/10/2
阅读更多

Proof of the Gumbel Max Trick

<h2 id="statement">Statement</h2> <p class="noindent"> Assume that $\alpha_1, \alpha_2, \ldots, \alpha_n$ satisify $\sum_k\alpha_k=1$. Defi

2019/7/31
阅读更多

Option::as_ref

<p >Let’s consider the following function:</p> <div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span class="

2019/6/25
阅读更多

Rc, RefCell and Interior Mutability

<p >Say we need a type <code>Cursor&lt;T&gt;</code> , which holds a mutable reference to <code>T</code>. A method <code>.dup()</code> duplic

2019/6/22
阅读更多

Visualizing Correlation

<p >Say we have a matrix <code>A</code> of shape <code>N x M</code> , which can be viewed as a collection of N vectors of shape <code>1 x M<

2019/3/9
阅读更多

三月十日杂感

<p >我还是说出了那句话。我们走到一起,已经有七天了。</p> <p >起初并没有表白的想法。当晚看完电影后,两人都有微妙的感觉,但直到最后也没有表露心意。「就当做又一次平常的约电影好了」目送她进楼时我想。看电影时没有说出来,她回去了我就更说不出来了——我认为我们当时还是普通朋

2019/3/9
阅读更多

三月一日杂感

<p >我是怎么想的呢?我应该是喜欢她了。她看起来像是一个单纯的女孩,长得可爱,有些呆,总是一副样子很努力的样子。我们有共同的话题,应该可以谈得来,虽然谈话常因为关系不够深入而戛然而止。</p> <p >她是怎么想的呢?她专心起来很少注意周围,我们有许多次出现在同一个场所,但她很

2019/2/28
阅读更多

二月十一日杂感

<p >学生时代的我很怕父亲检查我的作文。四年级以前还没有真正意义的作文一说,因此这大概是从四年级开始的,一直持续到高中。父亲是学文的,在单位也常有写报告的工作。修改作文可以说是比较拿手。现在回想起来,父亲指导作文时还算温和,遇到写得不好的地方也不会破口大骂,只是表情比较严肃。但

2019/2/10
阅读更多

一月二十六日杂感

<p >小姑躺在床上,脸色苍白。一根管子从胸口伸出来,随着呼吸剧烈起伏着。长长的管子在床下绕了一圈,接上了一个白色塑料桶,里面尽是浑浊的黄色液体。病床对面坐着阿伯,一脸忧愁的样子。</p> <p >我顿时感到有些难过——但也仅此而已。这感觉像是一种怜悯,却不是因为血缘,而是来自本

2019/1/25
阅读更多

SS Configuration

<h2 id="ss-client">SS Client</h2> <div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span class="line">$ [sudo

2019/1/21
阅读更多

一月七日杂感

<p >前几天和阿三聚了一餐,这大概是一年到头来我们为数不多能好好聊天的时间。</p> <p >我们谈了很多,从考试到动漫到未来。令人惊讶的是,他表现出了一种忧虑,对未来的忧虑。在我看来这是很少见的。忧虑的一方面是关于短期的未来,有 CSST 面试的压力,以及成堆的考试;另一方面

2019/1/6
阅读更多

四月·病

<p >四月,我大病了一场。先是呼吸时胸口隐隐作痛,我以为是运动伤害,毕竟始发时刚剧烈地骑完车。后而逐渐变成呼吸困难,镜子里的自己嘴唇发紫,睡觉时也像是有人扼着喉咙。我开始在傍晚时发烧。</p> <p >清明前后,春寒未散。宿舍已没有了暖气。清明节我在宿舍躺了两天,睡到饭点起来吃

2018/12/30
阅读更多

Haskell 笔记:State Monad

<p >一个依赖于外部状态 <code>s</code> 的伪函数 <code>f&#39; :: a -&gt; b</code>,我们可以将其改写为 <code>f :: a -&gt; s -&gt; (b, s)</code> 使其良定。即,在输入输出中显式传递状态 <c

2018/12/14
阅读更多

Haskell 笔记:Monad 引论

<h2 id="动机">动机</h2> <p >pure functions 看似完美,但却不能模拟现实世界中的诸多任务。这是由于 pure functions 是良定的映射,对于特定的输入值会返回唯一的输出。这种模式在面对如下任务时会显得苍白无力:</p> <ul> <li>有

2018/12/13
阅读更多

Haskell 笔记:Applicative

<h2 id="motivation">Motivation</h2> <p ><code>Functor</code> solves the problem of mapping regular single-parameter functions into a sub-cat

2018/11/18
阅读更多

Haskell 笔记:Category Theory and Functor

<h2 id="category-theory">Category Theory</h2> <p >A category consists of three parts:</p> <ul> <li>A collection of objects.</li> <li>A colle

2018/11/18
阅读更多

Haskell 笔记:data, type, newtype

<p >新类型有自己的 data constructor(literals 可以看成特殊的 data constructor),由这一点来区分是否创建了新类型。</p> <ul> <li><code>data</code> 创建了新类型,可以有多个 data constructo

2018/11/15
阅读更多

Haskell 笔记:folds

<h2 id="preludefoldl">Prelude.foldl</h2> <p ><code>foldl</code> 为 left-associative folding。</p> <div class="gk-code hljs" data-gk-id="BLOCK1

2018/11/9
阅读更多

使用 Aria2 在 Ubuntu 中下载百度云资源

<p >可以实现满带宽下载。</p> <h1 id="配置-aria2">配置 Aria2</h1> <p >从 <a href="https://github.com/aria2/aria2/releases">Github</a> 下载源码 <code>./configure

2018/6/10
阅读更多

从伪并行的 Python 多线程说起

<h2 id="写在前面-6">写在前面</h2> <ul> <li>作者电脑 CPU 为 4 核,因此使用 4 个线程测试是合理的</li> <li>本文使用的 <code>cpython</code> 版本为 <code>3.6.4</code></li> <li>本文使用的

2018/3/9
阅读更多

一个 Reentrant Error 引发的对 Python 信号机制的探索和思考

<h2 id="写在前面-4">写在前面</h2> <p >前几天工作时遇到了一个匪夷所思的问题。经过几次尝试后问题得以解决,但问题产生的原因却仍令人费解。查找 SO 无果,我决定翻看 Python 的源码。断断续续地研究了几天,终于恍然大悟。撰此文以记。</p> <p cla

2017/8/16
阅读更多

Linux 文件权限

<h1 id="概念">概念</h1> <p >Linux 中的每一个文件都有其 <strong>所属用户</strong> 及 <strong>所属用户组</strong>,根据这两个属性可将文件访问者分为三类:<strong>所属用户自己</strong>、<strong>所

2017/7/2
阅读更多

HSFZMUN 4.0 部署小记

<blockquote> <p >技术流水账一篇,记录踩过的坑</p> </blockquote> <h2 id="channels-异构">Channels 异构</h2> <p >Django Channels 官方文档宣称 channels 的最佳配置是使用其自带的服务器组

2017/2/24
阅读更多

午后雨·科大

<p >从昏睡中惊醒——现在是下午,屋内却很昏暗。屋外,隐约有一阵持续的背景噪音,我拉开窗帘,只见白茫茫的一片。</p> <p >下雨了,而且是大暴雨。</p> <p >打开窗,一股辛辣扑面而至——雨和着尘土的气息,再熟悉不过了。伴随着辛辣,一种沁人心脾的清凉涌入屋内,稀释着绿军

2016/8/21
阅读更多

最后的雨夜·广州

<p > 明天就要走了。</p> <p > 我贪婪地呼吸着这座城市,想要记住一切。</p> <p > 这是一个雨夜。雨不大,淅淅沥沥的,一反八月羊城的狂暴。雨丝划过夜空,拂去了暑气,夹带着一丝清冽;雨点打在地上,泛起一阵辛辣,这是雨的独特气息。昔日湿热而令人厌烦的南方雨,此刻却如

2016/8/17
阅读更多

揭秘·变态的平方根倒数算法

<blockquote> <p >神的时代已离去 神的故事却化为传说 流落凡间 供凡人传颂、膜拜</p> </blockquote> <h2 id="这是什么">这是什么</h2> <p >在上世纪 90 年代,出现过一款不可思议的游戏——雷神之锤(Quake series)。除

2016/8/2
阅读更多

神坑·Python 装饰类无限递归

<blockquote> <p >《神坑》系列将会不定期更新一些可遇而不可求的坑 防止他人入坑,也防止自己再次入坑</p> </blockquote> <h2 id="简化版问题">简化版问题</h2> <p >现有两个 <code>View</code> 类:</p> <div

2016/7/29
阅读更多

Python“黑魔法”之 Encoding & Decoding

<h2 id="写在前面">写在前面</h2> <blockquote> <ul> <li>本文为科普文</li> <li>本文中的例子在 Ubuntu 14.04 / Python 2.7.11 下运行成功,Python 3+ 的接口有些许不同,需要读者自行转换</li> </

2016/7/20
阅读更多

Ubuntu 重新映射键盘布局

<p >键盘持续失灵,已经到了让我忍无可忍的地步了。</p> <p >刚开始只是方向键失灵,好在可以用小键盘替代;后来右 Ctrl 和 Alt 也失灵了,好在可以用左边的替代;直到最近 Fn 键也失灵了,终于逼疯了我——因为这意味着 F1 ~ F12 都将不能使用。</p> <p

2016/6/5
阅读更多

为什么我要翻墙

<p >很多人不解为什么我要翻墙。他们认为,国家明令禁止的东西就不应该去做——而更何况,墙内的世界已经足够精彩,异世界的天空也不一定令人神往。</p> <p >在中国大陆,能上网的人被分为两类:翻墙的 与 不翻墙的。这里说的“翻墙”不是“有能力翻墙”,而是“有意愿翻墙”。这两类人

2016/4/8
阅读更多

Python“黑魔法”之 Generator Coroutines

<h2 id="写在前面-2">写在前面</h2> <blockquote> <ul> <li>本文默认读者对 Python 生成器 有一定的了解,不了解者请移步至<a href="http://www.liaoxuefeng.com/wiki/0014316089557264a

2016/4/1
阅读更多

数学美 之 判断线段相交的最简方法

<blockquote> <p class="par"> 解析几何的巅峰 是 向量 那无关过程的狂妄与简洁 映射着大自然无与伦比的美</p> </blockquote> <h2 id="引子-1">引子</h2> <p >如何判断两条直线是否相交?</p> <p >这很容易。平

2016/2/18
阅读更多

除夕杂感

<!--## 一--> <p >直到下午四点,供桌才摆上。</p> <p >冒着热气的鸡,整只;两尾鱼,张着嘴卧在盘中;一摞柑,愣是叠成了宝塔的形状;此外,还有一包包花花绿绿的零食。一米见方的桌子被塞得满满的,全是贡品。</p> <p >母亲忙得团团转。本来是不想拜天公的,但转

2016/2/12
阅读更多

17 行代码实现的简易 Javascript 字符串模板

<p >这是源于两年前,当我在做人生中第一个真正意义上的网站时遇到的一个问题。该网站采用前后端分离的方式,由后端的 REST 接口返回 JSON 数据,再由前端渲染到页面上。</p> <p >同许多初学 Javascript 的菜鸟一样,起初,我也是采用拼接字符串的形式,将 JS

2016/2/11
阅读更多

Python“黑魔法”之 Meta Classes

<p >接触过 Django 的同学都应该十分熟悉它的 ORM 系统。对于 python 新手而言,这是一项几乎可以被称作“黑科技”的特性:只要你在 <code>models.py</code> 中随便定义一个 <code>Model</code> 的子类,Django 便可以:

2016/2/9
阅读更多

诗集

<h3 id="2015-11-04">2015-11-04</h3> <p >第 -206 天</p> <p >曾经的不屑</p> <p >早已如烟</p> <p >曾经不屑的</p> <p >却又沉淀</p> <h3 id="2015-11-24">2015-11-24</h

2015/11/30
阅读更多

生活,需要被“发现”

<p >互联网,从当初的雨后春笋发展成为了我们生活中必不可缺的一部分——二十年,有如白驹过隙,但就是在如此短的时间中,世界已完全被网络颠覆了。</p> <p >网络,在方便了人们衣食住行的同时,也在悄悄地改变着人们的生活方式。外出吃饭,不必再为饭店的选择而头疼。打开搜索,指尖滑动

2015/11/27
阅读更多

家书·十八岁成人礼

<p >事实上,截至目前,我只有十七岁,但无论年龄的多与少,今天这个特殊的日子,都有着其特殊的意义——是的,我要成人了。</p> <p >这里,我想先说一声谢谢。</p>

2015/10/17
阅读更多

炫技?还是需求?

<blockquote> <p class="noindent"> 一款产品,其生命周期始于想法的萌发 但其终结,无人能预测 诚然,有些产品能够颠覆世界 但更多的,只是湮灭在残酷的市场中 甚至—— 有的只是一场白日梦 连真正的出生都未曾经历</p> </blockquote>

2015/10/3
阅读更多

【译】响应式图片的现状

<blockquote> <p class="par"> 原文链接:<a href="http://www.webdesignerdepot.com/2015/08/the-state-of-responsive-images/">戳这里</a></p> </blockquot

2015/9/18
阅读更多

【译】“为什么有这么多的编程语言?”

<blockquote> <p class="noindent"> 原文链接:<a href="http://blog.stackoverflow.com/2015/07/why-are-there-so-many-programming-languages/">戳这里</a>

2015/9/17
阅读更多

记一次 DoS 诈骗网站的经历

<p >题海中激战,正当不亦乐乎时,手机响了。低头一看,是 95599 的短信:</p> <blockquote> <p class="noindent"> 尊敬的农行用户,您的账户积分累计现可兑换价值 1024 元现金大礼包!请手机登陆 <a href="http://wap

2015/7/23
阅读更多

Wisecity 商赛总结——也谈前端自动化测试

<p >真没想到,高伯还是给了我两百块报酬(土豪就是土豪)——我还担心他连运营成本都不肯给呢,毕竟网站做得并不是令人太满意。为社团做了两年的网站,这是第一次收到报酬,也算是自己赚的第一桶金吧。</p> <p >事实证明,临去北京前我给 cc 开放了管理者权限是一个非常正确的选择。

2015/7/23
阅读更多

不能说的秘密

<p >又遇到了一道难题。他轻轻放下笔,缓缓抬起了头。无意中,目光触及了她的背影。夕阳透过窗子,给那一隅洒下一片金黄,增添了几分童话般的意境。</p> <p >他的心动了一下,但很快又抑制住了那种奇妙的感觉。随即,他笑了笑,便埋下头去,继续解决那道艰深的难题。</p> <p >他

2015/6/11
阅读更多

那一年,我们望向星空

<blockquote> <p class="noindent"> 还记得吗 那年夏天 最灿烂、最寂寞的星空</p> </blockquote> <p >其实,比这部电影更出名的,是五月天的那首《星空》,一首我十分熟悉的歌。每当那旋律响起,我总有些淡淡的惆怅:夜空下,尽管繁星璀

2015/5/7
阅读更多

如何备份 apt-get 已安装的软件列表

<p ><code>apt-get</code> 是 Ubuntu 下管理软件包的一个工具,实用简单,功能强大。平时若要安装或卸载软件包,只需轻敲一条指令即可。每一台 Ubuntu 上,都安装着数以千百计的软件包——或是内核模块,或是工作、娱乐所需的软件,在它们的支持下,工作着这

2015/4/18
阅读更多

博客迁移至 Github.io

<h2 id="为什么迁出?">为什么迁出?</h2> <p >话说<strong>SinaAppEngine</strong>真是越来越不像话了:在没有征得我们开发者的同意的情况下擅自把应用总数限制调整为 5 个(整整少了一半!),还口口声声说是作过调查——</p> <bloc

2015/4/16
阅读更多

Ubuntu 网络每 20 秒断开重连一次的解决方案

<p class="par"> 从昨天到现在一直都有这个问题,刚刚突然就解决了,至今不明白原理,在此记录一下:</p> <blockquote> <p class="noindent"> 在网络设置中取消「需要 IPv6 完成这个链接」的选项</p> </blockquote

2015/3/31
阅读更多

十年

<p >再一次站在这里,我却发现早已没有了熟悉的感觉。一切都是那样陌生:长年累月的雨水冲刷,使原本灰色的墙面变得愈加晦暗,有几处墙皮脱落了,酷似一张布满皱纹的老脸;门前,野草肆意地疯长着,没过了缩在墙角的那根水管——记忆中它一直在渗水,却不知何时被修好了,只留下了一圈丑陋的青苔,

2015/3/3
阅读更多

Ubuntu 杀死进程

<div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span class="line">ps -e <span class="hljs-comment">#查看进程列表<

2015/3/2
阅读更多

Ubuntu 安装 Sublime 2

<div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span class="line">sudo add-apt-repository ppa:webupd8team/s

2014/12/29
阅读更多

Ubuntu 加入自己的字体

<p class="par"> 假设字体文件夹为:<code>~/Fonts</code>。执行:</p> <div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span

2014/12/12
阅读更多

Ubuntu 下删除不完整的包

<p class="par"> 答案来自 <a href="http://stackoverflow.com/questions/27455626/how-to-remove-an-incomplete-package-by-using-apt-get">StackOverfl

2014/12/12
阅读更多

Ubuntu 下解决 apt-get“Hash 校验和不符的方案”

<p class="noindent"> 各种坑爹,我也不知道为什么:</p> <div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span class="line">

2014/11/29
阅读更多

在 Ubuntu 下更改 MYSQL 的字符集

<p class="noindent"> 修改 <code>/etc/mysql/my.cnf</code>:</p> <div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre

2014/11/28
阅读更多

LCA 之离线 Tarjan 算法

<blockquote> <p class="noindent"> 真是巧妙的算法!</p> </blockquote> <p >比起树上倍增,Tarjan 算法实现起来更为简单,一个 DFS 加并查集即可。缺点便是:<strong>需要先把所有的查询都读进来,并且要储存结果<

2014/11/2
阅读更多

LCA 树上倍增

<div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span class="line"><span class="hljs-keyword">var</span></sp

2014/11/2
阅读更多

RMQ(二进制方法)

<h2 id="问题描述">问题描述</h2> <p >已知数组 a 以及若干个查询 $(x, y)$,求 $a[x..y]$ 之间的最小值。</p> <h2 id="分析-5">分析</h2> <p >不难发现:若取 t 使得$2^t\leq y-x+1$且$2^{t+1}&g

2014/11/1
阅读更多

树状数组

<h2 id="介绍">介绍</h2> <p >所谓树状数组,就是将线性的数组预处理成树状的结构以降低时间复杂度。先来看一幅经典的图: <img loading="lazy" src="/assets/TArry1.jpg" alt=""></p> <p class="par"

2014/11/1
阅读更多

二进制的启示

<blockquote> <p class="noindent"> 在学习数论时我们都知道:只用 2 的幂次可以组合出所有的正整数。这便是二进制的魅力——状态简单而又变化万千。</p> </blockquote> <h2 id="引子">引子</h2> <p >实际算法中,常常

2014/11/1
阅读更多

最小生成树(Kruscal & Prim)

<blockquote> <p class="noindent"> 测试位置:<a href="http://codevs.cn/problem/1078/">WikiOI1078</a></p> </blockquote> <div class="gk-code hljs"

2014/10/26
阅读更多

NOIP2013 Day1 火柴排队:快速求逆序对

<h2 id="题目">题目</h2> <blockquote> <p >涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: $$\sum_{i=1}^{n}{(a_i-b_i)^2}$

2014/10/25
阅读更多

NOIP2011 Day2 计算系数:快速求组合数

<h2 id="题目大意">题目大意</h2> <blockquote> <p class="noindent"> 输入 $a, b, k, n, m$,计算 $a^n\times b^m\times C_k^n$ 模 $10007$ 的余数。</p> </blockquote

2014/10/25
阅读更多

UVa1647 Computer Transformation

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=825&page=show_p

2014/10/24
阅读更多

Sublime configuration for Pascal

<p class="noindent"> 鉴于 U 盘中 Sublime 的配置常常莫名其妙地消失,在此将其记录一下。</p> <h2 id="code-6">Code</h2> <div class="gk-code hljs" data-gk-id="BLOCK1"><di

2014/10/23
阅读更多

UVa11526 H(n)

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&catego

2014/10/18
阅读更多

UVa817 According to Bartjens

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&catego

2014/10/17
阅读更多

UVa225 Golygons

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&catego

2014/10/15
阅读更多

UVa12219 Common Subexpression Elimination

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&proble

2014/10/5
阅读更多

UVa536 Recovery

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=7&page=show_pro

2014/10/5
阅读更多

UVa11582 Colossal Fibonacci Numbers! && 大数操作

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&catego

2014/10/1
阅读更多

扩展欧几里得算法

<blockquote> <p class="noindent"> 今天开始学习数论方面的算法。这部分在 NOIP 中并不常出现,即使出现了也不会像高联这么难(。。。)。</p> </blockquote> <h2 id="什么是扩展欧几里得算法">什么是扩展欧几里得算法</h

2014/10/1
阅读更多

UVa10285 Cake Slicing

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=825&page=show_p

2014/9/30
阅读更多

UVa10285 Longest Run on a Snowboard

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;page=show_proble

2014/9/29
阅读更多

关于 Ubuntu 突然无法连接 Wifi 的解决方案

<p >事实上我也不知道发生了什么,大概是几天前插了“小度 Wifi”的缘故。没有任何征兆地,Wifi 就用不了了。其实我也不知道原理,大概是某个驱动被刷掉了。下面是从网上找来的答案:</p> <div class="gk-code hljs" data-gk-id="BLOCK

2014/9/27
阅读更多

UVa12186 Another Crisis && [Dynamic Arrays in Pascal]

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=243&page=show_p

2014/9/27
阅读更多

UVa11584 Partitioning by Palindromes

<blockquote> <p class="noindent"> 这是一道区间型 DP,转移方程很简单,但在实现的过程中却遇见了很多坑,在此记录一下。链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onl

2014/9/24
阅读更多

UVa437 The Tower of Babylon

<blockquote> <p class="noindent"> 链接:<a href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=6&page=show_pro

2014/9/23
阅读更多

NOIP2011 表达式计算

<blockquote> <p class="noindent"> 记得 11 年的时候,觉得这道题爆难,根本无从下手。三年后再次回顾,终于 AC 了,就当是对表达式求值和动态规划的复习吧。</p> </blockquote> <p class="noindent"> 题目:

2014/9/22
阅读更多

Extended 和 Double 的奇怪问题

<p >最近在做一个项目,其中有一段判断一个 <code>Extended</code> 浮点数是否为整数的代码。我用如下方式实现:</p> <div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-dis

2014/8/19
阅读更多

MySQLDump 导出时不加锁

<p >在 SAE 上进行应用开发时,常常需要导入数据库,这时候就需要用 MySQLDump 工具进行本地数据库导出。</p> <p >首先 MySQLDump 最基本的语法是这样的 <code>mysqldump &lt;database_name&gt;</code>,执行之

2014/8/19
阅读更多

窥视香港

<blockquote> <p class="noindent"> 用心灵窥视,用良知感悟,寻觅精神世界的失落。 —— 题记</p> </blockquote> <h2 id="地铁票">地铁票</h2> <p >才刚到晚上八点,地铁站便已“门可罗雀”,偶尔一两个人从眼前晃过。

2013/7/9
阅读更多

最后的晚餐

<p >又到了周日了,短暂的“回家之旅”也接近了尾声。每当这时,我心中总会泛起莫名的惆怅,有些焦虑,也有些恐慌。</p> <p >周日下午,每次,我都会睡到接近四点。没办法,家里的床,家里的阳光太舒服了。闹钟怎么叫都叫不醒。几次醒来,几次又昏昏沉沉地睡去。直到看到钟表的指针懒懒地

2013/3/25
阅读更多

过路人

<p >匆匆地走过街口,我只是一个过路人。</p> <p >×××,又快迟到了。我心里暗想,不禁加快了脚步。</p> <p >不远处有两个小女孩在玩耍——玩一把破扫把。其中一个骑在扫把上,像巫师一样跑来跑去。另一个却说:“不,应该这样!”一把抢过扫把抱在胸前,作弹吉他状。两个人不

2013/1/31
阅读更多

搬家有感

<p >要搬家了,有喜,有忧。</p> <p >黄埔的老房子住了十几年了,说走就走,还真有点舍不得。毕竟,我在这度过了童年,度过了最难忘的时光。</p> <p >老房子冬暖夏凉,不是吹牛。十几年来,我在家没开过一次空调,一次暖气,可我仍健康。楼顶还有个天台,大晴时可以晒被子。这么

2013/1/12
阅读更多

学习 Delphi 面向对象编程的一点心得

<p >以前我是完全不理解类的概念的,我只是把它当成一个 Record 来看,只不过它里面可以包含函数和过程罢了。但深入 VCL 学习后我才发现,原来面向对象的世界是这么精彩。</p> <p >大家都应该见过闹钟吧?随便给一个人一个闹钟,他都会用,不管是电子钟还是机械钟。但如果给

2012/9/28
阅读更多

一个键盘钩子的写法,很实用

<h2 id="0x00-前言">0x00 前言</h2> <p >早就想写一个键盘监听器了,学校的电子阅览室设了 Administrator 屏障,想装软件什么的很麻烦,因此想截获管理员密码。。</p> <p class="nomargin"> 花了大概一个星期编写了一个,效

2012/9/28
阅读更多

__home__lambdex

<div class="gk-code hljs" data-gk-id="BLOCK1"><div class="gk-code-display"><pre><span class="line">def_(<span class="hljs-keyword">lambda</s

1899/11/29
阅读更多