番茄工作法的真正价值
番茄工作法在众多提升生产力的方法中,番茄工作法一定是最备受推崇的一个,它足够简单,以至于第一次接触它的人(包括我)都认为它对于提升工作效率不会有太大作用。直到我在《软技能——代码之外的生存指南》这一书中再一次看到作者对它的描述,并按照书中的方法实践之后,我才真正体会到了它的过人之处。我觉得我有必要试着用自己的理解重新把作者的观点梳理一遍,以真正搞明白这种看似简单的方法为何如此有效,否则我会因为没有足够多的人正确认识这一方法的价值而感到惋惜。
番茄工作法是由弗朗西斯科·西里洛在20世纪80年代末发明的,在20世纪90年代获得大规模应用。弗朗西斯科最初使用了一个番茄形状的厨房定时器给自己设置番茄钟,这一方法因此得名。现在已经有很多专门的工具用于记录番茄钟。该方法的核心其实很简单,它的基本流程是:
先规划出一天之内要完成的工作,然后设置一个时长25分钟的定时器,去完成计划中的第一项任务;在这25分钟之内,你只专注于这一项任务,心无旁骛,想办法屏蔽一切干扰,保证自己完全不被打扰,保持专注的工作状态。在25分钟结束的时候,设置一个5分钟的定时器,休息一下。这就是所谓的一个“番茄钟”。每4个番茄 ...
《小狗钱钱》书中的精华都在这了
初次看《小狗钱钱》,竟有一种莫名的感动,在我看来,书中的小狗钱钱,就像来自未来的次世代机器人,通晓世间的一切,而它愿意把关于金钱的一切都告诉主人公,我就这样跟随着主人公的脚步,贪婪的吸收着他们之间交流的一切,生怕错过了这一窥探金钱真谛的机会。
使用acme.sh申请免费的HTTPS证书
最近把自己的网站从HTTP升级为HTTPS,在这里把过程及踩过的坑记录一下。
acme.sh是一个纯粹用Shell语言编写的脚本,本质上是一个实现了ACME协议的客户端,它足够简单,功能强大且易于使用,可以实现自动颁发、续订和安装证书,目前支持ZeroSSL、BuyPass、Let`s Encrypt等多种不同证书,本文使用的是ZeroSSL证书。
安装acme.shcurl https://get.acme.sh | sh
该安装脚本做了几件事:
把 acme.sh 安装到了 home 目录下:~/.acme.sh/
创建了一个 bash 的 alias, 方便使用: alias acme.sh=~/.acme.sh/acme.sh
创建了cronjob,每天 0:00点自动检测所有的证书,如果快过期了,则会自动更新证书。
可能会因为网络问题无法自动安装,则需要手动更改安装脚本内容:
# 下载并保存脚本curl https://get.acme.sh -o acme_install.sh# 更改脚本内域名,使用代理加速sed -i 's/raw/ghproxy.co ...
MySQL中的锁机制
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制 的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议。 Mysql用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。这些锁统称为悲观锁(Pessimistic Lock)。
MySQL锁概述相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。 表级锁:开 ...
更换电脑后,如何继续使用hexo更新博客?
最近在使用hexo更新博客的过程中,发现一个比较麻烦的事情,就是修改配置文件后,不能便捷的把配置同步到其它电脑上,直接拷贝配置文件到其它电脑显然不是一个明智的选择,总有出错的时候,并且没法追溯历史修改,于是,用git的分支来管理hexo的源码和静态文件便是不二的选择,简单总结一下。
初始搭建流程
创建仓库之后创建master(放静态文件)和hexo(放源码)两个分支;
使用git clone -b hexo 仓库地址 命令拷贝 hexo 分支到本地;
进入本地仓库文件夹,保持在hexo分支,依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git;
根据需要修改hexo配置文件,注意deplay参数的分支应该为master;
依次执行git add . 、git commit -m "..." 、git push origin hexo 把源码提交到远程hexo分支;
接着执行 hexo d -g 部署网站到GitHub Pages。
这样就是一个完整的流程了,你会发 ...
CHROME开发者工具的小技巧
Chrome的开发者工具是个很强大的东西,相信程序员们都不会陌生,不过有些小功能可能并不为大众所知,所以,写下这篇文章罗列一下可能你所不知道的功能,有的功能可能会比较实用,有的则不一定,也欢迎大家补充交流。话不多话,我们开始。
代码格式化有很多css/js的代码都会被 minify 掉,你可以点击代码窗口左下角的那个 { } 标签,chrome会帮你给格式化掉。
强制DOM状态有些HTML的DOM是有状态的,比如 <a> 标签,其会有 active,hover, focus,visited 这些状态,有时候,我们的CSS会来定义不同状态的样式,在分析网页查看网页上DOM的CSS样式时,我们可以点击CSS样式上的 :hov 这个小按钮来强制这个DOM的状态。
动画现在的网页上都会有一些动画效果。在Chrome的开发者工具中,通过右上角的菜单中的 More Tools => Animations 呼出相关的选项卡。于是你就可以慢动作播放动画了(可以点选 25% 或 10%),然后,Chrome还可以帮你把动画录下来,你可以拉动动再画的过程,甚至可以做一些简单的修改。 ...
MySQL常见优化汇总
查询优化MySQL查询过程
客户端发送一条查询给服务器;
服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果;
服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划;
MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询;
将结果返回给客户端。
慢查询
是否向数据库请求了不必要的数据;
是否扫描了过多的数据,衡量查询开销三个指标:响应时间、扫描行数、返回行数;
没有索引或者没有用到索引;
开启慢查询日志
方法一:全局变量设置
将 slow_query_log 全局变量设置为“ON”状态
mysql> set global slow_query_log=’ON’;
设置慢查询日志存放的位置
mysql> set global slow_query_log_file=’/usr/local/mysql/data/slow.log’;
查询超过1秒就记录
mysql> set global long_query_time=1;
方法二:配置文件设置
修改配置文件 my.cnf ,在 [mysqld] 下的下方加 ...





