Apr 3
张文之前向我推荐了firefox的这个插件,可以让firefox用起来像vim一样。
虽然看他用得挺爽,但是一直没有换过去。
今天打开linuxtoy一看,vimperator出了2.0的正式版了,于是就去装了一个
果然像vim一样,很好玩。
Mar 31

Wireless USB - 无线USB 不指定

felix021 @ 2009-3-31 00:21 [IT » 其他] 评论(1) , 引用(0) , 阅读(5927) | Via 本站原创
发现最近手头的USB外设越来越多了。
手机,蓝牙适配器(For蓝牙键盘),读卡器,无线鼠标,有线鼠标,有线键盘,两个笔记本音箱,数码相机,U盘,移动硬盘。。。
当然,平时总接在电脑上的就是那个无线鼠标的接收器(果然是双飞燕说的“即插即忘”阿!)
然后就发现,只有三个USB口的小黑经常很囧,特别是有2个USB口是竖着、挨得很紧的,很不方便。
于是今天突发奇想,是否有一种通过蓝牙传输的USB HUB设备呢?
百度和Google告诉我,有一种设备,是USB HUB,也是蓝牙适配器,但是很遗憾,它是通过USB线连接到主机的。。
晚上又搜了一下,看到了D-Link和Belkin推出了无线USB HUB,很牛B,但是很贵,>1K,反正不是我买得起的。
后来又发现,其实我需要的,不就是传说中的WUSB么?
看了一下相关资料,WUSB的三个芯片,2个在2006年6月份就量产了,剩下的一个在2007年1月份量产
日本在2006年建立了相应标准,欧洲也随后建立了标准,我国在2007年建立了草案
按照文章上说的,2008年开始退出WUSB设备,2009年应该是WUSB火爆的一年
但是很奇怪,周围没有相应的产品上市。
WUSB,到底离我们还有多远?


p.s. 想买个PCMCIA转USB2.0的插槽,大概52块钱+11块的邮费。
Mar 30
今天中午到了,测试了一下,在windows下面OK,在ubuntu下面也可以直接搜索到并使用。
然后挂起,到实验室去,开机,又不能用了,囧=.=
搜了好多地方,发现这篇文章提供了可以解决问题的办法:
http://biaoming.javaeye.com/blog/75454

具体步骤如下:
引用
$ sudo apt-get install bluetooth bluez-btsco bluez-passkey-gnome bluez-pin bluez-utils gnome-bluetooth bluez-btsco bluez-compat
$ sudo hidd --search

于是蓝牙键盘就可以用了:)
注意,有些包可能装不上,那就忽略掉

p.s. 按照文章的说法,要把这一句加入要/etc/rc.local里面去,这样开机就可以使用
引用
/usr/bin/hidd --server &




