forecho 的独立博客

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

关于健身

2015年09月04日

前言

意识到我们这行职业天天坐办公室,再加上自己身体平常也比较虚,平常也比较懒,不爱运动。

一直有在关注跑步的事情,一天突然知乎上看了很多关于跑步的事情,整个人就跟打了鸡血一样,然后决定去跑步,拉上兔子一起。

开跑

啥废话也别说,先跑起来再说。一个周日我们早早吃完晚饭就去附近一站远的体育场跑步去了。刚开始跑第一圈就有点累,然后就开始走了,总之那天我们基本上是走一圈跑一圈的状态,跑了三圈,一圈600-700米左右吧。

感觉还是个很不错的开头的。一开始是打算每天去跑的,但是想想难度有点大,然后确定了每周2、4、7去跑。

确定之后就开始买了「装备」了,买了运动短裤和手机的肩带,后来又买了运动蓝牙耳机。

「跑步日」那天下班之后我们会现在公司那边先吃饭,然后再坐地铁回家,提前一站 - 也就是体育场下车,体育场旁边正好有一个沃尔玛,方便了我们存包。

刚开始我们还去换运动短裤,后来就懒得换了,再后来也懒得去跑了……

坚持了半个月左右吧。放弃是因为兔子来大姨妈了,我一个人也不想跑了。其实我每次去跑之前都有点想放弃,但是不敢也不想说,但是每次跑完之后感觉还是很好的。跑步之后大汗淋漓的感觉很舒畅!

感觉有些事情你一旦放弃了,后面就很难坚持了,哪怕就放弃了一天。当然我们还会去跑的!

解决「vagrant Up」timeout 问题

2015年07月30日

前言

之前我有写《Windows 开发利器》文章提到使用「VirtualBox + Vagrant(打造 Linux 开发环境)」, 到现在为止在公司使用也有几个月了,到现在为只出现过两次问题。

第一次启动不了

第一次主要是我电脑下班之后没关机,睡眠模式,结果半夜停电了,导致强制关机了,最后导致 vagrant up 命令启动不了了,最后我又重新安装了我的 vagrant。 所以,切记,一定要学会打包自己的 vagrant

打包自己的 vagrant

1
2
3
4
5
6
$ vagrant package
[default] Attempting graceful shutdown of VM...
[default] Clearing any previously set forwarded ports...
[default] Creating temporary directory for export...
[default] Exporting VM...
[default] Compressing package to: /Users/astaxie/vagrant/package.box

有了这个备份就是可以放心的使(zhe)用(teng)vagrant 了。

下面我们重点来讲讲今天遇到的这个坑。

Yii2 高级版新建一个 Api 应用

2015年07月27日

先在项目的根目录下复制一份 backend 为 api:

1
cp backend/ api -r

拷贝 api 环境

1
2
cp -a environments/dev/frontend environments/dev/api
cp -a environments/prod/frontend environments/prod/api

修改 environments/index.php 文件之后的代码(主要是添加了一些 api 相关的代码):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
return [
    'Development' => [
        'path' => 'dev',
        'setWritable' => [
            'backend/runtime',
            'backend/web/assets',
            'frontend/runtime',
            'frontend/web/assets',
            'api/runtime',
            'api/web/assets',
        ],
        'setExecutable' => [
            'yii',
        ],
        'setCookieValidationKey' => [
            'backend/config/main-local.php',
            'frontend/config/main-local.php',
            'api/config/main-local.php',
        ],
    ],
    'Production' => [
        'path' => 'prod',
        'setWritable' => [
            'backend/runtime',
            'backend/web/assets',
            'frontend/runtime',
            'frontend/web/assets',
            'api/runtime',
            'api/web/assets',
        ],
        'setExecutable' => [
            'yii',
        ],
        'setCookieValidationKey' => [
            'backend/config/main-local.php',
            'frontend/config/main-local.php',
            'api/config/main-local.php',
        ],
    ],
];

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