2006-08-19

Dash's Blog

 

这个Blog出现在Google AdSense里面,



当时真是好奇,某人的Blog可以出现在Google AdSense里面?是商业行为;还是因为其内容被Gogle收录?

点进去一看,第一篇是关于这次DonkeyServer事件,我马上意识到前几天使用eMule无法登陆主要的ED2K服务器,这下可能会找到答案了......

果然,Dash对这一事件作了说明。

唉,看过无语......

相关连接:Dash's Blog

ImageSniffer_Part 2

 

直到昨天,才继续这个小程序。
到目前为止,完成了HTML代码分析部分,已经可以从HttpClient.HttpClient.getResponseBodyAsString()方法中筛选出所有的Image Link,并且算法效率经过改进,有了一定的提高,但仍然不够优雅。

算法的核心使用了org.w3c.dom.Document、org.w3c.dom.Element,以及org.w3c.dom.NodeList

具体的代码,会做另外的相关讨论。
在这里感谢Jaly给我的关于SwingUtilities.invokeLater()方法的提示。

关于UI,感谢给我的一些很好的建议,我会继续改进。

相关连接:ImageSniffer_Part 1

2006-08-17

2006-08-15

慢的几乎什么也干不了


Celeron 1.3M,256 RAM
老婆开了两个MSN,一个QQ,系统运行着Symantec AntiVirnus和Windows Defender,我开一个IE 7(装它就是应为较低的内存占用),再打开Eclipse的话,系统就慢的几乎动不了了,CPU资源到还好(不到3%),内存已经是451260K/755260K,我算知道为什么那些本机都有2G的内存了......

题外话,2G的内存,对于WorkStaton来说,在里面盖楼房都够用了......

再看看我的:
WindowsLiveWriter.exe    38228K    (正在写你看到的这个帖子)
iexplorer.exe                   33540K    (只打开SpoonDrift一个页面)
.
.
.
.
.
.
有这个必要吗?

2006-08-14

今天,你用什么Blog ?

鉴于当前博客风潮的兴旺,考虑到全球诸多博客们的需求,微软为我们带来了这样一款所见即所得(WYSIWYG)博客文章编辑发布工具,微软将它命名为Windows Live Writer。


Windows Live Writer目前支持以下类型的博客系统:
- Windows Live Spaces
- Blogger
- LiveJournal
- TypePad
- Wordpress
- All blogs that support RSD (Really Simple Discoverability)
- Metaweblog API
- Moveable Type API

Download:

http://download.microsoft.com/download/f/9/a/f9a19f2d-cec4-4a25-9b0b-eb9655ea7561/Writer.msi



实际使用中发现,这个工具并不能上传PNG或者JPG格式的图片。

方法的困惑,问题的核心

问题的关键应该是"Swing中使用线程控制界面操作的方法",而不是类和类的关系。
当然,维持程序正常的继承关系除外。

我们尝试一下这样修改代码:

main.java保持不变,将sniffer.java改写为如下

package ImageSniffer;

public class sniffer extends main implements Runnable
{
main mainClass = new main();

Thread snifferThread = new Thread(this);

public void star()
{
snifferThread.start();
}

public void newTest()
{
mainClass.setStusText("New Test......");
}

public void run()
{
newTest();
}
}

这样,当按下"开始"按钮的时候,执行main这个类中的starSniffer()方法,starSniffer()的代码是
public void starSniffer()
{
sniffer theSniffer = new sniffer();
theSniffer.star();
}
这里出现了第一个问题:
这样控制snifferThread启动是否是正确的方法?

通过调试发现,snifferThread确实启动了,并且执行了sniffer类中的newTest()方法
public void newTest()
{
mainClass.setStusText("New Test......");
}

但是程序在这里就停住了,并且在main类的
public void setStusText(String stusText)
{
stusTextLabel.setText(stusText);
}
方法中stusTextLabel.setText(stusText)发现了NullPointerException异常
线程 [Thread-2](已暂挂(异常 NullPointerException))
-->main.setStusText(String) 行: 195
sniffer.newTest() 行: 16
sniffer.run() 行: 21
Thread.run() 行: 595

这就出现了第二个问题:
sniffer类的newTest()方法应该如何重载main类的setStusText(String stusText)方法?

