升级ubuntu,给整挂了

升级ubuntu,给整挂了打游戏的时候,大家都有过那样的经历吧?你只能一心一意地应付如潮般涌来的各级敌人,丝毫没有时间去想下一刻的计划。至于下一刻会发生什么,每一个人都清楚,只是勉力支撑而已。传说,伊丽莎白.泰
勒说"那么多事情要做、那么多事情没有做成。这就是人生啊。"我听说这句话的
时候,她已经停止支撑了。后来就有人开始吹捧"活在当下"。"当下",就变成了一个令我深恶痛绝的词,连
带着"活在"都令我厌恶。苏格拉底说,"未经省察/审验/检视/思考的生活,是不值得过的。"只感受现在,
那是动物。人类之区别于动物,就是回顾过去,计划未来。这一段时间,我就处于动物状态。每天疲于应付这个事那个事,计划的事情,都
推到不知道什么时候的以后。然后,我的操作系统Ubuntu被我整挂了。世界瞬间安静了。啥也不用整了。想想你正在游戏之中,敌人蜂拥而至,你手忙脚乱,大声呼喝。然后,停电了。就是这样的感觉。然后才知道,无论多么重要的事情,居然都能停下来--因为你不再呼吸了,就像
操作系统突然挂了,你也就只能开始修操作系统,停下手中的一切。既然修操作系统能停下手中的一切,未来的计划,对过去的回顾,为什么不能令
我们停下来呢?我们生存在"当下",而我们的生活,在过去,在未来。20日.当初boot空间只给了100M,满了,升级的时候要求再多8M。我非常困,直接把boot下的一些看着似乎过去版本的东西移走了。没有更困,所以移到了/home/young/boot下暂存。机器升级时窗口系统响应不正常,左键没反应,重启机器。无法进入系统,找不
到内核,按任意键继续。用以前做的引导盘启动,进入系统。sudo cp,把刚刚暂存的东西放回/boot下,/dev/sda1。重启,硬盘引导,grub要求选择了(平时不用选),进入系统。再升级,又说root空间不足。这次仔细读了一下,可以清回收站,然后sudo apt-get clean。空间还是不足。umount /dev/sda1。这下空间够了。打算升级完再mount回来。升完级,boot空间不够,不能合并新旧文件,以后用/boot,不mount了。改/etc/fstab。重启。引导成功,把boot分配删了,全另一个数据分区全并。那个数据分区是当
初为了装windows留着的,没用了。21日,调整分区。用partman(livecd中的)调整,把root放在了primary分区中,bootable。然后grub menu能显示,但是进入后 file not find, error 15.此处,表现了网络是解决不了问题的.绝大部分贴子,中文的,英文的,都说
vmlinuz 或者 initrd.img损坏. 个别贴子提到,grub不支持ext4文件系统,又有
更少的贴子提到ubuntu的grub支持ext4.22日。N多测试.update-grub,memtest可以启动了。把原来的 vmlinuz & initrd.img & boot 复制到新 boot 中; 改 menu.lst。: title Ubuntu
: root (hd0,0)
: kernel /vmlinuz root=/dev/sda1 ro quiet splash
: initrd /initrd.img没有使用uuid,没整明白。似乎每个分区都有个UUID。中间经历过:1. grub不能启动.原因:删除boot分区中的东西.
解决:用livecd改grub设置,使得与硬盘及分区一致.
2. grub能启动,有菜单,进入后找不到文件.原因:全并分区,使得分区与grub中记录的不一样了.
解决:grub命令行重新设置 kernel 的 root参数.3. grub能启动,能进入某个菜单项,启动超时,找不到root device。 用
update-grub 然后改menu.lst解决,原因不明,可能是kernel的root参数错
了.恢复出原来的错误非常费时间,就是重新破坏一次,放弃了.: grub-pc: /usr/sbin/update-grub运行 /usr/sbin/update-grub 的时候,把grub更新到了 /boot 下,这是在
livecd的根下.手动移动了/dev/sda1,我的分区里.4. 然后,需要恢复安装一些程序.输入法设置等.原因: 中间安装Ubuntu覆盖过.Ubuntu比windows强的地方,我的个人设置都还在.其他收获:: $ sudo blkid
: [sudo] password for young:
: /dev/sda1: LABEL="linux" UUID="1e2067cb-66ea-4dcc-ac12-f7086f0bd13c"
TYPE="ext4"
: /dev/sda5: UUID="34d4d8c9-dc19-4d59-9d80-33a4107a362c" TYPE="swap": $ df -lh
: Filesystem Size Used Avail Use% Mounted on
: /dev/sda1 226G 64G 151G 30% /
: none 951M 320K 951M 1% /dev
: none 955M 100K 955M 1% /dev/shm
: none 955M 84K 955M 1% /var/run
: none 955M 0 955M 0% /var/lock
: none 955M 0 955M 0% /lib/init/rw: /etc/fstab部分
: /dev/sda1 on / type ext4 (rw,errors=remount-ro)

