vendor 目录究竟应不应该进 VCS

很多项目现在都有组件式的包管理,比如 composer 管理的第三方组件都存放在 vendor 目录下,那么究竟这个目录应不应该放到 git 之类的版本管理里去,之前我的做法是不放,但是后来发现了一个问题,当多台机器面临更新第三方组件的时候,会出现版本不一致的问题,而且本身 Laravel 的 config/app.php 中启用了第三方组件,但是 vendor 目录中还需要 composer update 更新的时候就会报错;

所以,vendor 作为整个项目的一部分,应该放进版本控制系统(VCS);在部署打包的时候也是一份子,编译打包进入 Docker 之类的容器,进行整体的部署,也才能够保障每个服务器上运行的代码是一致的;

HP 关闭 Public Cloud 服务

HP Public Cloud 宣布到明年1月底就关闭服务了,公有云这个市场有 AWS 这样的先行者和巨无霸,其它产品只能是边边角角像 LinodeDigtal Ocean 这样填补便宜的 VPS 市场;

国内的竞争还不明朗,没有什么太多的数据,阿里云应该是国内最大了吧,腾讯云借着强绑定应该也有不少用户,剩下的就是 UCloud 和 金山云了,也主要靠游戏;其它的云厂商都是提供部分 AWS 的服务;

OS X EI Capitan 遭遇 mdworker deny 错误

过完节回来第一件事就是把系统干干净净的升级到了OS X EI Captain,但是用了几天总是觉的顿顿的,打开 Console.app 看有大量的 mdworker deny 的错误,Google半天也解决不了,有的说重启按住 Shift 进入安全模式再重启就可以了,染病卵。然后还有说重新安装就好了的。

Oct  9 10:22:51 Deathstar kernel[0]: Sandbox: mdworker(3830) deny(1) mach-lookup com.apple.audio.audiohald
Oct  9 10:22:52 Deathstar kernel[0]: Sandbox: mdworker(3829) deny(1) mach-lookup com.apple.audio.audiohald
Oct  9 10:22:52 Deathstar kernel[0]: Sandbox: mdworker(3830) deny(1) mach-lookup com.apple.audio.audiohald

本着治病救人的态度,我先不要重装了;

试了一下进入安全模式清理了所有的 Cache;来写个 blog 转头看的时候,呵呵,染病卵;帮主死的早啊!

看起来是Sandbox向~/Caches/目录写入文件有问题

Update: 试了chown -Rwhoami:staff ~,清Cache重启,然并卵;

Update: 试了把 Spotlight 给disable了,目测是不出现 mdworker 的问题了(呵呵,要是出现就邪了),但是其它和Sandbox相关的还是有,比如:

15/10/9 下午12:04:58.000 kernel[0]: Sandbox: com.apple.Safari(683) deny(1) file-read-metadata /usr

真是日狗了,一会儿打开 Spotlight 试试

Update2: 我败了,现在把几乎所有的东西都清理了,安全模式无数遍了,那个错误依然存在,不说了,晚上回家备份数据重新做系统,妈蛋的啊;

Update3: 在我清理了~/Library/Container/*以及大部分的~/Library/Preferences之后,终于不再出这个问题了,但是感觉 Console.app 下日志还是比较多的,只不过这次报错多和 Evernote 有关,难道说真的是 Evernote Must Die?

而且这次把 Safari 也顺道清理了,终于不会出现地址栏卡顿的情况了,不得不说 OS X 的行为越来越像 Windows,重启重装解决问题的套路又要来了。

Update4: 清理的时候还清理掉了一个~/Library/Preferences/.GlobalPreferences.plist和所有~/Library/Preferences/ByHost里的内容,发现三指拖动竟然没有了?Google 了一圈发现 Apple 竟然把这个功能放到 Accessibility 里去了,好吧,I服了U

Screen Shot 2015-10-09 at 5.27.56 PM

作弊条:Mac下给 Nexus 刷机

收了一个 Nexus 5 等不及OTA,就自己刷了

  1. brew install android-platform-tools
  2. 在手机的关于中版本一栏连按7次,打开开发者模式,并且在开发者模式中打开 USB Debug
  3. 手机连接电脑执行adb devices
  4. 如果有unauthorized字样,执行adb kill-server && adb start-server,重新连接手机,在手机上同意设备调试
  5. adb reboot bootloader
  6. 进入bootloader界面之后,执行fastboot oem unlock
  7. 然后执行下载好的官方rom包里的flush_all.sh

用dnsmasq设置本地开发dev环境

作弊条一个,主要是为了映射多个项目的.dev泛域名解析到localhost

brew install dnsmasq
cat << EOF > /usr/local/etc/dnsmasq.conf
address=/.dev/127.0.0.1
listen-address=127.0.0.1
port=35353
EOF
sudo mkdir /etc/resolver
sudo chown `whoami`:admin /etc/resolver
cat << EOF > /etc/dev
nameserver 127.0.0.1
port 35353
EOF

使用了brew services的话还可以直接brew services start dnsmasq就启动了