也说 hexo

最近一段时间一直没有写博,倒不是因为没有东西分享,其实是懒于动笔,有个词能概括的很好:心懒;心懒是一件很无可奈何的事情,像毒药一样慢慢腐蚀那堆躯体,让行尸变成走肉。

话说回来,博主没死,有事烧香。今天说说那些年,我们一起追过的博客(类型)。

Git grep 乐趣

本文翻译自:http://goo.gl/GUsCf,英文版权归原文作者所有,译文版权遵守 CC BY-NC-SA 3.0 CN

当我审核 git 树中的代码时,我迷糊的扫过这行代码:

1
2
3
for (i = 0; i < 256; i++) {
    struct object_entry **next = c;;
    while (next < last) {

上面的双分号明显是错的,但是仅修复它好像也不行。我想知道,”有多少这样类似的失误?”

解决 openSUSE 下软件卸载问题

昨天在 openSUSE 上卸载 MariaDB 的时候出现了一件麻烦事,由于无法启动 MariaDB 服务,试图卸载 MariaDB,然后出现了下面的错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
~ $ sudo zypper rm -u mariadb
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following packages are going to be REMOVED:
  mariadb mariadb-client mariadb-errormessages

3 packages to remove.
After the operation, 78.6 MiB will be freed.
Continue? [y/n/?] (y): y
(1/3) Removing mariadb-5.5.29-1.1.1 ..........................................[error]
Removal of (36622)mariadb-5.5.29-1.1.1.x86_64(@System) failed:
Error: Subprocess failed. Error: RPM failed: redirecting to systemctl  stop mysql
Failed to issue method call: Unit mysql.service not loaded.
error: %preun(mariadb-5.5.29-1.1.1.x86_64) scriptlet failed, exit status 5
error: mariadb-5.5.29-1.1.1.x86_64: erase failed

Abort, retry, ignore? [a/r/i] (a):

解决方法自然是找遍 zypper 的所有方法都没有管用的,解决 rpm 的问题自然需要 rpm(为什么说是 rpm 的问题,因为这个问题的实质是在卸载前需要执行 preun 脚本),OK,查找 man 手册,注意到 rpm 有这个选项:--nopreun,即不执行 preun 脚本:

1
sudo rpm -e --nopreun mariadb

OK,搞定~

openSUSE 下解决 Ruby openssl 错误

最近把玩 Ruby,不错的说,很有感觉;在一台老机器上面装了 openSUSE 12.3,然后使用 rvm 安装了 ruby,其实任何好的发行版打包的 ruby 都不如使用 rvm 安装的 ruby,亲身感受(不服来辩)。

然后,使用 gem 安装一些软件的时候,会出现如下的错误:

1
`no such file to load -- openssl (LoadError)`

Python 代码规范利器 Flake8

写代码其实是需要规范的,团队中更是如此;不然 Google 也不会发布各种编码规范,耳熟能详的有 Google C++ 风格指南Google Python 风格指南,等等。

这些规范有用吗?有用也没用,除非你脑子好使,一边 coding,一边将规范运用的发紫;否则我们终须还是需要一种工具来做这件事情。好在 python 不止一种工具帮我们做这件事。话休絮烦,切正题。

命令行中使用 gist

介绍

什么是 gist?话说 gist 是 GitHub 推出的代码片段功能;用过 pastebin 或者其他 paste 的人一定知道代码片段的意思;但是你需要知道的是 gist 比几乎任何一个 paste 功能都要强。

本文介绍的并不是如何在 web 页面操作 gist,那其实很简单,不错,GitHub 的所有功能几乎都简单实用;本文意在使用命令行的形式提交 gist。

在 Shell 提示符中显示 Git 分支以及当前的仓库状态

git 是个好工具,我们使用的时候当然希望在 shell 提示符显示 git 分支的相关情况,方法有那么两种,下面一一介绍:

非 git 官方脚本

来自Aaron Crane,实现方式比较简单,具体的分析可以点击链接查看该大神的网站,读取 git 分支实际是很简单的,下面的命令轻松获得:

1
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* (.*)/(1)/'