2009年1月26日星期一

大过年的,被rm害苦了……


大过年的,被rm害苦了……
事情是这样的:最近一直在调HCC的新服务器。本来备份的目录是/backup/,但我怕备份太大把/占满了,于是想把它挪到/var/里面去。可是,谁知道我今天什么rp,愣是敲进去了
rm -R /backup /var

于是,/backup和/var就全毁了。真是郁闷极了!这下服务器又得重装了。你说光把/var给删了也就罢了,还把备份的也删了。真是的。
SHIT!!!
rm这条狗屎命令!!!我一定要alias掉你!!!
alias rm='rm -i'


不过,还是春节快乐吧!摆脱rm的阴霾!!!

2009年1月23日星期五

近半年,吾终成维基执行编辑!

近半年,吾终成维基执行编辑!

我的维基生日是2008年7月24日。在2009年1月21日,我快半岁了,我终于成为“维基执行编辑”了!想看看我的用户页吗?来吧!

透露一个消息,维基将在最近推出富文本编辑器(按我理解就是类似于FCKeditor, TinyMCE一类的东西)以方便新手编辑文章。

php常见漏洞及防范措施

最近一直在忙活HCC的新服务器(LAMP!!!),一直在看一些关于安全之类的文章。可是,服务器再安全,如果上面的php/asp等脚本存在漏洞,那也是白忙活。下面,我总结了php常见的几个漏洞(asp等的漏洞也都类似,可以参考)以及防范措施。

漏洞1.SQL注入
这真是极其耳熟能详的漏洞了,曾经害过无数网站。不过,自从php有了“魔术引用”(Magic Quotes),SQL注入可是尝不到任何甜头了。但是,防范于未然,万一人家php版本低呢。可以编这么一个函数来防范:
01 <?php
02 function escape_data ($data)
03 {
04     if (ini_get('magic_quotes_gpc'))
05     {
06         $data = stripslashes($data); //抵消Magic Quotes
07     }
08     if (function_exists('mysql_real_escape_string'))
09     {
10         global $dbc;
11         $data = mysql_real_escape_string
            (trim($data), $dbc);
12     }
13     else
14     {
15         $data = mysql_escape_string(trim($data));
16     }
17     return $data;
18 }
19 ?>
说明一下,mysql_real_escape_string可以根据数据库链接判断字符集,更加安全,但只在较新版本的php中有。
只要将每一个数据库查询语句使用一下这个函数,基本就安全了。或者,更完美的话,可以再用正则表达式检验一下。
当然,还要注意,尽量给用户开放最小的权限。这样,即使被注入了,损失也是有限的。

漏洞2.XSS,跨站脚本
观察如下代码:
1 <?php
2 $name = $_GET['name'];
3 if isset($name)
4 {
5     echo "Hello, $name";
6 }
7 ?>
试想,如果别有用心的人将name写成一些HTML代码,后果将不堪设想。
不过,防范的方法还是比较简单的,只要用htmlspecialchars这个函数就可以了。

漏洞3.错误信息过于详尽
观察如下代码:
01 <?php
02 $result = @mysql_query($query);
03 if ($result) { /* Do something... */ }
04 else
05 {
06     echo 'System error ... ';
07     // ...
08     echo 'Error:' . mysql_error();
09     // ...
10     echo 'Query:' . $query;
11 }
12 ?>
有时,为了调试的方便,将错误信息写得十分详尽。比如说将数据库连接的语句都写出来了。这在网站发布后是不可想象的,需要注意。

呵,这就是我总结的一些常见的漏洞,大家可以留言补充。

2009年1月13日星期二

A Secret Plan - Xplan Stage 1

This is a Secret Plan, named Xplan Stage 1.

Feb.15th - July.1st

You want to know more?

Wait a moment, at July.1st, you will know all.

2009年1月11日星期日

TextMate真是太劲爆了!!!

!!!

!!!

TextMate - The Missing Editor for Mac OS X

HCC买了两台iMac,还有Adobe CS4等软件。最令我不解的是,竟然花了近千元买了两套TextMate。开始,我认为她就是普通的文本编辑器,真是不值,花这么多钱。我上网查了,只是说比较好用。但我想,文本编辑器能好用到哪去啊。我用了很久,仍然认为她只是类似于Gedit一样的东西,只不过界面比较爽。直到今天,我看了几个视频!!!太劲爆了!!!于是,我仔细研究之,发现之确实是写代码的利器!!!用了就会上瘾的!!!网上多人说有人仅为了TextMate去买Mac,开始我是很不解,可现在我了解了。说不定,用着用着,我也会上瘾。她太贴心了。

