Category Archives: Tech

Migrate live space to blogger (v1.1.1)

A new version of the live space export utility. The old version can not run because the live space has changed some codes in its web pages. Also some bugs have been fixed in this version.

Download link (v1.1.1):

http://cid-0ea641a5a7f665a1.skydrive.live.com/self.aspx/Public/livespaceexport.v1.1.1.zip

md5 sum: 1591c88501470b9292cff39a42eb209d

Please read the readme.txt file included in the zip package before use.

I ONLY MAKE A SIMPLE TEST. PLEASE LET ME KNOW IF THERE STILL IS ANY PROBLEM.

BE SURE SIGN IN YOUR LIVE SPACE WITH YOUR PASSWORD USING YOUR FAVORITE BROWSER BEFORE TRYING TO RETRIEVE LIVE SPACE POSTS.

The previous posts on this tool might be helpful if you are not clear how to set the parameters which are necessary to run the tool.

http://nanzhuotong.blogspot.com/2008/11/move-blog-posts-from-live-space-to.html (figures included to show the parameter configuration)

http://nanzhuotong.blogspot.com/2008/11/live-space.html (in Chinese, figures are also included)

一个获取并查看北京空气质量的工具,数据来自美国北京使馆Twitter

screenshot 
版本(b090627)的截图

