简单聊聊 MySQL 全文索引
最近踩 MYSQL 中文本搜索的坑踩了挺多,来写个具体的文章总结下 MYSQL 中文本搜索的一些知识点吧
模糊搜索在我们是使用 MYSQL 的过程中,总会有一些模糊搜索的需求,比如我们现在有这样一张表
1234567891011create table if not exists `user`( `id` bigint(20) not null auto_increment, `name` varchar(255) not null, `age` int not null, `update_time` timestamp not null, `create_time` timestamp not null, index (`name`), primary key (`id`)) engine = InnoDB charset = 'utf8mb4';
现在我们需要对于 name 做一些模糊匹配的需求,比如我们需要去匹配 name 中包含 草 字, ...
Leetcode Weekly Contest 176 题解
emmmm,我的拖延症没救了,顺便加上这周沉迷 Kotlin ,这篇本应该周一就写完的题解拖到现在,= =然而这周双周赛,,我又得写两篇题解了。。。
1351. Count Negative Numbers in a Sorted Matrix题面:
Given a m * n matrix grid which is sorted in non-increasing order both row-wise and column-wise.Return the number of negative numbers in grid.
示例:
123Input: grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]Output: 8Explanation: There are 8 negatives number in the matrix.
题面很简单,给定一个矩阵,矩阵横/纵向都是递减的,求这个矩阵中负数的个数,这个题,因为横/纵向的数据规模都是小于100的,那就没啥说的了,,直接暴力,横向遍历,然后遇到负数就停止遍历
...
Leetcode BiWeekly Contest 19 题解
例行 Leetcode 周赛,这周双周赛,两场赛打下来,有点酸爽,先写个 BiWeekly 19 Contest 的题解吧
1342. Number of Steps to Reduce a Number to Zer题面:
Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.
示例:
123456789Input: num = 14Output: 6Explanation: Step 1) 14 is even; divide by 2 and obtain 7. Step 2) 7 is odd; subtract 1 and obtain 6. Step 3) 6 is even; divide by 2 and obtain 3. S ...
Leetcode Weekly Contest 174 题解
最近因为生病好久没刷题,今早开始打了一场 Leetcode 的周赛,来写个题解,今早状态还行,,BTW 以后每周都会打周赛,争取写题解
Leetcode 1341. The K Weakest Rows in a Matrix描述:
Given a m * n matrix mat of ones (representing soldiers) and zeros (representing civilians), return the indexes of the k weakest rows in the matrix ordered from the weakest to the strongest.A row i is weaker than row j, if the number of soldiers in row i is less than the number of soldiers in row j, or they have the same number of soldiers but i is less than j. Soldiers are alwa ...
简单安利 Rime 输入法
唉,最近因为气胸大过年的住院,春节颓废了好久,今天开始回北京,干脆来安利一个输入法— Rime
碎碎念如同大多数人一样,我之前也是使用搜狗输入法作为自己的主力输入法,但是搜狗输入法的一些缺陷让我放弃了使用搜狗输入法
作为传统艺能,搜狗输入法隐私保护成迷,在 MacOS 上某几个版本的搜狗在寻求获取我的通讯录和日历读取权限
作为传统艺能,搜狗输入法的广告推送实在是一言难尽,特别是在 Windows 上,已经禁了一些组件,但是还是防不胜防
因为和港澳台和国外社区朋友的交流需要,我需要输入法能够比较好的支持繁体,而搜狗输入法的繁体支持也是一言难尽
搜狗输入法的定制能力也着实不满足我的需求。。
因此我在18年开始在寻求一种开源,可控,可定制,对简/繁输入都比较友好的输入法。经过寻找之后,Rime 输入法进入了我的视线,经过一年多的使用,我觉得这个真的是一款非常棒的输入法
Rime 是什么?Rime (又名 中州韻)是一款开源的跨平台的输入法引擎,完全开源,完全可定制,你甚至可以基于 Rime 的源码,来封装一套自己的输入法引擎。同时因为 Rime 极其高的定制性,你可以基于 Ri ...
简单聊聊 SQL 中的 Prepared Statements
好久没写文章了,新年还是得写点技术水文来保证下状态,正好最近遇到一个比较有意思的问题,就来简单聊聊一下关于 MySQL 中 Prepared Statements 吧
开始gorm 是大家在使用 Go 开发时的比较常用的 ORM 了,最近在使用 gORM 的时候遇到一个很有意思的问题。首先我大概描述一下这个问题
在使用 gORM 的 Raw 方法进行 SQL 查询时,构造了如下类似的 SQL
1select * from demo where match(name) AGAINST('+?' IN BOOLEAN MODE)
在随后传入参数的时候,返回 Error : sql: expected 0 arguments, got 1。而其余的诸如如下的查询就正常执行
1select * from demo where name = ?
最开始我以为这是 gORM 中拼接 SQL 模块的问题,但是看了下代码后发现一个很有趣的逻辑。gORM 中并没有拼接 Raw SQL 的相关逻辑,它会直接调用 Golang 中的标准库 database/sql 来进行 SQL 的 ...
年轻人第一台 Mac,来自一个开发者的 Macbook Pro 2019 16寸简评
从工作开始,一直就想买个 Mac,但是一直没有买成,虽说有公司配发的 Mac(这也让我从 Macbook Pro 2015 13寸到 Macbook Pro 2017 15寸,到 Macbook Pro 2017 15寸,到 Macbook Pro 2018 13寸,到 Macbook Pro 2018 15寸用了个遍,23333),但是没有自己的 Mac始终是一个比较遗憾的事,所以这次新款 Mac 出来后,就瞬时公司员工优惠(官网95折)+12期免息分期入手了,现在我来从一个开发者的角度来给一个简单的评测吧
正文为什么会考虑 Mac写这个文章之前,我需要介绍下我买 Mac 的背景。目前我的主力机是来自蓝天的准系统,P775TM,配置是 i7 8700+32G+512G SSD+1070。工作系统是 Manjaro(一个 Linux 发型版)。在目前开发的时候觉得非常舒服,但是我也遇到了几个问题
太重了,有些时候临时有事需要出门带着并不方便
Linux 下日常软件的缺少还是会给开发带来一些不便
所以在11月之后,我就在慎重考虑需要换一台电脑,而我自己是偏基础设施的后端开发者, ...
写在一周年
说实话,突然体会到了老祖宗说的『光阴似箭,日月如梭』的感觉了,感觉告白还在昨天,但是转眼就一年了。所以来写篇文章纪念这短短却有很丰富的一年吧
起初说实话,我现在都没搞清楚是她撩的我,还是我撩的她,估计暂时也不会搞清楚了?
在去年的11月7号凌晨,当时聊着双十一,然后她突然说,“要是双十一能脱单就好了”,然后我直接没过大脑的来了一句 ”我保佑你啊“,然后你能以肉眼可见的速度感觉到屏幕对面的人不开心了
然后我就纳闷了,这女生咋这么难以琢磨呢?咋这就生气了呢?我说错啥了我?等等,她不会是喜欢我吧?我这么一个沙雕程序员咋会被她看上呢?喵?然后在我反复逼问下她承认了,然后就顺其自然的在一起了
后续她吐槽我:
你咋能拷问一个女孩子喜不喜欢你呢?
当时你说”我保佑你啊“,我第一反应,这男的白撩了
相处她是一个很棒的钢琴专业的学生,非常棒,而且堪称学霸(偶然间知道她当年高考的时候即便缺席了半年文化课,高考成绩也超一本线50多分,当时就给跪了),而我是一个屌丝学渣程序员,按道理说我们两个人是毫无交集的,所以可能很多人想问,你们两是怎么相处的?
嘛,首先,我日常被嫌弃这是必然的,然后她有时会傻傻 ...
我与 PyCon China 这两年
其实这篇文章最开始动笔是写于9月份,PyCon China 2019 上海场的工作结束后。后续因为还有北京,成都场的工作,所以拖到了现在。正好我自己的三年计划刚刚落下帷幕。下一个三年计划正在开展。我也来聊聊在这三年里面,让我花费精力最多,也是最为重要的部分组成之一吧。 PyCon China,嗯这三年的时间里,我有两年都在与这个熟悉而陌生的名字关联在了一起
我与 PyCon China 的结识说实话,之前 Laike9M 的一句话让我产生了共鸣
Kenneth Reitz 曾经说,他的一年是按 PyCon 计算的。尽管围绕他有很多争议,这句话依然让我有了奇妙的共鸣。对他来说,”PyCon”自然是指 PyCon US,而对我来说,则是 PyCon China
而我18/19年这两年的时间里,有很大一部分时间都在围绕着 PyCon China
要说最早结识 PyCon,应该能追溯到的 2016 年,当时初学 Python 的我,看到 David Beazley 在 PyCon US 2009 上分享的一个名为 A Curious Course on Coroutines and Co ...
Linux 上关于 inotify 的小笔记
最近还是无心写啥文章,说好的写几篇关于 Raft 的论文也因为一些事 delay 了。但是想了想还是准备写点什么,于是写个小的水文来记录下关于今天碰到的一个 Linux 内核参数的问题, 顺便做个笔记
开始我是一个不太喜欢 Mac 的人,所以我自己在家使用的开发环境是 Manjaro(这里打个广告,非常棒的发行版,堪称开箱即用,广告五毛一条)。然后代码工具就是 Jetbrains 的全家桶和 VSCode 搭配使用。
今天打开 Goland 的时候,发现 IDE 给了这样一个 Warning ,External file changes sync may be slow: The current inotify(7) watch limit is too low.
于是大家知道,我是个看着这些 warning 有强迫症的人,于是我就去查了查
简单聊聊我们平常经常会有需求,去监控一个文件或者一个目录下的变化,比如创建文件,删除文件等。我们常规的做法可能是一个直接暴力轮询的方式来做
但是这样的性能会极差。那么我们有没有什么手段来处理一下这个事么?
有的! Linux 提供了对应的 API ...