Crane
Table_bottom

Search
Loading
Table_bottom

分类
Table_bottom

随机文章
Table_bottom

标签云
Table_bottom

最新评论
Table_bottom

链接
Table_bottom

功能
Table_bottom

测试堆的最大申请数量

看到说linux下的虚拟地址空间分给进程本身的是3GB(高址的1GB是内核空间,也就是0xc000000以上地址),所以有这样一个程序来测试用malloc最多能申请多少内存?

#include<stdio.h>
#include
unsigned max=0;
int main(void)
{
  int i,count;
  unsigned size[]={1024*1024,1024,1};
  for(i=0;i<3;i++){
    for(count=1;;count++){
      void *p=malloc(max+count*size[i]);
      if(p){
        max+=count*size[i];
        free(p);
      }
      else{
        break;
      }
    }
  }
  printf("The max memory i can alloc is %u\n",max);
  return 0;
}

在我的linux机器上跑了后发现只有1.1G左右的空间,想一下应该是内存768M+swap400多M,所以到不了那么大吧!

 

 

 

 

使用wget做网站镜像

记得以前在网上看到一个好网站的时候,因为那时上网时间少,就想着把它整个抓下来,存到自己硬盘上,想什么时候看就什么时候看,那多爽。记忆中那时用的软件就是webzip了,但是这家伙是个共享版,如果你用的不是什么什么特殊版本的话,那么这个家伙是会有限制的,功能上的限制忘了,记得的是好像它会插广告在网页内容里面,这实在是极不爽的一件事。

现在虽然上网的时候多了,要查资料的话也能随时上网查,看到好的站也能随时打个书签收藏(比如好用的用tag管理书签的delicious,书签再多也不怕),免得以后要再来看。但是又发现了这样的问题,比如说我非常喜欢某个家伙的博客,但这个家伙的博客访问比较慢,每开个页面都要等好长时间,我就想把它全部弄到本地来;或者说遇到了这样的情况,看到这样一个网站(地址),就是一本书的html版。于是想把它整个保存到本地来,这样看起来就方便了,不用每次看书都跑到人家网站去,而且这个世界,没准今天网上还找得到的资源下一分钟就没了,所以想把看到的好东西就保存起来。

其实不用webzip这些看起来很强大的软件,我们有一个命令行下的软件,短小精悍,功能强大,工作稳定,它就是wget(一个linux下的软件,不过windows下装cygwin包的话也能使用),放心,不要以为它是命令行的就很挫,它还断点续传呢,这次跑了一半关机了,没关系下次还能接着干活,只要给它个 -c  参数就行了。

要做网站镜像用wget只要3个参数就搞定了,所以就只需要打这样一条命令:

wget -mkL $URL
其中参数意义:
m --mirror 做镜像的意思
k --convert-links 把链接变成适合本地阅读的形式
L --relative只抓取与本网站相关的链接,不会因为出现别的网站的链接而一直追踪抓下去。

$URL 要抓取的网站的地址

这三个都是必要的参数,当然还有其它的参数可以实现相关功能,比如使用 -O 指定输出文件名字(默认是网站url命名),网络状况不好的话可以使用 -t NUMBER 或完整形式 --tries=NUMBER,其中NUMBER表示重试次数,0表示无限,这样就不怕网络不好异常中断了。

 敲好命令,一回车,就看到wget在努力的干活了,默认是输出详细信息,可以看到每个文件的下载进度。

水木年华演唱会

今天看了人生第一场演唱会,水木年华,我非常喜欢的一个组合,不过参加纯属巧合。因为当时看到海报的时候,看到票价就退缩了,咱还没到这样消费的程度。

于是,晚上我本来悄悄的在写着代码,结果cat突然发来一短信,黄牛票5元,看时间已经只剩下1个多小时了,不过,我纳闷了,难道水木真是过气了吗?怎么票都没有卖完啊!还是因为这次的体育馆实在是太大了,天气又冷没来得了这么多人?不过有一件事是确定的,可以去凑凑热闹,因为体育馆就在宿舍旁边不远的地方,实在是近,哈,行动!

