[返回] [最新] [最热门] [最高评价]

推荐训练平台 LeetCode(力扣)

TLDR版本:https://leetcode-cn.com/explore/ ,注册一个帐号开始做题就行了。

== 以下是正文 ==

作为一个程序员,编码能力是基础的基础。

我比较幸运,在大学的时候参加了学校的 ACM/ICPC 集训队,接触了 ACM/ICPC 比赛。这是一个针对大学生编程能力的世界级比赛,要求在几个小时的时间里完成若干道不同难度的题目,其中很多题目不仅需要复杂的算法、有
...

Felix021 2019-01-29 16:58 | 查看: 2555

Excel单元格高度调整+10

使用Excel的过程中经常需要调整行的高度,由于各行的高度不同,统一设定高度往往不适用,而手动逐行调整比较麻烦。有一个常见的小技巧是先按Ctrl+A全选,然后再双击左侧数字标题栏的任意分割线,Excel会自动调整行高。

但是对于精神处女座的我来说,行与行之间没有间隔,所有字密密麻麻挤在一起有点受不了;但是excel又不像css里面可以一句话统一给单元格设置padding或margin(就没有这个
...

Felix021 2019-01-07 00:22 | 查看: 1699

浏览器客户端证书

2015年,从某传统金融国企跳槽来到我司的时候,发现后台管理系统竟然需要安装客户端证书才能登陆,简直惊为天人,通过利用 https 的客户端认证,配合证书中嵌入的用户名做权限控制,把内部系统的入侵难度至少增加了一个量级(当然,安装证书的过程对于非技术线的同学说也麻烦了不少)。

后来发现,原来是把 github.com/OpenVPN/easy-rsa 这个项目包装了一下实现的,其实也并不是很困难
...

Felix021 2018-11-23 23:06 | 查看: 941

vim:新打开文件,第一个字符是p(或者g?)

改 vimrc 没什么卵用,搜了一下,说是因为终端的兼容问题,只要在 ~/.bashrc 里面加上  "export TERM=linux" 就好。

refer: https://stackoverflow.com/questions/31783160/why-vim-is-changing-first-letter-to-g-after-opening-a-file
...

Felix021 2018-11-06 00:51 | 查看: 947

跳表 - 简明教程 in Python

# 1. 什么是跳表

跳表(Skip List)是基于链表 + 随机化实现的一个有序数据结构,可以达到平均 O(logN) 的查找、插入、删除效率,在实际运行中的效率往往超过 AVL 等平衡二叉树,而且其实现相对更简单、内存消耗更低。

Redis 的 ZSET 底层实现就是用的 Skip List,这里是 [Antirez对此的说明](https://news.ycombinator.com/
...

Felix021 2018-09-19 05:30 | 查看: 1210

蠢货Excel之 - 批量应用日期格式

excel很强大,但也有非常蠢的地方:比如今天遇到的,导出文档的日期列是“文本”格式,这时候用数据透视表,excel不能识别这是日期,于是无法根据月或者年对数据进行聚合。

即使选中整列,然后将格式全都修改为日期也不行。

即使再弄一列格式为日期的,然后用黏贴数值也不行。

按照过去的经验,只有逐个格子双击,然后回车,才能把格式应用到数据上,真是蠢到爆炸。

今天觉得实在不能忍了,放狗搜了下“ex
...

Felix021 2018-09-06 13:31 | 查看: 1166

方法论

1. 意志力

    有些人似乎天生就有很强的意志力,可以长时间连续做某件事情而不知疲倦,例如学霸可以长时间做题,计算机大神可以长时间编写代码(看看那些 Hackathon 比赛)。但我认为这里有一些事实被掩盖了——你回顾一下,是不是也有一些自己可以长时间做而不会疲倦的事情,例如王者荣耀、吃鸡,又或者刷各种美剧?你也许会觉得,这不一样啊,玩游戏和刷剧是这种有意思的事情,并不需
...

Felix021 2018-08-03 03:49 | 查看: 1762

解析一个简单的分布式事务Case

注:这篇是3月初在公司内部平台上发布的,搬一份到 blog 存档。
===

我注意到过去几个月有些同学还在踩一个简单的分布式事务Case的坑,而这个坑我们在两年以前就已经有同学踩过了,这里简单解析一下这个case和合适的处理方案,供各位参考。

# 1. 踩过的坑

这个case有很多变种,先说说我们在 X 业务踩过的坑开始,大约是16年9月,核心业务需求是很简单的:在用户发起支付请求的时候,从
...

Felix021 2018-06-08 21:41 | 查看: 926

浅析嵌套数据库事务

大家都知道,数据库事务提供的强一致性,让我们只需要在业务开始之前执行begin、结束后执行commit,并在异常的情况下执行rollback,就能够保证业务数据的强一致性。

## 1. 转一笔账

以一个转账操作为例,从from账户往to账户转一笔钱,涉及到两个账户的操作,我们用事务来保证数据的一致性:
function actionTransfer(Account $from, Account
...

Felix021 2018-03-29 22:00 | 查看: 969

compile viabtc_exchange_server on Ubuntu 16.04

If you find this article helpful, you may like to donate to my ETH address:

  0x84D5084a0142a26081a2d06F3505cfc2CDaE9009

Detailed guide to compile viabtc_exchange_server on Ubuntu 16.04

## DEP
...

Felix021 2018-03-26 21:29 | 查看: 2513

以太坊区块链长什么样? —— 自建 ethereum 私有链指南

之前接触以太坊的时候,确实能搜到很多资料,还有一个看起来很丰富的 Homestead Documentation,但这些材料都太不接地气了,看完还是不知道以太坊区块链到底长什么样,因此整理了这篇说明,希望能够在一定程度上解决这个问题吧。

# 1. 安装 ethereum (@ubuntu)

参考 官方说明:
引用
sudo apt-get install software-properties
...

Felix021 2018-03-14 19:55 | 查看: 1898

简单磁盘性能测试

引用
$ sudo apt-get install fio

# 如下命令会创建一个 512M 的文件,测试 64 线程的 4KB 随机读写,75%读,25%写。
# readwrite=randrw表示测试时混合随机读取和随机写入请求,rwmixread指定读请求的占比
$ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce
...

Felix021 2018-03-10 20:39 | 查看: 849

...更多...