摘要:采用HTTP basic认证,如下所示:########################## function: twitter auth# return value: twitter user status json# author: Yujie # date: 2009.06.15#########################my $browser = LWP::UserAgent->new();$browser->credentials( 'twitter.com:80', 'Twitter API', ARGS{email}, $ARGS
阅读全文
摘要:存储管理:1) 所谓虚拟存储技术,即在内存中保留一部分程序或数据,在外存(硬盘)中放置整个地址空间的副本。程序运行过程中可以随机访问内存中的数据或程序,但需要的程序或数据不在内存中时,就将内存中的部分内容根据情况写回外存,然后从外存调入所需程序或数据,实现作业内部的局部对换,从而允许程序的地址空间大于实际分配的存储区域。虚拟存储器允许用户用比主存容量大得多的地址空间来编程,以运行比主存实际容量大得多的程序。用户编程所用的地址称为逻辑地址(虚地址),而实际的主存地址称为物理地址(实地址)。2)虚拟存储器可以分为单一连续分区、固定分区、可变分区、可重定位分区、非请求页式、请求页式、段页式7种。现在
阅读全文
摘要:1) 在一台计算机中,主要有6个部件:控制器、运算器、内存储器、外存储器、输入设备和输出设备。控制器的组成包括程序计数器(PC)、指令寄存器(IR)、指令译码器、时序部件、微操作控制信号形成部件(PSW)和中断机构。运算器也叫算术逻辑单元(ALU),对数据进行算术运算和逻辑运算。通常由ALU(包括累加器、加法器等)、通用寄存器(不包括地址寄存器)、多路转换器、数据总线组成。现代的控制器和运算器是被制造在同一块超大规模集成电路中,统称为中央处理器,即CPU。2)1966年,Michael.J.Flynn提出根据指令流、数据流的多倍性特征对计算机系统进行分类(通常称为Flynn分类法),有关概念如
阅读全文
摘要:英文原版见http://www.masonbook.com/。简介Mason是一个强大的,可以将Perl嵌入文本的模板引擎。它提供了许多特性,帮助你使用可重用的组件创建动态Web站点。除此之外,它还提供了很多的其他特性: 可以创建标准的、可重用的,像header、footer,或者菜单这样的组件。你只需要在一个地方进行改变。 完整的Web请求的参数处理。 内置缓存,用户可采用cache接口访问。 整合mod_perl以提供更快的速度和更好的弹性。 从一个组件的小段到整个站点,都支持内容过滤。《使用Mason在HTML中嵌入Perl》一书详细记录了HTML::Mason框架,包括如下章节:组件格
阅读全文
摘要:今天上午10:00~12:00参加了腾讯的2010暑期实习招聘的笔试。考的都是计算机基本知识,居然还有DNS协议的概念,感觉这种考试对本科时候的我来说那是直接秒杀的,当对做了两年项目的现在的我来说,很多基础概念都很混了,一时还真想不起来。当然,只要再将基本基础书如操作系统、计算机网络、数据库、数据结构与算法等再翻一遍,那肯定也是没问题的,所以笔试看来并不是很重要,只要过了就行,据说笔试成绩对后面的面试是没有影响的。20选择题包括:类组合的UML图;RISC特点;两道最短路径;由逻辑地址求物理地址;哈希;DNS概念;测试内网与外网连接的命令;二叉树由中序、后序求前序;内存分配策略;sizeof用
阅读全文
摘要:我曾经为我的朋友田逸写过一个Perl脚本,主要用于Nagios服务器故障的报警。非常简单,主要使用了LWP::Simple这个模块对短信服务Api进行请求。#!/usr/bin/perl -wuse strict;use LWP::Simple;use URI::Escape;use Digest::MD5;my ($mobile, $content) = @ARGV; # get params from command linemy $log_control = 1; # a switch of logmy $username = 'sery'; # your sms ser
阅读全文
摘要:如果您尚未打算用 OO 原则创建应用程序,则使用 PHP 的面向对象(OO)的语言特性,这 7 个习惯将帮助您开始在过程编程与 OO 编程之间进行转换。在 PHP 编程早期,PHP 代码在本质上是限于面向过程的。过程代码 的特征在于使用过程构建应用程序块。过程通过允许过程之间的调用提供某种程度的重用。但是,没有面向对象的语言构造,程序员仍然可以把 OO 特性引入到 PHP 代码中。这样做有点困难并且会使代码难于阅读,因为它是混合范例(含有伪 OO 设计的过程语言)。使用 PHP 代码中的 OO 构造 — 例如能够定义和使用类、能够构建使用继承的类之间的关系以及能够定义接口 — 可以更轻松地构建
阅读全文
摘要:人际关系平台,必然有邀请好友的功能,也会出现SNS里获取IM、邮箱好友的功能,这个功能的技术实现有很多,有Perl、PHP、Java的实现方式。下面分别介绍一下。本文只介绍解决方案,而不对具体的技术实现和方式优劣进行分析和比较。PerlPerl的MSN模块不太好用,connect后就没有响应了,我分析可能是由于MSN认证协议发生变化,而模块没有相应的更新造成。而另外一个Net::MSN安装时编译会出现问题,即使安装了Crypt::SSLeay模块也是如此。我在google code上找到了一个其他人写的模块IM::MSN,还有一个基类IM::Base;经过了一些修改和补充,并加了一个类IM::
阅读全文
摘要:Gearman的介绍主页在http://gearman.org/index.php, 它的主要优点有:1. 实现了异步计算。可以将比较耗时的计算分配到分布式计算集群来减少站点服务器的压力和用户的等待。例如passport里的邮件发送/头像上传裁减/国内外数据分离请求等等。2. 跨语言,有利于多语言多系统之间的集成。PHP/Perl/Java/C++可以融合在一起,用Perl实现的邮件发送功能PHP也能自由调用,也可以使用Perl调用另一台服务器上用C++编写的程序的一个函数。3. 便于扩展和实现负载均衡。可以通过增加worker的数量来提供更好的性能,在其中一台出现问题的时候能够由其他的wor
阅读全文
摘要:MIB_IPADDRTABLE结构是一张Ipv4地址入口表,其定义如下:typedef struct _MIB_IPADDRTABLE { DWORD dwNumEntries; //表中Ipv4地址入口的个数 MIB_IPADDRROW table[ANY_SIZE]; //一个指向实现为MIB_IPADDRROW结构数组 //的Ipv4地址入口表的指针} MIB_IPADDRTABLE, *PMIB_IPADDRTABLE;MIB_IPADDRROW结构存储了MIB_IPADDRTABLE结构中特定的Ipv4地址的详细信息,其定义如下:typedef struct _MIB_IPADDRR
阅读全文
摘要:1 ServerAlias p71一个虚拟主机可以配置多个域名ServerName www.maxthon.comServerAlias www.maxthon1.com www.maxthon2.com 2 apachectl graceful p17重启apache的时候等待当前打开的活动连接完成操作后再关闭该链接3 虚拟主机基于域名的虚拟主机ServerName 127.0.0.1NameVirtualHost *.80<VirtualHost *:80> ServerName DocumentRoot</VirtualHost> 基于Ip的虚拟主机 p73S..
阅读全文
摘要:目前,基于HTTP的实时信息传输技术主要有客户端定时器的同步刷新、基于AJAX的异步传输和服务端Push这3种方法。下面分别进行介绍:1.客户端定时器的同步刷新这种技术是在客户端设置定时器,每隔一段时间客户端向服务器提出一个HTTP连接请求。服务器收到请求后,将所有的数据(包括传输过的数据和未传输的数据)一股脑儿发送给客户端,客户端浏览器以同步方式重绘这个页面,以达到对这个Web页面刷新的功能。2. 基于AJAX的异步刷新AJAX通过XMLHttpRequest对象来发送异步请求,XMLHttpRequest是AJAX的核心对象,其主要方法有:open():建立到服务器的新请求send():向
阅读全文
摘要:最近一天收到很多用户反馈,反映几个网站的邮件无法正常接收。开始以为是邮件系统压力测试造成的,通知运维进行系统的监测后发现,邮件服务的队列里堵塞了几万封邮件。经过详细调查,发现是Postfix自带安全软件MailScanner过期,需要升级造成。升级过程中造成所有队列里邮件丢失。由此提醒我们邮件服务器需要注意以下几个问题:1.邮件服务器往往是单点,需要考虑负载均衡;2.邮件服务的异常报警;3.邮件队列的备份与恢复。我的朋友sery提供了Postfix邮件备份的脚本,可在此查看:http://sery.blog.51cto.com/10037/45500。
阅读全文
摘要:管理与个人管理学太上,不知有之;次之,亲而誉之;其次,畏之;其次,侮之。有趣。如何掌控自己的时间和生活时间管理的始祖。高效能人士的七个习惯非常经典的书,读这本书,会有改变自己的冲动。计算机重构:改善既有代码的设计各种bad smell和重构方法,陷入程序和架构泥潭的程序员们,读一读吧!Head First设计模式深入浅出的介绍了23种设计模式,非常生动和形象,还在为设计模式头疼的开发人员不妨一览。编程之美:微软技术面试心得这其实是一本普及算法的书,看完后,你会想去了解更多的算法知识以及它们后面的秘密。Stein算法、Trie树、DFA、NP、更相减损术...一个个程序的奥秘慢慢揭开...小说传
阅读全文
摘要:按照Sphinx来进行全文检索,默认只支持按字拆分,如果要实现比较好的中文分词,可以使用基于libmmseg的引擎Coreseek。yum install g++yum install gccyum install makeyum install mysql mysql-devel php-mysql qt4-mysqlwget http://www.coreseek.cn/uploads/sources/mmseg3_0b3.tar.gz wget http://www.coreseek.cn/uploads/sources/csft3_0b4.tar.gz tar -xzvf mmseg3
阅读全文
摘要:(P.S.好吧,这是写于一周前,这两天才有资格发图片O(∩_∩)O~)今天突发奇想,也来体验一把VS2010,到MS官网上下了个专业版的,总共分四个文件,解压后得到一个ISO镜像,大小2.18GB。安装过程需要重启系统好几次,不过还是很值得的,安装完成后登录界面如下图所示:(PS:比之前版本的差别比较大,图标都改了)进入主程序后,是起始页:(可以自定义的哦)软件界面色彩上比先前版本的更具商务色彩,软件整体速度也比VS2008快了很多,在2008版本下,启动侧边栏工具箱时整个软件都会很卡,甚至是假死状态,但在这个新版本中却是相当地流畅,这点是VS2010给我的第一印象。下图是用VS2010打开解
阅读全文
摘要:天际网是我用过的一个比较有名的商务社区。但是就产品体验和设计而言,还有不少值得推敲和不足的细节。1.首先是头像上传功能,我上传后无论如何设置,裁剪出来的头像都不是我预览看到的头像,这个让我非常恼火。2.按钮的样式不统一,可以看到鼠标放在左侧邀请好友、发布消息上变成了手的形状,但是查找、搜索等地方又不会改变。3.搜索,有些信息明明存在,但是搜索却无法找到,例如我好友里的一个同学。4.右下角的这个信息提示始终让我困惑,34、49、9之间有什么区别和联系?5.悲剧啊!6.很多地方觉得功能非常凌乱,让人怀疑是否有统一的设计。例如一度好友页面。7.共有8?8.中文版每次弹出的讨厌的可能认识的人,文字还是
阅读全文
摘要:主要包括HTML字符破坏、外部提交、SQL注入、XSS跨站攻击等几个方面。
阅读全文
摘要:Perl Memcached的客户端序列化对象采用的是Storable模块的nfreeze方法,而这个方法又调用了c扩展的do_store方法;反序列化使用的是Storable模块的thaw方法,而这个方法又是调用的c扩展的do_retrieve方法。而在PHP中,进行的却是serialize和unserialize操作。造成了无法正常读取的结果。Perl存储一个('a', 'c')数组的引用,命令行获取的结果如下:用二进制编辑器查看存储的结果如下:在PHP中memcache客户端gzuncompress和unserialize函数处理前可以得到存储的数据,打印
阅读全文
摘要:当调用一个Windows函数时,它首先检验传递给它的各个参数的有效性,然后再设法执行任务。如果传递了一个无效参数,或者由于某种原因无法执行这项操作,那么操作系统就会返回一个值,指明该函数在某种程度上运行失败了。下面说说Windows常见的返回值类型:1) VOID:表明该函数运行不可能失败,Windows函数的返回值很少是VOID。2) BOOL:如果函数运行失败,返回值是0,否则返回值是非0值。最好对返回值进行测试,以确定它是0还是非0,而不是测试返回值是否是TRUE。3) HANDLE:如果函数运行失败,则返回值通常是NULL,否则返回值是某个HANDLE,用于标识你可以操作的一个对象。F
阅读全文
摘要:const类型修饰符可以:1) 用来说明符号常量和常数组(必须同时进行初始化,以后不能再更新)C++中,用关键字const修饰的标识符称为符号常量,或称为const变量。常量在使用前必须先定义同时初始化 ,例如:const double pi = 3.1415926或double const pi = 3.1415926;通常情况下const同预处理器#define一样只是将所赋值存入编译器的符号表中(符号表仅仅在编译时存在,在编译过程中编译器将程序中的名字与它在符号表中对应的数值作简单的替换),在使用时进行值替换,并不为const创建存储空间。C++中const默认为内部连接(C中const
阅读全文
摘要:困扰很久的问题,可能是由于新立得安装和cpan安装冲突出现不支持PNG或者JPG的情况。据其他同事反映,全部使用新立得安装是可以支持的。如果遇到这种情况,需要删除全部相关模块重新进行安装。在新立得里删除libgd2-xpm-dev/libgd2-xpm/libgd-gd2-perl。下载安装gd-2.0.35/libpng-1.2.33/zlib-1.2.3/jpeg-6bb. The gd graphics library: http://www.boutell.com/gd/c. The PNG graphics library: http://www.libpng.org/pub/p..
阅读全文
摘要:从学习Perl/Mason开始,长久以来,我都是在ubuntu下搭建Mason的开发、运行环境的,因为Perl是ubuntu的原生语言,而且通过新立得安装组件、模块来的非常方便。组内所有Mason开发环境,也是基于我研究的ubuntu平台。但是如何在windows下搭建Mason的运行、开发环境一直是我所困扰、想实现的。这样我们就可以不再限定于特定开发平台,无论对于开发、还是部署都有新的意义。通过反复尝试,终于在windows下顺利搭建好了Mason的环境,以下是搭建的步骤。安装ActivePerl:下载地址http://www.skycn.com/soft/1211.html。安装Apach
阅读全文
摘要:Perl中文/unicode/utf8/GB2312编码之间的转换是一件很让人头疼的事情,我总结了以下主要的转换方法,供大家了解参考。# author: jiangyujieuse utf8;use Encode;use URI::Escape;$/ = "/n";#从unicode得到utf8编码$str = '%u6536';$str =~ s//%u([0-9a-fA-F]{4})/pack("U",hex($1))/eg;$str = encode( "utf8", $str );print uc unpack
阅读全文
摘要:在Perl和PHP中生成中文图片最关键的一点是需要设置一个可以显示中文的字体。在Linux平台上,我们可以把windows下的雅黑文件拷过去。在控制面板-字体里可以拷贝雅黑字体文件:放在Ubuntu的/usr/share/fonts/vista下。Perl的关键代码类似下面所示:GD::Image->trueColor(1);my $image = newFromPng GD::Image($imagepath) || die "can't open image: $!";my $white = $image->colorAllocate(255,255
阅读全文
摘要:饭否的图片插件可用于论坛,博客,将用户的信息和一些最新动态用图片的形式表现出来。我们如果需要自行开发此功能的话,需要设置某种格式(或某个地址)的图片采用脚本来处理。在Perl中的话例如可以使用Apache的LocationMatch或者FilesMatch指令来进行设置,让某个Perl模块来进行处理。如果使用Mason的话,更为简单,不需要修改服务器,只需利用dhandler的特性,就可以让指定的脚本来处理。基本流程如下:主要代码如下: my $uri = $r->uri; if($uri =~ /.jpg$/) { $uid = substr($uid, 1, -4); # 从uri里
阅读全文
摘要:我们平常Mason的开发环境都是部署在Ubuntu平台上的,因为通过新立得安装某些必要的软件时非常方便。以下是部署的经验总结:需要通过新立得安装的模块包括:Apache2 mod_perl2(libapache2-mod-perl2) dbi(libdbi-perl,即DBI模块,可通过cpan安装)dbd(libdbd-mysql-perl/libdbd-mysql)libapreq2(包括libapache2-mod-apreq2,libapache2-request-perl,Apache2::Request/Apache2::Upload/Apache2::Cookie模块)mason
阅读全文
摘要:c++中的explicit关键字用来并且只能用来修饰类的构造函数,表明该构造函数是显式的,“显式”的意思是说创建类对象时必须写出构造函数的名称,相对的,“隐式”指的是创建类对象时不必写出构造函数名,只需根据构造函数形参类型指定实参,由编译器进行形参类型到类类型的隐式转换。《C++ Primer》指出:可以用单个实参来调用的构造函数,它自身定义了从形参类型到类类型的一个隐式转换。也就是说,如果c++类的构造函数可以只传一个实参来调用(构造函数的形式参数实际上可能不止一个,但除了传入实参的那个参数外,其他的参数都有默认值),那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转
阅读全文
摘要:文件数据基础知识:1) 在IA-32架构的计算机中,数据存储的最小单位是“位”(一位能表示两种状态:0和1);按CPU一次处理的位数,可将CPU分为8位、16位、32位和64位。2) CPU被设计为擅长处理2的N次幂的位数,所以用CPU处理非2的N次幂的位数会破坏流水线,导致指令的执行效率低下,因此数据一般是不会采用非2的N次幂的位数来存储的。3) 通常情况下为了获得高的处理效率,CPU处理数据的最小单位是8个位。因为如果要处理少于一字节(8位)的数据,CPU通常要使用移位指令和逻辑指令来提取位数据,这样将导致处理效率非常低。况且内存是以字节为单位存放数据的。4) 把不同的字节数据组织在一起,
阅读全文