http://b.cnc.qzone.qq.com/cgi-bin/blognew/blog_output_data?uin=40317647&blogid=1228464038&imgdm=imgcache.qq.com&bdm=b.cnc.qzone.qq.com&mode=1&numperpage=15&blogseed=0.05020814931591866&property=GoRE×tamp=1255757003

阅读全文
“往事越千年,魏武挥鞭,东临碣石有遗篇”。看一下曹操的一生,不管他自己怎么说,他是由不自觉到自觉地在一条通向帝王的道 路上一步步前进着。如果说建安元年(公元196年)前曹操在这方面的努力还只是一种不动声色的铺埝,那么从建安元年起,他就开始在这方面迈出了坚实有力的 步伐。建安元年八月,曹操亲至洛阳朝见汉献帝。随即挟持汉献帝迁都许昌。将献帝变成了自己手中的一个傀儡和一张王牌,取得了“挟天子以令诸侯”的优势。献 帝任命曹操为大将军,封武平侯,后来因为袁绍不满,曹操才将大将军的职位让给袁绍,自己改任司空,兼车骑将军,并从此开始主持朝政。 随着实力的增强,曹操对于朝政的控制也越来越严密,献帝的傀儡化程度也就越来越深了。
阅读全文

单片机TCP/IP

WEB2.0 jackxiang 2009-10-17 13:28
1 概述 阅读全文
总体说来,TCPIP并不是一件十分神秘的事情,尤其是基于MCU的应用,不要求进行特别复杂的处理,很多情况下只需要实现最最基本的功能就行了。在实现MCU的TCPIP移植之前,必须对TCPIP有一定程度的了解,可以找一本合适的书籍来翻阅一下,《TCP/IP详解,卷1:协议》http://www.laogu.com/display.aspx?did=510是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。
对于TCPIP在MCU上的应用并不要求对协议的所有部分都了解的那么清楚,重点需要了解TCPIP的各个层次的关系,链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在T C P / I P协议族中,网络层协议包括I P协议(网际协议),I C M P协议(I n t e r n e t互联网控制报文协议),以及I G M P协议(I n t e r n e t组管理协议)。 运输层主要为两台主机上的应用程序提供端到端的通信。在T C P / I P协议族中,有两个互不相同的传输协议: T C P(传输控制协议)和U D P(用户数据报协议)。T C P为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面, U D P则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。这两种运输层协议分别在不同的应用程序中有不同的用途。应用层负责处理特定的应用程序细节。几乎各种不同的T C P / I P实现都会提供Telnet,FTP,SMTP 简单邮件传送协议,SNMP简单网络管理协议这些通用的应用程序。
各种类型的数据报格式也是需要了解的重点,使用Sniffer软件可以十分方便的在电脑上查看各种数据报的收发状态.同时Sniffer也是以后调试TCPIP协议寨的一个很有用的工具,Sniffer的使用方式可以在www.google.com上很方便的搜索到.
TCP/IP的分层,以太网封装,IP首部,子网寻址和子网掩码,ARP地址解析协议,ICMP控制报文协议中的ECHO(Ping程序),UDP用户数据报协议,TFTP简单文件传送协议,特别是TCP传输控制协议是TCPIP在MCU上应用所必需掌握的关键知识.
在对TCPIP有了一定程度的了解之后,如何具体的实现就成了问题的关键,我在学习TCPIP的过程中前后一共使用或阅读了下面的3中TCPIP协议寨,这里有对3个协议寨的比较和下载地址.
uIP,适合8bit单片机上使用,但是结构比较复杂,不适宜进行移植,也不是一份很适合阅读的代码.下载地址http://www.sics.se/~adam/uip/
Lwip,适合16/32bit单片机上使用,是嵌入式系统开发人员最好的学习TCPIP的代码,下载地址http://www.sics.se/~adam/lwip/
zLip,南开大学电子应用实验室编写的一个协议寨,有uip和lwip的优点,推荐初学者学习http://www.laogu.com/display.aspx?did=859  
一些初学C语言的人,不知道头文件(*.h文件)原来还可以自己写的。只知道调用系统库函数时,要使用#i nclude语句将某些头文件包含进去。其实,头文件跟.C文件一样,是可以自己写的。头文件是一种文本文件,使用文本编辑器将代码编写好之后,以扩展名.h保存就行了。头文件中一般放一些重复使用的代码,例如函数声明,变量声明,常数定义,宏的定义等等。当使用#i nclude语句将头文件引用时,相当于将头文件中所有内容,复制到#i nclude处。为了避免因为重复引用而导致的编译错误,头文件常具有 #ifndef   LABEL
#define   LABEL
   //代码部分
