forecho 的独立博客

把生命浪费在美好的事物上

Mac 安装 Docker

2015年07月26日

前言

前几天 MacBook 拿去修了,回来时候貌似覆盖的方式重装了一回系统了。反正就是 Apache 环境都没了,索性借这次机会使用一下 Docker 吧。

安装

根据官网的文档安装 Docker,如果一切正常的话就是下载一个软件,双击傻瓜式的安装就可以了。

下载太慢怎么办?

刚才找到一个国内的镜像,速度还不错,推荐。

安装失败报错怎么办?

1
2
3
> docker run hello-world
> FATA[0000] Post http:///var/run/docker.sock/v1.18/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
  FAIL

Octopress 结合 Github 和 Travis-ci 实现自动更新博客

2015年07月21日

前言

这么久没更新博客了,一是因为 Octopress 虽然在自己的 MacBook 搭建起来了,但是工作电脑还没有,最主要的是工作电脑是 Windows 原来安装 Octopress 本身就是一件蛋疼的事情。对于一个懒人的我来说,一直想找一个自动生成静态博客并且会自动发布的解决方案,差点都准备放弃 Octopress 了,直到今天上午这种方案被我找到,本来以为最多一上午能搞定,没想到花费了我一天时间。

实现

主要是利用 travis-ci 提供的持续集成服务实现的,主要分三步就搞定:

  1. 用 github 登录Travis-CI,然后开启你要使用集成服务的项目。
  2. 添加 .travis.yml 文件(octopress 默认就有这个文件,我们修改就可以了)。
  3. 只要配置通过,当你 git push 的时候就会自动触发 travis-ci,后面的工作就全自动了。

Yii2 如何实现 RESTful?

2015年03月22日

什么是REST

简单的说,REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

为什么要Restful?

主要遵循两个准则:

  • 不要为了RESTful而RESTful
  • 在能表达清楚的情况下,简单就是美

Yii2 使用 RESTful?

其实 Yii2 框架本身就对 RESTful 是友好支持的,具体可以看官方文档,或者去看源码,都是可以的。

下面分享我写的Yii2 RESTful DEMO

具体实现可以看我的代码,有不懂的可以留言。下面我重点说一下值得注意的地方:

2014年终总结

2015年03月02日

前言

2014年过的很快,快到我还没来得及接受2015年的到来;同时2014年过的又很慢,慢到我都忘记了那一年我都做了写什么。

生活

2014年算是微信年吧,也注定是微商年。你朋友圈肯定会有那么几个同学或者同事在卖面膜的。反正我受不了,都屏蔽了。呵呵。

2014年也刷新了我在一家公司待最长时间的记录了 - 到现在快一年半了。

3月底的时候我们终于面试到了一个前端工程师,从此把我从前端的坑解救出来了,并且还是个妹子。

4月份的时候公司组织了一次去厦门春游的活动,有机会让我们相互了解,是她现在成为我女朋友的条件。其实还是很感谢公司的。

后来的大部分时间都是去约会了,业余时间都没怎么写代码了。但是经常出去走走有何尝不是见好事。我们一起去过深圳湾、华侨城创意园、深圳图书馆、长沙的芒果TV等等。

2015年我们还去了一次东部华侨城。

2014年搬了一次家,三个好基友也分开住了。

2014年只参加过两次业内活动,但是还不够。

工作

刚过完年项目的主程就要离职了,突然感觉到自己的压力比较大,后来调试微信支付的时候差点崩贵了。

来来去去的人。这一年加班倒是没有2013年那么狠了,但是项目急着上线的时候还是天天加班。

自我感觉这一年自己的增长是缓慢的,更加熟悉CakePHP,更加理解了OOP的思想,但是我认为这点成长是不够的。

不想再继续写着一些CRUD的操作了,做长了无法就是更加熟悉使用而已,所以趁着2014年年底公司结构的变化,申请加入了平台基础组。我想接触一些大数据的处理,想接触一些架构方面事情。

我们说服了老大使用 Yii2 框架开发,让我能看到了希望,以后可以愉快的写代码了。

Windows 开发利器

2015年03月01日

前言

Linux 应该是最理想的开发系统,但是 Linux 桌面系统做的很稀烂,我记得我用 Linux 开发的时候 Sublime Text 都不支持中文输入啊,想写个注释都要去记事本写好了再粘贴过来,这得多蛋疼,效率得多低。

Windows 7 系统 其实的很棒了,绝大多数公司目前用的开发系统都是 Windows,但是作为开发机 Windows 有很大的缺陷,终端薄弱、安装扩展麻烦、其他语言的不友好支持等等麻烦,让你只能停留在初级开发者的阶段。

