1. Python struct and Endianness

    偶然间在stackoverflow上看到下面这个问题:

    Please explain me what does this piece of code do.
    
    h should be 32Byte result from sha256 calculation.
    
    I am rewriting parts of this code for my project in C++ and I'm not sure if this switches byte order per 4byte chunk or change byte order on ...

    Read more...


  2. vps下lnmp配置

    换了hostigation的vps(128MB)之后,试了Debian,Ubuntu较新的版本都不行,总是提示说MySQL安装失败,最后不得已换上ubuntu 10.04勉强把mysql装上,但网站连接十次要有9次连不上。知道是肯定是那装的那些软件版本太低,bug太多。但还是没管它。

    最近得有空闲时间,决定把问题给解决。
    备份整个数据库:

    mysqldump -p -u --all-databases > all.sql
    

    备份归档wordpress目录,nginx配置文件目录
    然后安装fedora 18

    安装mysqld

    yum update #升级现有包
    yum install mysql-server #mysqld
    

    安装mysql-server
    当启动mysqld时出现错误,无法启动。(折腾半天)
    列出包里面的文件:

    rpm -ql mysql-server
    

    日志文件在/var/log/mysqld.log
    查看mysqld.log发现错误信息:

    vim ...

    Read more...


  3. file hole

    当lseek设置文件偏移量超过文件尾端,并写了某些数据后,就会产生文件空洞.

    文件长度st_size:

    文件中的空洞会影响文件的长度,read读含有空洞的文件时,会把空洞填0.read读空洞也会读到0值.

    文件占用磁盘大小:

    文件在磁盘中是以4k的逻辑块进行存储的.每个文件占用的磁盘大小都是4k的整数倍.

    write()写,实际内核是一次写4k数据到磁盘的.文件一般是块缓冲的.物理写大小为4k.

    空洞占用的物理空间最多不超过2个逻辑块(8k).

    若空洞将要使文件磁盘大小增长多于1个逻辑块大小时,将进行取余.

    Read more...


  4. Teiba Cookie

    首先访问http://tieba.baidu.com/,登陆要勾选记住我的登陆状态(即自动登录),这样Cookie才能长期有效.

    对于Chrome浏览器:

    右键审查元素,打开开发者工具,选择Network,刷新贴吧首页.然后上滑找到tieba.baidu.com那一项,点击headers,在Request Headers中找到Cookie那一项,很长的一串字符串.复制到http://signalltiebas.duapp.com/settings页面中的Cookie框中提交就可以了.

    其它浏览器类似.

    Read more...


  5. Ajax初级使用

    当一个页面有多个地方需要使用Ajax与服务器通信时,应该尽量把发送Ajax封装成一个函数,在这个函数里面处理各种不同的请求.这样能适当减少代码的重复.

    Ajax使用流程, new XMLHttpRequest(),open(),send(),然后处理响应,根据响应内容判断,给予用户提示.大体就是这种流程.

    Read more...


  6. JavaScript实践初步

    \<\<JavaScript高级程序设计>>也看了大半本了,但却发现不会写JS程序,对界面设计什么的总是有一种畏惧的心理,最近这几天迷上了Chrome_Extensions开发了,想做一个插件来着.顺便练习了下JS编程,补充一下苍白的实践经验.

    虽然一个晚上,options.html页面都没做完,但还是学到了些知识.本来这些关于代码的没有必要写出来的,但今天晚上和JS作战,领悟了些许编程思想,觉得还是值得分享的.

    关于模块化编程有了些许理解,它不在是教科书中的古板,毫无印象的概念.

    1. 一个函数,一个类,一个文件都可以说是模块,晚上某一特定功能.
    2. 模块与模块之间界限要清楚,一个模块不能做另一个模块的事情.不然的话,有的受的,逻辑混乱,思维不顺,无休止的调试.
    3. 关于JavaScript编程,页面显示代码尽量只根据页面的结构来动态显示页面,数据保存代码做它自己的事.符合上一条规则.

    一个tab空格健无意间在parent的childNodes插入了一个Text Node.造成至少有半个小时的调试.

    突然发现学DOM的一个好工具:

    Chromium自带的开发者工具看某个element的属性比www.w3schools.com的JavaScript在线教程舒服多了.

    Read more...


  7. 2>&1

    在shell中,digit1 >& digit2表示将描述符digit1重定向到描述符digit2的同一文件.

    那么:

    ./a.out > out 2>&1

    将标准输出和标准出错输出重定向到out文件

    ./a.out  2>&1 > out
    将标准出错输出重定向到标准输出,标准输出重定向到out文件。

    两者功能并不相同。

    为什么顺序不一样产生的效果就不一样呢?

    实质上shell解释器是在内部调用dup2()类似的函数来实现重定向的.

    因为shell从左向右解释命令.

    对于 ./a.out > out 2>&1

    先调用 dup2(out,STDOUT_FILENO);//out,STDOUT_FILENO指向同一文件表项

    然后再是 dup2(STDOUT_FILENO,STDERR_FILENO);//STDERR_FILENO,STDOUT_FILENO指向同一文件表项

    而./a.out ...

    Read more...


  8. file descriptor

    和文件描述符有关的函数:

    • open
    • close
    • dup
    • dup2
    • fcntl

    文件描述符为int整型变量,范围0-OPEN_MAX;

    在linux下OPEN_MAX未在limits.h下定义,使用sysconf(_SC_OPEN_MAX)获得其值.

    open打开文件返回文件描述符没什么好说的.

    close()关闭文件描述符,注意当有多个文件描述符指向同一文件表项时,必须close所有与之关联的描述符才能真正关闭文件.

    When all file descriptors associated with an open file description have been closed, the open file  description shall be freed.

    此时无法再对文件进行更改.

    dup(),dup2()复制现存的文件描述符,在内核数据中一个新的文件描述符被创建.当总数达到OPEN_MAX时,进程无法再打开文件.

    当cmd=F_DUPFD时 fcntl和dup,dup2功能类似.

    附测试程序 ...

    Read more...


Page 1 / 7 »