自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 将文本改成小写竟能节省带宽?

小明在做一个 Hello World 的 HTML,“The cat sat on the mat” 占用 47 bit,而 “the cat sat on the mat” 却只需要占用 40 bit,一个字符之差竟然少了 7 个 bit 这是为啥呢?

2024-09-02 09:30:00 668

原创 为什么用 async 异步的 FastAPI 阻塞了所有请求?

为什么用 async 异步的 FastAPI 阻塞了所有请求?

2024-03-06 09:37:50 1574 2

原创 丽江古城,非遗与游客的距离

Rcover.jpg昆铁不时降速的动车经过洱海,再眯一会,蓝白的配色里 1/3 已经换成雪山——丽江到了。出站等的士,彼时南方还在遭遇湿冷攻击,高海拔的日照强度,丽江依然可以享受日光浴。去丽江艳遇?当提及丽江,一些朋友和同事第一反应是艳遇,但在我去之前,丽江的标签是非遗。一查才发现,02 年丽江文旅就已经和新周刊搞出类似远离北上广,体验丽江式生活之类的概念了,04 年...

2024-02-14 18:30:36 375

原创 MySQL 磁盘95%,删完数据磁盘炸了!聊聊清理数据遇到的问题

了解机器当前的资源状况。执行需要二次评估磁盘空间,以及确定业务高低峰时期才可以执行分析表业务场景,决定数据生命周期平衡容灾要求,降低日志大小。

2024-02-06 20:21:36 870

原创 四款技术方案免费绘图工具推荐

编写技术方案或梳理业务时,大家经常会有绘制流程图、类图、时序图等需求,然而 传统的 Microsoft Visio 要付费,Process On 虽然可以免费体验,但无法集成在 Markdown 文档中,无法用 GitHub、Gitlab 协作。今天就给大家介绍大厂也在用的几款绘图工具和他们的优缺点。分别是darw.io, Mermaid, graphviz, ExcalidrawDraw....

2024-01-31 11:06:26 473

原创 哪些代码是 Code Review 中的大忌?—— 以 Python 为例

Code Review 首要达成的结果是。在此基础上才是进一步发现项目的 Bug、处理性能优化上的问题。因为,编码是给人看的,不是给计算机

2024-01-14 11:48:00 953

原创 主键顺序影响——如何优化 ClickHouse 索引(二)

如何优化 ClickHouse 索引(二)

2022-12-16 17:55:01 1257

原创 存储设计——如何优化 ClickHouse 索引(一)

系列之一,ClickHouse 存储设计

2022-11-21 14:17:36 2225 1

原创 【翻译】将想法付诸于文字——Putting Ideas Into Words

Translate by FesonX原文: Paul Graham - Putting Ideas Into Words,程序员、风险投资家和技术作家,著有《黑客与画家》即使是写你熟悉领域的内容,通常也表现得不如你想象中熟悉。将想法转化为文字是一项严苛的考验,你所选的第一个词往往是错的,你必须不断重写这些这些句子让它们准确无误。你的任何一个想法不仅是不精确的,也是不完整的。最终在文章中...

2022-09-25 23:12:12 201 1

翻译 【翻译】如何输掉时间和金钱 How To Lose Time And Money

投资是包装成资产转移的烧钱黑盒,狗屁工作是自我陶醉式浪费时间陷阱

2022-07-31 16:11:58 201

原创 Metabase 使用指南

一. 为什么从 ELK 迁移到 Metabase + OLAP1.1 ELK 的问题扩展性不强:Kibana 只能应用在 ElasticSearch 上管理不便:在阿里云等平台,一个 ElasticSearch 集群对应一个 Kibana,难以统一管理开发成本:无法将图表嵌入到其他应用中,需要二次开发图形展示性能一般:ElasticSearch 擅长全文搜索,在数据分...

2022-06-26 11:25:48 5399

原创 【翻译】硅谷创业教父保罗·格雷厄姆:做不可拓展的事 Do things that don't scale...

原文地址:http://www.paulgraham.com/ds.html我们给 YC 投资者提供的最常见的意见类型是做难以扩展的事。一大批潜在的创始人认为,创业不成功便成仁。你做出一些东西,让它可用,如果你制造一个更好的捕鼠夹,让人们按预期走向你的家门。也许他们并不这么做,因为这种情况下市场一定不存在。[1]实际上,创业公司腾飞少不了创始人助力。可能有一小部分是靠自身成长的,但通常需要推一...

