IBM教程:http://www.ibm.com/developerworks/cn/linux/l-gtk/part2/
http://plog.longwin.com.tw/my_note-unix/2008/05/05/ubuntu_php_gtk_develop_env_2008
里面的相关链接很有用都是E文的喔!
http://plog.longwin.com.tw/my_note-unix/2008/05/05/ubuntu_php_gtk_develop_env_2008
里面的相关链接很有用都是E文的喔!
可能因为动作太过频繁,被豆瓣识别到然后禁用了,站务论坛解释是:你开太多页面,或者打开页面速度太频繁,被服务器当作攻击源给屏蔽了,这时候把连接中的www换成alpha就可以了,呵呵:)
在工作中遇到的一个问题,在现有的构架中,用户的信息被保存在了两台服务器上(一台保存了完整信息,另一台保存了某些需要的信息)。现在因为某些需要,要在信息不全的那台服务器上保存另外的一些信息。其实report(是re_port,自己起的名字:))并不是唯一选择,解决这个问题的另一个办法就是每次在需要的时候跨服务器查询,但这样做在效率上似乎是一个问题,而且也不是那么安全。
好了,不说废话了,函数如下:
function posttohost($url, $data) {
$url = parse_url($url);
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
$encoded = "";
while (list($k,$v) = each($data)) {
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$encoded\n");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\.. 200", $line)) return;
$results = ""; $inheader = 1;
while(!feof($fp)) {
$line = fgets($fp,1024);
if ($inheader && ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}
阅读全文
好了,不说废话了,函数如下:
function posttohost($url, $data) {
$url = parse_url($url);
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
$encoded = "";
while (list($k,$v) = each($data)) {
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$encoded\n");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\.. 200", $line)) return;
$results = ""; $inheader = 1;
while(!feof($fp)) {
$line = fgets($fp,1024);
if ($inheader && ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}
阅读全文
适合阅读范围:对JavaScript一无所知~离精通只差一步之遥的人
基础知识:HTML
JavaScript就这么回事1:基础知识
1 创建脚本块
1: <script language=”JavaScript”>
2: JavaScript code goes here
3: </script>
阅读全文
基础知识:HTML
JavaScript就这么回事1:基础知识
1 创建脚本块
1: <script language=”JavaScript”>
2: JavaScript code goes here
3: </script>
阅读全文
由于gd2才开始支持真彩图片的创建,所以,,升级服务器,因为原来的安装都是默认的系统安装,也更因为是个菜鸟,所以,安装很困难,起初根据网上一些文章在我的red hat A 3 上安装测试,不过,测试了安装php4.3.X 和php5.0.X都没有成功,最后,根据其他人的文章,自己搞了将近3天,终于安装上了,下面就我安装中出现的错误和过程写出来和大家分享,以免有像我一样的菜鸟们走弯路! (我可是两天多的时间,安装php的次数不下50次得来的经验,希望大家多多支持,有错误当然欢迎给我指正!转载请注明来自中国智慧在线(http: //article.21e.cn ,谢谢!),以下经过测试在red hat 9 和red hat A 3上通过!
如果你机器里原来装有了PHP或者APACHE的RPM或者低版本.你可以现删除,删除安装简洁一些,不过我的实际操作过程是煤油删除,而直接安装的.当然你也可以跟我一样!
首先,服务器GCC要有,不然什么都不能做.可以用gcc -v来查看是否安装了GCC,
#gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-34)
有以上类似信息说明已有GCC,没有就现安装吧,至于如何安装,我就不说了,可以用光盘安装或者是下载源文件都可以,当然你的版本不一定是3.2.3! 阅读全文
LINUX—rsync
rsync 官方站点
http://rsync.samba.org/
http://samba.anu.edu.au/rsync/download.html
[ WINDOWS 2003 RSYNC 服务端 ]
rsync for windows download :
http://switch.dl.sourceforge.net/sourceforge/sereds/cwRsync_Server_2.0.10_Installer.zip
阅读全文
rsync 官方站点
http://rsync.samba.org/
http://samba.anu.edu.au/rsync/download.html
[ WINDOWS 2003 RSYNC 服务端 ]
rsync for windows download :
http://switch.dl.sourceforge.net/sourceforge/sereds/cwRsync_Server_2.0.10_Installer.zip
阅读全文
从前,有这样一个sql:
SELECT v.*,v2s_subject,v2s.v2s_vid, s.s_views FROM video2sites v2s
LEFT JOIN videos v USING(v_id)
LEFT JOIN stats s USING(v2s_id)
WHERE m_id='$uid' AND v_censor IN(2,3,4) GROUP BY v.v_id
它一直工作得很正常,但有一天,它突然报错了。
报的错是说不能确定v2s_id,仔细检查一下,原来是videos表中为了查询方便也加入了一个“v2s_id”字段,using就傻了。
抛开数据库设计的因素不谈,其实这样的问题是可以避免的。方法很简单,就是用“ON”来代替“USING”。相信很多人像我一样,写程序的时候能少写一点就少写一点,这样做的后果就是往往会带来一些莫名其妙的麻烦。
改过之后的sql是这样的:
SELECT v.*,v2s_subject,v2s.v2s_vid, s.s_views FROM video2sites v2s
LEFT JOIN videos v ON v.v_id= v2s.v_id
LEFT JOIN stats s ON s.v2s_id=v2s.v2s_id
WHERE m_id='$uid' AND v_censor IN(2,3,4) GROUP BY v.v_id
这么写虽然麻烦了些,但起码可以保证在某个表中添加字段的时候不会引起冲突。
SELECT v.*,v2s_subject,v2s.v2s_vid, s.s_views FROM video2sites v2s
LEFT JOIN videos v USING(v_id)
LEFT JOIN stats s USING(v2s_id)
WHERE m_id='$uid' AND v_censor IN(2,3,4) GROUP BY v.v_id
它一直工作得很正常,但有一天,它突然报错了。
报的错是说不能确定v2s_id,仔细检查一下,原来是videos表中为了查询方便也加入了一个“v2s_id”字段,using就傻了。
抛开数据库设计的因素不谈,其实这样的问题是可以避免的。方法很简单,就是用“ON”来代替“USING”。相信很多人像我一样,写程序的时候能少写一点就少写一点,这样做的后果就是往往会带来一些莫名其妙的麻烦。
改过之后的sql是这样的:
SELECT v.*,v2s_subject,v2s.v2s_vid, s.s_views FROM video2sites v2s
LEFT JOIN videos v ON v.v_id= v2s.v_id
LEFT JOIN stats s ON s.v2s_id=v2s.v2s_id
WHERE m_id='$uid' AND v_censor IN(2,3,4) GROUP BY v.v_id
这么写虽然麻烦了些,但起码可以保证在某个表中添加字段的时候不会引起冲突。
PHP命名规则
合适的命名 命名是程序规划的核心。古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力
量。只要你给事物想到正确的名字,就会给你以及后来的人带来比代码更强的力量。别笑!
名字就是事物在它所处的生态环境中一个长久而深远的结果。总的来说,只有了解系统的程序员才能为系
统取出最合适的名字。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推
想也能在意料之中。
如果你发觉你的命名只有少量能和其对应事物相匹配的话, 最好还是重新好好再看看你的设计吧。
阅读全文
合适的命名 命名是程序规划的核心。古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力
量。只要你给事物想到正确的名字,就会给你以及后来的人带来比代码更强的力量。别笑!
名字就是事物在它所处的生态环境中一个长久而深远的结果。总的来说,只有了解系统的程序员才能为系
统取出最合适的名字。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推
想也能在意料之中。
如果你发觉你的命名只有少量能和其对应事物相匹配的话, 最好还是重新好好再看看你的设计吧。
阅读全文
gcc和g++都是GNU(组织)的一个编译器。
误区一:gcc只能编译c代码,g++只能编译c++代码
两者都可以,但是请注意:
1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。
2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。
误区二:gcc不会定义__cplusplus宏,而g++会
实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。
阅读全文
误区一:gcc只能编译c代码,g++只能编译c++代码
两者都可以,但是请注意:
1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。
2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。
误区二:gcc不会定义__cplusplus宏,而g++会
实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。
阅读全文
1.EZ-USB FX系列单片机USB外围设备设计与应用
出版社 : 北京航空航天大学出版社
作者 : 许永和/
出版日期:2002年11月
版别版次:2002年11月第一版第一次印刷
2.8051单片机USB接口Visual Basic程序设计
【作 者】许永和 [同作者作品]
【丛 书 名】 USB接口完全解决方案系列三
【出 版 社】 北京航空航天大学出版社 【书 号】 9787810774796
基于LM3S615的特定温度曲线加热控制系统.到cnki查询一下!
性价比最高的EZ-USB FX2开发板-CY7C68013A
http://bbs.cechinamag.com/?url=http://bbs.cechinamag.com/ShowTopic.aspx?id=4033
直接联系:
联系人: 雷先生
电话: 13975822093
QQ: 19208093 406291081
MSN: chinaycltech@hotmail.com
E_MAIL: chinaycltech@163.com
出版社 : 北京航空航天大学出版社
作者 : 许永和/
出版日期:2002年11月
版别版次:2002年11月第一版第一次印刷
2.8051单片机USB接口Visual Basic程序设计
【作 者】许永和 [同作者作品]
【丛 书 名】 USB接口完全解决方案系列三
【出 版 社】 北京航空航天大学出版社 【书 号】 9787810774796
基于LM3S615的特定温度曲线加热控制系统.到cnki查询一下!
性价比最高的EZ-USB FX2开发板-CY7C68013A
http://bbs.cechinamag.com/?url=http://bbs.cechinamag.com/ShowTopic.aspx?id=4033
直接联系:
联系人: 雷先生
电话: 13975822093
QQ: 19208093 406291081
MSN: chinaycltech@hotmail.com
E_MAIL: chinaycltech@163.com
转:http://www.phpe.net/articles/399.shtml
<?php
class ObjectTracker //对象跟踪器
{
private static $nextSerial = 0;
private $id;
private $name;
function __construct($name) //构造函数
{
$this->name = $name;
$this->id = ++self::$nextSerial;
}
function __clone() //克隆
{
$this->name = "Clone of $that->name";
$this->id = ++self::$nextSerial;
}
function getId() //获取id属性的值
{
return($this->id);
}
function getName() //获取name属性的值
{
return($this->name);
}
}
$ot = new ObjectTracker("Zeev's Object");
/*
* $ot2 = $ot->__clone();
这一行应当改为
$ot2 = clone$ot;
*
*/
$ot2 = clone$ot;
//输出: 1 Zeev's Object
print($ot->getId() . " " . $ot->getName() . "<br>");
//输出: 2 Clone of Zeev's Object
print($ot2->getId() . " " . $ot2->getName() . "<br>");
?>
<?php
class ObjectTracker //对象跟踪器
{
private static $nextSerial = 0;
private $id;
private $name;
function __construct($name) //构造函数
{
$this->name = $name;
$this->id = ++self::$nextSerial;
}
function __clone() //克隆
{
$this->name = "Clone of $that->name";
$this->id = ++self::$nextSerial;
}
function getId() //获取id属性的值
{
return($this->id);
}
function getName() //获取name属性的值
{
return($this->name);
}
}
$ot = new ObjectTracker("Zeev's Object");
/*
* $ot2 = $ot->__clone();
这一行应当改为
$ot2 = clone$ot;
*
*/
$ot2 = clone$ot;
//输出: 1 Zeev's Object
print($ot->getId() . " " . $ot->getName() . "<br>");
//输出: 2 Clone of Zeev's Object
print($ot2->getId() . " " . $ot2->getName() . "<br>");
?>
用栈的先进后出:
#include <stdio.h>
int main() {
int i,j;
printf("please input two numbers:\n");
scanf("%d %d",&i,&j);
printf("the first number i is: %d \n",i);
printf("the second number j is: %d \n",j);
asm ("pushl %%eax\n\t"
"pushl %%ebx\n\t"
"popl %%eax\n\t"
"popl %%ebx"
:"=a"(i),"=b"(j)
:"a"(i), "b"(j));
printf("after swap \n");
printf("the first number i is: %d \n",i);
printf("the first number j is: %d \n",j);
}
用异或:(RAID里面就用到了这技术。三个里面知道任意两个就可以恢复第三个)阅读全文
#include <stdio.h>
int main() {
int i,j;
printf("please input two numbers:\n");
scanf("%d %d",&i,&j);
printf("the first number i is: %d \n",i);
printf("the second number j is: %d \n",j);
asm ("pushl %%eax\n\t"
"pushl %%ebx\n\t"
"popl %%eax\n\t"
"popl %%ebx"
:"=a"(i),"=b"(j)
:"a"(i), "b"(j));
printf("after swap \n");
printf("the first number i is: %d \n",i);
printf("the first number j is: %d \n",j);
}
用异或:(RAID里面就用到了这技术。三个里面知道任意两个就可以恢复第三个)阅读全文
0.linux理论
1.计算机体系结构
2.CPU结构
3.内存管理
4.文件系统
5.进程调度
1.linux驱动
1.i2c驱动添加使用 (inno,摄像头)
2.spi驱动添加和读写 (inno,spi的flash)
3.io驱动 (led的控制,io操作)
4.dma驱动 (lcd和ac97 alsa和网卡)
5.中断源 (inno,摄像头)
6.竞争,并发,阻塞,异步,线程,内存,io,调试(ldd3)
7.usb (libusb,skeleton.c)
8.flash,文件系统 (u-boot,kernel source)
阅读全文
1.计算机体系结构
2.CPU结构
3.内存管理
4.文件系统
5.进程调度
1.linux驱动
1.i2c驱动添加使用 (inno,摄像头)
2.spi驱动添加和读写 (inno,spi的flash)
3.io驱动 (led的控制,io操作)
4.dma驱动 (lcd和ac97 alsa和网卡)
5.中断源 (inno,摄像头)
6.竞争,并发,阻塞,异步,线程,内存,io,调试(ldd3)
7.usb (libusb,skeleton.c)
8.flash,文件系统 (u-boot,kernel source)
阅读全文
Mysql Explain 详解
mysql> explain select relation.id as id, relation.infoid as infoid from relation left join information on relation.infoid=information.infoid where relation.owneruid = 1 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: relation
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 50
Extra: Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: information
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: public.relation.infoid
rows: 1
Extra: Using index
2 rows in set (0.00 sec)
一.语法
explain < table_name >
例如: explain select * from t3 where id=3952602;
二.explain输出解释
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
1.id
我的理解是SQL执行的顺利的标识,SQL从大到小的执行.
例如:
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 1 | PRIMARY | <derived2> | system | NULL | NULL | NULL | NULL | 1 | |
| 2 | DERIVED | <derived3> | system | NULL | NULL | NULL | NULL | 1 | |
| 3 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
很显然这条SQL是从里向外的执行,就是从id=3 向上执行.
阅读全文
mysql> explain select relation.id as id, relation.infoid as infoid from relation left join information on relation.infoid=information.infoid where relation.owneruid = 1 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: relation
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 50
Extra: Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: information
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: public.relation.infoid
rows: 1
Extra: Using index
2 rows in set (0.00 sec)
一.语法
explain < table_name >
例如: explain select * from t3 where id=3952602;
二.explain输出解释
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
1.id
我的理解是SQL执行的顺利的标识,SQL从大到小的执行.
例如:
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 1 | PRIMARY | <derived2> | system | NULL | NULL | NULL | NULL | 1 | |
| 2 | DERIVED | <derived3> | system | NULL | NULL | NULL | NULL | 1 | |
| 3 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
很显然这条SQL是从里向外的执行,就是从id=3 向上执行.
阅读全文
Linux下GUI开发:GTK+ 2.0 + anjuta + glade
在Linux,可以考虑用GTK(The GIMP Toolkit)来做GUI(Graphic User interface)开发,开发工具建议使用anjuta + glade(貌似eclipse+cdt也可以)。
阅读全文
在Linux,可以考虑用GTK(The GIMP Toolkit)来做GUI(Graphic User interface)开发,开发工具建议使用anjuta + glade(貌似eclipse+cdt也可以)。
阅读全文