#endif
的格式。其中,LABEL为一个唯一的标号,命名规则跟变量的命名规则一样。常根据它所在的头文件名来命名,例如,如果头文件的文件名叫做hardware.h,
那么可以这样使用:
#ifndef   __HARDWARE_H__
#define   __HARDWARE_H__
//代码部分
#endif
这样写的意思就是,如果没有定义__HARDWARE_H__,则定义__HARDWARE_H__,并编译下面的代码部分,直到遇到#endif。这样,当重复引用时,由于__HARDWARE_H__已经被定义,则下面的代码部分就不会被编译了,这样就避免了重复定义。
另外一个地方就是使用include时,使用引号与尖括号的意思是不一样的。使用引号(“”)时,首先搜索工程文件所在目录,然后再搜索编译器头文件所在目录。而使用尖括号(<>)时,刚好是相反的搜索顺序。假设我们有两个文件名一样的头文件hardware.h,但内容却是不一样的。一个保存在编译器指定的头文件目录下,我们把它叫做文件I;另一个则保存在当前工程的目录下,我们把它叫做文件II。如果我们使用的是#i nclude ,则我们引用到的是文件I。如果我们使用的是#i nclude “hardware.h”,则我们引用的将是文件II。笔者以前就遇到过一个同事问,为什么他修改了那个头文件里面的内容,好象跟没有修改一样?就是因为他有两个一样的头文件(就像我们刚描述的那样),他是使用#i nclude引用的,而他修改时,却是当前工程所在的目录下的那个文件。
字符处理函数
本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 阅读全文
 现在的工作主要是操作MySQL数据库,由于企业短信的特殊性,使得数据库记录非常庞大,因此提MySQL 数据库性能就非常重要了,下面这篇文章写的非常不错,特地转过来学习学习。

  本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法。
阅读全文
哈佛大学:让真理与你为友­

剑桥大学:剑桥--求知学习的理想之地­阅读全文
    示例一:
    日本软件银行的老板孙正义,当年创业有一次,他站在一个装苹果的箱子上对他仅有的一名员工演说他2个多小时的宏图大业,下面的那位员工吓到第二天不敢来上班,我认为他老板是疯子
    示例二:
    有一次,在阿里巴巴还没成立的时候,马云在一家酒馆,喝得有点醉,手足舞动这对着众人游说他的中国黄页,大家都认为他有问题,第二年他真的赚钱了
    示例三:
    李彦宏帮门户做搜索很赚钱,决定做自己的门户搜索,结果在深圳的会议被否决,最后摔手机,人家才勉强答应了,之后实时十月的闪电计划,最后恨他变成爱他了

    等等,很多很多类似的,在IT界像历史一样重演,。。。。。。
总结:      
    上天眷顾有蓝图的人不是干实际事的人,他们给你一个梦想,干实际事情的人去实现了,他们也就成功了,但是没有这种人的推动,谁都成就不了什么,所以,这样的人才是牛B的人。
最牛B的人是知道产品的蓝图和摸样,实现对他们来说不再重要,因为实现往往是最容易的,并能让其扎扎实实的实现,在实现的过程中不断去完善和修正,他们都实现了自己的梦,他们也就是一个舵手,不是划桨的人,为此,有人笑他们不会划船,笑他们是疯子,傻子,偏执狂,单是上天往往会眷顾或者特别看好这样的人,往往在他们自己的执拗中不断学习和成长,最好他们都成功了,上帝笑了,人们惊讶了,那个人可能哭笑参半,踌躇满志,人们纳闷了,但其中的酸甜苦辣也只有他本人才知道,因为成功的条件缺一不可,当代社会只有偏执狂才能生存,只有偏执狂才能成功,只有偏执狂才能过关斩将,他们才是真正的领航者,他们才是最善于看到变化,拥抱变化的弄潮儿,他们成功了,我们看见了,O(∩_∩)O哈哈~!
                                   总结人:向东
                                        2009-10-17
如何实时查看mysql当前连接数?

1、查看当前所有连接的详细资料:
./mysqladmin -uadmin -p -h10.140.1.1 processlist


2、只查看当前连接数(Threads就是连接数.):
./mysqladmin  -uadmin -p -h10.140.1.1 status


、查看当前所有连接的详细资料:
mysqladmin -uroot -proot processlist
D:\MySQL\bin>mysqladmin -uroot -proot processlist
+-----+------+----------------+---------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+----------------+---------+---------+------+-------+------------------+
| 591 | root | localhost:3544 | bbs | Sleep | 25 | | |
| 701 | root | localhost:3761 | | uery | 0 | | show processlist |
+-----+------+----------------+---------+---------+------+-------+------------------+
2、只查看当前连接数(Threads就是连接数.):
mysqladmin -uroot -proot status
D:\MySQL\bin>mysqladmin -uroot -proot status
Uptime: 2102 Threads: 3 Questions: 15531 Slow queries: 0 Opens: 0 Flush tab
les: 1 Open tables: 61 Queries per second avg: 7.389
3、修改mysql最大连接数:
打开my.ini,修改max_connections=100(默认为100)。


