欢迎造访本博客置顶

发表于:2013-01-20 08:42:45

2016-03-02更新:本站已转为VPS,Heroku云免费的太慢,收费的太贵~ 本站点是基于Heroku云平台建立的轻巧型个人博客,纯属自娱自乐。 其实在早些时候,就一直有编写一个自己的个人博客的想法,但由于种种原因而搁浅,一方面是由于早些时候个人的技术还不过关,另一方面就是没有找到免费且服务器稳定的空间提供商。直到去年实习学习RUBY的时候在网页上知道了HEROKU这个平台,渐而燃起了希望。 一直有人问我为什么对做博客这样的感兴趣,CSDN,博客园,开源中国等不是提供了现成的了吗?我想说的是,作为一个程序员如果连一个完全属于自己的博客都没有是一件很遗憾的事,那些现成的博客不能正真让你感觉那个博客就是你的,因为出于一些安全考虑会有很多的限制。 最初本来打算使用RUBY来做的,而且也己经做成了一个初步的版本,但由于HEORKU上提供的RAILS框架是3.0以上的,而我学习使用的是2.3...

阅读(61k+)评论(0)

《被讨厌的勇气》讲了什么

发表于:2019-04-21 15:13:12

最近读了一本书《被讨厌的勇气》,觉得很有必要写一篇读后总结,个人认为其中的一些观点值得被分享。当然了制造这篇文章并不是为了强调它有多么的好或者说它绝对的正确,而只是觉得可以为我们提供另外的一个视角去看待或处理一些小情绪,从而更加全面的思考小情绪的本质。由于每个人的身处环境,积累的经验与知识都不一样,势必形成的认知不同,很难做到让每一个人都认同。但如果有哪本书能够引发部分读者的共鸣,那么它就应该值得被称为一本好书,这本书对于我而言就是这样。特别是根据他的“目地论”来推导我自己的某些想法时,感觉后脊梁会有一身冷汗。废话不多说,言归正传。 打下基调 世界是我们的主观感受 在全书的开头就提出了一个“井水”推论:人并不是住在客观的世界里,而是住在自我营造的主观世界里,即我们看到世界的样子都是我们的主观感受。 提出这个推论的依据是说,井水的温度是恒定的,长年在18度左右,无论谁测都是一样,但是夏天喝到...

阅读(521)评论(0)

前后端分离用户身份状态保持的思考

发表于:2019-01-07 17:01:21

1.废话连篇的前言 一直以来我都是做传统WEB开发的,这些年的开发经验,对于传统WEB开发应该来说还算得心应手。最近由于客户的需求,需要做微信小程序的开发,刚开始觉得真没有什么,不就是前后端分离加上一个“新皮肤”(UI)而已吗,有什么大不了的?可是做着做着就发现了与传统的WEB开发有着一个本质的区别,我操!用户的状态信息该怎么保存呢?以前默认的Session会话管理彻底算是废了,后端的开放接口是无状态的!这时候我就在思考该使用一个什么样的机制来实现后端开放接口的用户身份状态的保持。 其实结合Session的原理我们可以知道,传统的WEB开发,在保持用户状态的时候,使用的是Session ID实现的:在浏览器第一次请求的时候给其生成一个Session ID(放在Cookie里),然后浏览器再在接下来的每一次请求中带上这个Session ID传给后端,而后端再根据这个Session ID检索对...

阅读(1k+)评论(1)

2018回顾与感想

发表于:2019-01-03 22:58:07

年未了,一直都有写总结的想法,但就是挪不动手,总是差点感觉,可能是生活太过于单调了吧,每天基本上就是两点一线,生活圈子也很单一,简单枯燥,那就想到什么就说点什么吧: 前段时间与一位差不多有五年没有见面的前同事学弟见了一面,他评价我,说我的变化不大,还是和五年前一样,不知道应该感到高兴还是悲哀。 总是觉得不同的年龄阶段就应当做些当前年龄阶段该干的事,这样就不算显的另类,也容易被大部分人所接受。我是个俗人,非常赞同这个观点,但现实没有达到我的预期。 今年我开始特别的在意我的年龄,做了一些事接触了一些人后,发现他们怎么都比我还要年轻几岁,怎么都显的那么的成熟?是啊,作为第一批九零后,我都快奔三十了,还是很稚嫩,有点另类。 记得在我刚出来工作的时候看过一本书,书名叫做《毕业五年决定你的一生》,里面的大概内容是说一个人工作前几年的行为习惯和处事风格的养成,决定这个人以后几十年乃至一生的高度,所以什么...

