MYSQL 5.5 中安装BOBLOG,结果安装到最后一步时,出现SQL语句错误。查看错误发现是BOBLOG使用了SQL语句“TYPE=MYISAM”来设定存储引擎,但是在5.5中这个语句已经不在支持了。
解决方法也很简单,找到install/install.php,把其中的TYPE替换为ENGINE即可。
-------
MYSQL 5.5 已经默认是INNODB,还得注意。
解决方法也很简单,找到install/install.php,把其中的TYPE替换为ENGINE即可。
-------
MYSQL 5.5 已经默认是INNODB,还得注意。
通过 lsb_release -a命令可以看出我的linux的发行版是CentOS release 5.6 (Final) 默认是没有安装无线网卡驱动的,但是需要使用无线网,没办法,那要自己安装驱动了!
我的笔记本是MSI U90/100 上网本,到官网查看了相关的信息,只显示了802.11b/g没有具体的商家信息,然后我通过lspci -v 查看到了我的网卡是Network controller: RaLink RT2860
到RaLink官网,很遗憾网站打不开,只能通过google搜索,找到了一个可以下载的,Ralink_RT3562_Linux_STA_2.3.0.0.tar.bz2(支持RT2860)[下载地址:http://down9.zol.com.cn/wuxianlan/Ralink_RT3562_Linux_STA_2.3.0.0.tar.bz2?key=216802e3cb50f87f86cd04b5bf5de5cf ]
通过多次尝试,还需要网卡的固件,最新的版本是rt2860-firmware-11,必须要安装,否则即使安装的驱动,也会报错,[下载地址:http://elrepo.org/linux/elrepo/el5/i386/RPMS/rt2860-firmware-11-1.elrepo.noarch.rpm]
阅读全文
我的笔记本是MSI U90/100 上网本,到官网查看了相关的信息,只显示了802.11b/g没有具体的商家信息,然后我通过lspci -v 查看到了我的网卡是Network controller: RaLink RT2860
到RaLink官网,很遗憾网站打不开,只能通过google搜索,找到了一个可以下载的,Ralink_RT3562_Linux_STA_2.3.0.0.tar.bz2(支持RT2860)[下载地址:http://down9.zol.com.cn/wuxianlan/Ralink_RT3562_Linux_STA_2.3.0.0.tar.bz2?key=216802e3cb50f87f86cd04b5bf5de5cf ]
通过多次尝试,还需要网卡的固件,最新的版本是rt2860-firmware-11,必须要安装,否则即使安装的驱动,也会报错,[下载地址:http://elrepo.org/linux/elrepo/el5/i386/RPMS/rt2860-firmware-11-1.elrepo.noarch.rpm]
阅读全文
用Php分析并绘制音频文件的波形图,网上还是很少见到。其实只要根据wav文件的规范,用Php的fseek,fopen,fopen,pack/unpack等函数,以及强大的gd图形库,这些都是很容易的。很多人可能对pack/unpack函数不熟悉;这其实是Php借用perl的,他们提供了使用脚本语言访问复杂二进制数据结构的方法。我的这段简化的程序只能处理PCM格式的RIFF音频文件(这也是最常见的wav格式) ,不限声道,但是比特率(BitsPerSample)最好是16。
这里有wave file format 和 MicroSoft wave soundfile format可以参考。这里是一个实际的例子(下载放大看)
阅读全文
这里有wave file format 和 MicroSoft wave soundfile format可以参考。这里是一个实际的例子(下载放大看)
阅读全文
Linux下方便的socket读写查看器(socktop)
晚上找个工具来调查下unix域套接字的发送和接受情况,比如说A程序是否送出,B程序是否接收到,他找了tcpdump ,wireshark什么的,貌似都不支持。
这时候还是伟大的systemtap来救助了。 因为所有的socket通讯都是通过socket接口来的,任何family的通讯包括unix域套接都要走的,所以只要截获了socket 读写的几个syscall 就搞定了.
systemtap发行版本提供了个工具socktop, 位于 /usr/share/doc/systemtap/examples/network/socktop, 是个非常方便的工具, 干这个事情最合适了。阅读全文
晚上找个工具来调查下unix域套接字的发送和接受情况,比如说A程序是否送出,B程序是否接收到,他找了tcpdump ,wireshark什么的,貌似都不支持。
这时候还是伟大的systemtap来救助了。 因为所有的socket通讯都是通过socket接口来的,任何family的通讯包括unix域套接都要走的,所以只要截获了socket 读写的几个syscall 就搞定了.
systemtap发行版本提供了个工具socktop, 位于 /usr/share/doc/systemtap/examples/network/socktop, 是个非常方便的工具, 干这个事情最合适了。阅读全文
兼容:firefox/chrome的写法:<link href='/favicon.ico' rel='shortcut icon' type='image/x-icon'/>
如何安装Favicon
当成功生成favicon.ico图像文件后,浏览器会自动弹出一个zip的压缩文件
将压缩文件中的favicon.ico图像放在根目录下(也可以是其他目录)
在页面源文件的<head></head>标签之间插入
<link rel="shortcut icon" href=" /favicon.ico" />
最后形成:
<head>
...
<link rel="shortcut icon" href="/favicon.ico" />
</head>
==========================================
设置网站ico图标的两种方法
方法一:
直接在站点根目录下放入名为:favicon.ico 的图标文件(必须要为 ICO 文件,BMP 及其他格式的图片文件不行)。还有将 favicon.ico 中的 favicon 命名为你网站域名的名称也可以,例如:你网站的域名为:xll.com,你可以将该 ICO 文件命名为:xll.ico 。其IE地址栏图标绝对地址就可以为:http://www.jackxiang.com/favicon.ico和http://www.jackxiang.com/jackxiang.ico
方法二:
在网页的 <head>...</head> 区加入代码:<link rel="Shortcut Icon" href="favicon.ico" />,如果用这一种方法的话,其中 ICO 文件的文件名就不一定要用 favicon.ico了,可以用任意的名字来命名,如:aoul.ico,你甚至可以使每一个目录下的每一个网页文件的IE地址栏图标都不同,但前提是必须做到图标文件的链接地址要正确。还有,在 <head>...</head> 区加入代码:<link rel="Bookmark" href="favicon.ico" />,就可以在收藏夹中显示你网页链接的自定义图标。
我使用:<link rel="shortcut icon" href="./jackxiang.ico" type="image/x-icon" /> 就Ok了。
==========================================
http://wstool.jackxiang.com/favicon.ico
icon压缩:
https://www.aconvert.com/cn/image/ico-to-jpg/
gzip压缩测试:
http://pagespeed.webkaka.com/youhua/gzip/
如何安装Favicon
当成功生成favicon.ico图像文件后,浏览器会自动弹出一个zip的压缩文件
将压缩文件中的favicon.ico图像放在根目录下(也可以是其他目录)
在页面源文件的<head></head>标签之间插入
<link rel="shortcut icon" href=" /favicon.ico" />
最后形成:
<head>
...
<link rel="shortcut icon" href="/favicon.ico" />
</head>
==========================================
设置网站ico图标的两种方法
方法一:
直接在站点根目录下放入名为:favicon.ico 的图标文件(必须要为 ICO 文件,BMP 及其他格式的图片文件不行)。还有将 favicon.ico 中的 favicon 命名为你网站域名的名称也可以,例如:你网站的域名为:xll.com,你可以将该 ICO 文件命名为:xll.ico 。其IE地址栏图标绝对地址就可以为:http://www.jackxiang.com/favicon.ico和http://www.jackxiang.com/jackxiang.ico
方法二:
在网页的 <head>...</head> 区加入代码:<link rel="Shortcut Icon" href="favicon.ico" />,如果用这一种方法的话,其中 ICO 文件的文件名就不一定要用 favicon.ico了,可以用任意的名字来命名,如:aoul.ico,你甚至可以使每一个目录下的每一个网页文件的IE地址栏图标都不同,但前提是必须做到图标文件的链接地址要正确。还有,在 <head>...</head> 区加入代码:<link rel="Bookmark" href="favicon.ico" />,就可以在收藏夹中显示你网页链接的自定义图标。
我使用:<link rel="shortcut icon" href="./jackxiang.ico" type="image/x-icon" /> 就Ok了。
==========================================
http://wstool.jackxiang.com/favicon.ico
icon压缩:
https://www.aconvert.com/cn/image/ico-to-jpg/
gzip压缩测试:
http://pagespeed.webkaka.com/youhua/gzip/
用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。
Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一系列的工具,它们完成调试,剖析和一些类似的任务。valgrind是高度模块化的,所以开发人员或者用户可以给它添加新的工具而不会损坏己有的结构。
valgrind的官方网址是:http://valgrind.org
你可以在它的网站上下载到最新的valgrind,它是开放源码和免费的。 阅读全文
Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一系列的工具,它们完成调试,剖析和一些类似的任务。valgrind是高度模块化的,所以开发人员或者用户可以给它添加新的工具而不会损坏己有的结构。
valgrind的官方网址是:http://valgrind.org
你可以在它的网站上下载到最新的valgrind,它是开放源码和免费的。 阅读全文
安装了两个vim的大型插件,分别是csupport和perl-support,每一个都是几百k。但是这两个插件让我的vim启动速度明显变慢,大概需要两秒。而不使用这两个插件,几乎是瞬间启动。
经过观察,不管用vim打开什么文件,这两个插件都会启动。去vim的安装目录vimfiles/plugin一看,果然,有两个超过100k的.vim文件,分别是c.vim和perl-support.vim。应就是他们两个拖慢了vim的启动速度。也正是因为他们两个被放在了plugin文件夹,所以才会不管打开什么文件,这两个插件都会启动。
安装了两个vim的大型插件,分别是csupport和perl-support,每一个都是几百k。但是这两个插件让我的vim启动速度明显变慢,大概需要两秒。而不使用这两个插件,几乎是瞬间启动。
经过观察,不管用vim打开什么文件,这两个插件都会启动。去vim的安装目录vimfiles/plugin一看,果然,有两个超过100k的.vim文件,分别是c.vim和perl-support.vim。应就是他们两个拖慢了vim的启动速度。也正是因为他们两个被放在了plugin文件夹,所以才会不管打开什么文件,这两个插件都会启动。
所以,将c.vim改名为c_c.vim移动到vimfiles/ftplugin。将perl-support.vim改名perl_support.vim为移动到vimfiles/ftplugin。现在,这两个插件可以“伺机”启动啦。
自己试了下移动,果然Vim快多了好多,移动情况如下:
解释vimfiles:
vimfiles相当于用户自己的一个配置文件夹,而vim73相当于是安装目录。
vim73中的plugin何vimfiles中的plugin作用是一样的,插件放到这2个文件夹都会起作用。
建议把后安装的插件都放到vimfiles中,备份起来比较容易。
Unix 下的 $HOME/.vim/after 或 Windows 下的 %HOME%/vimfiles/after: 用于对已有设置进行一些小的修正和覆写。
Unix 下的 $HOME/.vim 或 Windows 下的 %HOME%/vimfiles: 用户自定义脚本及插件。 该目录下的脚本会在系统脚本加载前执行, 用于扩展与替代系统脚本原有功能。
所以,将c.vim改名为c_c.vim移动到vimfiles/ftplugin。将perl-support.vim改名perl_support.vim为移动到vimfiles/ftplugin。现在,这两个插件可以“伺机”启动啦。
插件实在是太多了:
code_complete.vim
cppcomplete.vim
exec_menuitem.vim
fs_menu.vim
NERD_tree.vim
supertab.vim
taglist.vim
没有试过,作为参考。
经过观察,不管用vim打开什么文件,这两个插件都会启动。去vim的安装目录vimfiles/plugin一看,果然,有两个超过100k的.vim文件,分别是c.vim和perl-support.vim。应就是他们两个拖慢了vim的启动速度。也正是因为他们两个被放在了plugin文件夹,所以才会不管打开什么文件,这两个插件都会启动。
安装了两个vim的大型插件,分别是csupport和perl-support,每一个都是几百k。但是这两个插件让我的vim启动速度明显变慢,大概需要两秒。而不使用这两个插件,几乎是瞬间启动。
经过观察,不管用vim打开什么文件,这两个插件都会启动。去vim的安装目录vimfiles/plugin一看,果然,有两个超过100k的.vim文件,分别是c.vim和perl-support.vim。应就是他们两个拖慢了vim的启动速度。也正是因为他们两个被放在了plugin文件夹,所以才会不管打开什么文件,这两个插件都会启动。
所以,将c.vim改名为c_c.vim移动到vimfiles/ftplugin。将perl-support.vim改名perl_support.vim为移动到vimfiles/ftplugin。现在,这两个插件可以“伺机”启动啦。
自己试了下移动,果然Vim快多了好多,移动情况如下:
解释vimfiles:
vimfiles相当于用户自己的一个配置文件夹,而vim73相当于是安装目录。
vim73中的plugin何vimfiles中的plugin作用是一样的,插件放到这2个文件夹都会起作用。
建议把后安装的插件都放到vimfiles中,备份起来比较容易。
Unix 下的 $HOME/.vim/after 或 Windows 下的 %HOME%/vimfiles/after: 用于对已有设置进行一些小的修正和覆写。
Unix 下的 $HOME/.vim 或 Windows 下的 %HOME%/vimfiles: 用户自定义脚本及插件。 该目录下的脚本会在系统脚本加载前执行, 用于扩展与替代系统脚本原有功能。
所以,将c.vim改名为c_c.vim移动到vimfiles/ftplugin。将perl-support.vim改名perl_support.vim为移动到vimfiles/ftplugin。现在,这两个插件可以“伺机”启动啦。
插件实在是太多了:
code_complete.vim
cppcomplete.vim
exec_menuitem.vim
fs_menu.vim
NERD_tree.vim
supertab.vim
taglist.vim
没有试过,作为参考。
蓝金伟 說:
民大的学生你还有联系的么
向东阳 說:
哪个学生?
蓝金伟 說:
下几届还有认识的没, 我想看看能不能找几个实习生
向东阳 說:
计算机的?
专业的。
蓝金伟 說:
不一定
理科的
向东阳 說:
喔,我问问哈。
搞什么语言的。
蓝金伟 說:
恩
php的
向东阳 說:
在北京 哪儿?
蓝金伟 說:
北京
向东阳 說:
招几人?
不会PHP也没有关系吧?哈哈。
蓝金伟 說:
没关系
2,3人
向东阳 說:
嗯,我给问问。。。
蓝金伟 說:
恩
向东阳 說:
现在在哪儿上班了,还要招人。
蓝金伟 說:
卓望信息
向东阳 說:
实习生有工资吧?多少钱。
蓝金伟 說:
看能力
请把简历发我邮箱:xdy108@126.com
民大的学生你还有联系的么
向东阳 說:
哪个学生?
蓝金伟 說:
下几届还有认识的没, 我想看看能不能找几个实习生
向东阳 說:
计算机的?
专业的。
蓝金伟 說:
不一定
理科的
向东阳 說:
喔,我问问哈。
搞什么语言的。
蓝金伟 說:
恩
php的
向东阳 說:
在北京 哪儿?
蓝金伟 說:
北京
向东阳 說:
招几人?
不会PHP也没有关系吧?哈哈。
蓝金伟 說:
没关系
2,3人
向东阳 說:
嗯,我给问问。。。
蓝金伟 說:
恩
向东阳 說:
现在在哪儿上班了,还要招人。
蓝金伟 說:
卓望信息
向东阳 說:
实习生有工资吧?多少钱。
蓝金伟 說:
看能力
请把简历发我邮箱:xdy108@126.com
就一个晚上,博客垃圾留言就达到3286条,太恐怖了。还好,昨天在关电脑前设置了所有发言都需审核。Bo-blog官方论坛说,Bo-blog主程序目前有防止大量垃圾发言的有效补丁,我也安装了,但是依旧有上千条,我都不知道Bo-Blog新发的补丁有验证码和自动识别还是有这么多的垃圾留言,难道真有人自动填写验证码的一个产业链的形成,我看是无法避免喽,所以,面对如此大规模的轰炸,我们该怎么办呢?
不懂博客的我,不得不采取宁可错杀1万,不可放过1个的安全策略——
进入后台 -> 数据维护 -> MySQL -> 复制下列语句 -> 确定(以下语句,请对号入座、谨慎操作!)
批量删除未审核评论
批量删除未审核留言
delete from [db]messages where reproperty=2
批量删除已审核评论(危险,谨慎操作)
delete from [db]replies where reproperty=0
批量删除未审核引用
delete from [db]replies where reproperty=5
批量删除已审核引用
delete from [db]replies where reproperty=4
SQL操作:
Delete it:
不懂博客的我,不得不采取宁可错杀1万,不可放过1个的安全策略——
进入后台 -> 数据维护 -> MySQL -> 复制下列语句 -> 确定(以下语句,请对号入座、谨慎操作!)
批量删除未审核评论
批量删除未审核留言
delete from [db]messages where reproperty=2
批量删除已审核评论(危险,谨慎操作)
delete from [db]replies where reproperty=0
批量删除未审核引用
delete from [db]replies where reproperty=5
批量删除已审核引用
delete from [db]replies where reproperty=4
SQL操作:
Delete it:
尽管QQ有简单的截图功能,但是在家不是一开机就上QQ,网页如查询邮寄的包裹什么的,还得截图方便,IE有一款截图插件,值得推荐,名字叫:LightShot for Internet Explorer
下载地址:
http://www.525down.com/soft_info/26506.html
下载地址:
http://www.525down.com/soft_info/26506.html
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
修改my.cnf
1. 注释掉 # skip-networking
2. 给MYSQL绑定IP bind-address = 192.168.25.5 # server IP address
重启mysql.
我的处理:
1.去掉:bind-address = 192.168.25.5
2. 修改 PHPMyadmin:
/phpmyadmin # vi ./libraries/auth/cookie.auth.lib.php
$default_server = '127.0.0.1:3306'; 为: $default_server = 'localhost:3306';
为何要修改的原因是Shell下执行的情况出现了:
/usr/local/mysql/bin # mysql -h127.0.0.1 -uroot -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111),也正是PHPMYADMIN报错的内容。
典型的反其道而行之,哈哈。
本质是:机器的IP,Localhost,127.0.0.1,在/etc/hosts的指向,以及Mysql是否绑定端口。
Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111
最近遇到一个比较少见的问题,php连接mySQL的时候,会报错
Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111
这种现象还不是不断重复的,出现的频率不确定,疑似mySQL数据丢包。google之后,得到解决办法,通过修改my.cnf
1. 注释掉 # skip-networking
2. 给MYSQL绑定IP bind-address = 123.88.88.88 # server IP address
修改my.cnf
1. 注释掉 # skip-networking
2. 给MYSQL绑定IP bind-address = 192.168.25.5 # server IP address
重启mysql.
我的处理:
1.去掉:bind-address = 192.168.25.5
2. 修改 PHPMyadmin:
/phpmyadmin # vi ./libraries/auth/cookie.auth.lib.php
$default_server = '127.0.0.1:3306'; 为: $default_server = 'localhost:3306';
为何要修改的原因是Shell下执行的情况出现了:
/usr/local/mysql/bin # mysql -h127.0.0.1 -uroot -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111),也正是PHPMYADMIN报错的内容。
典型的反其道而行之,哈哈。
本质是:机器的IP,Localhost,127.0.0.1,在/etc/hosts的指向,以及Mysql是否绑定端口。
Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111
最近遇到一个比较少见的问题,php连接mySQL的时候,会报错
Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111
这种现象还不是不断重复的,出现的频率不确定,疑似mySQL数据丢包。google之后,得到解决办法,通过修改my.cnf
1. 注释掉 # skip-networking
2. 给MYSQL绑定IP bind-address = 123.88.88.88 # server IP address
在Linux手册页中,每个命令或函数的名称后面可能会跟着一个数字,这个数字表示该命令或函数所在的手册部分。Linux手册页通常分为以下几个部分:
1. 用户命令(可执行程序或shell命令)
2. 系统调用(操作系统内核提供的函数)
3. 库调用(程序库中的函数)
4. 特殊文件(通常是/dev下的设备文件)
5. 文件格式和协议(如/etc/passwd等文件的格式)
6. 游戏和屏保
7. 杂项(如宏包、自定义约定等)
8. 系统管理命令和守护进程
因此,`mmap(2)` 中的 `2` 表示 `mmap` 是一个系统调用,具体来说,它是在手册的第2部分详细描述的系统调用。
问:如:man 3 epoll_create 是可以的吧?
答:不可以,`epoll_create` 属于系统调用,应在第2部分的手册中查找。
在Linux手册页中,每个数字代表一个手册部分。对于系统调用,应该使用第2部分,而不是第3部分。第3部分用于库函数调用。
因此,`man 2 epoll_create` 才是正确的命令,用于查看 `epoll_create` 系统调用的手册页。
======================================================================
怎么安装manpages啊?
试试
yum install man man-pages
1 用户命令, 可由任何人启动的。
2 系统调用, 即由内核提供的函数。
3 例程, 即库函数。
4 设备, 即/dev目录下的特殊文件。
5 文件格式描述, 例如/etc/passwd。
6 游戏, 不用解释啦!
7 杂项, 例如宏命令包、惯例等。
8 系统管理员工具, 只能由root启动。
9 其他(Linux特定的), 用来存放内核例行程序的文档。
n 新文档, 可能要移到更适合的领域。
o 老文档, 可能会在一段期限内保留。
l 本地文档, 与本特定系统有关的。
1. 用户命令(可执行程序或shell命令)
2. 系统调用(操作系统内核提供的函数)
3. 库调用(程序库中的函数)
4. 特殊文件(通常是/dev下的设备文件)
5. 文件格式和协议(如/etc/passwd等文件的格式)
6. 游戏和屏保
7. 杂项(如宏包、自定义约定等)
8. 系统管理命令和守护进程
因此,`mmap(2)` 中的 `2` 表示 `mmap` 是一个系统调用,具体来说,它是在手册的第2部分详细描述的系统调用。
问:如:man 3 epoll_create 是可以的吧?
答:不可以,`epoll_create` 属于系统调用,应在第2部分的手册中查找。
在Linux手册页中,每个数字代表一个手册部分。对于系统调用,应该使用第2部分,而不是第3部分。第3部分用于库函数调用。
因此,`man 2 epoll_create` 才是正确的命令,用于查看 `epoll_create` 系统调用的手册页。
======================================================================
怎么安装manpages啊?
试试
yum install man man-pages
1 用户命令, 可由任何人启动的。
2 系统调用, 即由内核提供的函数。
3 例程, 即库函数。
4 设备, 即/dev目录下的特殊文件。
5 文件格式描述, 例如/etc/passwd。
6 游戏, 不用解释啦!
7 杂项, 例如宏命令包、惯例等。
8 系统管理员工具, 只能由root启动。
9 其他(Linux特定的), 用来存放内核例行程序的文档。
n 新文档, 可能要移到更适合的领域。
o 老文档, 可能会在一段期限内保留。
l 本地文档, 与本特定系统有关的。
论语言:语言的决定权往往掌握在少数人的手里,平台制定者的手里,业界大佬的手里。而我们一帮民众就只能呼啦啦跟风,墙头草随风倒。需求到了哪里,语言就跟随到哪里。
论开放:Microsoft自己将一切包装的太好了,所以带来一些便利,但同时也给我带来了迷惑,当然我相信这份迷惑不是我独有的,每个学习这些东西的人都会有迷惑。还有一点,Microsoft就是大包大揽,什么都自己弄,虽说人多,但还是不利于技术的发展,而开源技术往往开发者众多,当然存在一些不稳定的因素,但还是广大人民群众的力量大。Windows最大的成功之处就是上面应用众多,这些应用谁开发的,99.9999%都不是Microsoft开发的,一个人的能力是有限的。所以Apple出了App Store收买开发者,这样人就多了,Google也出了Web Store。然而桌面应用在我国基本没钱赚,只能通过增值服务挣钱,想挣代码的钱那时绝对没有可能的,除非我国民对版权意识加强,然而我国倡导社会主义,最终要到共产主义的,就是大家有什么好东西就要共享,版权神马的都是浮云。飞信还因为.NET容易被反编译,又用C++开发了,大家觉得还是二进制安全。还有就是对于一些非主流的技术Microsoft团队维护能力有限导致bug丛生,又不开源用起来费劲,各种hack,别无它法。
最后,世界仍旧很美好,学习第二语言和其它框架具有重要性,有你好看。
阅读全文
论开放:Microsoft自己将一切包装的太好了,所以带来一些便利,但同时也给我带来了迷惑,当然我相信这份迷惑不是我独有的,每个学习这些东西的人都会有迷惑。还有一点,Microsoft就是大包大揽,什么都自己弄,虽说人多,但还是不利于技术的发展,而开源技术往往开发者众多,当然存在一些不稳定的因素,但还是广大人民群众的力量大。Windows最大的成功之处就是上面应用众多,这些应用谁开发的,99.9999%都不是Microsoft开发的,一个人的能力是有限的。所以Apple出了App Store收买开发者,这样人就多了,Google也出了Web Store。然而桌面应用在我国基本没钱赚,只能通过增值服务挣钱,想挣代码的钱那时绝对没有可能的,除非我国民对版权意识加强,然而我国倡导社会主义,最终要到共产主义的,就是大家有什么好东西就要共享,版权神马的都是浮云。飞信还因为.NET容易被反编译,又用C++开发了,大家觉得还是二进制安全。还有就是对于一些非主流的技术Microsoft团队维护能力有限导致bug丛生,又不开源用起来费劲,各种hack,别无它法。
最后,世界仍旧很美好,学习第二语言和其它框架具有重要性,有你好看。
阅读全文
使用 rinetd 进行端口转发, linux下简单好用的端口映射转发工具rinetd。
Unix/LinuxC技术 jackxiang 2011-5-12 12:56
安装rinetd
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar -zxvf rinetd.tar.gz
cd rinetd
make;make install
配置文件
vi /etc/rinetd.conf
最简单的配置方式
192.168.1.100 80 192.168.1.200 80
这样就完成了
然后你所有对于 192.168.1.100 80端口的访问将转发到 192.168.1.200 的80端口上
但是有个前提就是 192.168.1.100这台机子上的没有启动任何占用80端口的进程,如apache等;否则将转发不成功。
PS:他只能转发TCP的端口,不能转发UDP以及其他协议的端口;
rinetd的详细配置教程
http://hi.baidu.com/opbsder/blog/item/31d6f545a1c2f9318694734a.html
——————————————————————————————————————————————————————————————
linux下简单好用的工具rinetd,实现端口映射/转发/重定向
官网地址http://www.boutell.com/rinetd
软件下载
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
解压安装
tar zxvf rinetd.tar.gz
make
make install
编辑配置
vi /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 2222 192.168.0.103 3389
1.2.3.4 80 192.168.0.10 80
说明一下(0.0.0.0表示本机绑定所有可用地址)
将所有发往本机8080端口的请求转发到172.19.94.3的8080端口
将所有发往本机2222端口的请求转发到192.168.0.103的3389端口
将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口
命令格式是
bindaddress bindport connectaddress connectport
绑定的地址 绑定的端口 连接的地址 连接的端口
或
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
启动程序
pkill rinetd ##关闭进程
rinetd -c /etc/rinetd.conf ##启动转发
把这条命令加到/etc/rc.local里面就可以开机自动运行
查看状态
netstat -antup
需要注意
1.rinetd.conf中绑定的本机端口必须没有被其它程序占用
2.运行rinetd的系统防火墙应该打开绑定的本机端口
例如:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
来自:http://blog.csdn.net/paulluo0739/article/details/7023711
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar -zxvf rinetd.tar.gz
cd rinetd
make;make install
配置文件
vi /etc/rinetd.conf
最简单的配置方式
192.168.1.100 80 192.168.1.200 80
这样就完成了
然后你所有对于 192.168.1.100 80端口的访问将转发到 192.168.1.200 的80端口上
但是有个前提就是 192.168.1.100这台机子上的没有启动任何占用80端口的进程,如apache等;否则将转发不成功。
PS:他只能转发TCP的端口,不能转发UDP以及其他协议的端口;
rinetd的详细配置教程
http://hi.baidu.com/opbsder/blog/item/31d6f545a1c2f9318694734a.html
——————————————————————————————————————————————————————————————
linux下简单好用的工具rinetd,实现端口映射/转发/重定向
官网地址http://www.boutell.com/rinetd
软件下载
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
解压安装
tar zxvf rinetd.tar.gz
make
make install
编辑配置
vi /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 2222 192.168.0.103 3389
1.2.3.4 80 192.168.0.10 80
说明一下(0.0.0.0表示本机绑定所有可用地址)
将所有发往本机8080端口的请求转发到172.19.94.3的8080端口
将所有发往本机2222端口的请求转发到192.168.0.103的3389端口
将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口
命令格式是
bindaddress bindport connectaddress connectport
绑定的地址 绑定的端口 连接的地址 连接的端口
或
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
启动程序
pkill rinetd ##关闭进程
rinetd -c /etc/rinetd.conf ##启动转发
把这条命令加到/etc/rc.local里面就可以开机自动运行
查看状态
netstat -antup
需要注意
1.rinetd.conf中绑定的本机端口必须没有被其它程序占用
2.运行rinetd的系统防火墙应该打开绑定的本机端口
例如:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
来自:http://blog.csdn.net/paulluo0739/article/details/7023711
[实践OK]Linux 下的du命令结合awk通过du来扫描大于G的文件夹,新加所有文件上G的查找方法-from:scottjiang江庆海,外加上文件层级大小统计。
Unix/LinuxC技术 jackxiang 2011-5-12 12:48
一、查找上G的文件:
列出上G并删除的命令,如果加上 |sh 就能删除掉:
find /data/logs/nginx -type f -name "*.log-*" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "rm -Rf " $2}'
du -sh /data/logs/swoole/swoole.log
99G /data/logs/swoole/swoole.log
上G的日志/data/logs/swoole/swoole.log清空即可:
find /data/logs/swoole -type f -name "*.log" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "echo > " $2}'|sh
#定时清空swoole测试机上上G的文件
* 1 * * * find /data/logs/swoole -type f -name "*.log" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "echo > " $2}'|sh
二、查找上的G目录:
这样来查找:
示例Demo:
root@116.255.139.240:/data1/logs# find . -name "*" |du -sh *|awk '{if(match($1, "G")>0) print $0 }'
5.0G access.log
Linux中清理磁盘空间时,经常需要找出大于200M的文件。
这个命令可以实现这个功能:
find / -size +200M -exec du -h {} \;
http://blog.csdn.net/yfleng2002/article/details/8080556
三、文件夹大小的及层级统计:
du -h --max-depth=1 |grep 'G' |sort #查看上G目录并排序
du -h --max-depth=0 user
--max-depth=n表示仅仅深入到第n层文件夹,此处设置为0,即表示不深入到子文件夹。
du -h --max-depth=1 /home/|grep [M] |sort #查看上M目录并排序
21M /home/jackx
32M /home/
9.2M /home/jackxiang
du -h --max-depth=1 |sort #查看当前目录下所有一级子目录文件夹大小 并排序
1.2G .
12K ./.ssh
16K ./.gconfd
16K ./js
45M ./yucc
464K ./s
48K ./.gconf
48K ./.subversion
参考:http://www.cnblogs.com/mfryf/p/3243211.html
awk match用法,上面是返回值作上G判断,还能正则,如下:
cat test
this is wang ,not wan
that is chen, not che
this is chen ,and wang ,not wan che
awk '{match($0,/.+is([^,]+).+not(.+)/,a);print a[1],a[2]}' test
wang wan
chen che
chen wan che
来自:https://www.cnblogs.com/timeisbiggestboss/p/7242351.html
列出上G并删除的命令,如果加上 |sh 就能删除掉:
find /data/logs/nginx -type f -name "*.log-*" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "rm -Rf " $2}'
du -sh /data/logs/swoole/swoole.log
99G /data/logs/swoole/swoole.log
上G的日志/data/logs/swoole/swoole.log清空即可:
find /data/logs/swoole -type f -name "*.log" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "echo > " $2}'|sh
#定时清空swoole测试机上上G的文件
* 1 * * * find /data/logs/swoole -type f -name "*.log" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "echo > " $2}'|sh
二、查找上的G目录:
这样来查找:
示例Demo:
root@116.255.139.240:/data1/logs# find . -name "*" |du -sh *|awk '{if(match($1, "G")>0) print $0 }'
5.0G access.log
Linux中清理磁盘空间时,经常需要找出大于200M的文件。
这个命令可以实现这个功能:
find / -size +200M -exec du -h {} \;
http://blog.csdn.net/yfleng2002/article/details/8080556
三、文件夹大小的及层级统计:
du -h --max-depth=1 |grep 'G' |sort #查看上G目录并排序
du -h --max-depth=0 user
--max-depth=n表示仅仅深入到第n层文件夹,此处设置为0,即表示不深入到子文件夹。
du -h --max-depth=1 /home/|grep [M] |sort #查看上M目录并排序
21M /home/jackx
32M /home/
9.2M /home/jackxiang
du -h --max-depth=1 |sort #查看当前目录下所有一级子目录文件夹大小 并排序
1.2G .
12K ./.ssh
16K ./.gconfd
16K ./js
45M ./yucc
464K ./s
48K ./.gconf
48K ./.subversion
参考:http://www.cnblogs.com/mfryf/p/3243211.html
awk match用法,上面是返回值作上G判断,还能正则,如下:
cat test
this is wang ,not wan
that is chen, not che
this is chen ,and wang ,not wan che
awk '{match($0,/.+is([^,]+).+not(.+)/,a);print a[1],a[2]}' test
wang wan
chen che
chen wan che
来自:https://www.cnblogs.com/timeisbiggestboss/p/7242351.html
ctrl + v才是块视图模式,用块模式选中多行,然后在按大些的I,写入注释如://,后按ESC,这些选中的多行也就都给注释了。
esc
0 跳到行首
ctrl+v 可视块模式
jjj 下移3行
I 进入插入模式
//
esc
整个做缩进:
=G
二)vi选中花括号里面的全部内容不包括{}:
在括号下面ctrl+V(大写v),后在k,到括号那一行(如果括号后有注释,得把光标放在{上后,再按%),然后按下%号,选中到了下面括号},再k到上一行,也就选中了括号里出的。
而这个sublime有一个快捷键:ctrl+shift+m:选中花括号里面的全部内容不包括{}。
阅读全文
esc
0 跳到行首
ctrl+v 可视块模式
jjj 下移3行
I 进入插入模式
//
esc
整个做缩进:
=G
二)vi选中花括号里面的全部内容不包括{}:
在括号下面ctrl+V(大写v),后在k,到括号那一行(如果括号后有注释,得把光标放在{上后,再按%),然后按下%号,选中到了下面括号},再k到上一行,也就选中了括号里出的。
而这个sublime有一个快捷键:ctrl+shift+m:选中花括号里面的全部内容不包括{}。
阅读全文
玩第一关,每次都没法通关,最后,经验总结如下:
1.必须要在适当机会对核心人物发起攻击。
2.必须要注意保存自己。
3.一定要避开那些小人物,遇到机会也要狠狠的打。
---
如果不对大人物加以攻击力度,不光是小人物很嚣张,而系统设定上也会让大人物腾出时间和瞄准机会对你下手,你的血液很快就掉光了,一个人肯定过来了关。
人生何尝不是,需要对核心的事情不放,不断的去打击它,了解她,对细小问题也要在有机会的时候给捎带解决了,才有可能成功不是,呵呵。
给嘟嘟的无敌网页游戏:
http://www.3366.com/flash/65167.shtml
1.必须要在适当机会对核心人物发起攻击。
2.必须要注意保存自己。
3.一定要避开那些小人物,遇到机会也要狠狠的打。
---
如果不对大人物加以攻击力度,不光是小人物很嚣张,而系统设定上也会让大人物腾出时间和瞄准机会对你下手,你的血液很快就掉光了,一个人肯定过来了关。
人生何尝不是,需要对核心的事情不放,不断的去打击它,了解她,对细小问题也要在有机会的时候给捎带解决了,才有可能成功不是,呵呵。
给嘟嘟的无敌网页游戏:
http://www.3366.com/flash/65167.shtml