2022-05-15 22:27:55 413

原创 【翻译】如何独立思考——Paul Graham

Translate by FesonX原文: Paul Graham - How To Think For Yourself,作者著有《黑客与画家》译注: 本文探讨的 Conventional-minded,下文可能译为思想传统、因循守旧或循规蹈矩的人,Independent-minded 可能译为独立思考的或思想独立的人There are some kinds of work th...

2022-01-16 16:38:32 675

原创 简明入门讲义——一文理清负载均衡和反向代理

文章目录负载均衡器L4 —— 传输控制协议层L7 —— 应用层反向代理总结参考文档负载均衡器负载局衡器(Load Balance,下文简称 LB)更像是一个请求调度中心,主要是为了分发请求。这一角色使得它可以避免请求分配到不可用的服务器,例如发送心跳感知服务器在线情况避免服务器过载,例如实现一个简单的请求计数器或者统计请求的响应时间等。解决单点问题,实现水平扩展根据请求类型分配指定的服务器(例如静态文件分配给 CDN、读写或冷热分离等)负载均衡器可以工作于两层, L4 TCP 层或者 L

2021-06-13 21:27:21 18909 9

原创 简明入门讲义——NGINX 为何这么快

概览NGINX 进程角色Worker 如何做到单线程以一敌百热修改配置是如何实现的参考文档NGINX 是战斗民族主导的一个服务端软件,主要充当负载均衡器和反向代理。NGINX 进程角色一个 NGINX 主要由 Master 进程和一系列子进程组成,主进程负责配置读取和重新加载、绑定端口以及子进程的管理子进程有三种角色**缓存加载器(Cache loader)**负责将磁盘缓存加载到共享内存。此进程按计划执行,用完即销毁,占用资源较少**缓存管理器(Cache Manager)**负责清除磁盘

2021-06-06 21:34:54 243 4

原创 简明入门讲义——DNS架构是如何发展的

DNS 简史远古计算机时期(1972~1989),联网的电脑还可以数的过来。后来,单靠人脑记忆 IP 地址不可靠,于是有南加州大学实验室大佬建了一个表格(实际是个 TXT),写一个程序,将服务器的名称和 IP 一一对应填进去。需要访问时,只需要填个名称,就可以通过表格映射一个 IP 地址访问了!#################### Mac 上的 hosts 示例# cat /etc/hosts###################### Host Database## localhos

2021-05-23 10:26:19 331 4

原创 简明入门讲义——CAP 理论,鱼和熊掌不可兼得

CAP 理论缘起开发人员常常要将对性能与扩展性的思考体现在代码中出现性能(Performance)问题,即单个用户请求是缓慢的出现扩展(Scalability)问题,即单个用户请求是满足要求的,但系统在高负载下处理用户请求是缓慢的。如果这个服务是可扩展的,则随着系统资源的增加,服务性能是成比例提升的。随着可扩展服务系统资源的增加(这里指的是横向扩展(Horizontal Scalability)),系统就会开始变得复杂,出现以往单机不需要考虑的问题。CAP 概述于是就有了 CAP 理论:在一.

2021-05-22 09:58:56 276

原创 简明入门讲义——如何实现可扩展的 Web 服务

概览一. 服务器二. 数据库三. 缓存四. 异步参考文献一. 服务器可扩展的应用服务器(Application Server)集群藏身于负载均衡器(Load balance,LB)背后,LB 将负载(即用户请求)平均地分配到各个组或集群的应用服务器上,此时负载均衡器可能运行在 TCP 层(Layer 4),分配请求的方式默认是简单的轮询(Round-Robin),即假设有服务器 A-D,请求依次从 A 分配到 D,列表循环。现在,小明向你的 Web 服务发起请求,第一个请求可能被分配到服务器 A,第二

2021-05-05 21:13:07 317

原创 抓 Bug 神器的工作原理——聊聊 Sentry 的架构

Sentry 是什么?这是一个用于错误上报的服务中心,使用近乎一致的 API 设计,统一了不同语言生产环境代码异常上报的难题。文章目录架构概述Relay —— 错误信息处理的中转站Kafka 和 Celery —— 应用解耦和异步保存数据Sentry Web题外话 —— 为什么 Sentry 适合商用参考资料2020 年二月份,领导让我负责在公司内部测试和使用 Sentry,彼时 Sentry 的文档还不是很完善,我也只是初步接触基础服务的搭建,Sentry 于我而言就是一个黑盒子。2016 年,S