阅读(642)评论(1)

HTTP协议之Transfer-Encoding

发表于:2018-09-07 18:26:05

说明 HTTP/1.1 200 OK Server: openresty/1.13.6.2 Date: Fri, 07 Sep 2018 10:17:06 GMT Content-Type: text/html;charset=UTF-8 Transfer-Encoding: chunked Connection: close Transfer-Encoding: chunked说明是分块传输编码。 分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由网页服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。 格式 图片来源:https://my.oschina.net/ososchina/blog/666761 伪代码 length...

阅读(869)评论(0)

PHP SOAP的使用总结

发表于:2018-08-23 14:23:39

PHP使用SOAP协议调用接口,需要安装soap模块插件,在使用之前使用phpinfo()方法输出判断安装的PHP是否已安装了该插件。 确认安装了后,下面来介绍几种常见的soap调用形式。 普通调用 使用soap插件极大的方便了php的soap调用,如下使用腾讯开放的查询QQ号是否在线的普通的soap调用: $url = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl"; $client = new SoapClient($url); $params = array( "qqCode"=> "8698053" ); $result = $client->qqCheckOnline($params); print_r($result);...

阅读(1k+)评论(0)

ContextLoaderListener对比DispatcherServlet

发表于:2018-08-22 20:56:57

原文:https://howtodoinjava.com/spring-mvc/contextloaderlistener-vs-dispatcherservlet/ 作者:Lokesh Gupta,于2018年5月10日。 在基于XML配置的Spring MVC中,你肯定看到了在web.xml文件声明的这两项:ContextLoaderListener与DispatcherServlet。接下来就来让我们看一下他们在框架中的作用及差异。 根上下文与子上下文 在阅读之前,必须理解如下内容: Spring中可以有多个上下文,但只有一个根上下文,其他的都是子上下文。 子上下文可以访问根上下文中定义声明的Bean,但反之不尽然,根上下文是不能访问子上下文的Bean的。 DispatcherServlet - 子应用上下文 DispatcherServlet本质上就是一个Servlet(它继承自H...

阅读(803)评论(0)

Iptables防火墙基础命令手札

发表于:2018-08-11 21:27:12

主要关于iptables防火墙的相关命令笔记: 转发80端口请求到9000 iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9000 查看防火墙状态 iptables -L -n -v 查看服务器所有开放的端口列表,及被使用的程序的详细命令 netstat -nlp 结合 ps -x 列出所有PID对应的程序,说明端口占用的程序 查看防火墙5432端口被使用的程序 lsof -i:5432 关闭端口3306端口,只允许本地访问 iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP 删除对应防火墙规则 iptables...

阅读(772)评论(0)

PHP敏感词过滤DFA算法实现

发表于:2018-08-09 16:59:28