太强了。太强了!!!代码的补全功能,不是一般意义的补全,真是无敌了。还有Bundles,绝对是一个变态的东西。诸多的快捷键配合Bundles,绝对能节省一半的编程时间。(绝不夸张!!!)

附:视频:
http://macromates.com/screencasts
http://gallery.me.com/jimtkm#gallery

可惜这玩意不支持中文。2.0将支持中文。

39欧元真是值了。

2009年1月1日星期四

今天是2009年1月1日

今天是2009年1月1日,2008年已经过去。

祝所有人在2009年一切顺利!!!

祝我在2009年的科技创新大赛(还有明天小小科学家、信息学竞赛)中取得好成绩!

希望Ubuntu9.04 & 9.10再创佳绩!

祝我在五天后的期末考试中取得好成绩!!!

附:Google今天的Doodle

2008年12月31日星期三

韦诺之战 -- 矮人龙卫士祝您新年快乐!

矮人龙卫士祝您新年快乐!

Dwarf Dragon Guard wish you a Happy New Year!

2008年12月16日星期二

开始用FeedBurner烧Feed了


http://feedproxy.google.com/xhacker
这是我的Blog的新的订阅地址。用FeedBurner以后,统计起来就方便多了。不多,我的Blog订阅人数应该是在个位数,嗨,纯属没事找事。

不知道为什么用FeedBurner订阅的都没有图片,这还得解决一下。原来是我不小心把FeedBurner设成摘要模式了。

对了,声明一下,www.alphax.cn已经过期。

2008年12月13日星期六

Guide Robot, GPS, ...

我们的eX-Robot Team准备做一个导盲机器人了。我个人认为十分有前途。昨天,我和猩去海龙买了一个GPS模块,今天上午终于在Google Earth中成功的定位了。只有GE Plus才支持GPS,要每年20美元。不过,Google已经把Plus取消了,GPS功能即将加入Free版,好消息。
今天的月亮很大很圆。
对了,王秀军上杂志了。看图。

2008年12月6日星期六

机器人竞赛二三事