今天有一台mysql服务器突然连接数暴增,并且等待进程全部被锁...因为问题解决不当,导致被骂...OTL

总结:以后要快速定位错误,布置解决方案

登录到mysql客户端后,使用status命令也能获得thread连接数以及当前连接的id

或者用

show full processlist

看一下所有连接进程,注意查看进程等待时间以及所处状态 是否locked

如果进程过多,就把进程打印下来,然后查看

mysql -e 'show full processlist;' > 111

查找非locked的进程,一般就是当前执行中卡死,导致后面的进程排队的原因。

另外,修改mysql最大连接数的方法:

编辑MySQL(和PHP搭配之最佳组合)配置文件 
my.cnf 或者是 my.ini

在[MySQL(和PHP搭配之最佳组合)d]配置段添加:
max_connections = 1000

保存,重启MySQL(和PHP搭配之最佳组合)服务。

然后用命令:
MySQL(和PHP搭配之最佳组合)admin -uroot -p variables
输入root数据库账号的密码后可看到
| max_connections | 1000 |
据 wordpress 官方报道,WordPress 2.9 第一个 Beta 版本很有可能在今年10月底发布。如果 WordPress 2.9 测试顺利的话,会在今年11月底或12月初发布正式版本。

以下为 WordPress 官方原文报道:


We are aiming to release the first beta version of 2.9 around the end of October, once we have put the finishing touches on the new features, and then we switch to full on beta testing mode and your help and feedback will be very much appreciated. During the beta program will push out new builds for automated upgrades regularly and once we feel that a suitable level of stability has been achieves we will release a release candidate, and we hope to be able to make the final release 2.9 build available in either late November or early December.

据园子初步了解,此次 WordPress 2.9 会带来以下新功能:

1.加入新的图像编辑器

在 WordPress 2.9 版本中,会在后台加入简单的图像编辑功能,你可以通过简单的操作来对图像进行修改。

2.评论垃圾回收站功能

在 WordPress 2.9 里,你可以将一些无用的评论删除,这些被删除的评论可以暂时保存在回收站中,直到过期才会彻底删除,你可以通过 wp_config.php 文件设置过期期限。

3.新增 excerpt 过滤器功能

WordPress 2.9 版本新增加了两个过滤器来调整 excerpt(the_excerpt())摘要部分,通过修改返回值的方式达到调整摘要字符串长度和more链接的文字,你只需在 function.php 文件中添加一些代码即可。

最后园子提供 WordPress 2.9 最新测试版本供大家下载试用,请点此下载 WordPress 2.9 Beta 。

需要提醒你的是,这个版本只是测试版本,仅供测试使用。
追女孩非常有效的23条短信阅读全文
   target=new Date(2009,9,17,14,00,00);
   today=new Date();

JavaScript里面的Date对象时间日期都是从0开始的。
就像Java/C++里面的数组坐标一样。
分别用0,1.....11来对应实际月份的一月,二月......十二月。
五月31号可以用以下表达式来表达:
var date = new Date(2008,5-1,31);

以后多注意这个问题就行了。
采用 secondary index 查询仍然是要比用 primary key 查询来的快很多
innodb 的 clustered index 是把 primary key 以及 row data 保存在一起的,而 secondary index 则是单独存放,然后有个指针指向 primary key。因此,需要进行 count(*) 统计表记录总数时,利用 secondary index 扫描起来,显然更快。

SELECT COUNT(id) FROM table;

这是原文http://bugs.mysql.com/bug.php?id=19271
我提问:
如果在前端加memcache,直接存count总数[增加,删除等做加减,曾经大家有没有人采用过这种方案加速count(*)的?呵呵
回答:
count存在memcache,会涉及一个准确性的问题。有可能会在memcache中丢失。 如果丢失的情况还是要跑数据库的!

Secondary Index就和普通的B-Tree索引差不多了,只不过在Secondary Index的所有Leaf Nodes上面同时包含了所指向数据记录的主键信息,而不是直接指向数据记录的位置信息。



http://www.ourmysql.com/archives/284
你是否常觉得头重重的或记忆力衰退呢? 阅读全文
《塔木德》指出:上帝让你赤裸裸地降生于这个世界,绝不是为了让你赤手空拳地离开它。 阅读全文
分页: 234/339 第一页 上页 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 下页 最后页 [ 显示模式: 摘要 | 列表 ]