还有一个问题,要在sniffer类中实现对main类中setStusText(String
stusText)方法的覆盖,sniffer类和main类应该是怎样的关系;声明sniffer extends main是否正确?

相关连接:方法的困惑,如何重载怎么覆盖

2006-08-12

Google主页使用弹出式菜单

其实很早以前就遇上了,当时并没有在意。
今天在网上看到了一些讨论,决定把截图放上来。

Over There

中文名称:那个地方-伊拉克




美国FX有线电视片集《Over There》
第一部有关伊拉克战争的电视片集《Over There》将在美国FX有线电视播出,这是美国电视史上首次在还未撤军的同时,播出相关内容的战争剧集。FX有线电视隶属澳洲传媒大亨梅?旗下的霍士电视集团,霍士集团向来公开支持美国总统布殊出兵伊拉克,但FX有线电视否认播出这部剧集是为攻伊宣传及争取支持.

From producer Steven Bochco ("NYPD Blue," "L.A. Law," "Hill Street Blues") comes the first scripted television series set in a current, ongoing war involving the United States. Gritty, intense, evocative and emotional, "Over There" takes you to the front lines of battle and explores the effects of war on a U.S. Army unit sent to Iraq on their first tour of duty, as well as the equally powerful effects felt at home by their families and loved ones.
Unlike any number of movies and TV shows starring middle-age actors portraying American fighting forces in past wars, Over There's combat soldiers look and act like the barely-out-of-high-school young adults (many of whom, in Over There, joined the military out of economic necessity) most of our real-life troops actually are.

Whatever one's feelings about the Iraq war, Bochco and co-writer and director Chris Gerolmo (Citizen X) cut through the politics to get to the individuals whose lives are on the line, who left behind families to find themselves in a most alien environment, fired upon for reasons they may not fully understand. Gerolmo does a superb job of showing us combat conditions in desert sandstorms, with rookie soldiers hanging tough under intense heat while insurgents fire from a distance at anything that moves. This is a new kind of war show, yet in many ways Over There embraces a few sentimental conventions, notably scenes in which the unit's members explain the origins of their nicknames ("Angel," "Dim," "Doublewide," "Mrs. B," and more). In the Bochco tradition, when violence comes, it comes as a grievous surprise.

2006-08-11

方法的困惑,如何重载怎么覆盖

有如下代码:
class A
{
static B bClass = new B();

static String setString(String str)
{
return str;
}
public static void main(String[] args)
{
System.out.println(setString("TEST......"));

System.out.println(bClass.printStr("B TEST......"));
}
}

class B extends A
{
static A classA = new A();

String printStr(String s)
{
return s;
}
}

控制台会这样输出:
TEST......
B TEST......

这是另外一段代码:
public class MainFrame
{
SetLabelTest newLabelText = new SetLabelTest();

public void buildMainFrame()
{
//实现一个JFrame,并且加入一个JLable
}
public void setLabelText(String text)
{
//使用JLabel的setText()方法令JLabel显示字符串
}
}

public class SetLabelTest extends MainFrame
{
MainFrame theFrame = new MainFrame();

public void labelText()
{
theFrame.setLabelText("New Text......");
}
}

当在MainFrame这个类中实现newLabelText.labelText()的时候,程序报告如下错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

这是怎么回事呢?
为什么setText()方法不能被重载?

相关连接:方法的困惑,问题的核心

2006-08-10

Blogspot的Blog居然可以直接访问了

今天突然发现,位于Blogger.com的SpoonDrift居然可以不使用代理而直接访问了!

在这里,Blogger的Blog已经被GFW封锁了好几年了,这次是真的解禁了吗?

这真是一件可笑的事情,让我不禁想起了这么一句经典“人如果没有思想,和咸鱼有什么分别......?”
是的,GFW封锁了太多的东西,它以为可以封锁人们的思想吗?

“游戏引发暴力倾向......”、“中文版的维基百科”、“电视台禁播游戏类节目”,甚至是FreeBSD.org和SourceForge.net,真是可笑,封锁,就看不到吗?不过是自欺欺人罢了。

还是要庆祝一下,思想是不能够被禁锢的。

2006-08-10 22:00

2006-08-07

ImageSniffer_Part 1