使用PHP借助DFA算法实现敏感词过滤功能,参照了zenghansen的代码,其中修改了原类的BUG,并增加了查找方法,并对王*八&&蛋这样的,中间填充了无意义的字符来混淆的词的增强匹配处理。 DFA敏感词过滤的原理就是将所有的敏感词载中内存,构建一个个树结构,然后将待匹配的字符串截断成数组,匹配每个数组元素与构建的敏感字典树的节点,匹配得到终节点就说明匹配成功。 对应PHP实现代码如下: <?php /** * 敏感词过滤工具类DFA算法 * * @author zenghansen http://www.cnblogs.com/zenghansen/p/5688995.html */ class SensitiveWordsUtils { private $dict; public function __construct($words) { $this->...

阅读(1k+)评论(0)

在Eclipse IDE下使用Maven-手册

发表于:2018-08-05 18:25:34

原文:Using Maven within the Eclipse IDE - Tutorial 原作者:Lars Vogel, Simon Scholz, (c) 2016 vogella 有限公司,版本 1.4,2016,05,29 该手册介绍在Eclipse IDE下使用Maven开发Java程序。 1. 使用Maven在Eclipse IDE Eclipse IDE为Maven提供了很好的支持,这个工具是在M2Eclipse项目中开发的。 这个工具管理项目依赖,和更新Eclipse IDE中项目依赖项的类路径,它确保Ecipse IDE下Maven的流畅使用。该工具还提供不同类型的向导导入和创建基于Maven的新项目。 它提供了一个编辑器,通过结构化的界面来管理Maven的配置文件pom.xml,你也可以选择pom.xml的选项卡直接编辑XML数据。 2. 在Eclipse中安装和...

阅读(1k+)评论(0)

Websocket整合登录XMPP的思考

发表于:2018-07-30 17:39:45

在上一篇文章里面提到过,由于websocket使用的是类socket方式与xmpp服务进行交互,因此没有办法像bosh那样在web后台先登录成功后,然后利用返回的sid和rid进行会话还原。那现在就是要思考使用websocket的前端怎么实现用户在web上登录成功了,websocket登录xmpp服务器也一并成功呢?而且还要实现用户切换刷新web页面,xmpp会话不掉线呢? 最初我想的是,是否要重新自定义xmpp的SASL身份验证协议或修改websocket流程?后来参考OAuth2.0协议,想到的是是否可以给登录成功的web用户发行token,然后xmpp的SASL的身份验证采用这个发行的token来进行验证登录呢?结合openfire 4.2.3我做了一下实践,效果还算不错。具体时序图如下: xmpp身份验证SASL协议,使用的是DIGEST-MD5方式验证,由于由web端控制toke...

阅读(1k+)评论(0)

简述XMPP WEB登录

发表于:2018-07-22 19:50:19

前言 XMPP在WEB浏览器端,可以使用两种方式进行登录,一种是流行的HTML5 websocket方式,还有一种是适合传统浏览器的BOSH(半轮询AJAX)的方式,两种方式的步骤结构都是一样的,只是发送的XML稍有差别。由于BOSH方式使用的是AJAX半轮询方式,而且通过HTTP交互是无状态的,为了保持每次与服务端通讯的会话session,因此发送的XML数据包,在BOSH方式传输过程中,使用<body>标签包裹,<body>标签有两个重要的属性,一个是sid:表示会话session的id;还有一个是rid:表示每一次请求的request id,且request id每一次都是在上一次的rid的基础上加1,因此需特别的注意。而websocket方式是浏览器端的类socket方式,一旦与服务器端连接成功后,就一直存在,是有状态的,因此不需要额外的session i...

阅读(1k+)评论(0)

JSP去空格

发表于:2018-06-15 12:24:39

在使用JSP动态生成HTML时,由于JSP的标签操作,因此生成的HTML会有很多多余的空行,这样多余的空格会占用一定的网络带宽,同时也使生成的HTML很不美观,那有什么办法可以去除这些空格呢? 1.对于Tomcat 5.5+的可以在Tomcat的安装目录conf/web.xml中配置如下: <init-param> <param-name>trimSpaces</param-name> <param-value>true</param-value> </init-param> 2.JSP 2.1+版本的可以在JSP中使用如下标签: <%@ page trimDirectiveWhitespaces="true" %> 另外对于支持Servlet XSD 2.5+,也可以在web程序的WEB-INFO/we...

阅读(1k+)评论(0)

MySQL max_allowed_packet问题

发表于:2018-06-14 16:03:13

在使用大的BOLB二进制数据导入MySQL数据库时,发生了Got a packet bigger than 'max_allowed_packet的错误,查询了一下说是要设置MySQL数据库的max_allowed_packet值。 找到MySQL的官网,Packet Too Large一节,按照如上介绍设置得以解决,故摘录如下: MySQL的通信packet包可以是发送给MySQL服务器的单独的SQL语句,也可以是单独的行数据发送给客户端,也可能是主服务器发送给从服务器大的日志文件。 当一个MySQL的客户端或者mysqld服务端接收的包大于max_allowed_packet设置的字节数,则会触发一个NET_PACKET_TOO_LARGE的错误,并关闭数据连接,同样的在客户端,如果通信包过大,你将会得到一个Lost connection to MySQL server during...

阅读(983)评论(0)

一株绿萝

发表于:2017-05-18 09:52:35

去年9月份,也就是2016年9月的时候,在公司发现座位旁边的绿萝的新枝长到了座位边上,我怕离开座位走动的时候,将它不小心踏死,就将这新长的一枝茎叶折了下来,找了个空瓶子,放了点自来水,就这样子养了起来: 通过查了下绿萝的相关百科,说没有出根的情况下,每一两天换一次水,待生根了后,就十几天二十天换一次,按照这样的频率,我点期的给它换水,直到现在发现它真的长的还不错,期间还经历了春节十几天的无人看护: 对比一下,不得不感叹绿萝顽强的生命力!

阅读(1k+)评论(0)

51篇文章, 共4页