四答 知道什么是礼貌么?

四答 知道什么是礼貌么?
1.我说:此外,从你的信箱里看不出姓名。所以,请每封信署名。
备注:
同学,你的姓名是 "●缘来·ぁい",我不认识的文字。
你的邮件是 <57574啥啥@qq.com>。
我不知道你是谁.
2.同学回复:我每封信都有署名,请仔细查看
备注:我仔细看了.我没有义务对陌生人的来信更仔细看.
3. 我说:请指给我看。
并且,告诉我 署名 是什么?
备注:
我鄙陋,
1.认为 署名是在信件的末尾,找了,没找到;
2.以为 指导论文只是学术和技术上的交流和知识传递,
不需要学习新新新人类的新的署名方法和位置,
而是只需要了解通用的中国人传统在小学学习的信件格式.
3. 同学说: 我想我们不是在讨论署名吧。
4.我的答复: 非常简单的答案,我不知道你是谁。
备注:
我不觉得有义务回答每个陌生人的邮件.
我不觉得世界围绕你转,不觉得每个人都必须根据你指定的方法知道你是
谁,想你之所想,急你之所急.
有些事情,是我的工作,因此我服从学院指派.但是,希望您保持基本的礼
貌和中国人类公知的礼仪.我不愿意以任何方式教你这些.希望你能明白.
从此绝不回复你的邮件.非常简单,我不知道你是谁,不想在你身上浪费一
秒时间.

三答

三答1. "杨老师 您有即时聊天工具吗?不然太难联系到您了"学院对指导教师没有实时指导的要求。另外,请及时注意学院的通知,不要等到临期末了还有几个小时的时候提问。2. 所有题目都太宽泛,你拟的题目都太大。你要做的内容不是编译器。请明确编译器的概念,注意它和你的论文内容的区别。题目要反应内容。
此外,从你的信箱里看不出姓名。所以,请每封信署名。

抄代码,可以抄到什么程度

抄代码,可以抄到什么程度最近,老是有同学跟我提到 "不会写代码,只会从网上抄",在加上前两天提到的本科毕业论文同学"做"过的微博系统,觉得有必要说一下1. 什么是可以从网上抄的.最粗暴简单的回答是:一个字母也不能复制粘贴.2. 抄到什么程度你仍然可以说那是你的程序.这是个老大的哲学问题了,不过咱们不讨论那么深.故事开始.前一段时间写的程序--把窗口由一个显示器切到另一个显示器的工具--有个缺点,如果窗口已经在大显示器上最大化了,或者很长,怎么也不移动了小显示器上。虽然我可以快捷键先把它整小,然后再移。终究不爽得很。忍了很久,而且前一段时间已经找到问题的症结。今天改了下程序。因为我的程序信赖的一个工具 xdotool,不能移动最大化的窗口。而且,如果窗口比目标显示器还大,也不能移动。首先想到的是可以先把窗口缩小,然后移走,再恢复原来的大小。奈何,我没有找到 xdotool 改变最大化窗口大小的方法。所以,此路不通。想起来另一个工具可以信赖,wmctrl,倒是可以操作。不过,它不能找到当前的激活窗口。而这,正是我们要移动的东西,得知道。在网上找到一德国兄弟的作品[http://my.opera.com/raphman/blog/show.dml/302528?cid=56972962#comment56972962],我改吧改吧抄吧抄吧,把关于xprop得到当前激活窗口的那段放我的代码里了。顺手,把用同一工具判定当前窗口是不是最大化啥的一段代码抄过来。因为窗口系统不太一样,他用KDE,我用GNOME,又改了一下。终于,我的程序能够工作了。放在[https://github.com/younggift/argus/blob/master/monitor_switch.sh]里了。现在,我们可以回过头来回答先前的问题了.1. 什么是可以从网上抄的.事实上,我们通常会抄一下 某种实现机制(比如怎么调用printf,它的参数)的代码示例, 从MSDN或者 code project 这样的站点中.当然,应该通读一下文档,而不是简单的抄代码.没有看懂的情况下就抄代码,实践证明,后患无穷.不读说明书就使用工具或者设备,是极其危险的.API也是一样.不过,如果已经了解原理,抄一段别人的实现,改吧改吧...似乎可以容忍.2. 抄到什么程度你仍然可以说那是你的程序.业务逻辑必须是你手写的,因为那是你的工作唯一区别于别人的东西.让你的需求适应用户的要求,而不是服从你能找到的资源的下限,即不能因为你手儿不行就降低要求,除非你明确知道你不行,别人也不能实现.如果我抄了德国哥们的整休代码,把其中KDE那部分换成了GNOME的,那就是大抄.我原来的代码是把适用于 左右显示器布局 的代码改成了 适用于 任何布局的双显示器, 这是加入了一部分功能, 有贡献,不过,整体的代码仍然是人家的.现在,我改成了用wmctrl,改动就又多了一些.郭小四同学抄了整体的人物设定和故事情节,那就是抄.如果只是引用一两句主席语录,那叫时尚.或者叫致敬.=======================#!/bin/bash#++++++++++++++++# Monitor Switch## Moves currently focused window from one monitor to the other.# Designed for a system with two monitors.# Script should be triggered using a keyboard shortcut.# If the window is maximized it should remain maximized after being moved.# If the window is not maximized it should retain its current size, unless# height is too large for the destination monitor, when it will be trimmed.#---------------------------------------------# dependence on xrandr, wmctrl, xprop, xwininfo, awk## modified by Young <[email protected]># based on chips617's work at
[http://ubuntuforums.org/showthread.php?t=1045417].# based on Raphael Wimmer's work at
[http://my.opera.com/raphman/blog/show.dml/302528]# History:# 2011-3-19 bug fixed: we don't depend on xdotool any more, because we
can't find the function by it to manipulate the maximized window.# 1. If the left-top conner of the active window is out of your
monitors, we cannot determin which monitor is on, therefore we suppose
it is on monitor B.# 2. if one of the monitor is rotated left, the shortcut will be disabled.# 2011-1-31 The monitors can be at any position, not only left and right.# 2007-11 the original chips617's work# bugs knonw:# empty now.# resolution and position of monitorscount=0while read linedo keys[$((++count))]="${line}"done <<EOF$( xrandr -q | grep " connected" | awk '{print $3}' | awk -F'[x+]'
'{printf("%sn%sn%sn%sn",$1, $2, $3, $4)}' )EOFw_A_monitor=${keys[1]}h_A_monitor=${keys[2]}x_A_monitor=${keys[3]}y_A_monitor=${keys[4]}w_B_monitor=${keys[5]}h_B_monitor=${keys[6]}x_B_monitor=${keys[7]}y_B_monitor=${keys[8]}# get active window# window=`xdotool getactivewindow`activeWinLine=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)")window="${activeWinLine:40}"# window title bar height# h_tbar=29xWinDecorLine=$(xprop -id $window | grep "_NET_FRAME_EXTENTS(CARDINAL)")h_tbar=${xWinDecorLine:37 :2}# get active window size and positionx=`xwininfo -id $window | grep "Absolute upper-left X" | awk '{print $4}'`y=`xwininfo -id $window | grep "Absolute upper-left Y" | awk '{print $4}'`w=`xwininfo -id $window | grep "Width" | awk '{print $2}'`h=`xwininfo -id $window | grep "Height" | awk '{print $2}'`# calculate the new position of the window ...## if the window was on A monitorif [ "$x" -ge $x_A_monitor ] && [ "$x" -le $[$x_A_monitor + $w_A_monitor] ] && [ "$y" -ge $y_A_monitor ] && [ "$y" -le $[$y_A_monitor + $h_A_monitor ] ] ; then x_target_monitor=$x_B_monitor y_target_monitor=$y_B_monitor w_target_monitor=$w_B_monitor h_target_monitor=$h_B_monitor x_source_monitor=$x_A_monitor y_source_monitor=$y_A_monitor## if the window was on B monitorelse x_target_monitor=$x_A_monitor y_target_monitor=$y_A_monitor w_target_monitor=$w_A_monitor h_target_monitor=$h_A_monitor x_source_monitor=$x_B_monitor y_source_monitor=$y_B_monitorfinew_x=$(($x-$x_source_monitor+$x_target_monitor))new_y=$(($y-$y_source_monitor+$y_target_monitor-$h_tbar))# ... and the width or the height up to the edge of the target monitorif (($w > $w_target_monitor))then w=$w_target_monitorfiif (($h > $h_target_monitor))then h=$h_target_monitorfi# move the window to another monitor# if maximized store info and de-maximizewinState=$(xprop -id $window | grep "_NET_WM_STATE(ATOM)" )if [[ `echo ${winState} | grep "_NET_WM_STATE_MAXIMIZED_HORZ"` != "" ]]then maxH=1 wmctrl -i -r $window -b remove,maximized_horzfiif [[ `echo ${winState} | grep "_NET_WM_STATE_MAXIMIZED_VERT"` != "" ]]then maxV=1 wmctrl -i -r $window -b remove,maximized_vertfi# do movewmctrl -i -r $window -e 0,$new_x,$new_y,$w,$h# the following lines are for debug.# echo x x_source_monitor x_target_monitor# echo $x $x_source_monitor $x_target_monitor# echo y y_source_monitor y_target_monitor# echo $y $y_source_monitor $y_target_monitor# echo h $h w $w# echo new_x $new_x# echo new_y $new_y# restore maximization((${maxV})) && wmctrl -i -r $window -b add,maximized_vert((${maxH})) && wmctrl -i -r $window -b add,maximized_horz# raise window (seems to be necessary sometimes)#wmctrl -i -a $window# and byeexit 0

稍纵即逝

稍纵即逝
晚上第九节的课。兴奋了一整堂课,跑到班车的时候,已经一身的汗了。衣服粘
在后背上,冷。
车慢慢地赌,蹭过一个路口又一个路口。我低着头跟着车晃。
再抬头的时候,惊叹了一下。
太阳遮在轻轨高架桥的后边,淡红色的阳光从桥的上下溢出,衬出高架桥深黑的
轮廓。傍晚的光,分散在灰尘里,像水彩在灰色的纸上渐渐地洇开。近处的下
方,成排轿车停在我们前面等红灯,深红晶亮的车顶棱线排列齐刷刷地伸向远方。
我缓过神来,看前面仍然是三个红灯亮着,急忙掏相机。
不在这个袋子里,也不在那个袋子里。终于找到的时候,绿灯亮了,我们随车队
鱼贯而行。高架桥移动,后面耀眼的太阳露出,直射我的眼睛。
再也不会有这样的机会,拍下那一瞬间。
那一瞬间,太阳隐在高架桥的影子里,恰恰位于左上,列队的轿车在右下闪闪发
光。我坐在如此高大的校车的前排,风挡玻璃外的世界一览无余。
这样的组合这样的机会,再难见到了。
这样稍纵即逝的机会,却是很多。
比如刚刚,楼下一个人包着头巾,穿得肥肥大大,一条倔犟的小狗在前面拖着他
走。雪地上只有他们两个,在一大片脚印里穿过。
我静静站在那看,甚至没有想去拿相机。我知道,来不及。
所有的机会,当它们到来时,我们都扮演了降落伞的角色。如果在那一刻,我们
没有准备好,那么,以后永远都不必了。
即然不能拍照,我只有讲给你听。
我听到函数被调用,参数传递,模块间窃窃私语; 我看到递归层层翻卷,闪着金
光,退出条件在下面的某一层世界里跃跃欲试; 我触摸到指令移动堆栈,总线
脉动。
这个世界里,日影移动。白天之后又是黑夜。
以后,我慢慢讲给你听吧。

不行了,学习周老师,必须发牢骚

不行了,学习周老师,必须发牢骚一般给知心姐姐动脑筋爷爷小虎子写信,都作如下开头,今天咱们也模仿一个。我有个朋友啊,他带本科毕业论文。学生们来了,先进行思想政治教育,纪律要求,怎么做会有啥后果,莫谓言之不预也啥的。然后了解学生们做过的小项目,以便定个合适的题目,量体裁衣,免得做不出来。然后就有了戏剧性的一些场面。先说短的,再说长的,如果还有戏有掌,以后连载。1. 时光机某同学是实现个 画图 那样的工具.简单一点,不需要多种颜色方案,32位真彩一种就行了.同学当时就问: 32位真彩是吧.俺朋友: 是.同学记在笔记本上了.需求全说完了,同学又问: 32位真彩?俺朋友: 是.同学记在笔记本上了.你没眼花,以上不是复制的文字,是发生了两次.隔几天邮件来了: 是真彩32色么?回信:真彩32位,不是32色.不明白了.是时光倒流么,这一切从来没有发生过?强烈怀疑当时的提问和记在纸上,只是一种表演,行为艺术.不然,真是难以再找到其他解释了.2. 另外某位同学做过啥东西啊?跟朱老师做过一个微博.我们几个人合作的.课程设计?是,课程设计.有啥功能?你负责哪部分?我负责blabla部分.这个blabla记不太清了,大致是 查找好友,查找微博内容,收藏啥的.别人的工作是 登录时的身份验证,还有后台.我那朋友嘴欠呐,就追问了一句,后台都是啥?同学犹豫了一下,然后说 表,禁言(这个又追问了一下,类似于禁止发言),敏感词啥的.恩,还挺上路的.出了两个候选题目,都用php,一个是Latex一个小子集,把公式变成图片,另一个是做C的语法加亮.同学的反应,让我感觉她似乎听不太懂.尤其是,她似乎没有听说,也没有见过语法加亮.我提示你们学的VC++里就有语法加亮,就是不同的词颜色不一样,比如for这样的保留字,就是关键词,颜色和变量不一样.然后,教师突然想起问个问题. php输出用什么语句?啊?你看,C语言输出的时候用printf,p-r-i-n-t-f,php用什么函数?……你们的博客是抄的吧?你们用的什么工具修改的?DreamWeaver.也就是说,你们改的是只是外观.但是,你们为啥说你们*做*了个微博?上面这些有些兄弟可能理解起来有困难.大致类似于下面的对话.你写过啥作品啊?一些诗.哪些方面的呢?人生啊啥的.那你接下来的任务是写一首,押不押韵都行.啥?知道啥是韵不?就是,blabla.啊?把你以前写的诗读一首我听吧.两个黄鹂鸣翠柳,一行白露上青天.大概就是这些.网上抄的吧?改了一些.以上.3. 想起个别的事.当年在SMTH,有位兄弟说过两天要去面试,怎么才能显得精通Linux.大家出谋划策.我跳出来说,你这不对啊,不会就是不会呗.她非常愤怒,在版上否定了我的浅见.并给我邮箱里发了封邮件,说:你太过份了.可是,你仍然是不对啊.你可能占了某位码农的岗位.那位兄弟天天啃Linux的时候你玩来着.你玩也就玩了,你看不起码农也就看不起了,你就别抢可怜的码农的岗位了好不好?唉.

argus.py 可以仍是昔日素心悠游的少年

argus.py 可以仍是昔日素心悠游的少年有的时候, 会扫一眼来信的签名。有的是纯工作单位和联系电话, 如偶像的; 有的啥也没有, 连"这个人很懒,
什么也没有留下"也没有; 有的是莫名其妙的名字, 也不知道啥意思, 如果来
信是讨教问题的, 就感觉像是蒙个猪头的家伙闯入你家门, 问"你说我这病咋治
", 你说我要把下脉, 对面的先生大摇其头, 说可不能让你见了我的真面目。签名各种各样, 没创意的居多。而建一每次的签名总能让我目光停留。 所以,
私底下以为, 这个工程师的心底里是个文学青年。建一的某个签名是: 我已不是昔日素心悠游的少年。其实, 你可以是的, 永远都可以。We carry our laptop computer to different places, such as workshop,
office, home, etc., where we connect it with different monitors. We
click the mouse to setup the resolution, position, ratation for every
monitor repeatly.With Arugus, the untility for saving your current setting of
display/monitor, you can collect automaticlly for all the
display/monitor connected to your computer into a shell code, which
later you can run to restore the setting.What you need is just remember the name of the shell code, which
brings you all the information of your favorate working environment as
soon as you run it.An simple example is as the follow.I have a Dell display in 23 inch, which can rotate vertically for
programmer easilly browsing a large scale of code with out pagedown
or pageup, as well as rotate horizantally for watching movie without
black edge.I turn the monitor left, before setting up the layout (position and
mode and rotation) for it with System->Monitors in Ubuntu. Then, I run: ~ $ arugus.py -s programming.shto cteate a file named programming.sh excutable.: ~ $ cat programming.sh
: #!/bin/bash
: xrandr --output VGA1 --pos 0x0 --mode 1920x1080 --rotate left
: xrandr --output LVDS1 --pos 0x1920 --mode 1280x800 --rotate normalI turn the monitor horizatally, then also set up the current layout
manually with GUI System->Monitors. I save the current setting as movie.sh.
: ~ $ arugus.py -s movie.sh
: ~ $ cat movie.sh
: #!/bin/bash
: xrandr --output VGA1 --pos 0x0 --mode 1920x1080 --rotate normal
: xrandr --output LVDS1 --pos 248x1080 --mode 1280x800 --rotate normalOnce completed the steps above, we can switch the working condition
with running the corresponding shell code.When I watch movie,: ~$ ./movie.shwhen I input code,: ~$ ./programming.shIn my office, in my classroom with projector, or in my workshop, I can
switch my laptop to the suitable state.We can return whatever we have been, if we remember. Yesterday once
more.Dependency:xrandr, you usually have.python, you usually have.bash, you usually have.