老婆问我,如何才能把网页上的图片全部保存下来?呵呵,随便哪个下载工具都可以...... 老婆说,太麻烦,能不能简单一些? 可以吗?不可以吗?研究一下吧...... 需求很明确,网页中的所有图片,各种各式的,并且URL各种各样,但是对于客户端来说,应该都是可以GET到的,先不想那么多,今天正好点有时间,先弄一个UI出来吧! 这其中遇到一个奇怪的问题,显示Debug信息的TextArea在默认情况下不能最大化显示,就好像frame.pack()的效果一样......半天也没弄明白,最后只好new JTextArea(15, 45)硬性规定一下。 看来有必要恶补一下Swing了...... 写到这里的时候,还有一个OptionPanel没有加进去。 UI暂时就这样了,Http的Get方法准备用HttpClient来实现,今天没时间了,明天继续。

相关连接:ImageSniffer_Part 2

2006-07-04

刚刚天津轻微地震

有轻微摇晃的感觉......

杯子里的水也有晃动......

希望震中地方的人们平安无事......

中国 Web 2.0 的责任感 - 大胆假设更要小心求证

中国 Web 2.0 的责任感 - 大胆假设更要小心求证
2006年6月30日 下午 02:28:00

发表者:李开复

前段时间,有记者采访 Google 创始人布林,报道 “Google 创始人承诺将继续在中国努力”。不知怎么的,到了国内的很多论坛上就变成了“Google 创始人考虑退出中国”、“Google 将放弃谷歌”等等。当我的伙伴周韶宁在广州碰到记者辟谣后,一些论坛又吹起一片“Google 澄清对中国的承诺”, “Google 中国必有变动”等新谣言。当时正在南京进行招聘的我,看到这些欠缺逻辑又荒谬的言论,不禁啼笑皆非。

这件事已经过去好几天了,但几天的时间让我有了更多的思考,尤其是对中国 Web 2.0 的发展,所以还是希望在这里把想法跟大家分享一下。在中国,Web 2.0 快速地成长着,尤其是那些有中国特色的论坛与博客每天有数亿次浏览量,令全世界瞩目。我们看到了很多网民乐于在这个新平台上发表自己的意见、传递新的信息、彼此帮助、互相讨论,充分地发挥了互联网平等、实时的特性;我们也看到了各个社区把全国各地的网友拉近,让大家成为志同道合的好友,也增加了社会的和谐。所以,Web 2.0 应该是一个中国互联网领先世界的大好机会。但是,不知什么时候开始,在这个平台上,出现了一些令人担心的现象:


  • 不实信息、虚假信息。借用公共平台在网上发出不实的信息,引人注意。有时,这些信息也会从博客或论坛中被新闻媒体转载。

  • 吸引眼球、故弄玄虚。内容与标题脱节,用引人注目的煽动标题,吸引了眼球,但是也误导了读者。

  • 论证贫乏、攻击平台。缺乏论证但是指向明显攻击竞争对手负面信息散布平台。

  • 没有边界、侵人隐私。公开他人私生活,伤害到别人的隐私、自由、名声。


虽然互联网是一个平等的平台,但当我们拥有这样一个民主、平等的话语公共平台的时候、当我们因此而被赋予更多权利的时候,我们应该更加警醒与自律。权利与义务相伴相生,在大胆假设的同时更要小心求证。否则,一批少数的人发出巨大的声音,淹没了大众的声音,也伤害了公正与真理。

这是我们必须一起努力克服的。我希望作为中国的网民和网站,我们可以一起下决心:

  • 每一个人在论坛上有权力报道事实,也有权力发表意见,甚至有权力做大胆的假设或猜测。但在表达的时候,一定要就事论事。如果我们做一个假设或猜测,我们就要清晰地表达,不可以把未经证实的假设当作事实,更不可以杜撰信息,误导大众。

  • 谣言止于智者。如果一件消息没有根据,不要道听途说。在网上看到的信息,如果不是有权威的(尤其是那些匿名发表的),我们不要轻易听信,更不要去传播。

  • 说话前请多三思,想想是否会对别人造成不必要的困扰。这样尊重别人,也会获得别人的尊重。

  • 听到别人的是是非非,别急着下评论,抱着 “小心求证” 的心态,对于那些被大肆传播的信息,不妨去做一些调查工作,如果发现有可能是有意的误导或造谣,主动地把这个事实公布出来。相信自己的判断力与洞察力,不要不经思想就听信别人的话。

  • 如果我们怀疑一个未经证实的新闻,在各个论坛被灌水式传播,我们要站出来,质询它的公正性,确认它不是经过恶意散播。

  • 举报违反论坛规则的帖子,让论坛管理员处理。

  • 少点击、回复那些明显煽动性的标题,让它们沉下去。多参与那些有意义的讨论,让它们浮上去。这样,我们可以提升整个 Web 2.0 内容的水平。

  • 希望更多的记者和网站不要过分地转载那些未被证实的帖子。


