<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[学无止境，静下心来！]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tww85</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tww85]]></copyright><item><title><![CDATA[写给java web一年左右工作经验的人]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53940377</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53940377</guid><author>tww85</author><pubDate>Fri, 30 Dec 2016 10:47:07 +0800</pubDate><description><![CDATA[转自：https://my.oschina.net/aaron74/blog/282304

摘要: 大学就开始学习web，磕磕绊绊一路走过来，当中得到过开源社区很多的帮助，总结了这些年来的技术积累，回馈给开源社区。 ps：图片都是从网上盗。。。感谢原作者。 ps：文字千真万确都是我自己写的。 在此，特别感谢Hansen，他曾经有私的帮助过我（两包零食），他是一个很强的启蒙胖子。


 ]]></description><category></category></item><item><title><![CDATA[基于MQTT的消息推送]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53536020</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53536020</guid><author>tww85</author><pubDate>Fri, 09 Dec 2016 11:45:17 +0800</pubDate><description><![CDATA[这段时间学习了推送技术，对xmpp和mqtt 协议做了下比较。
xmpp基于xml信息传递，所以传输信息量比较大，在保持长链接情况下功耗会比较大。
可能还是比较适合用来做聊天之类的通讯应用，而对于智能和物联低功耗设备的推送来说，感觉比较笨重。
而mqtt协议就是针对网络带宽低，高延时，通信不稳定的环境设计的，特别适合物联设备。低通讯量连接保持，简约轻便。


提供了发布/订阅模式，只要]]></description><category></category></item><item><title><![CDATA[用Jmeter工具对服务器做压力测试]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53406318</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53406318</guid><author>tww85</author><pubDate>Wed, 30 Nov 2016 12:29:10 +0800</pubDate><description><![CDATA[1. 下面Jmeter
    http://mirrors.hust.edu.cn/apache//jmeter/binaries/apache-jmeter-3.1.zip
2. 进入apache-jmeter-3.1\apache-jmeter-3.1\bin 目录下
    运行jmeter.bat，分别添加线程组，http请求，察看观察树，响应断言，断言结果]]></description><category></category></item><item><title><![CDATA[OTA服务器和android客户端添加HTTPS协议]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53395836</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53395836</guid><author>tww85</author><pubDate>Wed, 30 Nov 2016 12:15:10 +0800</pubDate><description><![CDATA[有段时间没总结了，这期间主要学习三个问题:
一是https协议，OTA HTTPS 协议可以工作了。
二是消息推送，推送用的是openfire+asmack方案，目前只能给所有用户广播消息，如果针对不同项目用户，服务器端还需要单独开发插件支持，这个后面继续研究。
三是服务器并发压力测试，测试工具用的是jmeter，个人觉得这个工具还是很强大的，可以同时模拟成千上万的用户同时访问服务器。]]></description><category></category></item><item><title><![CDATA[android Service和Thread的区别]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53174608</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53174608</guid><author>tww85</author><pubDate>Tue, 15 Nov 2016 18:30:09 +0800</pubDate><description><![CDATA[转自： http://www.cnblogs.com/perfy/p/3820502.html



1.服务不是单一的进程。服务没有自己的进程，应用程序可以不同，服务运行在相同的进程中。


2.服务不是线程。可以在线程中工作。


一.在应用中，如果是长时间的在后台运行，而且不需要交互的情况下，使用服务。


同样是在后台运行，不需要交互的情况下，如果只是完成某个任务]]></description><category></category></item><item><title><![CDATA[堆排序的讲解和实现]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53056452</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53056452</guid><author>tww85</author><pubDate>Sun, 06 Nov 2016 20:51:21 +0800</pubDate><description><![CDATA[转自：http://www.2cto.com/kf/201308/239791.html


堆排序：
 
特点
        堆排序（HeapSort）是一树形选择排序。堆排序的特点是：在排序过程中，将R[l..n]看成是一棵完全二叉树的顺序存储结构，
 
利用完全二叉树中双亲结点和孩子结点之间的内在关系（参见二叉树的顺序存储结构），在当前无序区中选择关键字最大（或最小）的记录]]></description><category></category></item><item><title><![CDATA[在华为云服务器上搭建OTA服务器之thinkphp5]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53020314</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53020314</guid><author>tww85</author><pubDate>Thu, 03 Nov 2016 14:29:22 +0800</pubDate><description><![CDATA[因为用的云服务器是ubuntu裸机，所以软件都需要自己安装。
这个过程遇到很多问题花费了好多时间，也好，就当学习了。


1. FTP上传失败问题???
    前面通过ftp客户端已经可以连上云服务器了，但是上传文件失败！！！
    最后发现居然是云服务器ftp 主目录是用root 权限创建的，所以用ftp的用户名从ftp客户端连接当然就无法上传了。
    哎，到处是陷阱，细心]]></description><category></category></item><item><title><![CDATA[【算法】分治法之归并排序实现]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53019883</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53019883</guid><author>tww85</author><pubDate>Thu, 03 Nov 2016 12:17:17 +0800</pubDate><description><![CDATA[所谓分治：分而治之，中华民族智慧的结晶。对其联盟，使其分裂而利于各个击破；对其国使用，使其国分裂而利于控制；对其公司使用，使其公司分裂而利于控制；对其团队使用，使其团队分裂而利于控制。可见，分治法被运用于当今社会的方方面面。


既然分治法拥有那么大能量，有必要学习学习它。当然了，这里学习分治是用来如何解决问题的。
面对一个大问题，如果直接去解决，可能很复杂，不好解决。所以要把大的问题分解]]></description><category></category></item><item><title><![CDATA[关系数据库的几种范式（1NF，2NF，3NF，BCNF）]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/53005195</link><guid>https://blog.youkuaiyun.com/tww85/article/details/53005195</guid><author>tww85</author><pubDate>Wed, 02 Nov 2016 10:33:36 +0800</pubDate><description><![CDATA[关系数据库的范式就是设计关系数据表的一种规范，不同范式代表的不同的规范等级。
达到的等级越高，设计出的数据库表就越合理，问题越少。否则就会出现重复数据(数据冗余)，插入、删除、修改等异常。
要理解关系数据库的范式，首先需要弄清楚几个概念。
1. 什么是码
2. 什么是主属性和非主属性
3. 什么函数依赖和部分函数依赖，设计时得明辨出依赖关系。


下面是知乎上一位老师给的解释，本人]]></description><category></category></item><item><title><![CDATA[在华为云服务器上搭建OTA服务器之安装apache 与ftp]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52997597</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52997597</guid><author>tww85</author><pubDate>Tue, 01 Nov 2016 17:46:02 +0800</pubDate><description><![CDATA[之前写了OTA服务端和客户端代码，在本地局域网用wamp测试过，想放到公网上去测试下。
于是想到用云服务器，找来找去发现还是华为的实惠，1元体验15天，还是2G内存，对本人测试来说已经足够了。
由于本人在服务器这块确实是无知，所以这个安装过程很是坎坷，折腾了好长一段时间终于可以外网连上服务器。
这个过程特别感谢华为客服的耐心帮助。


下面按照本人记忆中的印象记录下安装过程和问题解决。]]></description><category></category></item><item><title><![CDATA[设计模式之Iterator(迭代器)的设计和使用]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52993739</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52993739</guid><author>tww85</author><pubDate>Tue, 01 Nov 2016 11:46:47 +0800</pubDate><description><![CDATA[目的：
提供一种方法顺序访问或者遍历一个聚合对象中的各个元素，且不希望暴露该对象的内部结构。
一、设计
1. 因为是聚合对象，所以设计的这个类应该使用类似list这样的结构体存储聚合对象；
2.迭代器应该是通用的，适用于各种类型的聚合对象，所以设计的类应该是模板类型；
3.还需要对外提供统一的访问接口，以及获取当前元素，递增到下一个元素，判断是否末尾元素。
    interface ]]></description><category></category></item><item><title><![CDATA[设计模式之桥接模式]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52981332</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52981332</guid><author>tww85</author><pubDate>Mon, 31 Oct 2016 12:09:59 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html  作者：侯垒
学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 
生活中的一个例子:
    就拿汽车在路上行驶的来说。即有小汽车又有公共汽车，它们都不但能在市区中的公路上行驶，也能在高速公路上行驶。这你会发现，对于交通工具]]></description><category></category></item><item><title><![CDATA[设计模式之单实例]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52980681</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52980681</guid><author>tww85</author><pubDate>Mon, 31 Oct 2016 11:27:06 +0800</pubDate><description><![CDATA[1. 如何实现一个单实例
2. 单实例是否可以继承
3. 和静态类有什么区别


一、单实例
  即保证一个类只有一个实例，并提供一个全局访问点。
  因为可能有多个线程访问该实例，所以需要考虑线程同步。
  因为是单实例，那么就是只有一个对象状态，那么构造函数应该是私有的，从单实例设计目的来说，就应该设计成不可继承的，即一个final类。
  拿android上面的代码作为一个]]></description><category></category></item><item><title><![CDATA[设计模式之Builder]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52974483</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52974483</guid><author>tww85</author><pubDate>Sun, 30 Oct 2016 21:44:07 +0800</pubDate><description><![CDATA[Builder 模式的目的是将一个复杂对象的构建与它的表示分离，用同样的构建过程可以创建不同的表示。
什么情况下可以使用Builder模式：
1. 当创建复杂对象的算法应该独立于该对象的组成部分。
2.  当同样的构建过程允许被不同的对象有不同的表示时。


这种模式在android 中也大量使用，基本都是作为内部类使用。
比如创建通知：
        Notification.]]></description><category></category></item><item><title><![CDATA[设计模式之简单工厂、工厂方法和抽象工厂]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52974209</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52974209</guid><author>tww85</author><pubDate>Sun, 30 Oct 2016 21:02:15 +0800</pubDate><description><![CDATA[转自：http://zyjustin9.iteye.com/blog/2094960


简单工厂，工厂方法，抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来，优化了系统的架构，并且增强了系统的扩展性。

本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。

 

简单工厂

简单工厂模式的工厂类一般是使用静态方法，通过]]></description><category></category></item><item><title><![CDATA[Thinkphp5 数据分页显示]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52922515</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52922515</guid><author>tww85</author><pubDate>Tue, 25 Oct 2016 15:21:44 +0800</pubDate><description><![CDATA[使用Thinkphp5实现分析很是简便。
具体请参考官方文档:   http://www.kancloud.cn/manual/thinkphp5/154294
1.  使用Query.php的paginate 接口获取数据内容，通过render接口获取渲染内容
thinkphp/library/think/db/Query.php

thinkphp/library/think/pag]]></description><category></category></item><item><title><![CDATA[Android OTA应用访问Thinkphp5 服务器]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52919432</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52919432</guid><author>tww85</author><pubDate>Tue, 25 Oct 2016 11:12:19 +0800</pubDate><description><![CDATA[从学习服务器端Thinkphp5 到现在已有半个月，目前为止，尝试做的OTA后台服务器已经可以运行，手机端的OTA应用也可以通过服务器下载升级包并完成升级。
这期间还是能学习到不少东西的，比如php、html、js、数据库、网络等，实践证明多动手才能发现问题，才能发现不足。
多学习才能发现自己的无知，才体会到知识的浩瀚无穷和力量。


服务器做好了，如何访问服务器呢？
1. 可以通过H]]></description><category></category></item><item><title><![CDATA[Thinkphp5 多条件查询和聚合查询]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52919057</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52919057</guid><author>tww85</author><pubDate>Tue, 25 Oct 2016 10:41:22 +0800</pubDate><description><![CDATA[方法一：
把查询条件放到数组里作为where函数参数，但是如果有大于等于条件参数，数组里是无法赋值的。
例1：
        $where=array(
            "version_name"=>$version_name,
            "project_name"=>$project_name
        );
        $userdata=$this]]></description><category></category></item><item><title><![CDATA[Thinkphp5 联合(关联)查询]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52884964</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52884964</guid><author>tww85</author><pubDate>Fri, 21 Oct 2016 16:48:23 +0800</pubDate><description><![CDATA[按照官方手册http://www.kancloud.cn/manual/thinkphp5/142357  折腾了很久还是无法实现，可能还是我理解的不对，最后使用了如下方式：


1. 项目表
DROP TABLE IF EXISTS `darling_project`;
CREATE TABLE `darling_project` (
  `project_id` int(32) N]]></description><category></category></item><item><title><![CDATA[ThinkPHP5 查询数据并处理结果]]></title><link>https://blog.youkuaiyun.com/tww85/article/details/52880405</link><guid>https://blog.youkuaiyun.com/tww85/article/details/52880405</guid><author>tww85</author><pubDate>Fri, 21 Oct 2016 10:21:05 +0800</pubDate><description><![CDATA[在处理数据库查询结果时遇到了些问题，记录下用到过的几种查询方式和结果处理。



1. 查询某条记录
	$where=array(
		"version_id"=>$version_id
	);  
	$data = model("PackageWhitelist")->where($where)->find();
	
	$this->assign("package_id",$packa]]></description><category></category></item></channel></rss>