还没到入口,就见到了传说中的黄牛,直接问我要不要票,5元一张,也没啥说的,直接搞定一张,进了体育馆,由于算是主场,对这体育馆的结构比较熟,所以直接从上层下到底层,直奔前面距舞台最近的地方,居然,第三排还有个座位,RP啊,咱也不客气啦!

刚来就是一首 新年快乐 ,真的不错啊!我喜欢这首歌,喜欢这歌词。于是边享受水木的歌声,边观察下周围的情况,发现我正好坐在一个什么号称水木年华联盟会湖北分会的左边,这帮人实在是让我见识到了歌迷的疯狂,二九天吧,统一的印着水木此次宣传海报的T-shirt,啧啧,果然是热情似火不怕冷啊!举着大旗使劲挥啊,一首歌罢就大喊,水木,加油!水木,我爱你!歌曲一有高潮,口哨声就一下子窜了起来。

<再见了,最爱的人>,<you raise me up>,<太阳的眼泪>,<在他乡>,<启程>,<完美世界>这一首首熟悉的歌唱下来,终于听到了水木真人版的啊!真的很爽。不过学校安排的保安力量也真够强大,水木刚从舞台台阶上往下走了一小步,保安就堵住了通道,而歌迷也一下子就涌了上来,我承认,保安的确是够多,人墙啊!不过水木还是有两次和观众比较近的接触,最近的一次离我2米远,不过匆忙间没带相机,手机在这种强大的灯光效果下实在是出不了效果。

由于我坐得靠前,到后面歌迷都涌上来了,也没法坐了,不过这一个小时,的确是挺快的,马上的就听到卢庚戌说下面这首歌希望大家一辈子都记住:<一生有你>,这就到最后一首歌了,随着兴奋的歌迷的口哨,尖叫,水木走下台来,进行了最后一次和歌迷的互动、一起歌唱,在高潮中就结束此次演唱会。

喜欢水木年华,喜欢这首一生有你。

 

因为梦见你离开

我从哭泣中醒来

看夜风吹过窗台

你能否感受我的爱

等到老去那一天

你是否还在我身边

看那些誓言谎言

随往事慢慢飘散



多少人曾爱慕你年轻时的容颜

可知谁愿承受岁月无情的变迁

多少人曾在你生命中来了又还

可知一生有你我都陪在你身边

当所有一切都已看平澹

是否有一种坚持还留在心间

BT时代正在结束?

最近陆续看到消息,海盗湾(the pirate bay)在网站上写了这样一段话

TPB has decided that there is no need to run a tracker anymore, so it will remain down! It's the end of an era.

我们认为没有必要再维护Tracker服务器了,它不会再上线了!它的时代已经结束了。

海盗湾关闭了tracker服务器,立即我们也看到Mininova也在一夜之间删掉了服务上近一百万的种子文件,以后只有通过审查的出版商才可以上传。

想想我们的BT下载有多爽,有他们这样的网站做种子储存索引的服务,想要什么一搜之间都能找到种子文件,然后下载相应的torrent文件。接着,用一个BT下载客户端软件,打开这个文件。这时,客户端软件就会根据torrent文件中的网址,自动连接Tracker服务器,从它那里接收到其他正在下载该文件的人的网址名单。下一步,软件就一一与名单上的网址取得联系,从他们那里获取文件的片段,直到整个下载完成。

但是随着tracker服务器的关闭,Mininova删除种子文件,这些东西一下子全成明日黄花了,而且也说不准其它的torrent索引网站会坚持到什么时候。版权问题始终是永远的痛,海盗湾已经经历了几年的官司,曾经受到政府,网络运营商的重重封锁,今年尤其多灾多难,但海盗湾依然坚定的提供服务,像他们这种为了信念坚持的人,他们不会放弃的,只会换个方式重新来战斗。就像他们说的那样,他们认为有更好的技术可以实现下载。