在 Web 2.0 的时代,每一个人的影响力不再局限于他的朋友圈,而都可以因为互联网而扩大。每一个人都可以成为一个记者、作家。记者和作家可以影响、引导大众,所以他们有很大的权力。英文谚语说:“权力愈强,责任愈重”("With great power comes great responsibility”)。

最后,希望每一个 Web 2.0 的用户都能做到:
凡事小心求证;避免故弄玄虚
凡事客观讨论;避免损人利己
凡事就事论事;避免毁谤造谣
凡事传播信息;避免侵人隐私

在我们的努力下,相信中国的 Web 2.0 会走入更美好的明天。

2006-06-22

LED Chaser

Here is a nice simple LED light chaser from the Hacked Gadgets Forum. There is a full schematic provided, I am not sure if the author will be providing the chip code however.

��4 functions triggered by the length of time control button is pressed.
1. Tap once to change patterns.
2. Press and hold for 0.5 seconds until 2 Leds start flashing then release. Unit will power off.
3. Press and hold for 1.0 seconds until 3 Leds start flashing then release. Unit will toggle between Continuous and Cycle mode. Continuous mode is the default and repeats the present pattern in a loop. Cycle mode automatically runs all the programmed patterns. Each pattern repeats 3 times before changing.
4. Press and hold for 1.5 seconds until 4 Leds start flashing then release. Unit will toggle between Bright and Dim mode. Bright mode is the default. Dim mode supplies less power to the Leds to lower their brightness level.��




Geek URL Of Google


妈妈说就算你注册的域名再长Google都能搜索出来.cn

2006-06-18

WEB 2.0 & WEB 1.0


历史可以跨越么?

以他乡为故乡的事儿在学术史、文学史上比比皆是。西方流行什么,国内马上跟着时髦起来,三十年河东,三十年河西,当西方沿着自己文化的脉络在前行的时候,我们却什么都没有留下,只有一颗继续浮躁,不愿意踏足自己土地的心。

互联网上也不例外。只不过把这出肥皂剧的演出速度加快了。西方互联网的发展,伴随着技术、文化、理念上的发展,没有后面这些,特别是没有人的观念的变化,不可能有互联网文化的今天。但是我们的互联网不是这样。不是一个文化催生的东西,而是由技术复制,欲望驱动。

这种机制上的复制,到了后来,变成了服务上的抄袭,概念炒作以及文化上的肤浅。

模式可以抄,UI可以抄,甚至内容也可以抄,抄出一个个明星脸,便自以为是明星来。但是明星的气质你抄不走,明星独特的历程你抄不走,明星会想什么做什么你抄不走。明星会继续走明星的路,而明星脸们,却不知该怎么走路了。

这就是原创和抄袭的不同。

原创的背后,是一套理念、一种哲学等,它们深谙需求所在,它们在达到目前状态所走过的路是这条路以及方向的指南针。

抄袭的人没有理念,没有哲学,甚至没有人生的态度,他们也不知道需求,它们只知道表面是什么样,不知道为什么会走到这一步,也就不知道下一步会怎么走。

这是大陆所谓web2.0服务商/站的现实。

所以,奉劝那些在此轮热潮中涌动的,甚至自我感觉良好的创业者、创业团队,回到历史中补补课,想想从哪里来,到哪里去,学学怎么做人,怎么待人,这些才是成功的基础。

2006-06-02

神秘主义



有篇blog说过,搞win系统的人之间,往往盛行神秘主义。

最近碰上一个事情,一个系统迁移,所有工作都是原来配置的人重新作了一遍,机器比原来好,网络比原来好,但是就是出了各种问题。

两个人都是该领域的一流高手,为什么呢?于是神秘主义盛行了。更有甚者,认为是人的压力不足,要把他们叫来,大家看着他们做。

其实,要我说,这个事情很简单,就是系统太复杂了,经手的人不可能记住所有的细节,忘掉了哪一个很正常,于是就出事了。经常有人说,这个系统没装好。拜托,计算机是门科学,什么叫做没装好?写好的代码,编译出一样的机器码,用一样的方式运行,一样的配置文件,怎么会出问题?计算机的世界是01的,非是即否,没有模糊的所谓“没装好”这么一说。

当然,由于系统复杂度太高,可能用重新来一次的方法解决一次更容易。于是就成就了所谓“没装好”的神秘主义。

微软的朋友讲过一个故事给我:现在我们运行的win系统里面,有部分代码是nt4时代的古董,到现在仍然不能动,没人敢动,也没人知道能不能动。这部分代码就彻底的神秘了。

windows没有强大的脚本机制,没有开放配置文件,有一部分参数只能在图形界面调整,人是会出错的,但脚本不会。所以unix系统的神秘主义比win少。

人会忘记细节,忘记细节的人大部分时候很难过,他们当然不是故意的。谁愿意毁自己一世英明?

这时候,明白文档重要了吧?win系统不好描述,哪怕配上抓图,写清楚点了那个按钮,用什么顺序,写了什么参数,事无巨细,从安装系统就这么做,然后好好存起来,以后照章执行,不得偷懒,我就不信他能神秘了。

计算机是门科学。我看不得不认同这句话的人自称技术高手。

Google.com恢复



在今天15:20左右,Google.com恢复正常访问。

2006-05-31

Google.com Seized



今天大约22:30的时候,想在Google.com上面找东西,突然发现Google.com无法访问了!
而Google.cn很正常......

ping www.google.com:
Pinging www-china.l.google.com [66.249.89.99] with 32 bytes of data:

Reply from 66.249.89.99: bytes=32 time=84ms TTL=245
Reply from 66.249.89.99: bytes=32 time=86ms TTL=245
Reply from 66.249.89.99: bytes=32 time=87ms TTL=245
Reply from 66.249.89.99: bytes=32 time=85ms TTL=245

Ping statistics for 66.249.89.99:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 84ms, Maximum = 87ms, Average = 85ms

tracert www.google.com:
Tracing route to www-china.l.google.com [66.249.89.99]
over a maximum of 30 hops:

1 * * * Request timed out.
2 29 ms 28 ms 23 ms 218.68.252.125
3 29 ms 49 ms 25 ms 61.181.0.89
4 29 ms 29 ms 29 ms 61.181.0.98
5 29 ms 29 ms 29 ms 61.181.0.101
6 29 ms 29 ms 29 ms 202.99.66.137
7 29 ms 29 ms 29 ms 219.158.7.45
8 29 ms 29 ms 29 ms 219.158.3.14
9 93 ms 119 ms 89 ms 219.158.32.10
10 89 ms 89 ms 89 ms 72.14.236.234
11 89 ms 89 ms 89 ms 66.249.95.197
12 89 ms 89 ms 89 ms 72.14.236.209
13 99 ms 89 ms 99 ms 216.239.47.74
14 89 ms 89 ms 89 ms 66.249.89.99

Trace complete.

在yahoo.com上面以“Google无法访问”为关键词搜索了一下,似乎Google正在“自动识别用户的IP地址,并把一定区域内的用户引向Google.cn......”。

难道Google已经向ZF妥协?还是敏感词汇引发的暂时封锁?
使用Vidalia尝试一下,虽然速度慢,但是可以访问......




我承认,对于我来说,无法使用Google.com是一个很大的障碍!

2006-03-12

Quake 3

http://www.plastk.net/

It's amazing how much more fun games are when you can play them on really large, high-resolution screens. Our HCI lab at Virginia Tech also has a 24 monitor display wall, and as you can see from the pictures below, I got Quake 3 running on it. The system is driven by 12 linux servers (2 monitors per server) using Distributed Multihead X (DMX) and Chromium. Chromium distributes the OpenGL rendering from the head node to all of the servers. The game runs fairly fast, though some lighting effects had to be turned off and Chromium is having some trouble with the mouse. Even so, playing the game is an awesome experience. Feel free to email me (plastk@vt.edu) with what you think.



Quake 3 running at 10240x3072 resolution at 15-30 FPS





A view of our 12-node Linux cluser resting behind the display.



Another view of the cluster/display with our ViCON system in the background.