2021-02-09 09:33:34 1115 1

原创 反范式设计博客表结构 - RebuildBlog - Day2

今日代码,可以 checkout ff5e9bb在这次重写博客时,设计数据库部分将考虑反范式设计,最关键一点就是舍弃所有外键,通过代码逻辑来保证表之间的联系。虽然我的博客可能没有多大访问量,但这个设计早已被验证。关于 MySQL 表结构的设计和使用上的一些建议可参见书籍《高性能 MySQL(High Performance MySQL)》以及文档 启发式规则建议-By Xiaomi,最基本...

2020-05-30 23:26:19 204

原创 开始一个 Python 项目前要准备什么 - RebuildBlog - Day1

在有了一定的学习和工作经验之后,决定重写我之前的博客。项目地址:https://github.com/FesonX/RebuildBlog第一天的代码可以 checkout 这个 commit4d48cc734e042fb531b0e625cbc09fab3b4e8409配置 PyCharm定制 Python 文件头部定制完文件头部会有种真正拥有这份代码的感觉,配置路径如下:...

2020-05-24 17:45:19 226

原创 MacBookAir 2020——年轻人的第一台 Mac 使用体验

来自 Apple 官网2020年3月18日,苹果悄然在官网上架了新款 iPad Pro 和 MacBookAir。看完了 MBA 的升级内容,我用了四年的电脑就开始卡了起来:新版 MBA 升级了什么剪刀键盘回归了加入了原彩显示,加入了 Iris 显卡(1.5GB显存)CPU 性能几乎翻倍,内存升级到 DDR4X,标配 256G SSD, 散热有所提升配备立...

2020-04-12 22:34:44 5257

原创 利用 Docker 快速实现 MySQL binlog 主从备份

DockerIntro主从备份是容灾的一种手段, 模拟主从备份可以有下面几种方式:不差钱方式, 买几台主机测试, 这种方式也比较接近线上环境.通过创建几台虚拟机来模拟. 这种方式对本机性能要求相对较高. 相对不差钱可以选这种方式, 但安装几台虚拟机也不是一件效率高的事.在一台主机上创建多个数据库实例. 缺点是环境无法隔离, 需要额外加多一些配置通过 D...

2020-03-01 21:17:35 260

原创 指数基金投资指南——阅读笔记

过年在家读完了《指数基金投资指南》,整理出了下面一些笔记供大家参考。此外,推荐另外两本书籍《小狗钱钱》和《穷爸爸富爸爸》,小狗钱钱由于定位原因,较为低龄向。两本书传递的是理财投资的理念,而《指数基金投资指南》则是实战。有哪些基金有指数基金、债券基金和货币基金三种。其中指数基金分为宽指基金和行业指数基金两大类,行业基金细分了一级行业基金和主题基金。具体分类和示例参见图片。...

2020-01-31 22:33:03 1866

原创 流程图设计入门指南 —— 以 Draw.io 为例