为了比较先来看一下BT下载,从上面的过程可以看到,tracker服务就是整个BT下载的中心,是整个BT下载的灵魂,没有了tracker服务器,所有的BT下载软件都成了瞎子,不知 道到什么地方去找文件,找谁去要文件。因而tracker服务器也是版权组织打击的重点,因为tracker服务器是公开的,是露在人眼前的靶子,只要 tracker服务器倒了,BT下载也就完了。

没有了中心的tracker,还能下载不?或者说去中心化的下载模式应该是什么样的?

事实上,有“点对点”的模型,2002年,纽约大学的两个教授Petar Maymounkov和David Mazières发表了一篇论文,提出了一种真正去中心化的“点对点”下载模型,他们把它叫做Kademlia方法。Emule率先在软件中支持这种方法,KAD网络就是这样来的。到了2005年,BT软件也开始跟进了。目前,所有主流的BT下载客户端软件都支持这种方法。在BT下载中,这被叫做DHT协议(Distributed hash table,分布式哈希表)。

这种方式应该是这样工作的(可能有些东西还是不清楚,具体可以参考上面给的wikipedia的内容)

每一台加入BT下载的计算机,都被称为一个节点(node),有一个自己的ID。这个ID是一个哈希函数值,通过对要分享的文件内容或它的元数据进 行哈希运算而得到。这就是说,如果两台计算机正在下载同一个文件,那么它们的ID应该是彼此相似的。于是,每一台计算机就通过寻找与自己相似的ID,来找 到自己可以与之交换数据的其他节点。

DHT协议的另一个巧妙之处在于,每一台计算机只保留自己附近的一部分节点信息。因此,为了得到更多的节点信息,就必须采用接龙方式,在一个个节点 之间跳跃,逐步得到全网的节点分布图。这种信息获取方式,就保证了整个网络没有单个的中心,即使一个节点下线了,依然可以通过其他节点来获取文件,因此也 就不需要Tracker服务器来告诉你,其他节点在什么地方了。

所以这些资源并不是因为没有了tracker服务器而没有办法找到,因为有DHT网络的存在,这是一种分布式tracker的方式,不会再有tracker服务器这种中心的东西,因而也不容易被打压,但是一种更灵活的方式,emule一直是这样做的,不是很成功吗?

话说枪打出头鸟,好多tracker服务提供商被追杀,所以还是这种方布式的工作方式好,永远不会受到打压,因为没有一个中心,或者说人人都是中心,只要还有人在用,就会有资源的流通。

就像emule提供的专用ed2k链接一样,现在在海盗湾网站可以看到这样一种链接

magneturl

看那个磁铁样的链接内容像这样

magnet:?xt=urn:btih:8f69649f7dd159ebb90432df19d14bf7ce7fa719&dn=My+Friends+Tigger+and+Pooh%3A+Bedtime+with+Pooh+-+DVD+1+-+dublat&tr=http%3A%2F%2Fdenis.stalker.h3q.com%3A6969%2Fannounce

大概是这么个意思:

magnet:协议名。

xt:exact topic的缩写,表示资源定位点。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用SHA1和MD5。这个值是文件的标识符,是不可缺少的。

dn:display name的缩写,表示向用户显示的文件名。这一项是选填的。

tr:tracker的缩写,表示tracker服务器的地址。这一项也是选填的。

这样做显而易见的好处是,整个下载网络的可靠性提高了,每一个节点都是可以被替代的。另一个好处是,审查变得更困难了,因为每次下载的路径都是不一样的,而且每 个节点都是动态变化的,导致实际上无法追踪谁在下载。此外,magnet URI只是一个字符串,非常容易传播,根本无法禁止。

难道说这种分布式的才是下载的未来?

纪念Opera Mini 4.0

2009年11月21号0:45分,当我习惯性的拿出手机来上网的时候,Opera Mini 却提示我说中国用户请升级至Opera Mini中国版,更快更稳定,我用的是4.0的国际版本,为了自由上网,我就喜欢这个版本,现在在某种力量下,在某种程度上,我们却连自由选择软件或者说软件

继续阅读