Shell 中的一个坑(文件名带有空格时操作)

起因 今天本来想给 U 盘换歌,所以就直接把自己的网易云音乐下载的音乐拷进去,结果发现 U 盘的大小不够(最近比较穷,买不起3GB 以上的 U盘只能拿好多年前的3G U 盘先用着)。 差了400MB,想到车载电脑也放不了 flac 格式的音乐文件,所以就直接写脚本删除这些非 mp3 格式的歌曲文件。 初次尝试 于是按照之前的 allCode.sh 脚本,直接改了个 rmFileByExtension.sh 的脚本,其中,核心代码部分是这样的: function searchFiles() { echo "find all $filter files" ... [阅读全文]

MBanner2 项目(二) --- 编写可测试的代码、实例展示

接上篇的项目基本设计,这次主要是来说具体的实现。 编写可测试的代码 不管在之前的 MBanner 1.0 分支的版本中,还是在借鉴的 QingtingBannerView 中,测试这个环节始终是遗漏的一点。毕竟都是程序员,很少会进行测试驱动开发。所以这次为了解决这个问题,我这边采用了 Junit 进行了部分的代码测试。也是一种测试驱动开发的尝试吧。 具体以具体的代码为例【MBannerLine.java】: 在 1.0 的版本中,MBannerLine 的绘制逻辑和视图的绘画是杂糅在一起的。... [阅读全文]

MBanner2 项目(一) --- 基本设计

写这篇文章的一个出发点就是,对自己的 第一版本 非常的不满意,很多地方的解决思路不够优雅。换句话说就是基于 lib 的二次自定义非常麻烦。 所以才会开启 2.0 版本的开发(反正用的人也不会多,但是我比较喜欢抠细节)。 自定义程度不高主要体现在三方面: PagerViewAdapter 实现方式为 class,并不是接口,导致无法自定义 Adapter,从而绝了换 view 的路。 PageIndicator 实现方式单一,且无法改变。 代码的可测试性不强。(在安卓的组件中... [阅读全文]

MBanner 介绍

最近做了一个安卓项目,因为有个部分是需要实现一个可以展示标题和图片的 AD Banner。所以就同性交友网上(github)上找了一些案例。 作为一个安卓初学者,所以一开始就选用了 star 最多的那个。效果也很好,但是对方提出了一个需求,就是希望在图片上显示标题。做一个类似的蜻蜓上面的 Banner 效果。所以,就搜索到了 QingTingBannerView 这个项目。 这个项目的 star 数非常高。所以一开始认为是挺靠谱的一个。但是使用中发现了如下几个问题。 ... [阅读全文]

如何实现 PHP 中的 Router

因为最近在写自己的 MFramework, 算是一个 PHP 的 web 框架吧。所以这个 Router 就是首先的一步。 首先看下 Kohana 框架的路由编写方式: Route::set('blogs', 'blogs/((/)(/))')->defaults( array ( 'controller' => 'blog', 'action' => 'list', 'limit' => 10 , 'page' => 0 ) ); 然后是 Zend 的路由设置, 建议阅读他的官方文档:Zend Router: $route = Method::factory(array( 'verb' => 'post,put', 'defaults' => array( 'contr... [阅读全文]

从一个问题开始谈秒杀业务场景

这个首先就是从一个知乎提问开始的。有一天我看到这么一个提问: 然后,排名第一的答案就是一个静态页面,一个告知用户当前访问人数过多,请稍后再试。当然,这在很多人看来都是一个笑话。不过,对于一个之前做过秒杀业务的人来说。这真的是一段非常精妙的代码,某种角度上来说,这可以解决90%的秒杀场景。不过,用户体验太差,尤其是那些看到 console 有信息就会高潮的人来说。 所以,这边就先抛砖,来讲下我对秒杀业务的理... [阅读全文]

Ubuntu 14.04 添加侧边栏启动图标

5月没写博客。于是,水一波吧。。。。这个月本来是在做一个安卓 APP 的开发,等结束了总结下吧。 有朋友遇到个问题,就是 Ubuntu 上下载使用火狐之后,左侧启动栏上的图标很难看。因为系统无法识别这个新启动的应用是属于什么类型的,它的启动图标是什么。 网上有其他的教程,比如这个:Ubuntu为eclipse添加快捷启动。 基本的思路确实是这样,因为 Unity 或者其他的 X-windows 都会基于 /usr/share/applications 中的启动项来进行图标的配置。 ... [阅读全文]

一次 MySQL 调优经历

最近有一个朋友遇到一个问题,就是突然之间网站的响应时间变成了秒级,而且 MySQL 占用了大量的 CPU 资源。具体如下图: CPU 资源占用: 响应时间: 可以看到这一个很明显的异常值。所以,我就开始排查。一切都是常规的思路,连上服务器,然后看看当前都是些什么任务。 当前任务: 可以看到,基本上所有的 query 都是在等待表锁。然后查了下这张表的表结构,还有 select 和 up... [阅读全文]

Hexo 博客加密插件简述

缘由 众所周知,Hexo 是一个很赞的静态博客系统。但是,他有一个很大的缺陷,就是无法对文章进行加密处理。比如,我想对一篇文章做权限控制,例如提问回答可见等等。所以,这就产生了一个这样的需求。 虽然我不是一个 Hexo 用户,但是,看到这样的知乎问答: 我只想说,不想一想实现就直接说不可以的,都不是程序员,一点创造性都没有。顺便吐槽下知乎这个社交平台。 说正事。这个插件的主要用途就是为博客加... [阅读全文]

Hexo 标签云插件

现已升级至2.0.*版本,请移步 Hexo-Tag-Cloud 查看具体安装方法。 按照常理,首先要说明为什么要写这个东西。最主要的原因是,我在看同学博客的时候,被大部分的标签云恶心到了。 要么就是一个静态的列表,要么就是一个不知道怎么停下来的标签球。为表愤怒,我就写了这个插件。 求 STAR Hexo-Tag-Cloud 使用方法 在 hexo 博客的根目录找到 package.json 这个文件夹,添加如下的依赖: { "name": "hexo-site", "version": "0.0.0", ... [阅读全文]