Mar 29
10题,Boluor负责看ABC,Sandy负责看DEF,Felix负责看HIJK。
其实是给自己找理由,拖时间,然后等Board看拿题可以做,嗯。
一番折腾以后开始写。。额。。没题可以写=.=
Boluor看了A题,推导公式,推了半天没思路(怪不得他家教的高中生立体几何听不懂=.=)
于是我接过来,把公式从头推导了几遍,写阿写阿写,写,wa了n次。
发现样例数据是圆柱,出题人太狠了=.= 都不给个圆台的测试一下。。。
然后发现,rRHV是float,不是integer =.= Felix的错,嗯。
后来找了几组比较好算的数据测试,比如1 2 2 19/12PI之类的,都OK,但是还是WA。
而且加了一句 if(hx > H) hx = H; 但是还是WA,囧。
好吧,Sandy看了看,E题是个简单的模拟,于是他上。
写出来代码还是比较顺利的,跑样例也是lose/win/lose,很好很强大,可惜就是WA。
然后多亏了我家可爱宠物加菲的名字比较短,xay,算了一下,xx, 50, xx
然后对照了一下Sandy的程序,xx, 22, xx,嗯。囧阿。
查了一下,原来是累乘器初值是零,改之,交之,AC之,Happy之,2Hour了已经=.=
然后继续A,Boluor以为是精度的问题(因为需要开三次方)
于是根据我的思路,把我一步一步的计算合并,化简
然后囧囧囧囧地测试,发现都OK阿,圆柱的也对,圆台的也对,终于咬牙交了一次。
嗯,结果果然是WA。
好吧,Sandy说,测一组极端数据,于是100 100 100 1000000000,答案是3800+
然后Felix终于反应过来,这TM不是溢出了么?——开水溢出了,嗯。
好吧,我承认我又做挫事了,把上面那句if(hx > H)放在if(r == R)的else里面了=.=
提出来,交之,AC之,Happy之,193min,5次提交-.-
然后Sandy看I题,想到了O(n^2)的算法,想RP之,于是去敲代码
我则拿起J题,好吧,又是推公式,解析几何,我郁闷。
................................坚持不懈地,终于退出了公式
把Sandy换下来,敲代码,到末尾发现有个地方没想明白——算根的时候取正号还是符号?开方的时候呢?
于是回头又仔细想了下,并重新推了公式,发现原先的公式推错了,于是再次把sandy换下来
敲代码,编译,测试,WA掉。
然后和Boluor讨论了下,让他看着我把公式重新推一遍,发现我的公式确实都是正确的
但是代码思路有点混乱,于是重新去改了下,清晰了,测试
然后囧囧囧囧地发现,答案是1.56xxxx,我们的答案是0.0097xx
加起来正好是PI/2,心情激动阿,差点就学后面的同学吼出来了。
然后一查,发现我没有加acos =.=
加上acos,第一组测试数据正确了,但是后面两组在输出-1以后跟上了一堆乱码,我囧。
其实是我的cmp(double,double)把符号写反了,delta<0每次都是false,
于是对小于零的double也开方了,但是输出的乱码又是-1开头的,这个东西相当有迷惑性阿,
不得不佩服裁判出的输出规则,你说要是没解你输出个No Solution多好阿,浪费俺们时间么=.=
然后在Sandy的帮助下找到了这个答案——原来我又做挫事了,sigh。247min
最后的时间都给sandy做他的I题,本来我是帮他看代码的,但是思绪有点混乱,看不下去
Boluor帮他出了几组小数据,在几次RE以后都没问题,交之,很不出意料地TLE了
这个时候还有8min,于是我就去找我家宠物feli玩了,嗯。
--
我发现我们队是慢热型的,去年的校赛他们两个也是这样的,今年的预赛也是这样的。
所以我们实在是不适合参加激烈的ACM比赛,不过还是有一点非常赞的——
俺们队灰常河蟹,嗯。
尽管这一次Boluor没有写出AC的代码,但是A题和J题少了他,也是做不出来的。
同样,在DEBUG那A和J两题的时候,Sandy也给出了关键性的意见。
当247min看到Judge返回J的那个YES以后,我们几乎是同时喊出一声YES!这种感觉真好:D
这次比赛,根据预赛的情况,Felix的期望是三等奖,RP爆发或许有二等奖
最后出了3题,在校内11名,达到了预期目标,三等奖(第三),很满足了(就是奖金有点少=.=)
此外我发现,BFS在做比赛的时候,一直是很开心的~就像去年去NUDT一样~ ^_^
我觉得这才是最重要的,有处得好的队友,一起努力,开心做题。
Mar 23

zz do...while(0)的妙用 不指定

felix021 @ 2009-3-23 12:50 [IT » 程序设计] 评论(3) , 引用(0) , 阅读(7089) | Via 本站原创
最近在看xen/extra/mini-os的代码的时候发现了n多do{ooxx}while(0)的东东,有点诡异,于是搜了一下,茅厕顿开,嗯。

zz from http://www.cnblogs.com/flying_bat/archive/2008/01/18/1044693.html (貌似是个MVP的Blog阿,膜拜)

