Milestone运行debian成功

2010年5月14日 没有评论

  milestone入手快2个星期了,无意中发现一篇debian on android的文章 实现了在android中运行debian linux,说明都比较详细,按照其方法下载了其提供的压缩包,解压复制到sd卡中,但运行bootdeb却总是出错.
出现在bootdeb

mount -o loop,noatime $kit/debian.img $mnt

这句运行后报错返回:mount:can’t setup loop device:No such file or dictionary

经过测试后发现是没有ext2.ko,以及脚本创建的loop device与实际使用的不一样。

第一个问题是解决ext2,需要下载 ext2

insmod /{path}/ext2.ko

加载ext2模块

第二个问题是解决loop设备:
首先使用

losetup -f 

查看mount loop时第一个去访问的loop device
查看该loop device是否存在,如果不存在则用mknod创建一个。

最后运行bootdeb,成功启动debian

分类: 高级民工 标签: ,

Milestone使用USB上网

2010年5月9日 没有评论
$su
#busybox route add default gw 192.168.0.1
#setprop net.dns1 8.8.8.8

192.168.0.1为USB连接后对应的IP地址。
主要的问题可能是无法解析域名,设置DNS为8.8.8.8后可以正常解析。

分类: 高级民工 标签: ,

一个简单的java Dword类

2010年4月19日 没有评论

一个java版的Dword类,实现简单的Dword操作。目前只包含xor,shr,and,add四种运算,以及在dword,int,byte数组之间的操作。

下载地址:download

分类: 高级民工 标签:

php使用cookie防止重复提交是不安全的

2010年3月20日 没有评论

最近在做一php项目时遇到需要检查重复提交的情况,搜索了一下发现一种做法是使用cookie来防止,起初一看还觉得可行,但细想以下发现在某些情况下是无法达到目标的。
  cookie这个东西是属于客户端的,在设置了cookie后每次访问浏览器都会将设置的cookie发送给服务器。用cookie来防止重复提交的做法是在访问需要提交信息的页面时设置一个cookie值,在接收的页面验证这个cookie值是否满足规则。
如下面的测试代码:
test0.php

< ?php
sleep(2);//模拟有延迟比较大的情况
if($_COOKIE['onlypost'] == 't'){
	setcookie("onlypost", 'f'); 
	if (isset ( $_POST ['msg'] )) {
		mysql_connect ( 'localhost', 'root', 'root' );
		mysql_select_db ( 'test' );
		mysql_query ( "insert into t_msg(msg) values('" . $_POST ['msg'] . "')" );
	}
    echo 'submit ok';
}else{
	echo 'submit error!';
}
?>

test1.php

< ?php 
setcookie("onlypost", 't'); 
?>
<form action="test0.php" method="post">
msg:<input type="text" name="msg"/><input type="submit"/>
</form>

测试数据表

CREATE TABLE `t_msg` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `msg` VARCHAR(50) ,
  PRIMARY KEY (`id`)
)

在访问test1.php时,如果用户的延迟比较大,填写信息后连续两次或多次点击提交按钮。因为在第一次提交后服务器还没有返回信息重设cookie,浏览器接下来发送的请求数据包中cookie的值始终是一样。
阅读全文…

分类: 高级民工 标签: ,

wordpress的缓存机制

2010年3月11日 1 条评论

  Wordpress缓存机制分为内置缓存机制和外部缓存插件两种方式。
  Wordpress从2.0起出现的cache.php实现了一个在WP内部的缓存机制。从代码上看其作用只能适当的减少在一次请求过程中SQL查询的次数,而不能如JAVA、ASP.NET那样实现驻留在内存中的缓存机制。这与PHP的特性有关,PHP是一种解释性的语言,其是无法驻留内存的,除非使用PHP相关的缓存插件。

  对于目前的wordpress缓存插件而言,都以生成静态页面的方式实现。如比较常用的wp_super_cache与cos_html_cache。
  开启这些高级的缓存存机制的一般要在wp-config.php中定义WP_CACHE,即:

define('WP_CACHE',true);

这样在wordpress的wp-setting.php中就会加载wp-content/advanced-cache.php。

wordpress内置缓存的工作原理与流程:

在一次请求过程中,如果开启了内置缓存机制,那么在执行一次查询时将会把一些数据通过cache.php中的wp_cache_set()方法来暂时存放。在这次请求中如果再次出现查询且满足一些逻辑上的条件,那么会先通过wp_cache_get()方法来查找缓存中的数据,如果存在那么直接取到,如果不存在再向数据库查询。这样就减少了一些对数据库的查询次数。不过需要注意的是这个缓存只是存在于本次请求周期中。

分类: 高级民工 标签: ,