知识(Knowledge)
文章平均质量分 50
白杨树
这个作者很懒,什么都没留下…
展开
-
什么是IAS架构
IAS全称为Insight Awareness Service,是一种构建软件系统或者服务的理念和架构,用来应对快速变化的商业需求。IAS stands for Insight Awareness Service, it's a mindset and architecture of how to buildsoftware systems or services to satisfy fast evolution business requirements.工程师构建软件系统大概会经历几个阶段:.原创 2021-09-15 06:53:01 · 1489 阅读 · 0 评论 -
c在Windows下的socket编程
原文出自:http://blog.csdn.net/hongchangfirstc语言虽说是跨平台的,可以一次编写,处处编译,处处运行。但是在socket方面显然不是,这里有很多原因。习惯了Linux c socket编程,在Windows下c的socket编程又不太一样,我们还得重新编写相关代码,不过道理都是相通的。首先包就不一样:#include #pragma co原创 2012-08-07 15:19:39 · 1567 阅读 · 0 评论 -
动态链接库与静态链接库的区别
本文出自:http://blog.csdn.net/hongchangfirst 很多人不明白什么是动态库,要想清楚的了解动态库,就必须知道静态库的缺点,以及为什么会出现动态库,它有什么优点。以下参考了作者的毕设论文《实时处理与监测评估系统软件集成模块设计与实现》2011论文。 为什么会出现动态调用技术,因为将所有模块的源代码都静态编译到整个应用程序的可执行文原创 2011-11-01 09:10:40 · 2829 阅读 · 0 评论 -
vmware增大虚拟机的磁盘空间
本文出自:http://blog.csdn.net/hongchangfirst 有时候创建虚拟机的时候没有给磁盘分配很大的空间,但是随着时间的推移,原来分配的磁盘空间已经不够用了,怎么办呢?难道要重新再装一个虚拟机吗?呵呵,当然不,我们可以利用vmware的命令来增大磁盘空间。首先我们需要找到vmware的安装路径,比如"D:\Program Files\vm7”;原创 2011-12-13 11:15:17 · 4127 阅读 · 0 评论 -
在Linux下使用自己编写的驱动程序详细步骤
本文出自:http://blog.csdn.net/hongchangfirst 驱动程序可以按照两种方式编译。一种是编译进kernel,另一种是编译成模块(modules),如果编译进内核的话,会增加内核的大小,还要改动内核的源文件,而且不能动态的卸载,不利于调试,所以推荐使用模块方式。 当驱动程序写完时,也就说有了a.ko文件,我们就可以使用我们自己写的驱动程序了。按照如下步原创 2011-12-13 17:38:03 · 3898 阅读 · 0 评论 -
关于Linux中的几个常见误解
本文出自:http://blog.csdn.net/hongchangfirst1其中/usr,usr不是user的缩写,而是unix software resource的缩写。就是说/usr是unix操作系统软件资源的目录。 2tar -jxvf filename.tar.bz2中的f是filename之意,所以得紧挨着filename,其他的属性顺序可以任意变换。3通配符和正则表达原创 2012-08-20 10:45:08 · 1262 阅读 · 2 评论 -
ipv4的私有地址
本文出自:http://blog.csdn.net/hongchangfirstipv4的地址,有4个8位二进制数表示,为了表示方便,常常用十进制数表示,8位的二进制的范围是0-255。这样一共可以有4GB的寻址范围。 私有IP地址共有三个范围段:A: 10.0.0.0~10.255.255.255 /8 B: 172.16.0.0~172.31.255.25原创 2011-10-28 16:13:21 · 3359 阅读 · 0 评论 -
进程的内存分配情况
本文出自:http://blog.csdn.net/hongchangfirst进程地址空间中典型的存储区域分配情况如下图所示(出自《UNIX环境高级编程》): 从图中可以看出:从低地址到高地址分别内存区分别为:代码段数据段(初始化)数据段(未初始化)(BSS)堆栈命令行参数和环境变量其中,堆向高内存地址生长,栈向低内原创 2011-10-29 23:05:41 · 5587 阅读 · 3 评论 -
处理XML文件的四种方式(Java)
本文出自:http://blog.csdn.net/hongchangfirst1 DOM DOM(Document Object Model),文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。有一点很重要,DOM的设计是以对象管理组织(OMG)的规约为基的,因此可以用于任何编程语言原创 2012-08-01 10:24:18 · 1866 阅读 · 0 评论 -
如何把maven项目转成web项目
创建Web工程,使用eclipse ee创建maven web工程 1.右键项目,选择Project Facets,点击Convert to faceted from 2.更改Dynamic Web Module的Version为2.5.(3.0为Java7的,Tomcat6不支持). 如果提示错误,可能需要在Java Compiler设置Compiler compliance l原创 2012-12-03 15:06:55 · 99133 阅读 · 10 评论 -
关于虚拟机与宿主机通信的问题
问题:虚拟机采用桥接方式连接,局域网上其他的电脑可以用命令 ftp 192.168.0.64连接到虚拟机中的Linux上,但是自己的本机是不可以ftp上去的,如果更改一下,虚拟机用仅主机的方式连接,并且把Linux中的网关和自己的ip改成0网段,那么,我本机可以ftp 192.168.0.64,正常连接,但是局域网上其他的电脑就不可以ftp上来了,因为不是一个网段,这到底是因为什么原因?原创 2013-01-07 11:08:14 · 2979 阅读 · 0 评论 -
你必须知道的HTTP GET请求之条件头
如果缓存的组件过期了,浏览器在重用它之前必须首先检查它是否仍然有效。可以使用条件GET, 条件HTTP GET可以节省客户端和服务器的时间与带宽,它是通过两个请求报头(IfModified-Since和If-None-Match)和两个响应报头(Last-Modified和ETag)实现的。假设客户端请求了/a.html,得到一个响应,说Last-Modified: Thu, 22 Nov原创 2013-02-26 10:34:34 · 8597 阅读 · 0 评论 -
一分钟知道什么是RSA
公钥加密算法,非对称密钥。RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因原创 2013-03-01 11:18:25 · 4114 阅读 · 0 评论 -
一分钟让你知道线程安全与不可重入的区别
线程安全当且仅当它被多个线程反复调用时,它会一直产生正确的结果。可重入不引用任何共享数据,也就是不引用静态或全局变量。联系可重入函数是线程安全函数的一个真子集。特点可重入一定是线程安全,但线程安全不一定是可重入的。比如函数gethostbyname,malloc,它们是不可重入的,但是它们都是线程安全的。我们可以想到不可重入函数可以用锁机制来达到线程安全的目的。原创 2013-05-08 15:21:18 · 2695 阅读 · 0 评论 -
人性:人类的五种需求
人类大概有5中需求:1生理需求2安全需求3社会交往需求4尊重需求5实现自我价值需求这五种需求并没有什么阶段之分,即并不是我们必须先实现生理需求,才会考虑安全需求等这样具有层次性的关系。这五种需求是并列的。原创 2013-10-01 20:23:31 · 44280 阅读 · 1 评论 -
两台一级域名相同二级域名不同的服务器,怎么共享session
比如www.hongchangfirst.com和video.hongchangfirst.com两个域名,一级域名相同,二级域名不同。每个服务器运行着不同的功能模块或者不同的子系统,他们使用不同的二级域名,但用户系统是统一的,即一套用户名、密码在整个网站的各个子系统中都是可以登录使用的。解决这个问题很简单,只需要前后端配合就行。前端:set cookie的时候sessionid的原创 2013-10-29 20:36:58 · 6289 阅读 · 0 评论 -
内存映射文件机制处理大文件
一般来说,read write操作可以满足大多数文件操作的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,这种通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的。内存映射文件是由一个文件到进程地址空间的映射。Win32中,每个进程有自己的地址空间,一个进程不能轻易地访问另一个进程地址原创 2013-11-02 19:03:52 · 13473 阅读 · 4 评论 -
程序员必知(二):位图(bitmap)
1 找出一个不在5TB个整数中存在的数假设整数是32位的,总共有4GB个数,我们可以用bitmap,每个整数一个bit,这样大概是4GB/8=512MB, 初始化时都为0,依次遍历这个5TB个数,置相应位为1,最后遍历一次数组,找到第一个为零数即可。2 找出在5TB个数中只出现一次的数字我们至少需要“未出现”,“出现一次“,”出现多次“等状态,所以我们可以用2bit去表示,原创 2013-11-17 20:59:43 · 4108 阅读 · 0 评论 -
程序员必知(三):一分钟知道URI编码(encodeURI)
因为浏览器会用一些特殊的字符作为特定的意义,所以在要传输的内容上如果有这些特殊的字符的话,就需要对其进行转义才能正确传输,如以下字符为发送时候的关键字,即特殊字符;/?:@&=+$,#所以我们在遇到传输此字符时可以先编码,然后服务器端在进行解码,就可以拿到正确的数据了。如要传输文本的内容为:A=b&c=d则编码为A%3Db%26c%3Dd服务器端进行相应原创 2013-11-21 21:02:13 · 10270 阅读 · 0 评论 -
程序员必知(六):信息论问题
具体问题:有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。这道题的本质是,至少用多少个老鼠可以表达1000种方式。即用多少位可以表达1000,为n=10,因为2的10次方等于1024,大于1000,所以此题的答案是10.我们看具体解法:给1000个瓶分别标上如下标签(10位长度): 0000原创 2014-01-03 16:35:24 · 2898 阅读 · 4 评论 -
程序员必知(四):找次品
用天平找次品问题具体问题是有一堆硬币(n个),其中有一个较轻的是次品,用天平称,至少称多少次才能找出此次品?很多人直接想到的就是二分法,先均分为2份,然后称,次品一定在较轻的一边,然后继续二分,直到找到那个次品,所以需要log以2为底n的对数次。其实还有更好的方法,此方法的局限在于认为天平一次只能分出来两种状态。其实是可以分成三种状态的。方法如下:每次把待测物品分成三组原创 2013-12-10 19:41:49 · 5183 阅读 · 0 评论 -
程序员必知(五):卡特兰数
卡特兰数,一种有着特殊规律的数列,先用一道题来引出卡特兰数。10个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问有多少种排列方式?我们可以先把这10个人从低到高排列,然后,选择5个人排在第一排,那么剩下的5个人肯定是在第二排。用0表示对应的人在第一排,用1表示对应的人在第二排,那么含有5个0,5个1的序列,就对应一种方案。比如00000111原创 2013-12-13 20:33:24 · 11065 阅读 · 0 评论 -
perl实现多行模式匹配
因为grep不能匹配换行符,grep只能打印单行匹配字符串的行;sed在读入一行的时候会自动去掉末尾的换行,所以sed在进行多行匹配的时候很复杂。这里使用perl,先把文件的全部内容读入,然后进行多行匹配。原创 2014-05-06 18:08:58 · 7608 阅读 · 0 评论 -
Linux递归解压缩一个文件夹下的所有文件
gunzip -r hongchangfirst/data如何递归删除那些剩余的非log结尾的文件?先列出确认一下:find hongchangfirst/data -type f ! -name "*.log"然后真正的删除:find hongchangfirst/data -type f ! -name "*.log" -exec rm -f {} \;原创 2014-05-24 11:18:05 · 10760 阅读 · 0 评论 -
Putty设置自动连续两次登录
有时候你想登录到服务器A,但是服务器有白名单,你只能从以下堡垒机B登录上去,所以每次你想登录到服务器A,得先登录到堡垒机B,然后在登录到服务器A。我们可以用Putty的local proxy来设置每次登录到服务器A的时候,自动先登录到堡垒机B,然后以堡垒机B作为代理在登录到服务器A,所以从用户的角度看,这样每次就可以直接登录到服务器A了。好下面来看一下怎么设置。首先设置原创 2014-07-03 10:27:18 · 3339 阅读 · 0 评论 -
查看特定端口号被哪个进程所占用
本文出自:http://blog.csdn.net/hongchangfirst在Windows下输入:如查看80端口被哪个进程占用:netstat -ano | findstr 80最后一列是相关的进程id然后再用此id(如1234)找是哪个具体的进程:tasklist | findstr 1234杀死此进程:taskkill /T /F /PID 1234原创 2012-07-14 22:01:07 · 1825 阅读 · 0 评论 -
awk按照奇数行和偶数行进行处理
取奇数行awk 'NR%2' file MR是行号,行号对2取模,奇数的结果为1,所以打印如果还不懂看这个你就懂了awk '{if (NR%2==1) print $0}' file原创 2014-08-06 15:42:58 · 16757 阅读 · 0 评论 -
什么是BitTorrent协议
一般的下载服务器为每一个发出下载请求的用户提供下载服务,而BitTorrent的工作方式与之不同。分配器或文件的持有者将文件发送给其中一名用户,再由这名用户转发给其它用户,用户之间相互转发自己所拥有的文件部分,直到每个用户的下载都全部完成。原创 2014-09-09 12:06:58 · 3846 阅读 · 0 评论 -
ssh出现connection timeout
有时候ssh到一个机子的时候,等了一会儿,出现connection timeout,但是并不清楚到底是哪里出错了。我们可以有几个好的办法确定是哪里出了问题。第一,先ping你的机子,如果不能ping通,考虑网络是否是断的。但是如果不能ping通,有可能是机子设置了相应的不回复icmp的ping报文等,也不能完全作为判断依据。第二,如果你用的域名,可以换成IP,试试IP能不能pi原创 2014-12-16 15:33:47 · 79877 阅读 · 4 评论 -
数据同步的利器 - rsync
如果我们想rsync -avzP --delete --password-file=rsyncd.secrets root@192.168.145.5::rhel4home rhel4home原创 2015-01-09 16:09:36 · 1159 阅读 · 0 评论 -
如何获得外部看到的外网IP
curl ifconfig.me原理是这样的:原创 2015-01-14 15:19:33 · 3957 阅读 · 0 评论 -
ssh执行非交互式命令
如果你想用脚本自动化登录到某台机子上,然后在上边执行个命令,怎么办呢?可以使用ssh的非交互式命令ssh zhc@hongchangfirst.com "/home/hczhang/bin/build.sh"这里可以用expect模拟键盘输入将密码输入,也可以用无密码登录,具体就是将自己的公钥放在对端的authorized_keys里,登录的时候就不用输密码了,就是建立两台机子原创 2014-12-11 16:35:00 · 7180 阅读 · 0 评论 -
如何生成邀请码?
如何生成邀请码?限制条件如下:1 邀请码比较短,2 速度要快3 用户不能很容易的发现规律方案1:用自增条件一和二都可以满足,但条件三就不能满足。方案2:用随机数去生成邀请码条件1和3可以满足,但是因为要检测碰撞,所以条件2不能满足。方案3:利用自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间的总秒数。比如原创 2015-02-13 17:38:57 · 19211 阅读 · 0 评论 -
三分钟学习Git(六) 之 多次提交变一次
你建了自己的分支,如zhcgit branch -b zhc然后你做了很多次的commit。你想把这写很多个commit作为一个commit到mainline branch上,该怎么做呢?首先更新mainline到最新git checkout mainlinegit pull --rebase然后将zhc分支的多个commit变成一次commitgit me原创 2015-04-04 10:29:27 · 8245 阅读 · 1 评论 -
Linux如何根据IP地址反查hostname
在Linux下有一个工具叫做nslookup,可以根据IP地址查询到此IP地址对应的hostname。比如:nslookup 10.0.0.5即可查询到此IP对应的hostname。nslookup hongchangfirst.amazon.com即可查询到此hostname对应的IP。根据hostname如何查询IP呢,直接ping即可,即可显示IP地址。原创 2015-04-04 16:30:20 · 59228 阅读 · 0 评论 -
Linux 使用利器 screen和tmux
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。screen -lsscreen还有另一个tmux也是非常的强大。tmux #开启tmux...原创 2015-03-02 10:40:56 · 12495 阅读 · 0 评论 -
用jconsole可视化JVM的运行状态
JConsole是从Java 5中开始引入的一个用于对JVM性能和资源消耗进行监控的图形化工具。JConsole可以连接本地的Java程序,也可以连接远程的Java程序。jconsole的可执行文件在JAVA_HOME的bin目录下。可以直接jconsole运行,然后使用GUI选择connect哪个程序。或者jconsole process_id 这种方式适用于jconsole原创 2015-12-03 14:42:10 · 1310 阅读 · 0 评论 -
浏览器怎么决定发送HTTP的Accept-Language请求头
不同的浏览器方式不同,比如IE是使用Windows default locale 来决定Accept-Language 属性的。也有的浏览器根据自身的属性,如果你下载的是中文版的浏览器,那么默认的Accept-Language就是zh_CN.这时可以设置相应的默认语言属性,比如FireFox,可以去 Tools > Options (Windows) or Fi原创 2016-03-10 23:35:57 · 20924 阅读 · 1 评论 -
怎么理解反向代理(reverse proxy)的反向?
理解反向代理前先得说说什么是代理,比如我们想翻墙去使用国外的某些网站,比如想使用google提供搜索,那么我们就得需要一个代理。我们在客户端这边配置一下代理服务器,然后当我们访问google服务的时候,我们首先把请求发送给代理服务器,然后代理服务器将请求在发给google,然后google将内容返回给代理服务器,然后代理服务器将内容再返回给我们。这就是所谓的代理。那么什么是原创 2016-06-06 12:17:26 · 3115 阅读 · 0 评论 -
深入理解地球的经度和纬度换算
如果把地球比作一个球体的话,那么经度(longitude)就是纵切,相当于坐标系的纵轴,纬度(latitude)就是横切,赤道就是纬度等于0的特殊的一条线。我们知道不同纬度值的周长是不一样的,最长的就是赤道,实际周约长为40000km。越向南极或者北极周长约小。纬度实际上是这个地点到地球中心连线与赤道平面夹角的度数。纬度间的纵向距离都是等距的,大约都是111km。而经度间的距离原创 2017-01-01 12:27:02 · 3064 阅读 · 0 评论