2015赛季亚洲冠军联赛将展开1/4决赛首回合争夺。保利尼奥的精彩世界波。。。
作者: Kevin
Openfire 3.10.2 文档概要
此文为翻译习作,英文原文请参看:
http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/index.html
Openfire provides comprehensive group chat and instant messaging (IM) services using the XMPP protocol.
Openfire 基于 XMPP 协议,提供了成熟的群组聊天以及即时通信(IM)服务。
Documentation: 文档:
- Installation Guide – How to install Openfire. 安装指导–如何安装
- Upgrade Guide – Instructions for upgrading an existing Wildfire installation into an Openfire installation. 升级指导–如何将当前的 Wildfire(Openfire 前身) 升级为 Openfire
- Database Installation Guide – How to setup your database for use with Openfire. 数据库安装指导–如何安装 Openfire 数据库
- SSL Guide – A guide to setting up Openfire’s SSL secure socket support. SSL 指导–如何设置 Openfire SSL 安全 Socket 支持
- LDAP Guide – A guide to setting up Openfire to work with LDAP user stores. LDAP 支持–如何设置 Openfire 使其可以使用 LDAP 用户存储。关于 LDAP
- Custom Database Integration Guide – A guide to integrating Openfire authentication, user, and group data with a custom database. 定制数据库集成指导–如何在定制的数据库上集成 Openfire 认证,用户以及群组数据。
- Pluggable Roster Support Guide – A guide to integrating Openfire rosters with an alternate store. 可插入的花名册支持指引–如何集成 Openfire 花名册备用存储(有点拗口)
担当
担当,汉语词典意思为担负;承担。
最近做了一些不明智的决定,导致自己陷入一种歇斯底里,进退两难的状态。糟糕的是,面对这样自己造成的结果,自己没有勇敢去面对,担当起后果,而是选择沉迷,自己沉沦还是其次,还导致了家庭的不和谐。实在是不应该。
希望以后能勇敢面对现实,抱着积极,健康的心态,无论生活,工作。
static 变量的思考
最近心思来潮,重新温习一下基本的编程知识。
有一些工作中一直有涉及的知识,虽然有个大概的概念,但是却无法阐述其基本的原理。例如 static 关键字。
一般人使用 static 关键字,是为了使用它的暂存器功能,也就是在函数内,static 关键字修饰的变量,在函数结束后,变量并没有被释放,下次再调用此函数时,变量依然保持上次的值,而不会被重新初始化。这是 static 关键字功能的其中之一。
Blog 迁移到Amazon aws
2013年重新开始写BLOG,很可惜以前写下的不少精品文章都没有保存下来,真的很可惜。那些文章见证了自己成长的轨迹,有些原创文章还获得了不少网友的认可,成就感满满的。
所以,尽管这次网站空间快到期了,自己也没有多少时间,精力去更新,当然现在也没什么人看了吧。呵呵。但是,我觉得我还是应该坚持下来。
其一,个人需要一个分享,记录的空间。同时见证自己的成长。
其二,写作其实能锻炼人的思维,包括人际之间的交流思维,技巧。
其三,自己架设网站,锻炼Web开发相关技能,将来的工作的路更宽。
还有还有……
总之,目前是坚持下来了,后面不管是写流水账还是写精品,就看是否有更多精力和时间了。坚持也是一种胜利!
补充一下 aws 建站 wordpress 的经验,流水账。。。
- wordpress 网站文件不要放在默认的 /var/www 目录下,最好另外创建用户,以避免烦人的写入权限问题;同时可以把这个用户作为 vsftpd 的 ftp 用户,新版 wordpress 安装插件需要 ftp 用户。
- 用 wordpress 的 importer 插件可以很简单地实现 wordpress 网站的迁移。前提是你的旧站点可以继续访问。
error: update package missing system.img,Android 5.0 刷入镜像出错原因以及解决方法
本人使用手机的是 N5,最近被 Android 5.1 的内存泄露问题说困扰,表现的现象就是应用在后台占用越来越多的内存,导致系统卡顿严重。网络搜索一下,发现是普遍的问题,而且 Android5.1.1 已经专门解决了这个问题,不多说,直接开刷。
本来官方镜像重刷是一件很简单的事情,官方的脚本直接执行了就完事。但是这次却遇到一个诡异的下载错误,DOS 窗口提示: error: update package missing system.img。
继续阅读error: update package missing system.img,Android 5.0 刷入镜像出错原因以及解决方法
第一次自己DIY电脑,爽
自从笔记本ACER 4745G 的独立显卡挂掉之后,一直想换台电脑,加上最近开发时,笔记本的龟速实在是无法忍受。升级了 SSD 之后虽然情况有所改善,但是内存吃紧的问题依然没有解决。
狠狠心,换一台电脑,毕竟电脑是自己的赚钱工具,是刚需。因为长期深受笔记本性能和散热的折磨,而且真正想开发不会卡顿,笔记本是做不到的,所以这次坚决上台式。
因为是自己真正意义上的自己 DIY,所以心里还是有点忐忑。如果机器点不亮的话,那要多郁闷,就有多郁闷。所以在网上做了不少功课。针对自己的开发需求,选择了 CPU 高配,显卡一般的配置。4700左右,就可以得到一套软件开发很不错的配置了。
Android Framework 代码的混淆
因项目需要把 Android Framework 自主开发部分的代码进行代码混淆,首先的工具是 PROGUARD。但是 PROGUARD 更多是用于 APK 的代码混淆。网络上还没有看到对 Framework 代码混淆的案列。
网上找不到方法,只好自己动手了。研究了两天,终于实现了 Framework 层的代码混淆。
1.修改 Android.mk
代码放在 framework/base 目录下,编译生成 framework.jar,其实这不是一个很好的做法,因为与 Android 源生的代码混合在一起,造成低耦合。前期考虑不当了,后期维护就相对麻烦。
最关键的一点,修改 Android.mk, 使需要混淆部分的包和类单独编译。因为 framework 其他代码最好不要混淆,以免引起找不到类的出错提示。
然后设置 LOCAL_PROGUARD_ENABLED := nosystem,很重要,不然类的方法不会混淆成abcd类似的名称。
然后指定 proguard.flag,设定不混淆(保留)对外公开接口的类,重新编译。可以用模块编译 mmm 命令提高编译效率。
Socket 通信,小试牛刀
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
一直想在尝试两台设备之间互相连接,通信,交互的功能。了解到Socket,很有意思。基本可以实现我的设想,甚至可以多台设备互联,不清楚成熟的物联网又是通过什么什么进行互联?
我的初步目标是用 Android 手机控制小车,不过小车估计自己是做不来了,硬件能力都荒废了。
再熟悉一下 Socket 的工作机制:
折腾Web项目
最近在折腾Web相关的项目,Web相关知识从零开始。不过,相比嵌入式驱动开发,Web项目的入门门槛还算是低的。这也是我这种懒人想死守嵌入式驱动开发的原因,毕竟门槛高,竞争比较少。
这次的Web练手项目,主要是根据用户提供的关键字,搜索出相应的题目以及答案。
项目的整个架构由我策划,基于Spring,整合Lucene搜索引擎,中文识别用IKAnalyzer,服务器用Ubuntu + tomcat。
历时两周,硬件+软件+知识储备都是从零开始,也算是对Web项目开发有了初步的认识。
同时新上手了Intellij idea这个主流的IDE,毕竟从零开始嘛,开发工具肯定用主流的,快捷键切换为Eclipse的即可。
也对Maven基于项目对象模型(POM)有所了解,主要用来简化项目的构建工作。当然刚接触时被一堆配置信息搞得晕头转向,特别是网上没有源的库还要自己手动配置整理。但一旦配置完成后,POM文件的可重用性,真的很方便,而且最终的项目打包时,库的集成方面的工作也是无忧解决。大赞。