bianbian coding life

便便代码人生: 关注技术, 翻译文档, 偶尔动动手

bianbian.org

[原] 模仿Google Map的FY2C实时云图平台上线~

Posted by bianbian on 2008-03-25 10:03


本文Tags: ,

模仿Google Map(图片切片载入在此平台不需要实现):

支持IE、Firefox等,支持鼠标移动、鼠标双击放大(左键)缩小(右键)、鼠标滚轮放大缩小

云图实时处理和发布(因为在学校内网,实时版本大家不能看到啦)

这里贴下演示地址(只有最后两个时次的图片):FY2C实时云图平台演示

标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, JavaScript, Meteorology, Technology | No Comments »

[原] 关于Javascript的this关键字答网友问

Posted by bianbian on 2008-03-25 01:57


本文Tags: , ,

发信人: Net (BBS上没有什么事情是bg不能解决的), 信区: WebDesign
标 题: Re: Javascript问题
发信站: 南京大学小百合站 (Tue Mar 25 01:16:03 2008)

Javascript里的this和其他OO语言不一样
Javascript其实并不适合做OO,其实OO也并不适合Javascript
扯远了。。。。。。
this你就当“执行函数的宿主”理解。因此在一串函数的执行过程中,this不停地在变。

  1. A = {
  2.     member: "OK",
  3.     method: function () {
  4.         alert(this.member);
  5.     }
  6. };
  7. B = A.method;
  8.  
  9. A.method(); //弹出"OK". A是宿主,this.member == A.member
  10. B();        //弹出undefined. window(缺省)是宿主,this.member == window.member

为了解决这个问题,很多框架对此进行了包装。
比如Prototype,用bind,实际是动态生成一个function,把宿主作为动态function的执行者,这样对用户来说,this似乎没有变化。

  1. bind: function() {
  2.     if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
  3.     var __method = this, args = $A(arguments), object = args.shift();
  4.     return function() {
  5.       return __method.apply(object, args.concat($A(arguments)));
  6.     }
  7.   }

实际只要明白this是执行者的指针,一切都可迎刃而解。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | No Comments »

[原] IE模拟鼠标右键双击事件

Posted by bianbian on 2008-03-25 01:10


本文Tags: , , ,

IE实在太垃圾了,再鄙视一次。。。鼠标右键双击居然没有。。。。
只好用onmouseup事件模拟一个(基于Prototype 1.6):

  1. if (Prototype.Browser.IE) {
  2.     mouseCount = 0;
  3.     Event.observe(document, 'mouseup', function(event) {
  4.         if (Event.isRightClick(event)) {
  5.             if (++mouseCount > 1) {
  6.                 mouseCount = 0;
  7.                 var pxy = Event.pointer(event);
  8.                 alert("right mouse double click on: " + pxy.x + ", " + pxy.y);
  9.             } else {
  10.                 setTimeout("mouseCount = 0", 1000);
  11.             }
  12.         }
  13.     });
  14. }
标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | 1 Comment »

[原] 自定义IDL调色板指南

Posted by bianbian on 2008-03-21 12:06


本文Tags: , ,

IDL的调色板功能很好很强大,以至于我还没琢磨透到底怎么调。。。。

不过一般都是用自己定义的调色板,就讲讲怎么往IDL里加入自己的调色板:
(加了以后在系统内LOADCT的时候,就能直接读取自定义的调色板,非常方便)

IDL提供了 MODIFYCT 命令用来更改或加入系统的预定义调色板:

MODIFYCT, Itab, Name, R, G, B [, FILE=filename]

Itab是索引值,0-40是系统的,一般都要41开始
Name是命名,32个字符内
R、G、B就是256长度的BYTE(单字节正数)数组
File是文件名,如果不制定就操作默认的(resouce目录的color1.tbl)

实际发现File指定了其他文件名,MODIFYCT会出错。看了源码,发现
MODIFYCT并没有处理文件读取错误(不存在)的异常。(不知道是不是IDL7.0的问题)

IDL也没有公开colortable的文件格式。不过我把MODIFYCT的源码结合color1.tbl
分析了一下,得到IDL的colortable文件格式:

