Posts
linux kernel 3.14下的ati driver
一个多月前升级系统之后,就不能进入桌面了,当时捣鼓了半天发现新的3.14内核不能正确安装ati的显卡驱动,导致一直使用3.13内核。我用的是amd的apu
又加上当前google被全时间段墙,该问题一直没解决。
后来找到了以下解决方法,看来确实是我判断的新的3.14内核和ati显卡驱动不兼容的问题,打上这个补丁后,也能正常用3.14内核使用桌面了。
http://bluehatrecord.wordpress.com/2014/05/10/installing-the-proprietary-amd-catalyst-14-4-fglrx-driver-on-fedora-20-with-kernel-3-14/
Posts
ionic -> mobile-angular
弄了一周的ionic做了个小app
https://github.com/superwf/convictconditioning
发现ionic各种不好用。
需要日期插件,需要额外加angular-ui-date
需要一个照相机的图标加拍照功能,结果没有,找了一下发现bootstrap里的图标挺合适。
加上bootstrap后又发现css有些冲突,有些小地方有些错位,早知如此最开始就该用mobile-angular做啦。
遂果断换mobile-angular。
Posts
puppet与rvm中ruby的环境变量
看了半个多月教程,开始按部就班的操作的时候碰到不少麻烦。
比如hiera-mysql这个。
WARN: 2014-05-21 16:19:14 +0800: Cannot load backend mysql: cannot load such file — hiera/backend/mysql_backend
nil
gem install hiera-mysql挺成功的,但一用mysql后端就出这个错
google了一大堆还真没看见别人出这个错误的。
都想手动把这个文件加到$:路径里了。
最后发现是之前rvm的残留问题。
最近听了于工的建议捣鼓puppet,由于装puppet用的是deb安装,和rvm不太对付于是换回了系统ruby。
结果导致gem里没有hiera
再gem install hiera一下。
后来感觉hiera-mysql好像只能存取string?,不如yaml能array和hash。
agent第一次请求的时候需要master签名认证。
一直只知道公钥私钥,但是不太清楚签名的具体含义。马上查了一下,发现证书也是一对公钥和私钥,就是多了签名,最重要的是还多了个有效期限制。
我的理解是,agent(一下简称a)第一次请求master(以下简称m)的时候,把a的公钥发过去。这时候m上执行puppet cert list,看到的是agent发来的公钥。
执行puppet sign的时候,是用m的证书私钥加密了该a的公钥,可以成为认证公钥。之后的通信都用这个认证公钥加密。每次a和m通信的数据都会用自己的私钥和对方的公钥双重加密,收到的数据再用自己的私钥和公钥两次解密,得到明文数据。
第二个理解是,是证书这个公钥只加密另一个公钥,不加密数据内容。每次数据传输,先根据证书解密加密后的公钥,在用该公钥解密内容。
应该是第二种比较靠谱,加密用的计算量要少的多。
puppet里的证书都是pem的后缀,说实在的这些密钥的证书后缀也很混乱。pem代表base64编码,与加密方式没啥关系。
以后新装机器该puppet登场了,之前琢磨过的aptitude export import什么的太过时了~
puppet和nginx整合的例子找了几个看了看,现在都不能用了,只有官方的这个能和apache2整合
http://docs.puppetlabs.com/guides/passenger.html
虚拟主机的配置里,关于ssl密钥的配置比其他nginx教程里的多了几行参数,我也不清楚具体起的哪些环节的认证作用。
Posts
jessie的一次系统升级
今天运行了一下 dist-upgrade
升级之后现实显卡驱动,年纪大了记性不好,忘了最近换的amd的apu的机器了,又装了nvidia的驱动。结果黑屏司机。
后来想起来了之后又装回去,去amd网站下驱动,装上之后死的更彻底,连键盘都不灵了。
后来用另一个电脑google一下,卸载了官方驱动,用apt装 fglrx-xxxx的一系列都装上。
然后还是黑屏,但是硬件没死,还能切换到其他控制台,查看Xorg.0.log发现说没有发现Screen,改/etc/X11/xorg.conf把里面的nvidia换成radeon。
然后进桌面,开干活。
vim开始报错vimim语法错误,这玩意好久没更新,估计也不会更新了,自己改了改还凑合能用。
然后php页面不出东西了,看日志是php5-fpm.sock权限错误,之前是 0666,升级之后的默认权限变成 0660了,而且还是root文件,所以www-data的nginx不能读写。
一开始还以为是/etc/init.d/php5-fpm里的设置,后来发现可以在/etc/php5/fpm/pool.d/www.conf里改,把listen.mode改成0666或者吧listen.owner和group都改成www-data。
不知道这个算不算个bug,不过既然是能通过配置文件修改,大概也就算个整合问题。
Posts
第一个相对完整的angularjs项目
遇到的第一个相对麻烦的问题是blueimp的jquery-file-upload
用yeoman套装习惯了,插件都习惯用bower install来安装,于是就
然后发现缺模板,就把http://blueimp.github.io/jQuery-File-Upload/里的html copy下来当模板。还报错,后来发现是jquery-ui的问题,既然用bootstrap,在index.html里把jquery-ui那行删掉。然后又发现scope总是undefined。折腾半天感觉不应该把jquery-file-upload写在bower.json里,这样会多出一些无用的插件。
这大概是因为blueimp的jquery-file-upload与bower兼容的不太好,太多地方不能自动化,不知道算不算个bug,反正从他的例子上直接copy就能用。
于是在bower.json删掉jquery-file-upload,然后只把需要用的几个js文件写在下面的bower:js 块里。html模板部分还是都从例子里copy。
部署的时候第一次grunt build之后页面报错说没有blueimp.fileupload这个module
后来发现由于bower.json里没有jquery-file-upload,服务器端的jquery-file-upload没有安装
于是
grunt build 之后发现glyphicon的图标都变形了,问题出在 app/styles/main.sass里的
然后还需要在copy块里的src数组里加上
参考:http://stackoverflow.com/questions/21932451/assets-missing-in-angular-application-built-using-grunt
弄完之后重新grunt build
Posts
angularjs one controller vs multi views
第一个views是页面加载时就有的,第二个view是后加载的。
第二个view加载后,该controller的scope中的变量更新后,第一个view中的ng-bind变量不能同步显示更新的内容,好像已经断开了链接一行。
http://stackoverflow.com/questions/16210822/angular-js-views-sharing-same-controller-model-data-resets-when-changing-view
看来每次controller加载后重新有自己的编译过程,不能用同一controller中的变量绑定来同步。
后来想到了用$rootScope.$broadcast 的广播方式,把这个事件发出去然后在其他controller里用$rootScope.$on接收,实现了想要的功能。
Posts
rvm crontab custom_require.rb:36:in `require’: cannot load such file — bundler/setup
用rvm环境时,用crontab运行ruby脚本今天报错。之前也运行过倒是没出过什么问题。
查了一下,让用ruby的绝对路径。
还是报错,看来cron时还是需要加入rvm的初始化环境。
于是为了运行a.rb,需要额外弄一个a.sh
Posts
yeoman & rails整合开发
grunt serve的测试环境用的9000端口,向后台发起的默认ajax也是9000
为了与rails整合,在app.coffee里加上
然后在所有需要请求的url之前都加上 rails + ‘/user.json’
这里还涉及到一个ajax跨域的事,得在rails的controller里设置
实际部署的时候可以去掉这个,在nginx里加这个header,把*改成相对应的域名。
后来发现加这个不灵
http://serverfault.com/questions/418709/nginx-add-header-for-a-50-page
401状态下无法自定义header,需要用
http://wiki.nginx.org/HttpHeadersMoreModule
这仅仅因为在开发环境下grunt serve和rails需要用到不同的域,至少需要不同端口,实际部署的时候应该是用不到这些。
干了两天之后各种问题导致各种手动修改补丁,最后还是用nginx配置这些比较合适,在开发时就干脆把这两个后台都整合到一个域名里,也消除了跨域的问题。
nginx配置
Posts
angular-ui angular-bootstrap
名字虽然叫angular-ui,但安装的时候要
bower install angular-bootstrap
今天早上运行代码报错
angular-ui was not injected in your file.
google了一下才发现angular-ui已经过期,分崩离兮成了几个小项目了。