机器人竞赛,发生了不少事。
我跟猩没有去成广东,但有一个新的比赛,科技创新大赛。我校有三个队,应该能突围一个队。我们一周的下午、晚上都在弄这个。
今天和DK一起等车,我说来736,DK说308。751?我跟DK都从来没看到过,车极少。过一会,来了308,接下来竟是751。DK:天真冷。我:今儿天不错。车开过去,看到侧面竟写的是951(*大概就是9少一个横,很像9。DK:灵异了。我:应该是9。车开过去,看到后面竟是851!!!DK:没看到车牌号。我:待会看一眼。于是,车牌号是“京A A9312”。今儿天真冷!
机器人,我们eX-Robot Team争取突出去。
Vex,DK他们拿了银奖,不错。
下周的国旗下讲话,DK上。
什么时候我上?科技创新大赛一等奖。NOI一等奖。
对了,NOI,信息学竞赛,我将开启新的征程。

发现一个有意思的事情,NOI是AMD赞助,科技创新大赛是Intel赞助。

2008年11月22日星期六

[转] Web 设计:实现干净代码的12条定律

本文国际来源:http://www.smashingmagazine.com/2008/11/12/12-principles-for-keeping-your-code-clean/
中文翻译来源:COMSHARP CMS

漂亮的代码是漂亮网站的基础,优秀的 CSS 只存在与同样优秀的 HTML 之上,干净的,语义的 HTML 代码让一个网站更健壮。本文讲述了12个实现干净 Web 设计代码的定律,适合于任何从事 Web 设计的人。

1. Strict DOCTYPE

要做就做对的。不管是 HTML 4.01 还是 XHTML 1.0,它们都提供 Strict 模式,使用 Strict 模式可以保证我们的代码不隐藏任何错误。

参考资料:

2. 字符集声明,特殊字符进行编码处理

字符集声明应当放在 <hea> 部分的最前面,以便让浏览器知道如何显示网页中的所有内容,包括标题。另外,一些特殊字符,如 & 最好用 &amp; 代替,这是一种最安全的方法。

参考资料:

3. 恰当的缩进

缩进不会影响网页的渲染,但会明显改善阅读源代码时的体验。缩进没有特定的规则,但始终保持一致是个好习惯。

参考资料:

4. 将 CSS 和 JavaScript 放在外部文件中

将 CSS 和 JavaScript 放在外部文件中引用,不仅减低单个网页的尺寸,而且意味着其它网页也可以共用这些代码,另外,浏览器的缓存机制可以很好地降低对相同代码的重复下载。

5. 正确地嵌套 Tag 标签

如下图,第一行代码中,<h1>标签嵌套在 <a>标签中,尽管多数浏览器会正确渲染,但这不是好的习惯, 标签是 block 对象,而 是 inline 对象,inline 对象不应该容纳 block 对象。

6. 消除不必要的 <div>

<div> 常被滥用(尤其在我们现在所处的 DIV+CSS 神话中 - 译者),人们希望把任何东西都放在 <div> 中以便为它们分配 CSS 式样,这种滥用会导致的臃肿。

参考资料:

7. 使用更好的命名规则

如下图,Cat 的 CSS 类被命名为 red italic,暗示着 Cat 使用红色斜体,如果你想将 Cat 改成兰色的粗体呢?

8. 尽量使用 CSS 控制文字的排版

如下图所示,不要直接使用大写,用 CSS 对这些文字排版方面的格式进行控制,这样会更灵活。

9. 为 <body> 分配独立的 class/id

为 body Tag 分配一个独立的 class/id,可以很好地定位页面中任何对象,因为页面中所有对象都位于 body 中。

参考资料:

10. 验证

无需多言,你应当尽可能对网页的代码进行验证,尽管有些代码错误浏览器能自动更正,但有些错误是会带来不好的后果的,尤其当你位于 Strict 模式下。即使什么都不为,看到那个绿色的 W3C 验证标志至少可以让自己舒服一些。

W3C 验证是否通过并不一定要什么拘泥,Web 设计中存在更多的考量,只拘泥 W3C 验证结果,可能影响一些更重要的因素,比如,IE6 在 W3C 标准方面存在不少 BUG,如果你为了100%通过 W3C 验证而宣布自己的网站不支持 IE6,至少在国内会得不偿失的 - 译者

参考资料:

11. 合理的结构次序

将网页结构保持一个合乎逻辑的次序。

12. 尽你所能

如果你从零开始写,保持以上的原则当然要容易的多,如果要修改旧的代码,将会很痛苦,一些 CMS 系统拙劣的编码会让你陷入泥沼,或者你的网站规模宏大要改动的东西太多,不管怎样,始终保持良好的习惯非常重要。

更多阅读:

本文国际来源:http://www.smashingmagazine.com/2008/11/12/12-principles-for-keeping-your-code-clean/
中文翻译来源:COMSHARP CMS

2008年11月9日星期日

The God Damn Exam

万恶的期中考试过去了。
我这回又考糙了。
语文:47(基础)+34(作文)
数学:92
英语:(90+18)*0.8=86.4
物理:88
化学:65
历史:??
地理:8?

主要是数学和化学,太糙了。
期中以后开始努力,争取期末进前80。

By the way, 十二月初我们要去中山参加机器人比赛。爽利!!!

2008年10月31日星期五

Wow!Ubuntu 8.10 Intripid Ibex

今天一打开Ubuntu官网,眼前一亮,看到了一个很有特色的动画,内容是:With great 3G and WiFi support, and able to launch from USB keys, you can now take your desktop everywhere. The new Ubuntu 8.10 Desktop Edition Now released.

好像还有一个server版的动画,似乎是随机放的。Intripid Ibex虽然没有带来极其期待的全新主题,但8.10还是很棒的,比较有特色的“USB启动盘”创建工具。使用它,可以很轻松地创建一个LiveUSB,来引导、安装Ubuntu,也可以当LiveCD来用。

赶快下载吧:http://www.ubuntu.org.cn/getubuntu/download

2008年10月4日星期六

Ubuntu 8.10 Intrepid Ibex就要来了!

http://www.ubuntu.com/files/countdown/810/a_white/countdown_8_10_a_00_days_a_here.png

Ubuntu 8.10 Intrepid Ibex就要来了!
前两天,我刚刚重装完8.04,昨天,8.10 Beta就发布了,让我们共同期待。


主题是NewHuman暗色主题。
让我们来看一下新特性:

X.Org server 1.5

Linux kernel 2.6.26

加密的私人文件夹

每个用户都有一个加密过的~/Private文件夹。

详情:EncryptedPrivateDirectory

访客会话支持

对于一些临时要借用电脑给他人使用的场合,这个功能十分有用。

Network Manager 0.7

增强了Ubuntu 8.10的网络功能。


啊!顺便恭喜我成为[[维基助理编辑]]!

2008年9月3日星期三

Google浏览器?!

今天一上Google,下面就出现了一个新!立即下载谷歌浏览器(测试版)进去看看,试了一下,很简洁,也很快,还是挺不错的,不过只有Windows版。
“从任何一个新标签均可即时访问您最喜爱的网页”的功能与Opera的快速拨号有些类似,还有“为您常用的网络应用程序创建桌面快捷方式”的功能,就像Prism一样。

发两张图片:

2008年8月23日星期六

军训归来

为期六天的军训终于结束了。这个军训可以用一个字来形容:累。
端腿真爽。
不过,休息的时间玩玩牌,熄灯之后聊天,还是很惬意的。
我们的教官是金爷,他的一声“立定”我们永远也忘不了。

现在坐在电脑前,终于可以解放了,好好放松一下吧。

2008年8月15日星期五

Sudoku Ver 0.0.1 Alpha

终于搞出来一个了,不容易。

源代码及下载:http://sites.google.com/site/xhackerbase/Home/suduku

此版本可以生成数独,命令行界面,无其他功能。如果要加上做数独的功能,有两大难点:
1.挖洞:如何挖出难度很大的数独题,又有唯一解?只有再写一个求解的函数;
2.控制:命令行的程序无法控制,一种方法是用GUI(GTKmm),其二是使用curses(这个能跨平台吗?Linux和Mac倒是都没问题),都有一定难度。

还请大家多多指教,发表意见,期待下一版本。

2008年8月10日星期日

数独 Sudoku

最近突然对数独了感兴趣了。经过一番研究,现在,我基本上已经不怕任何难度的数独了。怎么办呢?我决定编一个生成数独的程序,经过一番思考,有以下两个想法:

1) 先随即生成一个3*3,然后再把其中的1*3向右下平移,3*1向下右平移。总之说白一点就是把3*3变换到9*9。这个非常简单,就是做出的数独太有规律了;