--

在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。

1. do...while(0)消除goto语句。
通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:
version 1
Mar 22
看了一个帖子,讨论这个问题的
URL: http://bbs.chinaunix.net/archiver/?tid-1399973.html

第一页4L的说法是正确的,那些的确是滥用管道,不过这个问题放到后面讨论。

感觉第一页末尾beginner-bj的测试方法不很对头,于是自己写了个小程序测试一下:
#include<stdio.h>
#include<stdlib.h>

int main(int argc, char * argv[]){
    char cmd[1024];
    if(argc < 3) {
        printf("Not Enough Parameters.\n");
        return 1;
    }
    int a, b;
    sscanf(argv[1], "%d", &a);
    sscanf(argv[2], "%d", &b);
    sprintf(cmd, "sleep %d | sleep %d", a, b);
    system(cmd);
    return 0;
}


测试结果如下:
引用
felix021@felix021-laptop:~/code$ g++ a.cpp
felix021@felix021-laptop:~/code$ ./a.out 1 2
felix021@felix021-laptop:~/code$ time ./a.out 2 2

real  0m2.035s
user  0m0.000s
sys  0m0.020s
felix021@felix021-laptop:~/code$ time ./a.out 2 3

real  0m3.039s
user  0m0.012s
sys  0m0.016s
felix021@felix021-laptop:~/code$ time ./a.out 4 3

real  0m4.020s
user  0m0.016s
sys  0m0.004s
felix021@felix021-laptop:~/code$ time ./a.out 6 3

real  0m6.034s
user  0m0.004s
sys  0m0.020s


看来管道两头确实是协同工作的(从管道的原理也可以推知)
一头写,一头读,同时处理,这样可以提高CPU的利用率,特别是在多CPU的时候
不过总体来说,我想应该是会多占用一些CPU(进程之间的切换什么的?)。


然后关注一下滥用管道的问题,这个直接引用第二页某楼的vbs100童鞋的大作,应该可以说明问题了:
引用
正确的是
$ grep 'some word' urfile
但是更方便的是
$ <urfile grep 'some word'
这样可方便改 grep 的参数

还有经常用的
$ cat urfile | grep 'some word' | wc -l
其实直接可以用
$ <urfile grep -c 'some word'
Mar 22
之前下载的最新版本不行,用了这个帖子10L给的链接下载的就OK了,然后自己写了KeyCode.ini(贴在11L),噢也!

http://www.dayhand.com/bbs/viewthread.php?tid=13906&extra=page%3D2

--

捐了2块钱,支持国产。
Mar 21

WL-520GU 不指定

felix021 @ 2009-3-21 23:39 [IT » 硬件] 评论(4) , 引用(0) , 阅读(8005) | Via 本站原创
4.兼容内存颗粒编码
32MB
K4S561632,三星 Samsung
HY57V561620,现代 Hynix
MT48LC32M16,镁光 Micron
64MB
K4S511632,三星 Samsung
HY57V121620,现代 Hynix
HYB39S512160,英飞凌 Infineon

网上查了一下K4S511632在武汉哪里能买到,找到两条信息,记录一下

启浩国际有限公司武汉代表处 ~ 邢建斌
Q1026052092 ~ 13429832768 ~ 027-87741225 ~ widekey2008ic@hotmail.com
武昌区珞瑜路阜华大厦D栋2203室

武汉德创微电子商行 ~ 彭先生
027-51854612/4613 ~ 13476858615 ~ Q344568920 ~ haitao0208@163.com
洪山区珞瑜路158号华中电子市场3288室 ~ http://whdc.ic37.com

--

@ 23:55
Google了一下 "HY57V121620 027",发现只有一篇,就是我的Blog,收录时间:14分前。。。
分页: 47/99 第一页 上页 42 43 44 45 46 47 48 49 50 51 下页 最后页 [ 显示模式: 摘要 | 列表 ]