人生如歌

看我是歌手,听到苏运莹唱得《知足》突然想起了我的大学,想起了曾经听到的、唱过的很多歌,人生如歌

如果让我用歌来回顾过去的人生,我最先会想到这几首歌

《心太软》算是小时候唱得第一首流行歌吧?哈哈

《爱在西元前》一边听周杰伦一边玩石器时代的日子

《一生有你》初中最喜欢的一首歌

《千里之外》离开家来北京上大学

《知足》大学第一次参加歌手比赛

待续

“年芳二八”

28岁,是一个最好的年纪

想想十年前我还是个只有18岁的小朋友呢,一晃十年就过去了,在北京的十年

在一个地方待久了,发现越来越像故乡一样,前几次出差回常德老家,好像又挺想回北京的

因为北京有我的家和家人

过去的2015年注定是我人生中一个不平凡不一般的一年

我从北航离职,开始了自己的“事业”,从一个稚气未脱的学生小孩,慢慢开始接触社会

这个我对我女儿说,很可怕但是又很美好的世界

三月的时候女儿出生了,是不完美的完美

接触了中国传统文化,古老的印记,普光佛法,悠远道学

知道了多行善事,不将就,不勉强,一切随缘

这一年我去过了很多地方

福鼎

青海玉树、四川甘孜、噶陀寺、西宁、成都

山东莱芜

涞水,保定,曲阳

广东韶关乳瑶

伊春、加格达奇、海拉尔

敦煌

高邮、嘉兴、扬州、杭州、上海、南京

常德黄土店沧山乡沧山古寺、西洞庭善导寺

湖北宜昌,武汉,潜江

杭州千岛湖

昆明、丽江

温州、福州、福鼎、宁波

海南海口、三亚、琼海、陵水

天津

经历了很多奇闻异事,越发觉得生命的可贵

从藏区到东北,从敦煌到江浙,感受人间百态

从城市到城市,发现其实城市都差不多

反而是各种乡村,各种山区,各有各的奇妙

从明天起,就“年芳二八”了

到奔三的年纪,希望在新的一年里

继续追寻我所追寻的

保护我所拥有的

热爱我热爱的

努力

加油

Longing for love, search for knowledge, pity for suffering

听见下雨的声音

窗台上滴落的雨滴

轻敲着伤心

凄美而动听

而我听见下雨的声音

听着天大的道理

不愿意明白

于是我的世界被吵醒

ionic学习笔记

登录页面输入框

<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

angularjs和ionic

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

学习ionic和cordova

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

突发奇想在阿里云的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

2014年是收获的一年

工作的第二年

3月家里增添了新的成员

4月同学一行人去了西安,看兵马俑

5月去了天漠、柳沟、龙庆峡

7月把macbook pro换成了air

8月把杂物间整了整

9月开始孕妇学校

国庆香港采购,回家参加同学婚礼

11月买了ip6,开始了一些新的事情

11月复审工作忙了两个月

 

2014年经历了很多,人生也正在发生一些变化

国家大剧院看了一些话剧和芭蕾舞

看了盗墓笔记剧场版,开心麻花

把一些事情真正开始了

跟实验室到广西南宁开会

去了福鼎两次,见识到了栖林烟雨

准备当爸爸

最近的事

忙活了近两个月的大事终于告一段落了,结果令自己和大家都很满意。接下来就该继续着手自己的事了。

1、cce的网站需要做一个了结

2、LetsSwift更新应该继续

3、物联网课程还有2次要继续

4、公积金需要签一下

5、把门换一下

6、smartcity继续

7、最重要的smartemple和rockwill开始运营

 

生命不止,奋斗不已

最近的读书笔记

一切的转变都发生在要结束生命的那一刻,都发生在死亡如此之近的时候,才发现生命中什么是最重要的,不是痛苦,不是绝望,而是爱!为了爱,甘愿痛苦;为了爱,敢于直面绝望。这正如尼采所说:“一个人有了活着的理由,就可以承受生活的任何境遇。”

Everything in your life is a reflection of a choice you have made. If you want a different result, make a different choice.

孩童之所以荒唐是因为任何生物的死,即便是一只苍蝇,都是一场灾难;但与此同时,从诸神的角度来看,我们的死于苍蝇的死同样是微不足道的。

美国医生爱德华·特鲁多的墓志铭:有时治愈,常常帮助,总是安慰,To cure sometimes; to relieve often; to comfort always.

不奴役别人,不爱慕虚荣,用心去感受每个事物,认真对待自己拥有的每样东西,懂得美,善自知,又有爱,就像在放风筝抓气泡的小孩一样纯真。