2) 按照[1][1], [1][2], ..., [1][9], [2][1], ..., [9][9]的顺序慢慢生成。(俺家CPU还行,呵呵)。

建立几个函数:
bool isUni_Row (int row);
bool isUni_Col (int col);
bool isUni_Nine (int row, int col);
bool isUni (int row, int col)
//用来检查生成数字在行、列、3*3中的唯一性

int randNum (int time); /*用来生成随机数,time是生成的次数,生成9次随机数不能重复(可以用time控制)*/

从第1个格一直到第99个格,每个格都
sudoku[row][col] = randNum (time);
time++;
if (!(isUni (row, col))) {/*重新算这个格,如果time==9,回到上一个格*/}

以上是大致的方法,当然估计计算量会惊人。
过几天写完以后,我会放出代码。因为最近在学C++,所以用C++写。

那位有更好的方法,或想助我一臂之力,请回复。

2008年8月8日星期五

2008年8月8日的行程 + “绿色”奥运害死人

今天是8月8日,我和我爸觉得应该出去转转。下面就分享一下我们今天的行程吧。

第一站:丰台垒球场。
因为家住得较近,就先去看看。不多说了。

第二站:鸟巢以及水立方。
那人是相当的多啊!今天又是一个阴天,照片照出来也没什么意思。

第三站:中关村。
突然发现中关村挺近的,顺便去转转。

第四站:Apple Store。
本来想坐地铁回家,突然发现10号线途径Apple Store,我上次想去也没去成,正好去转转。
首先,我想说,应该是一个恶搞的哥们把我给害了。要知道boss耳机的最大音量可是很爽的。
试用以后还是觉得Mac没有Ubuntu好用。不过,我还是很喜欢苹果的键盘和鼠标,可惜不知道有没有Ubuntu的驱动。
30寸Apple Cinema HD Display太劲爆了,当然价格也很劲爆。看那里有一个13在问Mac能不能装Win,不说什么了。

第五站:KFC。
终于吃中午饭了。

现在再说说绿色奥运。今天股市一片大绿,原来这就是传说中的“维稳”,原来这就是传说中的“奥运行情”,原来这就是传说中的“绿色奥运”。啊,股民朋友们,向你们默哀……

2008年8月2日星期六

CN Wikipedia's entires reached 200,000!

Today, on Wikipedia, suddenly found that the Chinese Wikipedia entires breakthrough 200,000! Recall that when the entires reached 100,000 and 150,000, we have pleased. Today, the amount is 200,000! We have a more powerful Wikipedia!

As an important milestone, by November 12, 2006, the Chinese Wikipedia entries breakthrough 100,000.








Octo
ber 21, 2007, the Chinese Wikipedia entries breakthrough 150,000.


Now, another good news: Wikipedia has been unblocked!!! Blogspot has been unblocked too!!! Great!!!