厦门佛事用品展
故宫博物院
准备去美国
好多好多事
做都做不完的事
希望越来越好
ps:ipad pro的键盘和鼠标都挺好用的
坐等今天晚上的新mac
厦门佛事用品展
故宫博物院
准备去美国
好多好多事
做都做不完的事
希望越来越好
ps:ipad pro的键盘和鼠标都挺好用的
坐等今天晚上的新mac
学习redis
学习rds
学习oss
学习lbs
学习phpunit,jenkins
学习不同的微信支付
学习视频直播技术
10月2号海宝出生了
未完待续
28岁,是一个最好的年纪
想想十年前我还是个只有18岁的小朋友呢,一晃十年就过去了,在北京的十年
在一个地方待久了,发现越来越像故乡一样,前几次出差回常德老家,好像又挺想回北京的
因为北京有我的家和家人
过去的2015年注定是我人生中一个不平凡不一般的一年
我从北航离职,开始了自己的“事业”,从一个稚气未脱的学生小孩,慢慢开始接触社会
这个我对我女儿说,很可怕但是又很美好的世界
三月的时候女儿出生了,是不完美的完美
接触了中国传统文化,古老的印记,普光佛法,悠远道学
知道了多行善事,不将就,不勉强,一切随缘
这一年我去过了很多地方
福鼎
青海玉树、四川甘孜、噶陀寺、西宁、成都
山东莱芜
涞水,保定,曲阳
广东韶关乳瑶
伊春、加格达奇、海拉尔
敦煌
高邮、嘉兴、扬州、杭州、上海、南京
常德黄土店沧山乡沧山古寺、西洞庭善导寺
湖北宜昌,武汉,潜江
杭州千岛湖
昆明、丽江
温州、福州、福鼎、宁波
海南海口、三亚、琼海、陵水
天津
经历了很多奇闻异事,越发觉得生命的可贵
从藏区到东北,从敦煌到江浙,感受人间百态
从城市到城市,发现其实城市都差不多
反而是各种乡村,各种山区,各有各的奇妙
从明天起,就“年芳二八”了
到奔三的年纪,希望在新的一年里
继续追寻我所追寻的
保护我所拥有的
热爱我热爱的
努力
加油
Longing for love, search for knowledge, pity for suffering
窗台上滴落的雨滴
轻敲着伤心
凄美而动听
而我听见下雨的声音
听着天大的道理
不愿意明白
于是我的世界被吵醒
登录页面输入框
<label class=”item item-input”>
<i class=”icon ion-ios-unlocked-outline positive”></i>
<input type=”password” placeholder=”请输入您的密码”>
</label>
顶部条状的tabs
class=”tabs-striped tabs-top”
grid布局
row和col
col是按百分比的col-50,col-20
下拉更新数据 ion-refresher
上拉加载更多数据 ion-infinite-scroll
$ionicScrollDelegate可以控制滚动scrollTop或者scrollBottom
ionic.wang有中文文档
ionic路由管理
$state:路由状态机
状态迁移的几种方式:
1、$state.go(“state name”);
2、<a ui-sref=“state name”>go state name</a>
3、导航到相关联的url
内联模板
<script type=“text/ng-template” id=“name.html”>
<ion-view>
<p>123</p>
</ion-view>
</script>
加载的模板会放在<ion-nav-view></ion-nav-view>里
<ion-view>用在定义模板的时候
控制是否显示标题栏
$ionicNavBarDelegate.showBar(true);
state可以通过点标记tab.chats或者parent:’tab’来继承模板框架
tab和sidemenu结合使用,应该是把tabs放到sidemenucontent里面去
这样有全局的sidemenu
web storm编辑器
下拉更新
ion-refresher
03里面的demo02 pull-to-refresh有示例工程
angularjs:
ng-app,表示angularjs开始接管
ng-model=“username” 绑定input,类似普通html里面的name=“ username”
ng-bind=“ username” 类似 {{username}}
较普通html不同的是,这种绑定方式可以实时input,实时输出
这就叫双向数据绑定
ng-init,设置一些初始值,一般不用
{{}}中可以写表达式{{num*5}}
ng-controller,指定控制器,angularjs的核心
然后使用$scope元素完成双向绑定
ng-app和ng-controller都是有控制域的
angularjs使用模块,解决控制器污染全局命名的问题
ng-repeat完成循环,如下,将会循环li标签
<ul>
<li ng-repeat=“p in person”></li>
</ul>
需要用哪个模块,就把模块名加到controller的参数里面,如$http等
$http.get(url).success(function(data) {}).error(function(err) {});
$http.post(url).success()
$http.jsonp(url),跨域请求其中url需要加callback=JSON_CALLBACK
过滤器
{{name | uppercase}}
{{name | lowercase}}
ng-repeat=“p in person | orderBy:’name’ “
还可以筛选 ng-repeat | filter
$scope作用域
controller可以嵌套,对应$scope就是继承关系
另外有一个$rootScope
如果外部的setTimeout方法要实现$scope的变化,或者是监听$scope的变化
使用$apply或者$watch方法
但是可以使用angularjs内置的$timeout方法,更简单,不需要用$apply方法
监听数据变化特别好用,比如在计算运费的时候
$scope.$watch($scope.sum,function(newVal,oldVal) {
//console.log(newVal);
//console.log(oldVal);
$scope.iphone.fre = newVal >= 100 ? 0 : 10;
});
{{sum()}},数据绑定里面可以执行方法
$scope.sum() {return total;}
angularjs的工具方法
angular.isArray, isString 等等
angular.uppercase()
如果要初始化两个ng-app,需要用angular.bootstrap来加载
模块之间的依赖还可以从[]中加入
比如
service.js中有angular.module(‘starter.services’, [])
controller.js中有angular.module(‘starter.controllers’, [])
然后在app.js中写入
angular.module(‘starter’, [‘ionic’, ‘starter.controllers’, ‘starter.services’])
其中ionic是插件,另外两个是其他文件中的module
osx环境下
安装nodejs,0.10.26版本的就好,太新或者太旧都不好用
node -v和npm -v查看安装是否成功
安装ionic和cordova
npm install -g cordova ionic
ionic实际上就是基于cordova和angularjs的一个框架
ionic start [project name]创建一个项目
首先看index.html,是主页面,里面引入了angularjs, cordova等js支持,此外还有app.js, controllers.js, services.js三个文件,这三个文件构建了app的应用逻辑,app是主程序,包含一些设置和启动脚本,services是数据支持部分,也就是model部分,用于提供数据的增删改查操作,controllers用于控制,包含业务逻辑控制代码
ionic platform add ios
ionic build ios
然后进文件目录,project name/platform/ios用xcode打开就好了
如果装了ios-sim,可以继续
ionic run ios 或者
ionic emulate android等
修改www中的文件,主要是css,img,js,templates
其中css控制样式
js里面app.js控制页面跳转
.state(‘tab.friends’, {
url: ‘/friends’,
views: {
‘tab-friends’: {
templateUrl: ‘templates/tab-friends.html’,
controller: ‘FriendsCtrl’
}
}
})
控制的是tab页面,friends页的形式,在tab-friends这个view里面显示templates名字叫tab-friends的html,然后控制器叫FriendsCtrl
controller.js控制逻辑
$scope是全局变量,定义一些数据和方法
另外还有$ionicTabsDelegate等,注意传递参数
controller里面可以console.log输出,或者直接alert
services.js提供数据等
页面都在templates里面,用到的一些模板的语法,有一些特定的框架和元素,以ion-开头的
注意js中的.controller, .factory等,多个之间没有任何符号,直接换行即可
最后有分号
直接用ionic serve,开启浏览器调试模式,所见即所得
ionic popover的css, 4388行,opacity为什么是0呢?
leancloud,集成云存储,通信等,移动开发不再需要后台,json数据交互
ionic连接leancloud也非常简单,申请好账号,得到appid和appkey之后
在index.html中引入两个js
<script src=”https://cdn1.lncld.net/static/js/av-mini-0.6.1.js”></script>
<script src=”https://cdn1.lncld.net/static/js/av-core-mini-0.6.1.js”></script>
然后在app.js中
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
//里面,添加AV初始化即可
//leancloud
AV.initialize(‘vGdoW****beS1D’, ‘5LubapRJ*****lcQw8zx2’);
});
})
突发奇想在阿里云的ubuntu上搭建一个ejabberd服务器,也学一学XMPP,百度和谷歌了一下发现还是有很多攻略的,但是都说得不是很清楚,于是自己结合搜索的结果和自己的尝试在这里记录一下安装过程
1.安装ejabberd
这个比较简单,ubuntu下直接sudo apt-get install ejabberd就会静默完成
两个目录比较重要:/etc/ejabberd这里面有配置文件ejabberd.cfg,后面配置会用到
/usr/lib/ejabberd这里面有ebin目录,是后面放mysql连接扩展的
另外有的攻略里面说这下面的priv目录里有ejabberd mysql数据库初始化sql文件,我没有找到,后面是在别处下载的
2.配置mysql
第一步安装完成之后,应该就可以使用ejabberdctl命令了,可以接status,start,restart等等
首先从https://github.com/processone/ejabberd/blob/master/sql/mysql.sql下载数据库初始化sql文件,放在某个目录下,比如/etc/ejabberd
然后登录到你的mysql,
mysql -uroot -proot
创建一个用户ejabberd
GRANT ALL ON ejabberd.* TO ‘ejabberd’@’localhost’IDENTIFIED BY ‘ejabberd’;
创建一个数据库
create database ejabberd;
使用前面那个mysql.sql文件创建初始表格
use ejabberd;
source mysql.sql
这个时候会发现ejabberd这个数据库里面多了很多表格就对了
3.配置ejabberd支持mysql
修改/etc/ejabberd/ejabberd.cfg文件如下:
注释掉: {auth_method, internal}.
取消注释:{auth_method, odbc}.
取消注释并设置数据库名称和密码:
{odbc_server, {mysql, “localhost”, “ejabberd”, “ejabberd”, “ejabberd”}}.
修改模块如下:在原有模块名后面都增加_odbc
{mod_last_odbc, []},
{mod_offline_odbc, []},
{mod_privacy_odbc, []},
{mod_private_odbc, []},
{mod_pubsub_odbc, [ % requires mod_caps …
{mod_roster_odbc, []},
{mod_vcard_odbc, []},
重启服务
ejabberdctl restart
4.这个时候多半发现ejabberd服务没启起来,通过查看/var/log/ejabberd/ejabberd.log可以看出
=ERROR REPORT==== 2010-06-24 11:35:34 ===
C(<0.37.0>:ejabberd_check:63) : ejabberd is configured to use ‘mysql’, but the following Erlang modules are not installed: ‘[mysql,
mysql_auth,
mysql_conn,
mysql_recv]’
=INFO REPORT==== 2010-06-24 11:35:34 ===
application: ejabberd
exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
{‘EXIT’,database_module_missing}}}
type: temporary
原因是erlang缺少mysql模块,需要单独编译
那么从svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql
可以把需要的模块源码下载下来,主要是
mysql_recv.erl
mysql_conn.erl
mysql_auth.erl
mysql.hrl
mysql.erl
这几个
放到某个目录里面后分别使用erlc *.erl编译
可以得到几个文件
mysql.beam
mysql_auth.beam
mysql_conn.beam
mysql_recv.beam
把他们全部放到/usr/lib/ejabberd/ebin里面再次尝试重启ejabberd服务就可以了
5.配置ejabberd管理员用户
ejabberdctl register admin [YourIPAddress] 123456
使用web地址http://ip地址:5280/admin,登录即可开始进行服务器管理了
后面的操作未完待续
参考url
http://www.cnblogs.com/silent2012/p/3610747.html
https://code.google.com/p/ejabberd4joomla/wiki/installing_eJabberd
http://srijan.me/ejabberd-storing-data-in-mysql/
2014年是收获的一年
工作的第二年
3月家里增添了新的成员
4月同学一行人去了西安,看兵马俑
5月去了天漠、柳沟、龙庆峡
7月把macbook pro换成了air
8月把杂物间整了整
9月开始孕妇学校
国庆香港采购,回家参加同学婚礼
11月买了ip6,开始了一些新的事情
11月复审工作忙了两个月
2014年经历了很多,人生也正在发生一些变化
国家大剧院看了一些话剧和芭蕾舞
看了盗墓笔记剧场版,开心麻花
把一些事情真正开始了
跟实验室到广西南宁开会
去了福鼎两次,见识到了栖林烟雨
准备当爸爸