开发你的第一个Firefox插件

July 21st, 2010 Alex Zhang No comments

搭建你的应用开发环境

Firefox相关设置的调节

创建Profile

新建一个Firefox的Profile,以便拥有一个纯净的开发环境,另外易于安装开发者插件。
使用以下方法创建一个新的Profile:
UNIX用户


firefox -no-remote -P develop

Windows NT用户
创建Firefox的快捷方式,传入参数 -no-remote -P develop

修改Firefox配置

使用该Profile打开Firefox,在地址栏内输入about:config,按下enter(或者return按钮。

修改以下参数为给出的值。下面将解释这些参数的含义。

  • javascript.options.showInConsole = true
  • 将chrome文件中的错误显示在Console里。

  • nglayout.debug.disable_xul_cache = true
  • 关闭XUL缓存,这允许不重启而改变窗口以及对话的内容。这里,可以使用目录而不是Jar。但是Overlay改变后,overlay文档必须重载。

  • browser.dom.window.dump.enabled = true
  • 这将允许dump()函数输出到stdout里。参考window.dump函数。特权应用也可用nsIConsoleService。

  • javascript.options.strict = true
  • 启用严格JavaScript错误提示。

  • extensions.logging.enabled = true
  • 这将给出更多关于安装以及更新插件的信息。

  • nglayout.debug.disable_xul_fastload = true (仅限Gecko 2.0+ (Firefox 4.0+))
  • dom.report_all_js_exceptions = true

Mozilla插件简介

什么是Mozilla插件

Mozilla插件是一段程序。通常,界面使用XUL语言(XML的一个子集)或者XUL内嵌HTML编写,而程序逻辑使用ECMAScript (Standard ECMA-262)(俗称JavaScript)编写。
XUL可以是独立的窗体,可以是对话,也可以是overlay。Overlay可以用于修改已经构建好的界面。下面是一段示例的XUL代码:

<overlay id="main-overlay" xmlns:html="http://www.w3.org/1999/xhtml"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

 <menu id="file_menu">
  <menuitem name="Example One"/>
  <menuitem name="Example Two"/>
  <menuitem name="Example Three"/>
  <menuitem name="Example Four" position="1"/>

 </menu>

</overlay>

而JavaScript可以用来定义程序的行为。按照惯例,我们给出一段“你好世界”程序。

	alert("Hello World!");

CSS可以用于自定义样式,而XPCOM可以用于调用Firefox提供的接口。另外,现在有一些JavaScript Library,可以直接使用而降低代码难度。

几个重要的文件

一个Mozilla插件大致由以下文件组成:

.
│	chrome.manifest
│	install.rdf
│
├─defaults
│	└─preferences
│		pref.js
│
└─chrome
	│
	├─content
	│	├─overlay
	│	│	ff_overlay.xul
	│	│
	│	└─tools
	│
	├─skin
	│
	└─locale

最重要的两个文件是chrome.manifest和install.rdf。看字面意思,第一个是&ldquote;Chrome&rdquote;的声明,而第二个则是与安装有关的文件。
chrome是用来形容XUL应用中的所有GUI结构性元素的名词。例如,Firefox浏览器中除了网页内容之外的所有内容都是chrome。

chrome.manifest

下面是一个示例文件:

content imgview chrome/content/
overlay chrome://browser/content/browser.xul chrome://imgview/content/overlay/ff_overlay.xul

可以按照需要进行修改。特别注意的是,overlay行中第三个元素将被附加在第二个元素上,第一个关键词是overlay。

install.rdf

本文件较简单。请参考下面给出的文件进行修改。

<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"
         xmlns:NC="http://home.netscape.com/NC-rdf#"
         xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

  <RDF:Description RDF:about="urn:mozilla:install-manifest"
                   em:id="imgview@osqdu.org.cn"
                   em:name="OSQDU Image Viewer"
                   em:iconURL=""
                   em:version="0.0.0.1"

                   em:type="2"
                   em:creator="OSQDU::Alex"
                   em:developer="OSQDU::Alex"
                   em:description=""
                   em:homepageURL="http://blog.osqdu.org.cn/code-review-of-osqduimg_xx.shtml">

     <!-- firefox -->
    <em:targetApplication RDF:resource="rdf:#$eAzAq3"/>
  </RDF:Description>
  <RDF:Description RDF:about="rdf:#$eAzAq3"
                   em:id="{ec8030f7-c20a-464f-9b0e-13905321042f}"

                   em:minVersion="3.1a1pre"
                   em:maxVersion="3.6.*" />
</RDF:RDF>

代理文件

在开发应用时,可以使用代理文件代替build好的插件。这类似UNIX中的软链接。
打开Profile目录内的应用ID目录(例如 $MOZ_PROFILE/extensions/{ec8030f7-c20a-464f-9b0e-13905321042f}/)。
如果不愿使用GUID(Global Unique Identification Number),也可以使用 “name@domain” 的方式命名,例如
imgview@osqdu.org.cn

开始我们的开发之旅

创建项目

也许大家都已经习惯了使用集成开发环境来开发应用,但使用IDE并不是好主意,这里,我推荐使用Vi IMproved
作为主要的编辑器,原因不再赘述,如果不会使用vim,则可以使用Emacs—两个总是要会一个的,其他
推荐的编辑器有Notepad ++,为使用Windows而不想学习高级编辑器的程序员准备。

在Mozilla网站上,我们可以通过简单的通过Add-on Builder插件
生成一个新的插件。下载zip文件,使用你喜爱的存档管理器或unzip实用程序解压缩,修改install.rdf
以及chrome.manifest.

代码的编写

这一部分其实我并不想完成,因为代码归根结底还是程序员自己写的,而不是看Tutorial得到的。但是考虑到
有些同学是第一次接触Mozilla开发,对XUL, JavaScript并不熟悉,因此我们以Firefox应用挑战赛
的例程作为例程来讲解怎样开发一个真正的插件。请

点击这个链接(http://dl1.g-fox.cn/campus/20100618/demo.xpi)下载本例程。关于应用挑战赛,

点击这个链接(2010Firefox火狐浏览器应用挑战赛揭幕!——参加大赛,赢取笔记本电脑和就业机会,抱着本本上班去!)

了解详细情况。

解压缩demo.xpi,列目录,我们可以看到下面的文件:

total 224
drwxr-xr-x  3 alex  staff   102B  4 23 09:13 chrome
-rw-r--r--@ 1 alex  staff   231B  4 22 16:19 chrome.manifest
drwxr-xr-x  3 alex  staff   102B  4 23 09:13 defaults
-rw-r--r--  1 alex  staff   102K  6 17 13:35 demo.xpi
-rw-r--r--@ 1 alex  staff   923B  4 28 12:16 install.rdf

修改install.rdf以及chrome.manifest可以修改本项目的描述。下面我们将主要
以讲解chrome/content内的代码。

main.xul是在chrome.manifest里定义的overlay,打开,我们可以看到
这是一个标准的XML文档,但命名空间是特殊定义的,元素均是window的child。其中,包含了一些
script,这些script就是用于控制程序逻辑的了,例如tools/dom.js控制DOM相关的程序。

XUL的元素有很多,但是个人认为并不需要完全记忆。只要记住一些基本的元素,例如window
, popup, vbox, hbox等即可。XUL的样式可以通过CSS来订制,这也是
有些Firefox插件可以做的非常漂亮的技术基础。目前,Firefox支持CSS3以及HTML 5,可以在此基础上开发
大量美轮美奂的插件。

有些时候,需要在XUL内插入HTML,这时,只需用<html:{HTMLTAG}>即可。但是要记住的是这是XML,
标签一定要闭合,否则会在parse时出错,导致浏览器无法正常使用,特别是在overlay到浏览器时。当然,最要命的
chrome.manifest出现问题。曾经在我开发Firefox插件时,有一天浏览器总是崩溃,只要在终端
里输入firefox -P,选择我的开发profile之后,浏览器就立即segfault。百思不得其解,最终重
新编译Firefox (在Linux下),上了gdb,慢慢调试,才发现是chrome.manifest让浏览器疯掉了。

有一个非常好用的工具,XUL
Periodic Table
。这个工具可以用于查询各种各样的布局,直接拿过来copy and paste即可。

下面讲解怎开发程序逻辑。首先要介绍的是dump("String")函数。本函数非常有用,随时可以在
终端里dump出一行信息,用于监视程序的运行。

JavaScript很简单,语法松散,当然后果就是有时候行为有点怪异。这里举几个简单的例子,告诉大家如何调用
Mozilla提供的接口。截图可能是非常常用的功能,而HTML 5里的canvas元素正好可以做这件事情。

function CaptureEntirePage() {
  var doc = getBrowser().selectedBrowser.contentDocument;
  var win = window.top.getBrowser().selectedBrowser.contentWindow;
  var left = 0;
  var top = 0;
  var width = doc.documentElement.scrollWidth;
  var height = doc.documentElement.scrollHeight;
  var fName = "shot.png";
  var canvas = document.createElementNS("http://www.w3.org/1999/xhtml", "html:canvas");
  canvas.style.width = String(width) + "px";
  canvas.style.height = String(height) + "px";
  canvas.width = width;
  canvas.height = height;
  var ctx = canvas.getContext("2d");
  ctx.clearRect(left, top, width, height);
  ctx.save();
  ctx.drawWindow(win, left, top, width, height, "rgb(255,255,255)");
  ctx.restore();
  var file =  SaveTemp(canvas, fName, 'S');
  return canvas;
}

上面的程序是我曾经开发过的一个插件的一部分。由于上段程序调用的函数都很简单,这里不再讲述如何使用。函数的
使用方法可以去MDC(Mozilla Developer Center)查询。MDC/Code snippets
里有很多现成的非常常用的代码用来参考,有一些CPAN的意思,当然不如CPAN大且全。

下面简单提一下文件操作,以此为例讲解如何使用XPCOM函数。

var file = Components.classes["@mozilla.org/file/directory_service;1"].
                     getService(Components.interfaces.nsIProperties).
                     get("ProfD", Components.interfaces.nsIFile);  

这里,file是一个nsIFile类型的变量。ProfD是Profile目录,其他常用
的目录还有Home,操作系统的家目录,例如/home/alex或者/Users/alex。TempD是
操作系统的临时目录,例如/tmp/var/tmp

下面介绍如何取一个nsIFile类型变量的路径。

var filePath = file.path;

其实就是这么简单。可以用file.create的方法添加目录,然后用下面的代码确认:

file.append("NewDirectort");
if( !file.exists() || !file.isDirectory() ) {
   file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
}

上面就添加了一个权限是777(drwxrwxrwx)的目录。777这个选项似乎对于Windows这类没有安全
特性的操作系统无效。

关于nsIFile的更多信息可以在MDC上查询,这里采用文件操作仅为了讲解较有代表性的函数,带领大家入门。

如何查找更多的信息

有一本书叫做Creating Applications with Mozilla,但这似乎是Netscape时代的书,
参考价值不大,建议大家不要购买。这里
可以合法的在网上阅读。

我推荐的学习方法是在写代码的过程中进行学习,这样才会有最好的学习效果。只看书,看资料而不写代码是
学不好写程序的。但是,资料仍然是必备的。下面推荐一些互联网资源,希望能帮助到大家。


Copyright (c) 2010  Alex Zhang
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".

Writted in the VI Editor

Categories: Uncategorized, 项目 Tags:

致青岛大学教师的一封信

July 12th, 2010 KirovAirShip No comments

身在美国,辗转反侧,难以入睡。
在决定写这个题目前,我特意搜索了一下关键字“致 大学老师的一封信”,未曾见到相似的题目,兴奋之余,觉得痛心。
既然已经毕业了,过去有所顾忌的东西,现在想来也是可以拿出来探讨一下。

从上课态度说起。

一直以来,谈到上课态度,往往就是指学生在课堂上对这节课、这门课的态度。所谓“上课态度不端正”,似乎也就成了学生的专利,未曾有人对教师的上课态度提出什么公开的质疑,即便是有所不满,也不会当面或私下提出,否则便会被扣上没大没小之类的帽子,着实让当事人讨不着一点高兴的地方。
在高中时就听说大学老师就是仅仅来上课,下课就走人。真正到了大学,这样的老师还真是多数,能主动欢迎学生来交流的倒成了个别现象。这样做虽说无可厚非,本来大学和中学就有很大不同。但是,与学生接触的时间打了折扣,难道在上课时的教学态度还要再打个折么?

教师是个良心活,上课态度如何,可不能看着月底发的工资来!教师,那得是有良心的才能干好的活!有良心才能当个好老师!懒懒散散到了教室,比学生来得还晚,说话扭扭捏捏哼哼唧唧,动不动还发个小脾气,作业从来就个“阅”字,不管对错都是一片对号……我觉得既然我能遇到这些情况,就一定不是个别情况。

依稀记得,有次三四节的课,该任课老师不讲普通话,到了第四节课,一改常态,一口标准普通话,说话声音高了好多,连授课内容都更容易听懂。原因是什么?为什么一个课间过去就这么大差别?老师们,这,应该很清楚了吧——督学来后面听课了 。第四节上了一半,督学走了去吃饭,又是什么人在讲台上长舒一口气,整个人都放松下来了?方言也出来了,用词也不准确了,脾气也变差了,让学生不爱听了。

咱们的学生不是傻子,不是机器,讲台上的人有没有认真在讲,自己对教学内容理解到什么程度,这都是可以看得出来的。一股懒散的样子,谁爱听?照着书就那么一段一段的往下念,你就对得起这9块钱的课时费,也就值这9块而已!

上课的基本目标是什么?是让学生理解自己的授课内容。可是为什么在我看来,有很多老师就放松了对自己的要求,这基本目标竟然成了奢望,成了最高目标,成了不可能完成的任务?

有责任感的老师,有良心的老师,都会想尽一切办法,让更多的学生接触到授课内容,让更多学生掌握这些内容,所以在他们的课上,你会看到,老师会花费一些时间,让“主动”坐在后排的同学填补靠前的位置,会不断下来走动,确保每一个学生都尽可能的在听课,都尽可能的去理解教学内容,都尽可能的开动脑筋去思考去掌握。
而没有责任感的教师,他(她)们的课上,就会出现这样的一种情况,前排稀稀拉拉几个人,甚至没有,学生都在后面挤成一团,各忙各的。整个教室的人数加起来都没有应到人数的2/3。这是什么原因?“学生不爱学习?”“这门课考察课?”……都不是,是因为这是个不负责任,没有良心的人上的课,这样的人不配被称作老师。纵使才高八斗、学富五车,工作不认真也是白搭。
考虑到教学是教师的工作,不认真教学就是工作态度不端正。这样的教师,没有资格指责学生不来上课,来教室也不听课,学生们学习态度不端正,绝不是教师教学态度不端正的借口和理由!

我亲爱的老师们,你们应该知道,你们一个人的言行,会影响到几百上千的学生,你们的教学态度直接影响学生学习的态度,你们的学术水平和修养直接影响学生在学术方面探索的深度。青大的学生入学成绩有高有低,可起码在高中都是认真学习的孩子,他们何尝不想在知识的海洋中汲取更多营养,是谁让他们对学术丧失了信心,是谁纵容他们学术造假,又是谁,在“毁人不倦”的事业中,起了推波助澜的作用?你们应深思。

我谨代表我自己,向各位教师提以下几点希望:
一、端正教学态度,上课严肃认真,督学在督学不在一个样。力求把学生教会,始终记得让更多学生掌握这些知识是你们的崇高使命。
二、不管是自己批作业还是外包给自己的研究生来批作业,不要仅仅看谁交谁没交,这只是一方面,还应该对作业作出以下要求:
1. 每次作业作为平日成绩的一部分,成绩的计算要给学生一个明确的表格。
2. 按时交作业,规定交作业的最后期限,且该期限是到达办公桌或办公室外书架的时间。一天以上未交作业,该次作业成绩要有明显惩罚,例如0分。
3. 任何平时作业的抄袭,均判为0分,给予最严厉的惩罚。可考虑设立诚信分数,或在期末总成绩中予以体现。
三、设立积极交流分数,上课提出问题或者给出自己见解的应予以鼓励。
四、上课不要问“都懂了么,有没有不会的”,这不是一个好问题。因为没懂的同学一般不会主动提出来。要注意倾听,看看并不是所有人都会说“懂了”二字。该重复则重复。
五、不在课堂上讲过多与教学内容无关的。例如哲学课上讲该吃什么,该怎么吃才健康。这种问题完全可以下课讨论的。上课说这个就是不务正业。

另外说一下政治课,我觉得我国特色的政治课,要发挥其作用——培养又红又专的人才,这个目标不仅远远没有达到,还有偏离。从我上的政治课来看有这样几个顽疾需要解决:
一、学生不爱听。这是普遍情况,但这不是上政治课就念课本的理由啊。政治课的内容,本来就是与生活密切相关的内容,如果割裂与生活的关系,自然枯燥乏味。要注重联系生活,这就要求政治课、历史课的老师,有目的的多进行阅读,带着发现问题、解决问题的想法去阅读。让学生学习政治理论,不管是中国特色社会主义还是辩证唯物主义/历史唯物主义,马克思主义经济理论,都是为了让学生能够利用好这强大的思想工具,对历史对现实进行分析。教师不仅要教这些理论,还要教给学生活学活用。这才能达到政治课的教学目的,也就不怕学生会不爱听了。
二、允许并鼓励学生上课时提出问题,提出质疑,要引导他们利用马克思主义的理论去试着自己解释,不要一味压制反对声音,只要是在马克思主义框架内,都是有益的。政治课上有小范围的讨论,要鼓励不要说“上课不许说话”。尤其是哲学这种实用性很强的课程,有讨论就有收获就有进步就能产生效果。
三、从自身做起,活学活用唯物主义辩证法,言传身教才有效果。
四、历史上有争议的问题,要允许小范围讨论,这是学术,无关对错。但不可不加以引导,务必让学生全面、系统、历史的看问题。引导学生自己去分析,只有自己才能说服自己,教师尤其不要采用压服的方法或者简单粗暴的“不予讨论”。

不要说青大如何如何不好,请从自身做起,认真对待教学,真诚对待学生。青大美好的明天由我们一起创造!

Categories: 教育 Tags:

怎样用Python批量生成Bind的PTR记录

July 6th, 2010 Alex Zhang No comments

今天中午,我,作为OSQDU排骨米饭研究会成员之一,吃完排骨米饭之后,正叼着一个冰激凌走回自习室的过程中,碰到了网络中心的某老师,活立即就来了……
今天要搞定所有的PTR解析,不知道哪里要求的。我们的IP是211.64.164.0-211.64.191.255,手工写要写8192行,显然不行。于是就写了个小Python程序,贴在下面,用于生成PTR记录。注意,这里可不管你本来的解析了。是个dirty code,但是可以工作,这就达到我的要求了。
下面是base64编码的文件:

IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgpoZWFkZXIgPSAiIiIKJFRUTCAxSAoKQAlJTiBTT0EJUURV
MS5xZHUuZWR1LmNuLiBob3N0bWFzdGVyLnFkdS5lZHUuY24gKAoJCQkyMDEwMDcwNgk7c2VyaWFs
ICh2ZXJzaW9uKQoJCQkzSAk7cmVmcmVzaCBwZXJpb2QKCQkJMUgJO3JldHJ5IHJlZnJlc2ggdGhp
cyBvZnRlbgoJCQkxVwk7ZXhwaXJhdGlvbiBwZXJpb2QKCQkJMUgJO05lZ2F0aXZlIGNhY2hpbmcg
VFRMCgkJKQoKCQlJTiBOUwlRRFUxLnFkdS5lZHUuY24uCgkJSU4gTlMJUURVMi5xZHUuZWR1LmNu
LgoKIiIiCmZvciBjbGFzc2MgaW4gcmFuZ2UoMTY1LCAxNzUpOgoJI0VYVEVSTkFMLmkuLjY0LjIx
MS5pbi1hZGRyLmFycGEKCWZpbGVuYW1lID0gIkVYVEVSTkFMLiVkLjY0LjIxMS5pbi1hZGRyLmFy
cGEiICUgY2xhc3NjCglwcmludCAiR2VuZXRhdGluZyAlcyAuLi4iICUgZmlsZW5hbWUKCWNvbnRl
bnQgPSBoZWFkZXIKCWZvciBpcGFkZHIgaW4gcmFuZ2UoMCwgMjU2KToKCQljb250ZW50ICs9ICIl
ZAkJSU4gUFRSCTIxMS42NC4lZC4lZC5pcC5xZHUuY24uXG4iICUgKGlwYWRkciwgY2xhc3NjLCBp
cGFkZHIpCglvdXRwdXQgPSBvcGVuKGZpbGVuYW1lLCAndycpCglvdXRwdXQud3JpdGUoY29udGVu
dCkK

用法: ./gen.py 即可生成一大堆文件。注意修改文件名以及特殊IP的解析。
点击这里在新窗口中看这个文件并复制下来。

Categories: 技术和生活, 项目 Tags:

OSQDU提供的校园网服务

July 2nd, 2010 Alex Zhang 5 comments

OSQDU作为青岛大学的非官方开源组织,在很长一段时间以来都在为青岛大学的学生提供便利的服务。最近,所有的同学都切换到了校园网,因此,我们有必要整理出来我们的所有服务,以便大家使用 :)
首先,是OSQDU 3P下载系统(BETA)。地址 http://dl.osqdu.org.cn/ (仅限内网)。内容丰富,但内含的版权内容请慎重使用。
然后,就是为全青岛市服务的镜像了。地址 http://mirror.osqdu.org.cn/。包含多种开源软件以及优秀商业软件的镜像,方便大家使用。注意,我们禁止一切非法的恶意下载工具,包括但不仅限于迅雷、Flashget、QQ旋风等。另外,低版本的IE浏览器也将被重定向到另一个页面,提示您尽快升级浏览器或者使用更安全的浏览器。
再次,是青大Portal。这个Portal不是移动的计费Portal,而是服务于同学,发布常用信息的地方。基于开放源代码的Drupal搭建。地址 http://portal.qdu.cn/
然后,是我们的WebOS平台。这个很好玩的,运行在一台拥有1GB海量内存,2.8GB高速超线程奔腾4处理器的联想都不用想的服务器上。放心,跑不死的。地址是 http://cloud.osqdu.org.cn/
如果你发现上网速度变慢了,请看校园网流量查看。这里你可以了解校园网到底出口流量占用了多少。
有什么意见和建议,欢迎发送电子邮件到青岛大学网络中心(nic @ qdu.ac.cn)或者我(Alex, alex @ qdu.ac.cn)。

Categories: 技术和生活, 项目 Tags:

Mr Alex Zhang Resigned

June 7th, 2010 Alex Zhang No comments

Mr Alex Zhang have resigned from general secretary of OSQDU Greater China Region for health reasons.
Mr Frank Song will become temporary general secetary of OSQDU.
New general secetary will be elected soon.
OSQDU Co-founder, Alex Zhang
June 7th, 2010

Categories: 新闻 Tags:

记OSQDU烟台大学讲座

April 21st, 2010 Alex Zhang 2 comments

OSQDU中国:上周末,承蒙烟台大学计算学院软件协会邀请,OSQDU成员、Firefox校园大使张涤凡前去进行开源软件宣传讲座。讲座受到了谋智网络(Mozilla Online)的大力协助。

第一场讲座开始在4月17日上午,演讲的主要内容有初识开源软件、UNIX哲学与计算机和对计算机专业新生的一些建议。演讲共持续了大约2个小时。期间,同学们饶有兴趣的对开源软件的历史、发展进行了提问。

introduction第二场讲座也是本次活动的重头戏,张涤凡介绍了如何从头开发一个Firefox插件。

alexAlex正在介绍如何开发插件

alex

studentsstudents聚精会神的同学们

随后,Alex在会场上连接网络,使用了几个例子,介绍了一些高效信息检索以及搜索引擎高级使用的方法。

另外,本次讲座的幻灯片以及源代码也在OSQDU的网站上发布了,下载地址是http://blog.osqdu.org.cn/osqdu_public/hello.tar.gz

Categories: Uncategorized Tags:

活动预告:烟台大学演讲

April 14th, 2010 Alex Zhang No comments

OSQDU中国总部:

我们将于2010年4月17日~18日在烟台大学进行开源软件推广以及使用相关的演讲和座谈会。演讲的具体内容(暂定)有:

  1. OpenCV模式识别简介
  2. 如何开发你的第一个Firefox插件
  3. 计算机专业学生与开源

欢迎到时参加!

从青岛到烟台的火车票硬座票价为44元。

OSQDU::Alex

Categories: Uncategorized Tags:

低俗的国内网络公司们

March 30th, 2010 KirovAirShip 7 comments

绝对首创
自主知识产权
神奇的技术//就是不说啥技术
文档用DOC
网页全用table,标签都大小写混合,字符集一定是gb2312
网站和程序大多跑在Windows上,还用ASPX
URL里没有大小写不行,要不显不出来此人会英语
如果需要浏览器交互,必定说IE
如果有压缩包,必定是RAR
无限多的flash
无限多的客服MM在线,专家在线,××老师在线
名词不NB不行,说出来不玄乎不行,别人听懂了不行
再来个盗版小工具下载

全了,我操
以上有一点,就是个没水平的低俗的,让人看不上的公司。一点都不专业,还好意思混饭吃?

Categories: 技术和生活 Tags:

OSQDU对谷歌退出中国表示遗憾

March 23rd, 2010 Alex Zhang 1 comment

OSQDU中国总部讯:今天,Google Inc已经正式关闭了Google.cn和G.cn,并且在官方博客上发表了关于谷歌中国的最新声明一文。文中指出,由于中国政府对诸多知名网站的屏障以及其对与中国有关的人权人士的持续骚扰,谷歌“不能继续在Google.cn搜索结果上进行自我审查”,所有的对Google.cn和G.cn的请求也都转发到了Google.com.hk。

OSQDU中国总部和美国支部的首选搜索引擎都是Google。我们选择Google的原因主要有以下几点:

  • Google的搜索结果是更有效的。对于我们涉及的话题(主要为UNIX以及Linux),Google的搜索结果更精准
  • Google的广告更清新,让人不反感。

对于IT行业而言,掌握最前沿的技术是十分必要的,因此有一个良好的搜索引擎是十分必要的。拿我们正在进行的qdubbs项目来说吧。我们在检查LDAP相关资料的时候,我们使用Google十分轻松地找到了LDAP C API(Mozilla的开源项目。虽然我是Mozilla的校园大使,但是这个真的没注意过),而使用其他搜索引擎,比如百度,我们找到了一大堆非原创的格式混乱的无效内容。列举几条,LDAP c API(1)_ 娜西小妖netscape ldap C API读取全球地址簿问题求教,急!怎样用ldap的c api往ldap中添加中文呀-网络程序及编程 等等。更何况最新的技术资料基本都是英文内容,对于百度而言,英文内容实在太少、不够新。

今天,我代表OSQDU采访了来自香港的媒体从业人员心语以及北京的互联网从业人员高阳。

心语表示,作为新闻工作者,Google中文的搜索结果最快、最优,因此谷歌是最优的选择。对于google.com.hk而言,由于其本身就是未经审查的结果,因此搜索结果与以前相比并没有什么太大的区别。香港居民表示支持并理解Google的行为、并考虑到Google香港献花。他们表示对中国政府的做法表示忧虑。而对于大陆的网络审查制度,心语表示,对于生活在有着自由网络环境的他们而言,很难体会到有网不能上的感觉。但是对于出差到大陆的时候,facebook等网站不能使用对他们确实带来的一切困扰。

高阳,独立博客也接受了我们的采访。他表示,他最喜爱的搜索引擎也是Google。很多原因导致他不使用其他搜索引擎。对于百度而言,竞价排名是他很反感一项业务。同时,百度等搜不到很多有价值的东西。“一般 你搜一个工具或者是开源的项目什么的, Google.com一般推荐他们的官网。而百度会出现一堆的下载站点,让人很恶心!” 高阳如是说道。对于Bing,他感觉不符合自己的口味,因此不选择。在Google.cn跳转Google.com.hk以后,他感觉影响很大。只能看到受到审查的内容是他难辨真假,像是生活在一个“圈”里。而关于网络审查制度,他说,“有很多国外的网站无法登陆,有些先进的技术,知识无法和国外的朋友交流。这让我挺悲哀的!互联网审查在很多国家都是存在的。从小我们被教育,要认清历史,但是实际上我们很多东西不知道。我们不知道别人怎么看待这个问题。有些东西的审查是有必要的,但是盲目的审查是不可取的。 这会让中国的互联网越来越封闭。”他还认为这可能导致人才的流失。

对于谷歌退出中国大陆一事,OSQDU中国总部表示遗憾,中国失去了一个好的互联网公司。幸而,还有留在中国的技术部门以及广告部门。在这次事件中,我们失去的是枷锁,得到的是自由!

OSQDU::Alex 禁止未授权的转载

Categories: 技术和生活, 新闻 Tags:

OSQDU正式提供部分开源软件镜像

March 19th, 2010 KirovAirShip No comments

2010年3月18日,是一个值得纪念的日子。
青岛地区的大学没有开源软件镜像的日子,一去不复返了!

我们首批提供的镜像(包括但不限于开源软件)已经就绪
Comprehensive Perl Archive Network (CPAN)
马克思主义中文网
来自挪威的Opera浏览器
Cygwin,谁用谁知道
Ubuntu Linux,Linux for human beings
Internet Engineering Task Force (包括ietf草稿和RFC)
PortableApps,Windows平台下的便携式软件
OpenOffice.org,自由的办公套件
张涤凡同志在镜像建立过程中提供了许多有益的建议和意见,

宋崟川同志为镜像的正常运行度过了许多不眠之夜。

让我们向他们表示最诚挚的感谢!

Categories: 新闻 Tags: