Ubuntu 10.10 升级源

Ubuntu 10.10 升级源

deb http://archive.ubuntu.com/ubuntu maverick main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu maverick main universe restricted multiverse #Added by software-properties
deb http://archive.ubuntu.com/ubuntu maverick-updates universe main multiverse restricted
deb-src http://archive.ubuntu.com/ubuntu maverick-updates universe main multiverse restricted
deb http://security.ubuntu.com/ubuntu/ maverick-security universe main multiverse restricted
deb-src http://security.ubuntu.com/ubuntu/ maverick-security universe main multiverse restricted
deb http://archive.ubuntu.com/ubuntu maverick-proposed universe main multiverse restricted
deb-src http://archive.ubuntu.com/ubuntu maverick-proposed universe main multiverse restricted
deb http://archive.ubuntu.com/ubuntu maverick-backports universe main multiverse restricted
deb-src http://archive.ubuntu.com/ubuntu maverick-backports universe main multiverse restricted

Ubuntu 10.10 升级方法参见:http://www.disandu.com/archives/745

[游玩]北京旅游记

这几天去北京旅游,才回来。把北京旅游的事情写下来,和大家分享一下,对于准备去北京旅游的同学也是个参考^_^。

我们21日到达北京,结果一直下雨。由于没提前预定住处,所以颇费周折。北京同等级别的酒店条件都要比其它地方贵一点(大概100左右),房间也要小一点。可能我们没找到好地方的原因吧。

接下来,到了傍晚,去天安门,上中山公园走了一圈,门票才3元。出来后,正好看降国旗,然后去王府井商业街吃晚饭。1号地铁很方便,我们住在东单,1号地铁:东单->王府井->天安门东->天安门西->西单,连成一串。不过我还是步行走长安街。长安街却实不错,两边的建筑和公路修的都很好,不过打车太不方便。特别到了王府井,我们一直没搞明白怎么能快点打车。。。
阅读更多…

Google Wave失败的原因与教训(转载)

原文首发于:http://www.kenengba.com/post/2982.html

Google昨天宣布将停止开发GoogleWave,因为它的用户数量达不到Google的预期,但会维持它的运行并将部分代码开源。在写前面一句话的时候,我在思考要不要先介绍一下”Google Wave”是什么,但我陷入了困境,因为我不能用简短的语句来描述Google Wave是什么。

我去年很早就拿到了Google Wave的内测资格,但基本上很少用,我觉得它不是不能替代的,它能完成的工作,有其它服务比它做得更好。

有些媒体在报道Wave时说它是社交服务,有些则说它是协作工具。在Google Wave里,你能看到它们的身影:Email, Twitter, Google Docs, BBS, Facebook。多合一一定是好的吗?Google用实际经验告诉我们:不一定。

一、失败的社交产品

如果说Wave是一个社交工具,它太复杂太严肃了。在Google搜索“google wave 教程”有8万多个结果,这仅仅是中文互联网里的结果,Franky以前也在可能吧写了一篇超长的教程“Google Wave从入门到进阶”。有教程则意味着一个服务或软件不容易上手,需要学习。但如果将Google Wave定义为一个社交服务,在焦躁的互联网里,谁又愿意花时间去学习如何使用呢

Facebook是一个社交工具,它功能很强大,也有很多组件,但我们很少看到有“Facebook 教程”之类的文章。即使有,也是“中国国内上Facebook教程”这方面的“教程”。

相比之下,Google Wave作为社交工具的易用性确实差强人意。上手难,用户自然就不会多,并不是每个用户都有时间有精力去学习一个复杂的但对自己可能没有太大价值的工具。

二、功能缺失的协作工具

包括我在内,很多人认为Google Wave更像是一个协作工具。作为协作工具,Wave欠缺的是稳定性与高级功能。

1、稳定性

很多人抱怨Google Wave不够稳定,实际上从我从去年6月开始使用Google Wave,直到现在,每一次打开Google Wave,它几乎都会崩溃一次

在线协作对稳定性的追求高于人们对其它产品的追求,而Google Wave恰恰在稳定性上无法满足在线协作的需求,这是Wave被冷落的最重要原因之一。

2、高级功能

作为协作工具,Wave过于简单。

Zoho、Google Docs都是很好的在线协作工具,它们的功能很强大,虽然需要一定的学习成本,但它们能满足在线协作的各种需求,于是它们能赢得用户的青睐。

相比之下,Google Wave在协作方面的功能非常简单。不能绘图、不能计算、不能分享、不能排版……下面的截图对比了Google Wave与Zoho Wirter的工具栏:

三、Google Wave失败带来的教训

正是由于Google Wave的定位不清晰、稳定性差,刚满一周岁的它就注定永远长不大,甚至可能随时死亡。

因为我也从事跟产品相关的工作,当Google正式宣布Wave失败时,我想了很多。在做互联网产品时,我认为以下几点是非常重要的:

1、快速

互联网让人变得比以往更急躁,多一秒的等待时间都可能让用户愤怒地关闭浏览器。一个连接与响应速度快的服务能给用户带来愉悦的体验。

2、稳定

稳定是成功的基础。一个服务可以偶尔不稳定,比如Twitter偶尔出现大鲸鱼,但不能一直不稳定,否则用户体验无从谈起。

3、简单

Twitter很简单,用户花很少的时间“自学”就能使用。

Facebook看起来有点复杂,但除了“中国国内上Facebook教程”之外,鲜见其它教程。这说明用户在Facebook上也不需要花大量时间来学习如何使用。

产品的设计必须是足够简单、学习成本足够低,除非它本身就为专业人士打造

我认为,一个好的产品应该是能解决“一个问题”的。它首先是解决“一个问题”,进而再考虑解决其它问题。如果一开始就考虑解决所有问题,那这个产品对于用户来说就是太复杂了

4、清晰的定位

一个清晰的定位是非常重要的。我们的产品究竟是什么、为谁而做。一旦路线确定了,就按照这一条路做下去,除非这条路没有解决用户需要解决的问题。让我们看3个例子:

  • Twitter将自己定位于介于博客与SNS之间的传播工具
  • 网站导航的用户定位是互联网新手
  • 立体巴士解决了交通堵塞的问题

Twitter对自己有清晰的定位,网站导航对用户有清晰的定位,立体巴士对要解决的问题有清晰的认识。

确定了某条路线,却在路上左右摇摆,连自己都不知道自己在做什么、为谁而做,这个产品最终不会成功。

5、重点

苹果为iPhone 4拍的广告强调了视频通话功能?CFacetime,或许对于一些人来说,多任务、高清屏幕、A4处理器更重要,但苹果却一直强调Facetime,乔布斯还在iPhone 4发布会上即时演示了Facetime。对于苹果来说,iPhone 4的推广重点在Facetime

当Chrome刚推出时,很多人都说,Chrome很快。“快”是Chrome的重点,也是大多数用户最关心的一点。

Google Wave的重点是什么?我说不出来,恐怕Wave团队也很难说出来,因为他们想把所有组件都做好,结果所有的都做不好,人们也看不出他们究竟想把重点放在什么地方。

在很多时候,如果你的产品只有一个卖点,用户可能更容易记住这个产品。

6、割舍

如果一个产品看着没有前途,那就放弃它吧。

Google Wave推出刚一年,就被Google放弃了。这是一件好事,如果一个产品用户不喜欢,团队也搞不清自己在做什么,那为什么不放弃这个产品,将精力投向其它地方?

在Ubuntu下打开pdf时中文乱码解决

在Ubuntu下打开pdf时经常碰到出现中文乱码的问题,安装了一个叫xpdf的阅读器,虽然中文乱码的问题解决了,但是xpdf的界面太难看,使用不方便。今天在网上搜索时,发现了一种新的方法,不用下载别的阅读器,拿来大家分享下

第一步,安装中文语言支持包:
sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional

安装完后打开pdf文档,如果发现仍然是乱码,进行第二步,安装安装poppler-data:
sudo apt-get install poppler-data

安装
sudo make install datadir=/usr/share

在我这里,上一步安装完成后打开pdf文档发现中文乱码都变成方块了,于是进行第三步,删除字体
sudo rm /etc/fonts/conf.d/49-sansserif.conf

中文乱码的问题解决了。

关于异常处理:在catch语句能return吗?

今天工作时无意中写出了这样的代码

bool func() {
  try {
    ......
    return true;
  }
 
  catch() {
      return false;
  }
}

写完这支代码后,我意识这应该是不好的实现手法,多个返回位置,尤其是在异常中还带返回值,这个写法有点奇怪。到底这样写到底行不行?  带着这个疑问,我在搜索框输入了“Put return in catch”,搜到了stackoverflow上的这篇文章:Return in catch block? stackoverflow上的筒子们讨论得很热烈,代码是C#的,与CPP大同小异。

首先是一个筒子提出一个疑问,与我的问题类似:

Is is wrong to have a return statement in a catch block? What are the alternatives?
i.e:

public bool SomeFunction()
{
    try
    {
        //somecode
        return true;
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.message);
        return false;
    }
 
}

马上有网友回答,当然是可以的,无论是从语法角度还是实现方法的角度,有人在沙发位置接贴,上面函数有多个出口(return),可读性更好的写法如下:

public bool SomeFunction()
{
    bool success = true;
    try
    {
        //somecode
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.message);
        success = false;
    }
 
    return success;
}

上面的实现方式还有待改进,沙发筒子又说,“Logged exceptions are a lot more reliable than user’s recounts of what happened.”,用日志记录异常比让用户发现软件的异常显得更健壮。我非常同意这个说法,实际上异常是软件本身的问题造成的,不应该给用户施压。 改进的代码如下:

bool success = true;
 try
{
    DoTheImportantThing();
    DoTheOtherThingThatMightFailButWeDontCare();
}
catch (DontCareAboutItException ex)
{
    log.Info(ex);
    success = false;
}
catch (Exception ex)
{
    log.Error(ex);
    success = false;
return success;}

上面的代码似乎很完美,但是有时候我们会感觉操作像”success”这样的返回值变量是件麻烦事,而且遇到了多个异常需要处理时,每个catch里塞一条”success=false”其实是很烦琐的。
所以上面的代码还可以更简洁:

try
{
    //somecode
    return true;
}
catch (DontCareAboutItException ex)
{
    log.Info(ex);
}
catch (Exception ex)
{
    log.Error(ex);
 }
return false;

上面这段代码虽然有多个出口,但代码更简洁可读,这样做是值得的。到此,这个问题我算是理明白了,但stackoverflow上的筒子们还不满意,他们继续纠结于C#里的finally和return谁前谁后的问题,我等 做CPP开发在一 旁窃笑 ,因为CPP的发明人Bjarne Stroustrup早就说过:

In a system, we need a “resource handle” class for each resource. However, we don’t have to have an “finally” clause for each acquisition of a resource. In realistic systems, there are far more resource acquisitions than kinds of resources, so the “resource acquisition is initialization” technique leads to less code than use of a “finally” construct.

具体的原因可见这篇文章 :为何C++不提供“finally”结构?

[软件介绍]RedNoteBook : 支持Wiki +tag的日记工具

自08年上半年开始一直用Tomboy做各种笔记:工作日志、学习笔记、计划总结。。。 感觉都快把Tomboy用滥了,但一直对Tomboy不能支持Tag与Wiki标记而耿耿于怀,今天在wowubuntu.com上面看到对RedNoteBook的介绍,我一阵窃喜,终于见到了支持tag+wiki的笔记软件了,赶紧试用去,不过暂时还不能跨平台使用。


RedNoteBook 是一个非常棒的日記工具,它的显著特点是采用了类似于 Wiki 语法的格式化功能,对于 Wiki 有一定使用经验的用户来说,肯定会对 Wiki 这种简易高效的格式操作情有独钟。

因为个人也经常使用 Wiki 作为知识管理工具来记录一些新学的东西,所以我在想,这个 RedNoteBook 除了用来作为日记工具外,用来作为知识管理工具也是一个不错的方案。

除此之外,RedNoteBook 特别好的功能就是支持导出到 PDF ,而且完全支持中文,这也是我喜欢它的原因之一。

项目主页: http://rednotebook.sourceforge.net/

# 功能介绍

– 支持 Tag
- 提供类似于 Wiki 语法的内容格式化功能。
- 支持插入图像、文字及链接等内容。
- 自动保存及备份功能。
- 实时搜索。
- 支持导出到 PDF、HTML 、Latex 等格式。
- 多语言界面。
- 完全支持中文。

# 截图

# 安装: 通过 PPA 安装,或者直接下载 Deb 包

sudo add-apt-repository ppa:ferramroberto/linuxfreedomlucid && sudo apt-get update
sudo apt-get install rednotebook

Linux和Windows双系统:先装Ubuntu后装Windows的引导问题

Linux+WIndows双系统一般的安装顺序是:先windows后linux,这样基本没有什么问题,Linux的grub提供了双系统的启动选择。但是如果顺序反过来,或者说重装了Windows,那么在启动菜单中Linux就消失了。

简单的处理方法:     

1.获得MBR备份文件

下载这个文件: http://www.linux-wiki.cn/archieve/grldr.zip ,解压、并把这个文件放在C盘根目录下。

如果在重装windows之前备份了MBR的话那就不用下载上述文件了,直接用你备份的MBR文件就可以了。
2.编辑boot.ini

在Windows中,”我的电脑”上点右键->属性->高级->启动和故障恢复右边的”设置”->上半部分的”编辑”出现用记事本打开的 boot.ini 文件。

(或者直接到C盘下找到这个文件,修改就行,一般是隐藏只读的)

在文件的末尾,加上一行

c:\grldr="Grub"

保存文件,退出,重新启动,就可以进入linux了。
3.恢复原来的启动菜单

实际上对于懒人而言,到此为止就可以了,不过如果你想恢复到重装windows之前的状态,那么可以恢复MBR。

**************************************************************

备份MBR

dd if=/dev/sda1 of=/root/mbr bs=512 count=1

恢复MBR

dd if=/root/mbr of=/dev/sda1 bs=512 count=1

恢复分区表

dd if=/root/mbr of=/dev/sda1 bs=512 skip=446 count=66

注:mbr大小512 所以bs=512 count=1

bs=512 skip=446 count=66 用来确定分区表在备份文件中的位置

转自:http://hi.baidu.com/andydidy/blog/item/73b244fd65851bf5fc037f92.html

O‘REILLY开源大会演讲资料公布

O’Reilly的OSCON大会,这个大会的组织者是计算机科学出版行业的O’Reilly公司。目前OSCON现在是参会人数已经大大超过了上述的三大Linux会议,作为商业Linux和开源技术展会,发展的非常成功,现场O’Reilly的OSCON大会一般都是4天的议程,大大超过了同类的技术会议。因为该会议在全球开源爱好者中享有崇高的声誉。几乎每年的这个时候,都有数以千计的厂商、爱好者,涌到美国Oregon州的 Portland市参加这个盛会,享受开源的盛宴。同时,会议上数以百计的技术和非技术专题讲座(session),又承载着丰富的开源内容,给全球各地的开源技术爱好者和从业人员指明发展方向。

OSCON大会也已经有超过十年的历史,大会的主旨也已经发生了很大的变化,从最初的开源操作系统的大会,变成了现在的开放的开发者大会。大会期间,来自全球各地的开源爱好者们加入关于开放源码与开放社区、开放社区的重要性及其对开放源码项目的影响等主题的讨论。

今年的盛会于上个月底结束,很多演讲可以下载(奇怪的是来自微软员工的演讲居然放在第一位)。

OSCON演讲幻灯片全集: http://www.oscon.com/oscon2010/public/schedule/proceedings

会议网站: http://www.oscon.com/oscon2010/public/schedule/proceedings

Visual Studio 2008转Visual Studio 2010的模板问题

将Visual Studio 2008的C++工程用Visual Studio 2010打开编译,如果出现了这个问题:

error C2252: an explicit instantiation of a template can only occur at namespace scope

恭喜你,你中彩了~

这句话是告诉你,不可以在一个类或函数中实例化一个模板,

解决方法:

将这个模板的实例化扔到类或函数外面(也就是裸露在命名空间中)。

外国人怎样看待“疯狂英语”

上周在TedToChina听了这个仅仅4分钟的讲演,时间虽短,但Jay Walker的演讲内容还是给人深刻的映像,我想最关键的是他用中国特有的疯狂英语和“GAOKAO”制度来举例分析学习英语的动机:学习英语到底是为了自身发展、加强交流还是为了升学考试获得好成绩? 或许我们习惯了李阳的疯狂英语,但这些出现外国人的演讲中的时候,奇怪的民族自尊心又会驱使我们去思考,为什么会出现这种“疯狂”的学习方式?我想每个人都会有自己的答案。

下面的内容来自:http://www.tedtochina.com/2010/07/15/jay-walker-on-the-english-mania/

早些时候关注TEDtoChina的新浪微博,发现有热心的朋友提到English mania这个演讲。在好奇心的驱使下我也点开了这个视频进行观看。令人意想不到的是,该演讲虽短,但其内容居然和中国教育有莫大关联。观看完后,不禁引发对国家多年来提倡的素质教育和学习方法进行深深思考。我们在做的,究竟有哪些是对的,而哪些又是不可取的呢?先来听听看杰·沃克(Jay Walker)是怎么分析的吧!

你有具有做一名狂热分子的基因吗?这个世界不缺少另我们为之尖叫为之痴狂的事物,它们可以是音乐,是足球,是宗教,更甚者,是极端的法西斯主义。“狂热”这个中性词语并无褒贬之分,全取决于我们为之狂热的对象是什么罢了。

TED.com:Jay walker on the world’s English mania该视频已有中文简/繁体翻译

现在除了上述列举到的常见事物为人们所疯狂追捧外,语言也成为了新的追捧对象——那就是英语。相信广大朋友已对演讲中播放的万人狂练英语口语的现象早已司空见惯了:)

全世界20亿学习英语语言的人分别来自拉丁美洲,印度,东南亚国家,但支撑这个庞大数字的最大人群,还是来自中国。为什么是英语而不是德语,法语,西班牙语或是其他语言?除了服从执行国家教育部教育政策规定外,我们甚少问自己为什么要进行这项学习,更别说做到学以致用了。缺少了主要的内在动力的学习,导致学生投入的时间越长,学习动机越迷茫,而成效也一直停滞不前。作为外国人的沃克观察后发现,很多“苦熬”过英语关的人几乎都将英语视为“机遇”——借此机遇我们可以获得更好的生活(大部分是物质方面的)。为了达到英语能带来的一系列美好,中国学生一边憧憬着将来,一边以“头悬梁、锥刺股”的狂热劲儿向英语学习冲锋陷阵(可悲的是,我们往往会陷入了“读死书”的困境)。而能在其背后长时间操纵着学生埋头苦干的,就是高考这根指挥棒了。

就像前面提到的,中国学生为之疯狂(甚至抓狂)的英语,究竟是害是利?杰·沃克说到,英语是世界第二大使用语,但我们每个人的母语,才是永远的第一。其实回过头想想学习英语的必要性,并不是因为国家教育政策的硬性规定,世界正在融为一体,学习是为了更好地使用,使用是为了更好地交流,交流是为了更好地解决问题。这里英语真正扮演的,应该是在这些基础上共建一个美好未来的名叫“希望”的角色。

看完的演讲,我不禁想起《创世纪》中巴别塔的故事,耶和华担心人类的力量超越神灵,所以故意打乱人类的语言。既然人类祖先有建造巴别塔的能力,又何惧一种语言呢?故事听上去比较唯心主义,但是想要掌握一门语言,在学习中还是放下潜在的“抵制”、“恐惧”等消极心理。就像沃克所说的,母语永远是人的第一语言,学习英语——让我们忽略教育政策的硬性、试卷上那个漂亮的分数,而是着重强调自身的发展需要上来——哪怕一辈子都没有机会使用英语,但你知道曾经的学习绝对能够让你的视线看得更高,更远。