功能

  • 从美使馆官方twitter(https://twitter.com/beijingair)上获取最新美国使馆发布的北京空气质量数据
  • 以时间序列图方式直观查看全部的历史数据
  • 提供逐小时和逐日两种方式
  • 数据可以导出至excel格式;图可以导出到常用的图像格式;支持将图和数据拷贝到剪贴板

使用说明,请查看包装包里的Readme.txt文件。

可运行版本下载地址:

http://cid-0ea641a5a7f665a1.skydrive.live.com/self.aspx/Public/bjair|_plot|_b090629.zip (最新版,现在客户端上无须要求安装 sql server compact ed.) 1.5MB

http://cid-0ea641a5a7f665a1.skydrive.live.com/self.aspx/Public/bjair%7C_plot%7C_b090628.zip (最新版,更新一点bug)

http://cid-0ea641a5a7f665a1.skydrive.live.com/self.aspx/Public/bjair%7C_plot%7C_b090627.zip

需要.net framework 3.5 sp1的支持,如果在你的windows机器上不能运行,请到http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7 这里下载 .net framework 3.5 sp1并安装到你的机器上。

相关新闻:

美使館Twitter北京空氣質量受歡迎(BBC)

美使馆用Twitter发布北京空气质量监测(财经网)

烟雾笼罩北京 空气质量再成焦点(网易)

美国使馆的北京空气质量

我从BeijingAir twitter网站(https://twitter.com/beijingair)上下载了全部的北京空气质量数据。这些数据是美国驻北京使馆测的,并在他们的twitter网站上实时更新。他们声明说数据只反映使馆所在地小范围的空气质量,而不代表整个北京的情况,他们是目的是为了给使馆工作人员提供有关空气质量的信息。而北京官方发表的空气质量要好于此数据。

空气质量定义见http://www.airnow.gov/index.cfm?action=static.aqguidepart。分,

好 0-50
中等 51-100
对易感人群不好 101-150
不利于健康 151-200
非常不利于健康 201-300
灾难 >300

以下各图横轴是时间,纵轴是北京美国使馆观测点的空气质量指数(其实监测的只有直径2.5微米的悬浮颗粒,此标准与国内监测10微米不一致,所以不能简单地对比这些图与北京的官方通报)。

image
6月份以来的北京逐小时空气质量指标。绿线以上代表了非常不利于健康和灾难性污染。

image
6月份以来的北京逐日平均空气质量指标。

image
08年10月份以来的北京逐小时空气质量指标。达500的重度污染发生次数不少。

image 
08年10月份以来的北京逐日平均空气质量指标。

粗粗一看,好像不是很乐观。至少说明在该监测点情况不是很好。北京的环保还任务艰巨。懒得做进一步的统计分析(比如200以上的天天数比例等)。有些东西还是糊涂些好,不必搞这么清楚。

对本程序感兴趣的,可以与我联系(giscn#msn.com)索取可执行文件和源代码。空气质量数据是直接从twitter网站读取并存在本地数据库。从技术上讲,里面有一些比较感兴趣的东西,以后我会逐渐整理成文档发出来。

Opera Unite

看到一个BBS帖子,注意到了Opera Unite。该帖子称“Opera Unite 掀起网络新革命”。找了相关资料快速看了一下,其实没有这么神奇。

从实现上讲,Opera Unite是Opera浏览器里内置的一个Web服务器,相当于它在你的机器上开了一个Web服务。你的朋友得到你给他的地址后(类似于http://计算机名.用户名.operaunite.com),就可以访问你机器里共享的东西了。实现了一种类似于p2p的概念(尽管实际上不同于p2p)。

它的好处大概是,由于opera unite给你构造了一个Web服务器,所以共享的内容可以通过http端口穿越防火墙。由于内置在Opera里,所以用户不必安装额外的东西,而你的朋友要看你共享的内容,也只需要浏览器即可(不限于Opera)。

讲是创新的技术是可以的,毕竟此前没人做过,但讲是“革命”,就言过其实了。

Outlook 2007 搜索不管用

Outlook 2007 instant search (即时搜索?) 不管用了,比如找联系人,总是返回没有结果。解决方法如下:

1.  tools > options> search options > indexing里,将全部的 files 打勾给去掉。

2. 关闭outook,大概等待5分钟,这时系统会将以前index的结果给删除掉。

3. 打开outlook,将全部的files 再勾打上。全部确定。耐心等待系统重新index,这过程大概需要10分钟以上。可以通过 tools> instant search > indexing status 查看状态,如果已经索引结束,全部是0,如果还有大于0的数字,说明索引进程还在进行。

在索引期间可以照常做其它工作,索引过程是用系统后台程序进行,可能系统会变得缓慢,这都是正常的。

Out of memory problem

两个目录下有66K多个文件,需要运行Kappa进行计算比较。作了一个批处理,

for %%f in (C:nan_wkspmetric_analysis_radar_nldasdatanwbi_deg8_selradar_clas*.asc) DO (
kappa %%f C:nan_wkspmetric_analysis_radar_nldasdatanwbi_deg8_selnldas_combo_clasl%%~nf.asc -k:C:nan_wkspmetric_analysis_radar_nldaskappakappa.txt)

在执行到1万个的时候,提示 Not enough storage is available to process this command,以及 out of memory,退出!不知道是什么原因。起先以为是Kappa代码有问题,但理论上讲,代码是用托管模式写的,正常退出时dotnet会负责回收的。Kappa代码里连接了ArcGIS的相关代码,这部分是非托管的,有可能是异常引起非托管资源被占用,从而积累导致问题。

后来在网上找了一下,在微软KB里有类似的描述,http://support.microsoft.com/kb/126962,建议修改注册表,增加shared memory。

但终因为不知道改成多少合适,而且改Kappa代码也很容易,决定不采用这种方法(workaround)。用c#写小段代码,实现批处理,寄希望于通过托管系统自身的回收机制,能解决out of memory的问题。代码十分简单。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;

namespace Kappa_bat
{
    class Program
    {
        static void Main(string[] args)
        {
            string nldas_dir = @"C:nan_wkspmetric_analysis_radar_nldasdatanwbi_deg8_selnldas_combo_clas";
            string radar_dir = @"C:nan_wkspmetric_analysis_radar_nldasdatanwbi_deg8_selradar_clas";
            string out_dir = @"C:nan_wkspmetric_analysis_radar_nldaskappa";

            string kappa_file = Path.Combine(out_dir, "kappa.txt");
            string log_file = Path.Combine(out_dir, "logfile.txt");

            string[] radarfiles = Directory.GetFiles(radar_dir, "*.asc");
            foreach (string f in radarfiles)
            {
                Process proc = new Process();
                proc.StartInfo.FileName = "kappa.exe";
                string fn = Path.GetFileName(f);
                string nldas_fn = Path.Combine(nldas_dir, "l" + fn);
                proc.StartInfo.Arguments = nldas_fn + " "+ f+ " -l:"+log_file+" -k:"+kappa_file ;
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.Start();
                proc.WaitForExit();
                Console.WriteLine(fn);
            }
            Console.WriteLine("Done.");
        }
    }
}

Talking about 也说内存

Syeerzy在blog里有讲他关于程序内存使用的看法,认为为了追求速度的提高,有必要“充分利用内存”。

这是似是而非而且荒谬的结论,而且同样极端了。

不管内存有多少G了,相比硬盘比还是很小。所以在完成任务目的,保证用户可接受的速度下,优化内存当然是性能的一个重要指标了。写程序的时候永远无法知道运行这个程序时的计算机情况,当然能节省则要节省了,一般程序很少去智能调整自己内存占有,优化程序的内存使用是现代操作系统的重要任务。节省越多的内存,意味着可以同时并存更多的程序,这是为用户负责的一种表现。

举个极端的例子,程序A完成既定任务用1M内存在多数配置机器上可以比较流畅的运行了,这时目标机器上还有2G的内存可用,OK,照“充分利用内存”的说法,意思就是最好将2G都“充分”用起来,OK,程序A充分用了1G的内存(嗯,程序A load了除了必要的执行代码和必要的数据,将潜在操作有可能用到的文件也顺便load进来了,这样对1%的用户来讲可能提升了 0.0001%的速度,这符合“充分使用内存”吧),目标机器上还有1G剩余的(幸好不是只剩1K内存了)。问题是,1M内存使用的时候速度已经不错了,用1G内存提升的速度并不明显。但为了这一点速度上的优化被你“充分”占了1G的内存。目标机器接下去还要再运行一个专业软件,而这个软件需要load一个1G的数据进内存,my god,stupid的操作系统接下去做的事情就能让你发疯。就是因为程序A根本无法预料到用户机器的情况,从而根本无法做到“充分”利用。你能做的就是,保证性能的前提下,尽量优化内存使用,尤其对于大型程序来讲。

让程序去根据内存可获取情况自动调整自己的内存占有情况? 当然可以,但有这时间,不如去开发更多的大家需要的功能。而且操作系统已经具备多数情况下行之有效的算法去优化这些程序的内存使用,尽管有时候很stupid。

“所以,最终结论是”,即使“在内存使用不超出最大物理内存的情况下,比如在大内存的PC机上(大内存指内存接近或超过4G—4G是32位地址的范围,比如2G或3G或8G)”,也不能为了一点点的速度提升去“充分”利用内存。“内存多使用并不是什么错,不要再把内存使用多少作为性能标准了”,这是对的,但“我们追求的性能”不仅仅是“速度”,还有对用户负责的一种态度。——除非,增加内存使用可以明显提高各方面的性能,那又是另一个story了。

如何在vista里显示图片缩略图

南卓铜 ([email protected])

Vista的资源管理器里浏览图片时默认仅显示图标。如图1所示,

image
图1 以图标形式出现的缩略图,这是Vista显示图片的默认方式

尽管双击图标,转到照片库,可以浏览图片内容的缩略图。我个人更偏向于如以前XP下直接在资源管理器里显示照片内容的缩略图。这其实是可以通过改变选项做到的。Vista默认禁止显示图片内容缩略图,估计是出于性能上的考虑。

单击“组织”菜单,在下拉菜单里选择“文件夹和搜索选项”(图2),确认“以缩略图形式显示文件图标”打上勾,并且去掉“始终显示图标,从不显示缩略图”前的勾。确定后,图片以内容缩略图的形式出现(图3)。

image
图2 文件夹选项

image
图3 Vista以图片内容缩略图显示

vista开始菜单的问题

有时候在安装完程序后,开始菜单里就出现一项“程序”,其下内容与整个开始菜单完全一致。重启或者注销后恢复正常。估计是vista当前版本的一个bug吧。网上也有人报道,但没有solution或者workaround。有人将这重复的“程序”从开始菜单上给删掉了,结果整个开始菜单都没了,呵呵。本质上讲,那个“程序”下的内容跟开始菜单里的“全部程序”是同一个东西。