一. 流程图工具Microsoft Visio - 付费a. 优点:功能最强大的流程图工具b. 缺点:Mac/Linux 只有在线版,无客户端Draw.io - 免费a. 优点:在线 / 离线(支持 Windows / Mac / Linux/ Chrome OS),可自由选择存储位置b. 缺点: 协作能力差(可通过保存至 Google Drive / G...

2019-12-01 21:50:44 6057

原创 Python 具名元组——我不只是可不变列表

Python具名元组, nametuple

2019-11-16 16:58:38 521 1

原创 【收藏】100 个 PyCharm For Mac 快捷键

py作为真正生产力工具的 Mac, 在 Python 开发中配合 PyCharm 快捷键, 可以让生产力倍增, 本文用 按键位分类 和 按功能分类 两种方式整理 PyCharm 的快捷键.对于笔者认为很有用, 但初学者可能未使用过的快捷键, 做加粗处理按键位分类Command + ?command + 1 展开收回 Project...

2019-07-28 17:30:00 486

原创 LeetCode每日一题14. 最接近的三数之和

LeetCode题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-...

2019-05-05 09:02:00 314

原创 LeetCode 每日一题 230. 二叉搜索树中第K小的元素

leetcode.png题目给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示...

2019-04-28 14:18:00 220

原创 查找论文文献的小技巧

目录Intro去哪里找去哪里下英文文献中文文献Intro无论是大学期间的小论文还是令人头秃的毕业论文, 查找文献是必不可少的环节.而这个过程说到底就两句话:去哪里找在哪里下本文以工科论文为背景撰写, 以查找 “模式识别” 这一关键词为例.去哪里找维基百科维基百科, 百度百科是很多人用来查概念定义的, 但是光用来查定义太浪费了. 把页面滑到底部, 你就会发现新大陆:维...

2019-04-20 16:30:28 1418

原创 Django 博客生成 Markdown 摘要的几种方式对比

方式一: 直接取 Markdown 文字的前100个字(不推荐)这种简单粗暴的方式很不友好, 如果开头是一张图片或者是链接, 那么用户可能只看到链接, 体验感很差.方式二: 使用正则去掉Markdown (有门槛)通过研究 Markdown 语法, 然后用正则表达式去除即可.import recontent = re.sub(r'\[(.*?)\]\(.*?\)', '', arti...

2019-03-29 08:57:11 503

原创 为你的爬虫添加 IP 池反反爬策略

目录开始之前常见的反爬和反反爬策略基于 Headers 和 UserAgent 的反爬基于用户行为的反爬隐藏真实地址的动态网页反爬IP 池突破反爬策略最近发现自己之前爬的某个网站更换了新的网页设计,于是重写了爬虫,在测试的时候突然被封了 IP,虽然说一般网站都不是永久封 IP,但是等不了的我还是尝试用 IP 池来突破该网站的反爬。而就在我测试爬下来的 IP 能不能使用的时候,某提供 IP 池...

2019-03-22 09:59:22 888

原创 爬虫的另一种思路 -- robots.txt

封面近两年出现曾报道一些关于非法抓取数据的程序员被告上法庭的事例, 而非法抓取的一个典型做法就是不遵守网站的 robots.txt 规则进行爬取. 早年就曾有搜索引擎不遵守淘宝的 robots.txt 还去收录网站的信息被告的案例.在 Scrapy 中的 settings.py 中默认是遵守 robots.txt 的, 一般我们也不会去关闭...

2019-03-12 20:06:00 305

原创 Python Web工程师面试总结(二)- Python基础

py上篇笼统地聊了整个知识框架,这一篇会重点谈谈其中的常问的 Python 基础知识部分。题目:谈谈 Python2 与 Python3 的差别Python 中的单下划线与双下划线分别指什么聊聊 Python 中的可变对象与不可变对象Python 中的迭代器与生成器是什么Python 中的装饰器是什么? 有什么用Lambda...

2019-03-11 17:39:00 294

原创 Python Web工程师面试总结(一)- 总体框架

面试了一家初创公司, 面试官问的问题并不是说很难, 但是覆盖面比较广, 有一些基础概念不清晰的话, 很容易被问倒.一些资料显示, 对 Python Web 开发工程师的一些技术栈要求如下:熟悉Python语言 对 HTML/ CSS/ Javascript 比较熟悉 对网络基础知识,比如HTTP、TCP/IP 等比较熟悉 熟悉数据库、缓存、消息队列等技术的使用场景和使用方法 日常...

2019-03-10 15:33:00 418

原创 LeetCode每日一题122: 买卖股票的最佳时机 II

题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出...

2019-02-22 23:56:00 270

原创 LeetCode每日一题14. 最长公共前缀

LeetCode题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明: 所有

2019-02-21 16:58:00 251

原创 项目部署的常用进程管理命令

封面在实际的项目部署中, 最常用的系统环境还是 Linux, 熟悉常用的管理命令, 特别是进程管理命令 (项目在系统中也以进程形式存在) 很有必要.今天的命令包括:查看进程列表查看进程具体信息向进程发送信号查看进程打开的文件查看文件的使用情况查看端口占用列表查看具体端口占用查看进程命令psps -efps aux...

2019-02-19 12:09:00 381

原创 LeetCode每日一题 557: 反转字符串中的单词 III

leetcode.png题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。分析不同于之前的反转字符串I, 这道...

2019-02-17 14:48:00 277

原创 LeetCode 每日一题206: 反转链表

LeetCode提前祝大家春节快乐~题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?数据结构定义C/** * Definit...

2019-02-02 10:37:00 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除