总数 + R 256 + G 256 + B 256 + …. + 32长度名称(在文件末尾)

例(如果有两个表):[2][R..R][G..G][B..B][R..R][G..G][B..B][名称1][名称2]

这样就可以自己输出调色板文件了,不需要用IDL的默认文件(防止多用户冲突)。
之后可以用 LOADCT, 0, FILE=’mytable.tbl’ 动态载入

附C语言输出调色板文件代码:

  1. FILE *fp = fopen(file, "wb");
  2. BYTE n = 1;
  3. fwrite(&n, 1, 1, fp);
  4. fwrite(m_byteRGB, 1, 256 * 3, fp);
  5. fprintf(fp, "%-32s", "bianbian Default Table");
  6. fclose(fp);
标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, ENVI & IDL, Technology | 2 Comments »

[原] IDL的数组存储是行顺序,下标引用是列在前

Posted by bianbian on 2008-03-17 13:29


本文Tags: , , ,

IDL的数组在内存中存储还是以行顺序的,只是多维下标引用的时候列为先。即:
A=
[r r r]
[g g g]
[b b b]
在内存中是 rrrgggbbb(和C是一样的!fortran是rgbrgbrgb)

而引用的时候列在前:(C是行在前!)
A[0,0] A[1,0] A[2,0]
A[0,1] A[1,1] A[2,1]
A[0,2] A[1,2] A[2,2]

三维的情况和C也一样(注意,IDL和C唯一的差别就是IDL的下标列在前,然后是行);存储结构一致也就意味着C里的多维数组内存块可以直接丢到IDL里处理。其实我觉得IDL在下标上太小白了,干嘛不和C保持一致?某IDL大牛说:之所以下标在前,是为了更直观的知道X方向上有几个、Y方向上有几个。比如:A[3, 2],X方向有3个,Y方向有2个(2行3列):Is IDL column-major or row-major?

某本书(似乎国内的书都不认真写 - -)说IDL是列顺序的,这是不对的。可以拿三维数据做简单试验(也便于对下标引用理解):

IDL> a=bindgen(3,3,3)
IDL> print,a
   0   1   2
   3   4   5
   6   7   8

   9  10  11
  12  13  14
  15  16  17

  18  19  20
  21  22  23
  24  25  26
IDL> print,a[1,0,*]
   1

  10

  19
IDL> print,a[*,1,1]
  12  13  14
标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, ENVI & IDL, Technology | 1 Comment »

[转] 再火星一把,这个好强。。。

Posted by bianbian on 2008-03-16 18:58


本文Tags:

Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn’t
mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng
is taht the frist and lsat ltteer be at the rghit pclae.The rset can be a
total mses and you can sitll raed it wouthit porbelm.

Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the
wrod as a wlohe.

No tag for this post.

相关日志

Posted in Not IT | 1 Comment »

[原] 减小nginx编译后的文件大小 (Reduce file size of nginx)

Posted by bianbian on 2008-03-13 10:21


本文Tags: , , ,

默认的nginx编译选项里居然是用debug模式(-g)的(debug模式会插入很多跟踪和ASSERT之类),编译以后一个nginx有好几兆。
去掉nginx的debug模式编译,编译以后只有375K(nginx-0.5.33, gcc4)。
在 auto/cc/gcc,最后几行有:
# debug
CFLAGS=”$CFLAGS -g”
注释掉或删掉这几行,重新编译即可。-g参数用法详见这篇blog:[原]Linux下的c/c++ GDB调试

Nginx uses debug mode (-g) in compiling by default, which result in several MB of it’s size.
After debug disabled, the file size of nginx reduced to 375K (nginx-0.5.33, gcc4).
open auto/cc/gcc, find this at last several lines:
# debug
CFLAGS=”$CFLAGS -g”
delete it, and recompile. More of -g: Linux c/c++ GDB debug

标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, Linux, Technology | No Comments »

[原] 也许是prototype框架的bug

Posted by bianbian on 2008-03-08 20:03


本文Tags: , , , ,

