技术
文章平均质量分 82
j6915819
立志于图像以及嵌入式领域的菜鸟和小虾
展开
-
一步步教你实现完整的复杂列表布局
我们在工作中遇到最多的视图场景恐怕就是各种样式的列表了,这也是由手机屏幕有限的尺寸决定的,随着需求的日益丰满,我们会发现列表的样式也随之做着各种各样的变更:样式越来越多了,布局越来越复杂了,如果我们前面的布局是单纯将各种ViewGroup拼接到一块的,那改动起来就费事了,暂且不说数据量大引起的卡顿问题,面临的工作量绝不是修改布局文件就能搞定的,数据的绑定、事件触发的设置、滑动的处理、手势冲突的解决...转载 2019-05-22 16:41:56 · 3526 阅读 · 0 评论 -
C++类内存分布
书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到转载 2017-06-12 16:12:58 · 283 阅读 · 0 评论 -
Linux下httpd 2.4 的编译安装
Linux下httpd 2.4 的编译安装 说明 相比于httpd2.2,httpd 2.4 依赖于更高版本的apr、apr-util,apr(apache runtime portable)是一个可以使apache跨平台运行的库。httpd2.4 需要1.4以上的版本的apr。同时,还要安装正则表达式的依赖(rpm -qi pcre)。apr和apr-util的下载地址:转载 2017-07-11 08:45:07 · 611 阅读 · 0 评论 -
linux 文件同步
最近由于业务上的考虑,把内容的点击数、播放数等变化频换(每日1000W-2000w次)但是对于业务没有太大实时意义的计数,由实时操作DB变更为只记录操作日志,每晚汇总各机器的操作日志,计算各内容点击与播放的总数一次性更新DB,将DB的操作降低到百万级别以内了。这个过程中使用rsync来进行操作日志的同步,为避免遗忘特记录下配置rsync服务以及进行日志文件传输的过程。机器以及配置过程如下:转载 2017-05-15 17:14:19 · 418 阅读 · 0 评论 -
centos 手动安装数据库
1、准备数据存放的文件系统新建一个逻辑卷,并将其挂载至特定目录即可。这里不再给出过程。这里假设其逻辑卷的挂载目录为/data,而后需要创建/data/mysqldata目录做为mysql数据的存放目录。1 [root@master ~]# mkdir -p /data/mysqldata2、新建用户以安全方式运行进程:1 [root@master ~]#转载 2017-02-03 10:34:27 · 376 阅读 · 0 评论 -
MySQL数据的主从复制、半同步复制和主主复制详解
一、MySQL复制概述 ⑴、MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费多久,不容乐观的未来,但是我们还是要能熟练掌握MySQL数据的架构和安全备份等功能,毕竟现在它还算是开源界的老大吧! MySQL数据库支持同步复制、单向、异步复制,转载 2017-02-13 14:58:11 · 450 阅读 · 0 评论 -
SpringMVC+jdbcTemplate搭建简单开发框架
最近一年一直在做IOS开发,好久没碰java,有个朋友要帮忙开发一个小网站,所以根据需求spring的MVC加上jdbcTemplate不乏是一个很不错的选择,简单!简单介绍下所用到的lib包:spring-framework-3.0.5.RELEASE和一些依赖包,外加数据库连接的jar包也是最新的MySQL-connector-java-5.1.22-bin.jar转载 2017-01-09 16:43:51 · 3156 阅读 · 0 评论 -
Maven SpringMvc 实现hello world
本例使用了以下技术:Spring 4.0.6.RELEASEMaven 3JDK 1.6Eclipse JUNO Service Release 2M2Eclipse plugin (Optional)如果你已经熟悉了怎么样在eclipse里创建maven项目,你可以忽略第一步。第1步 :在eclipse中创建 Maven webap转载 2016-12-28 15:49:19 · 2867 阅读 · 0 评论 -
使用OpenSSL做RSA签名验证 支付宝移动快捷支付 的服务器异步通知
由于业务需要,我们需要使用支付宝移动快捷支付做收款。支付宝给了我们《移动快捷支付应用集成接入包支付接口》见支付宝包《WS_SECURE_PAY_SDK》。支付宝给的服务器demo只有Java、C#、PHP三种,而我们服务器端使用的是C++。这其中就涉及到接收支付宝的服务器异步通知。为了确保接收到的服务器异步通知来至支付宝,我们就必须验证支付宝的签名。坑爹的是,原来PC端使用MD5做签名,估转载 2016-12-24 10:46:58 · 1434 阅读 · 0 评论 -
SQL 死锁检测
--每秒死锁数量SELECT *FROM sys.dm_os_performance_countersWHERE counter_name LIKE 'Number of Deadlocksc%';--查询当前阻塞WITH CTE_SID ( BSID, SID, sql_handle ) AS ( SELECT转载 2016-11-14 16:46:32 · 450 阅读 · 0 评论 -
Linux升级安装GCC g++
各发行版本Linux中,其自带的gcc安装源版本都比较旧,我所使用CentOS 6系统中,gcc版本只有4.4.7。最近要安装几个软件要求gcc 4.8+,无奈只能手动升级gcc。1. 下载最新版本gccgcc当前最新版本是5.2,下面是我找到的两个下载镜像,下载速度还可以,都可以使用:wget http://gcc.parentingamerica.com/relea转载 2016-07-30 14:54:17 · 7163 阅读 · 3 评论 -
怎样才能实现排序优化的层次关系表设计_SQL技巧
数据层次的概念:数据层次是表达数据的一种重要关系,在数据库的设计中,如:组织结构分解、工作任务分解、行政区划的分解等都是层次关系数据的典型实例。表达层次关系的数据一般需要实现如下属性: 1.层次的最大级联层次数。如:中国->湖南省->长沙市->雨花区,就是4层。2.能反映同一层次之间的顺序关系。如:长沙市 必须在 衡阳市的前面,(因为其是省会)。3.转载 2016-07-15 17:27:54 · 1864 阅读 · 0 评论 -
OTL 4.0 example
OTL 4.0, ExamplesExamples Examples by database typeOracle 7 / OCIOracle 8/8iOracle 8,8i / OCI Oracle 8i Unicode/OCIOracle 9iOracle 9i / OCIOracle 9i Unicode /转载 2016-06-15 14:59:15 · 573 阅读 · 0 评论 -
nginx 强制跳转https
一、Nginx安装(略)安装的时候需要注意加上 --with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块。Nginx安装方法:12# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-ht转载 2017-08-31 11:07:53 · 1749 阅读 · 0 评论 -
linux connect 非阻塞模式编程
凡是接触过socket编程的,对connect函数一定不陌生。因为socket是面向连接的,所以在进行读写操作前我们首先要进行连接,而所谓连接也就是我们常说的三次握手,这个过程就是在connect函数中完成的。 虽然connect函数本身不具备阻塞的功能,但是我们可以通过对socket进行设置和使用select函数可以设置阻塞时间的特性实现非阻塞。为什么要非阻塞第一,我转载 2017-10-12 10:28:20 · 525 阅读 · 0 评论 -
数据库相关中间件介绍
数据库相关中间件介绍详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt412这里主要介绍互联网行业内有关数据库的相关中间件。数据库相关平台主要解决以下三个方面的问题: 为海量前台数据提供高性能、大容量、高可用性的访问 为数据变更的消费提供准实时的保障 高效的异地数据同步 应用层通过分表分库...转载 2019-01-28 10:57:25 · 903 阅读 · 0 评论 -
浅谈基于TCP和UDP的协议设计
From:http://blog.sina.com.cn/s/blog_48d4cf2d0101859x.html一个基于TCP/WebSockets的超级精简的长连接消息协议:https://studygolang.com/articles/10506github 上 一个简单的消息协议:https://github.com/acrazing/stmpgoogle protobuf:...转载 2018-12-29 17:03:48 · 384 阅读 · 0 评论 -
后台服务器架构设计要点
想做后台服务器架构设计,要把握以下几个因素1. 要处理多大的数据量2. 有多少种的数据3. 延迟有多高4. 要不要处理通知通常情况下,数据种类越多,数据量越大,系统架构越复杂; 比如 处理 百万级的请求 一台单机便能搞定,处理上亿次的请求,通常会选用微服务架构;后台设计中 一个典型的三层架构设计:接入,逻辑,存储, 虽然这个架构不能包治百病,但是从一定程度上通过变型能说明问题;...原创 2018-12-22 10:49:08 · 2640 阅读 · 0 评论 -
深入理解 RPC 消息协议设计
本节我们开始讲解 RPC 的消息协议设计背后的基本原理,了解 RPC 的协议开发背后有哪些需要考虑的基本点。在通晓原理之后,我们就可以自己设计一套协议来开发属于自己的 RPC 系统。本节主要涉及的知识点和它们之见的关系如下图:对于一串消息流,我们必须能确定消息边界,提取出单条消息的字节流片段,然后对这个片段按照一定的规则进行反序列化来生成相应的消息对象。消息表示指的是序列化后的消息...转载 2018-12-22 09:24:05 · 612 阅读 · 0 评论 -
Linux系统下fd分配的方法
最近几天在公司里写网络通讯的代码比较多,自然就会涉及到IO事件监测方法的问题。我惊奇的发现select轮训的方法在那里居然还大行其道。我告诉他们现在无论在Linux系统下,还是windows系统下,select都应该被废弃不用了,其原因是在两个平台上select的系统调用都有一个可以说是致命的坑。在windows上面单个fd_set中容纳的socket handle个数不能超过FD_SETSIZE...转载 2018-07-12 14:39:40 · 6667 阅读 · 0 评论 -
select的fd超过1024将会非常危险------FD_SET导致core dump
关于linux select无须多说, 来看代码:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<sys/time.h>#include<sys/types.h> int main(int argc, char...转载 2018-07-12 14:38:31 · 1907 阅读 · 1 评论 -
[Linux] lsof的错误使用场景和查看打开文件数的正确方法
前两天在调查一个"too many open files"的问题,和之前一样,自然而然的用到了lsof,加上一堆漂亮的命令组合来查看哪些程序打开了很多文件。lsof | awk '{print $2}' | uniq -c | sort -rnk1 | head啪的一敲回车,很顺利的定位到几个docker内运行的Java进程排在最前,分别都是几万的结果,怀疑是不是docker的问题。很不幸的是,这...转载 2018-07-12 14:15:29 · 1028 阅读 · 1 评论 -
互联网分类与标签
分类分类是一个将思想或事物进行识别、差异化和理性化的过程。也通常是出于某一目的,进行分门别类(分组)。最初的博客页面自带了分类功能;文章和类别是一一对应的。后来对分类进行了延伸,允许子类的存在,允许一篇文章对应多个分类。标签标签是网络体系里,对某块信息(网址、图像、文件等)的一个非体系的关键词或术语。有了这种元数据(描述数据的数据)的辅助描述,有利于再次浏览或搜索原数据(被描述的数据)。标签有利于...转载 2018-06-20 09:40:27 · 2412 阅读 · 0 评论 -
六款中文分词模块尝试:jieba、THULAC、SnowNLP、pynlpir、CoreNLP、pyLTP
转载 2018-06-22 12:01:10 · 714 阅读 · 0 评论 -
返回值过长时被nginx截断的解决办法
今天在写接口时碰到了这个问题,返回json格式的数据,但是被截断了经过排查,才发现是数据过大超出缓冲区最大容量,而将数据写入临时文件时又没有权限,所以再返回时,超出缓冲区的数据将丢失解决方法:给fastcgi_temp 目录赋读写权限在nginx配置中的解释Syntax: fastcgi_buffers number size;Default: fastcgi_buffers 8 4k|...转载 2018-06-07 08:51:23 · 5281 阅读 · 0 评论 -
Nginx + CGI/FastCGI + C/Cpp
接着上篇《Nginx安装与使用》,本篇介绍CGI/FASTCGI的原理、及如何使用C/C++编写简单的CGI/FastCGI,最后将CGI/FASTCGI部署到nginx。内容大纲如下:1. CGI1.1. 环境变量1.2. 标准输入2. FastCGI3. nginx cgi/fastcgi3.1. nginx + fastcgi3.1转载 2017-12-19 14:57:53 · 256 阅读 · 0 评论 -
Nginx安装与使用
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。(百度百科- http://www.dwz.c转载 2017-12-19 14:48:54 · 242 阅读 · 0 评论 -
在linux下连接MS SQL Server
在工作中需要在Linux服务器上访问MS SQL Server数据库,我马上就想到了适用ODBC接口进行实现,毕竟它的移植性更好。 首先需要选一种支持MS SQL Server的ODBC驱动,商业的不能考虑,只能考虑开源的,于是,FreeTDS进入了视野,从官网(http://www.freetds.org/)上下载了它的0.91版本的包,在安装它之前需要安装libiconv,这转载 2016-06-15 09:41:58 · 3236 阅读 · 0 评论 -
文本特征提取
本挖掘模型结构示意图1. 分词分词实例: 提高人民生活水平:提高、高人、人民、民生、生活、活水、水平分词基本方法: 最大匹配法、最大概率法分词、最短路径分词方法1.1 最大匹配法 中文分词在中文信息处理中是最最基础的,无论机器翻译亦或信息检索还是其他相关应用,如果涉及中文,都离不开中文分词,因此中文转载 2016-06-12 13:23:39 · 1606 阅读 · 0 评论 -
内存池设计与实现
内存池设计与实现分类: C/C++2011-06-29 14:37 15436人阅读 评论(14) 收藏 举报nulliteratorbyteintegerstructbuffer目录(?)[+]1. 内存池设计1.1 目的在给定的内存buffer上建立内存管理机制,根据用户需求从该buffer上分配内存或者将已经分配的内存释放回转载 2014-10-30 15:36:30 · 900 阅读 · 0 评论 -
C/C++网络编程中的TCP保活
分类: 网络编程2012-02-01 13:58 3576人阅读 评论(0) 收藏 举报tcp编程网络socketstructlinux目录(?)[+]在默认的情况下,TCP连接是没有保活的心跳的。这就是说,当一个TCP的socket,客户端与服务端谁也不发送数据,会一直保持着连接。这其中如果有一方异常掉线,另一端永远也不可能知道。这对于一些服务型的转载 2014-10-24 18:58:24 · 991 阅读 · 0 评论 -
TCP异常断开检测
是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接。下面介绍一种方法来检测这种异常断开的情况1) 在TCP协议中提供了KEEPALIVE检测。该选项使能后,在一个TCP连接上,若指定的一段时间内没有数据交换,则自动发送分节等待对方确认。 SO_KEEPALIVE : 该选项设置是否打开探测 TCP_KEEPID转载 2014-10-23 15:12:32 · 2697 阅读 · 0 评论 -
Linux下socket ssl编程
编译程序用下列命令:gcc -Wall ssl-client.c -o clientgcc -Wall ssl-server.c -o server运行程序用如下命令:./server 7838 1 cacert.pem privkey.pem./client 127.0.0.1 7838用下面这两个命令产生上述cacert.pem和privkey.pem文件:op转载 2014-07-03 17:32:05 · 706 阅读 · 0 评论 -
你的sprintf安全吗?
使用snprintf也是不安全的。sprintf、snprintf都无法处理常见的 len += sprintf() 的场景,常常会导致bug。windows下更糟糕,snprintf不保证'\0'结尾。所以,我们需要一个更安全的sprintf。(nginx也意识到了类似的问题,因此在实现ngx_sprintf的时对接口做了类似的调整)声明:[c转载 2014-05-22 11:16:50 · 2178 阅读 · 0 评论 -
snprintf、stringstream、strstream的对比分析
这两天在看《C++编程思想》IO部分,里面有讲到strstream的使用,但在g++里却编译不通。上网一查才发现strstream已经被stringstream替代了,后者在类型转换中有巧妙的应用。但这二者差别是很大的。对sprintf问题的奥威尔式的严格考察,最终以我们对snprintf、std::stringstream、std::strstream以及非标准但极度优雅的boo转载 2014-05-22 10:17:16 · 1030 阅读 · 0 评论 -
Valgrind介绍2
Valgrind介绍分类: unix/linux 玩转开源2012-11-27 14:07 699人阅读 评论(0) 收藏 举报linuxLinuxLINUXvalgrind内存检测工具开源一、什么是valgrindvalgrind是一款运行在linux下的,用来定位c/c++程序中内存使用方面的错误的工具,包括:内存泄漏、使用未初始化的内存、读转载 2014-05-17 17:12:57 · 583 阅读 · 0 评论 -
valgrind 的使用简介
valgrind 的使用简介分类: liunx2012-07-10 16:43 6852人阅读 评论(0) 收藏 举报工具leakdst单元测试delete测试目录(?)[+] zz自 http://blog.csdn.net/destina/article/details/6198443 感谢作者的分享!一转载 2014-05-17 16:13:49 · 508 阅读 · 0 评论 -
后台守护进程实现coredump
1.在/etc/profile中加入以下一行,这将允许生成coredump文件ulimit-c unlimited2. 在rc.local中加入以下一行,这将使程序崩溃时生成的coredump文件位于/data/coredump/目录下:echo "/bin/esunny.tap/core.%e.%p"> /proc/sys/kernel/core_patter原创 2014-04-25 10:47:05 · 2997 阅读 · 0 评论 -
istringstream、ostringstream、stringstream 类介绍 .
istringstream、ostringstream、stringstream 类介绍 .0、C++的输入输出分为三种:(1)基于控制台的I/O (2)基于文件的I/O (3)基于字符串的I/O 1、头文件[cpp] view plaincopyprint?#include 2、转载 2014-05-09 19:42:02 · 639 阅读 · 0 评论 -
Windows下一个并发阻塞队列(BlockingQueue)
Windows下一个带有大小限制的并发阻塞队列,实现的比较简单。[cpp] view plaincopy#ifndef BLOCKINGQUEUE_H_ #define BLOCKINGQUEUE_H_ #include #include using namespace std; template转载 2014-03-26 17:06:25 · 933 阅读 · 0 评论