Mac OS 最理想的开发环境,因为有这同 Linux 一样好用的终端,有精美的界面。是开发者首选。但是价格昂贵,却是值得的。

但是大部分公司给你配置的都是台式机,Windows 系统。所有下面我们来说说怎么让你的 Windows 系统开发更有效率。真正用起来的话你会觉得其实 Windows 也不错。

强化系统工具

VirtualBox + Vagrant(打造 Linux 开发环境)

最初我是在 慕课网-Web app—Rails10日谈 上看这个方法的,看完我就惊呆了,相见恨晚的感觉。这不就是我一直所追求的开发环境吗?

Vagrant 和 VirtualBox 虚拟机配合可以让你的 Windows 使用 Linux 系统。再配合一个强大的终端,那就完美了。

具体使用我就不写了,看下面的参考资料已经足够了。

参考资料:

babun + ConEmu(打造最强终端)

Windows 下面的终端我试了好几个,最后试来试去发现 babun 最好了,省时省力,集成 oh-my-zsh、git 等,算是 Cygwin 的精简版。

ConEmu 可以加强终端使用,和 babun 配合,可以开多个标签。

Clover(资源管理器扩展)

如果你喜欢 Chrome 浏览器,那么你一定会爱死这个软件了,以 Chrome 的形式来使用我们的资源管理器,多标签、书签、新标签打开、重新打开关闭之后的标签,统统没问题,快捷键都和 Chrome 一样。

Listary(文件浏览与搜索增强工具)

增强文件夹资源管理工具。免费有中文。高级版收费,保存文件的时候可以直接根据文件名搜索文件路径,你值得拥有。

Everything 也是搜索文件神器,但是 Listary 已经有搜索功能了,所有我就没有安装 Everything 了。

参考资料:

Mac PHP 环境下新增虚拟主机

2015年01月16日

注:这里只是新增,如果是第一次开启虚拟主机,请参考这篇文章

1、运行sudo vim /etc/apache2/extra/httpd-vhosts.conf,就打开了配置虚拟主机文件httpd-vhost.conf,配置虚拟主机了。增加虚拟主机代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
<VirtualHost *:80>
    DocumentRoot "/Users/[用户名]/Sites/site"
    ServerName www.site.com
    ErrorLog "/private/var/log/apache2/sites-error_log"
    CustomLog "/private/var/log/apache2/sites-access_log" common
    <Directory />
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order deny,allow
                Allow from all
    </Directory>
</VirtualHost>

2、保存退出,并重启Apache。

1
sudo apachectl restart

3、运行sudo vim /etc/hosts,打开hosts配置文件,加入「127.0.0.1 www.site.com」, 这样就可以配置完成sites虚拟主机了,访问「http://www.site.com」就相当于访问/Users/[用户名]/Sites/site文件下面的项目了。

补充:Mac默认PHP配置文件在 /private/etc/php.ini

Mac Sublime Text 实现 Chrome 快速预览

2015年01月08日

安装

按照 Tools -> Build System -> New Build System… 新建一个「Build System」文件。 写入以下代码:

1
2
3
{
    "cmd": ["open", "-a", "/Applications/Google Chrome.app", "$file"]
}

保存在「~/Library/Application Support/Sublime Text 2/Packages/User」,文件名为「Chrome.sublime-build」。

使用方法

在 Tools -> Build System 选择 Chrome,然后直接按「command+b」快捷键就自动打开 Chrome 了。

参考链接

  1. Sublime Text 2 Browser Preview(youtube 视频要翻墙)
  2. Set up Sublime Text to Preview Your Code in a Web Browser
  3. Sublime Text 2 keyboard shortcut to open file in specified browser (e.g. Chrome)

CakePHP 使用小技巧

2014年11月19日

知道主键 ID 更新一条数据,代码示例:

1
2
$this->Order->id = $id;
$this->Order->saveField('status', $status);

点赞的时候需要+1,如何更新数据库?

1
2
3
4
$this->Widget->updateAll(
    array('Widget.numberfield' => 'Widget.numberfield + 1'),
    array('Widget.id' => 1)
);

如何通过主键最简单的方式获取到一条数据?

1
2
3
4
// 只获取name字段信息
$this->User->read('name', $id);
// 获取所有信息
$this->User->read(null, $id);

安装 Python Pip

2014年11月18日

Windows 安装

  1. 先下载 get-pip.py
  2. 再运行python get-pip.py执行安装程序
  3. 添加环境变量到计算机,例如:C:\Python27\Scripts

Ubuntu安装

  1. 在终端运行sudo apt-get install python-pip

解决asciii码错误