不知道怎么给prototype提交bug report,就写在这里吧:
其实我没有测试过,只是看prototype源码的时候,觉得是个bug:
对String的原型(prototype)添加toJSON()函数只是转义了引号,未转义”\”:

  1. if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
  2. return "'" + escapedString.replace(/'/g, '\\\'') + "'";

如果用户在input里输入\\,转成string应该是”\\\\”,如果没有转义,再写回去的时候就丢了一个\
应该在转义引号前先转义\:

  1. .replace(/\\/g, '\\\\').replace(/"/g, '\\"')
标签: , , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | No Comments »

[原] IDL 7.0测试截图

Posted by bianbian on 2008-03-08 18:35


本文Tags: , ,

IDL的功能非常强大(尤其是画三维图上,等我文章出来再帖过),支持多操作系统。
Grads可以实现的IDL都能实现,IDL能实现的Grads不一定能。
只不过我们系里熟悉Grads的多一些,如果想用IDL,可能自己要多费点力气。
IDL7.0的编辑器基于eclipse,如果写过java的应该非常熟悉这个编辑器。比IDL6自带的编辑器好多了,确实非常方便。
下面是我简单的测试截图(为了图小一点,编辑器拖得比较小):

Splash画面:
idl_0.jpg
欢迎画面:
idl_1.jpg
编辑器(有语法提示,按F1可在IDE里嵌入帮助,见下图):
idl_2.jpg
测试plot(右侧是嵌入的帮助)。中间是plot的默认结果,支持很多参数,效果可以改:
idl_3.jpg
标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in ENVI & IDL, Meteorology, Technology | No Comments »

[原] SSH端口转发(SSH Port Forwarding)太爽了啊

Posted by bianbian on 2008-03-07 16:14


本文Tags: , ,

试过就知道,贴相关的几个网址:
http://staff.washington.edu/corey/fw/ssh-port-forwarding.html
http://sshwindows.sourceforge.net/
http://www.inet.no/dante/
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology | 2 Comments »

[原] 整理了小百合BBS的Javascript脚本,注意关键字

Posted by bianbian on 2008-02-29 12:56


本文Tags: , ,

随着脚本越来越大,原有的funtion式已经不利于维护。
正好凑着有兴致,一个通宵把Net库完善了一下,Net.Dom, Net.Event, Net.Drag, Net.Dialog, Net.Ajax等,应该能满足日常需要。
另外把BBS的脚本分类到Net.BBS, Net.BBS.Html等命名空间下。
现在pack了以后约50K,以后会更大一点。
有兴趣的可以提意见:http://bbs.nju.edu.cn/jssrc/bbs.full.js
另外谢谢oznyang@Lilybbs指出,Javascript关键字在IE里要小心,其实IE也该聪明一点,很显然是个属性嘛:

  1. addComm: function (id) {
  2.   var url = Net.Util.toQuery("pntcomm", {board: G.c.Brd, "id": id, do: "add"});
  3.   //上句do是关键字,在IE里会报错“缺少标识符、字符串或数字”,应该"do"引起来
  4.  }

人累了确实会变笨,这么低级的错误debug了我几个小时。哎。。。更关键的是IE这个SX报错不准确,再度鄙视

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | 4 Comments »

[晕] 仙剑4 bug,走到这个点绝对走不出来了

Posted by bianbian on 2008-02-27 04:54


本文Tags: , ,

被翅膀跟尾巴挡住,绝对挂了:
pal4.jpg
要是存档在一万年前,你就哭吧。。。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Entertainment, Not IT | 4 Comments »

[荐] 网游《征途》:金钱铸就的通往奴役之路

Posted by bianbian on 2008-02-23 16:49


本文Tags: ,

我对网游没兴趣,不过今天偶然看到一篇好文,推荐如下:
首先把精彩评论转载:
这绝对不是所谓的“大家都是成年人,没有人逼你玩,也没有人逼你花钱。”这么简单的问题。而是一件事/一个游戏的价值取向问题。如果一个游戏本身的价值取向有争议,就应该被讨论,如果价值取向被证明是错误的,就应该被限制。
例如,两个成年人,一个愿意被另一个杀死然后被吃掉,另一个也同意杀死他并且吃掉他,这样的双方都同意的行为就应该存在吗?当然不。应该这样的行为的价值取向是错误的,是反人性的。
我希望游戏的开发者要适度考虑自己的社会责任,要开发价值取向正确的游戏,有助于游戏玩家适度的娱乐,而不是只会挑起仇恨,使玩家沉溺其中,无法自拔。
魔和神的区别是,魔会利用人的弱点,让人仇视和自相残杀。而神会告诉人人性的弱点,要人类学会克制自己的弱点,要学会宽容,要学会有节制的竞争和学会合作。

原文地址:网游《征途》:金钱铸就的通往奴役之路

编者按:
在一款同时在线人数超过百万、全部玩家加起来可以组成一个超级城市的网络游戏中,它的游戏精神是指向乐趣,还是指向权力和金钱?它的社会规则是新世界的开放自由,还是率土之滨莫非王臣?这不只是对某一款游戏的追问,甚至也不只是对韩式网游的价值观的追问,而是对人与游戏、人与人的关系的追问。虚拟世界是现实世界的一部分,也有着人们必须捍卫的准则。

在当下中国最火的一款网络游戏中,玩家们遭遇到一个“系统”,它正在施行一种充满诱惑力的统治。这个“系统”隐匿无踪,却无处不在。它是一位虚拟却真实的垄断者。“如果没有我的允许,这个国家的一片叶子也不能动。”这是智利前独裁者皮诺切特的声音,悄然回响在这个虚拟世界之中。

标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Other, Technology | 1 Comment »

[转] 深圳空管站与深圳气象局将实现气象信息共享

Posted by bianbian on 2008-02-23 02:24


本文Tags: , ,

2008-01-18 中国民用航空总局网站 http://news.carnoc.com/list/96/96297.html

  近日,民航深圳空中交通管理站(以下简称“民航深圳空管站”)与深圳市气象局签订了气象数据免费共享协议,开创了全国民航系统与地方气象部门合作的先河。

  民航深圳空管站与深圳市气象局双方签订协议,共同建立航空气象立体探测体系。深圳市气象局在机场周围布设了10个气象自动站,投资400多万元在机场设立了先进的风廓线雷达,将深圳市政府的应急指挥专线延伸至民航深圳空管站,保障航班安全。据介绍,在世界航空业务中,因天气造成的飞机延误,使航空公司和旅客造成的损失每年已高达数十亿美元,其中,有相当部分的损失只要正确掌握运用气象条件是可以避免的。

  近年来,随着深圳宝安国际机场航班量不断增大,雷雨、大风、低能见度等恶劣天气造成的航班延误比较多,提高恶劣天气临近预报的质量,尽可能减少航班延误,是深圳空管气象部门研究的课题。

  空中的“隐形杀手”风切变,指的是在原本均衡的气流环境中突然出现的垂直增强或减弱气流,能够将飞机压低或吹翻。风切变气象如果出现在航班起飞或降落阶段,可能造成航班坠毁的灾难后果。有了风廓线雷达后,就可以准确监测和遏制风切变,改变了以往深圳宝安国际机场的航班只能凭飞行员经验来应对风切变的状况。据民航深圳空管站气象预报室主任杨建宇介绍,深圳宝安国际机场位于海陆交汇点,春夏之交雷雨多发,风切变发生的几率较大。先进雷达装置的投入使用,将有效保障航班安全,使旅客更安心。

  根据双方签订的协议,民航深圳空管站还将从深圳市气象局共享到深圳宝安国际机场周边共10个气象自动站的原始数据、闪电定位仪、风廓线雷达、多普勒雷达实时探测资料等。这些资料将被用于构建机场空域全面、立体的气象探测体系,从而更有效地防止航班延误,保障航班安全。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Meteorology, Not IT | No Comments »

[晕] 发现gmail的问题

Posted by bianbian on 2008-02-20 16:47


本文Tags: ,

附件里不能发可执行文件。就算用tgz压缩过的,里面有x属性的还是不行。
说什么有可能危害安全。。。。结果发个已编译的开源项目文件也不行。。。
话说,我发什么关你啥事啊?你不是有病毒扫描吗?

标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology | No Comments »