计算机控制-仿真键盘

找了好久的东西,发现有人有类似的想法:

http://stackoverflow.com/questions/3698709/simulating-a-keyboards-output-making-a-computer-pose-as-another-computers-key

感觉第二个人说的比较靠谱,使用串口连接一个物理硬件模块,该模块接收uart信号,输出键盘/鼠标信号。

 

使用并口转PS接口转接线貌似也可以,就是相关的软件不清楚

 

ps. 使用串口发送,各个键值对应的数字要需要调研。

PDF分割

From:  http://www.cnblogs.com/timeship/archive/2013/03/27/2985365.html

经常处理一些pdf格式的比赛题目,有时候只需要里面不连续的几个题目,这时候就想到了pdf的分割合并。

于是找到了pdftk,可以去它的主页看看http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

还有vim的插件,地址是http://www.accesspdf.com/pdftk/pdftk.vim.zip  一般vim插件路径在/usr/share/vim/vim73/plugin,我没尝试。

写一个分割的例子

pdftk A=problems.pdf  cat A3-32 output 1.pdf

A=表是要分割的PDF文件名

cat 后跟A3-32表示从3页到32页需要分割

output表示输出的那些页, 后面跟输出的文件名。

写一个合并的例子

合并多个文档成一个文档:

pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf

使用参数:

pdftk A=1.pdf B=2.pdf cat A B output 12.pdf

使用通配符:

pdftk *.pdf cat output combined.pdf

从几个文档中分割内容合并成一个文档:

pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf

只身赴美七年后,我还是携家离开硅谷回国

日志

转 http://emuch.net/bbs/viewthread.php?tid=8370868

(编者按:有人漏夜赴西洋,有人风雪还故乡。小水瓶在旅美七年之后,实现了她在自己的博客名称中表达的梦想,举家移民中国——当然,这是对于她的丈夫和女儿而言,小水瓶自己是游子归乡。因为,在中国才有作者希望的“每天起来出门都不知道今天会发生什么的生活”。这正是今天的中国最大的特色。)

大约两年前的某个夏日,我拖着小人和小人爹去看望一位刚搬来加州的旧识朋友,彼时她历经了几年美国中西部玉米地的生物博士生涯,携同读完博士的丈夫拖着一娃刚折腾到加州读博后。饭桌上她非常严肃地问了我一个问题:“你还要回国么?”(大约是觉得我已经在加州住了五年不会再折腾了吧)

“对啊!”

她就更加严肃地问了我一个问题:“你这么一定要回国,最重要的原因是什么?”

咱认真思索了一下,回:“我觉得应该是我希望过一种每天起来出门都不知道今天会发生什么的生活吧。不能接受生活一点不可预料性都没有。”

彼时大概不过二十六七的这位旧友碉堡一会后,由衷地表示:”我觉得吧,都有孩子了也快三十了,好像应该settledown(安顿)了吧。”

我看看自己那只正在旁边不好好吃饭四处乱入的小人和感觉甚惨各种追娃的小人爹,弱弱地回应了一声:“没有吧我觉得还好。”内心不甘心地高声呐喊着:Why?Why?为什么我们要settle down?

两年之后,在加州生活了七年,硅谷生活工作了五年之后,我终于成功携家眷离开了硅谷,回到中国,之后又再次出发全家搬到欧洲,再度搬回中国,回头看,感觉加州的一切很熟悉也很遥远。时有人问为什么这么多年坚持不懈地要离开美国,问题林林总总但大致方向不过三类,值此年关,略加总结,也算对我的十年做个总结,继往开来,省下以后回应的时间去投入人生新的开发创造。

第一类问题大致是机会成本类问题,譬如“你在美国念书工作这么多年,都很熟悉了为什么放弃”“你在美国这么多年都有绿卡了放弃多不值得”等等, 延展开去此类问题有时变得略尖刻些譬如“那么多人辛苦学语言来美国找工作你语言又没问题工作顺利家庭幸福你瞎折腾个啥” 等等。

既然机会成本是所谓面临多选时被舍弃的选项中的最高价值者,那这些问题本身其实也显示了提问者心里那个“最高价值选项”可能是时间:七年或者通过时间才能达到的对不同的社会体系的熟悉;可能是绿卡;可能是“相对别人来说自己已拥有的能力和资源”。

而对我来说,人生最重要的是有变化和成长的经历和感受,而这些存在于年年岁岁的每一天。平稳正常但一成不变的生活对我来说价值极低。回到开头的那个夏日,我依然可以看到自己的初心,从二十出头开始漂泊和迁徙,归根结底不过是我对生活的期许从未改变。

美国很大各地不同,有人开玩笑说加州应算独立的一个国家,硅谷更是一个泡泡里的世界。若如此,这是一个终年阳光明媚极少雨水,汇聚了很多印度馆子亚洲馆子超市以及相应数量乌泱泱的印度和亚洲程序员的小世界。

还有一位旧友,在中西部某州读了五六年后,毕业携妻刚刚搬来加州工作时无限感慨地告诉我:“你知道么?她(妻子)第一次去大华(加州大型亚洲超市)时眼睛都绿了:这里什么都有,过去这些年我们那里买点中国小青菜都只有地下室的小破超市才有。”那时我心里也很感慨,不知作何应答。

硅谷的现实的确如此:每年暑假都有很多从气候严酷的中西部东部城市读完博士硕士的年轻脸庞,仿佛候鸟一样蜂拥而至,落户繁殖,买车买房,随着工资或期权的稳步增长,开始不再抗拒谷里高昂的房价渐渐换车换房的漫长生活,每年短假去附近玩一玩,仅有一次长假可能出国玩一玩,再以后送孩子去谷里遍地开花的各种加强班补习班,和数量庞大追求卓越的亚洲孩子们PK, 孩子再朝着进入常春藤出任CEO迎娶白富美的目标前进,开始下一轮的人生。日复一日,年复一年。辛苦吗?有时;安定吗?非常;幸福吗?看你对幸福的定义吧。如人所云:美国生活不过是“三十亩地一头牛,老婆孩子热炕头”的升级版,而谷里除了地少点,牛换成了车,别的真的是如出一辙。

但在这里住了多年后,总有那么一部分人,会感觉内心却越来越焦虑,环顾四周,到处都是这样的人生,人人都是忙碌的笑脸,新闻里几乎没有除了美国以外的任何事情,而事实是大多数居民也压根不关心离家五里开外的事情,作为一个对土地和牛都没执念的人来说,我越来越觉得虚弱:我还没有看过这世界,但已经没有了明天。

再说说绿卡,在美居住工作多年后一般都会有绿卡,但绿卡是为了证明你长期居住在此,如果超过半年不再居住在美国,绿卡就会作废,可以申请额外证件,但没有证件可以让你常年不居住在美国却保留绿卡。说到底,绿卡不过就一张暂住证而已。

我感到很多人对绿卡的执念和误会应该是历史原因造成的,申请绿卡对历史上的移民来说曾耗时长达数年,耗资也对当时的工资来说数额庞大。当年这么烧钱烧青春的东西,自然会有一旦拥有别无所求的效应。而这些历史条件早已有很大改。我身边很多朋友来美读书工作后都拿到了绿卡,其中不乏最终决定回国或者去别的地方工作后的,绿卡便慢慢作废了,还有一个朋友回国发展很好,今年暑假终于跟我说想放弃绿卡了因为缴税太多(是的,美国这个特立独行的国家是全球缴税),而相同税额哪怕交给国内,自己企业至少还可以有不少优惠。

说到底,绿卡的意义随着世界的变化早已改变。文艺点说就是“这对你们(老一代)来说是付出所有能得到的唯一,对我们(新一代)来说不过是选择中的一项。”

为什么没那么多人对放弃北漂的年轻人丢了暂住证不断发问表达可惜呢?这不是一样的么?因为随着越来越多的年轻人涌入北上广逃离北上广,曾经思想高度统一一致的中国人也正在主动被动地接受一个现实:我们都要允许别人成为不一样的人。离家回家北漂与否都是人生常态,恰如出国回国。人生不是打通关,不是一路的装备必须都得收着扛着死守着。再说就算打游戏,里面装备也是可以卖的,断舍离都是人生难免的经历。之后我在亚洲欧洲间不断迁徙,看到更多的人生百态,我深切地感觉到其实整个世界正在成为一个国籍户籍暂住证等不再重要的世界,我们努力奋斗会不断获得自由,这其中也包括迁徙的自由。

至于那些略尖刻的“相对别人来说自己已拥有的应该珍惜的能力和资源”类问题。我经常问自己:你想二三十年后,看到一个祥林嫂式的总在念叨“如果当初我离开美国就好了”的自己吗?

即使现在拥有的很多物质或非物质的东西似乎是很多人觉得好的,我是否真的可以接受一成不变下去,然后用后半生告诉自己:我现在的生活是挺多人想要的所以是好的,就这样过完余生吧?

起码我不能。当初看《革命之路》,一直觉得这电影很恐怖,因为太真实地写出了美国生活最恐怖的地方:巴黎是我们一直想去没有去的地方,然后我们买房升职生子再生子升职,最后我们都不记得自己是不是真的有过这样的梦想。我只是不想在生活中主动放弃,慢慢投降,直到最终忘记那些梦想和渴望。一直觉得:其实一个人在哪里生活都不重要,重要的是这里让你成为了一个什么样的人。美国让我感觉自己正在变成一个老人,遗憾的是,我内心还是一个少年。如果老人没有打败少年,少年最终会战胜老人。

回到两年前的那个夏日,我那位同为人母的旧友表达的其实也是现实中很多人问的第二类问题:关于接近三十面临的社会家庭角色以及下一代教育的问题。大致可归结为“孩子成长通常需要的稳定环境会逆向迫使对改变贼心不死的父母妥协,开始择一城终老”的模式。

我离开美国的时候,我的孩子四岁,那时她刚刚在一个双语幼儿园上了一段时间,开始和一些小朋友结为好友,经常谈论她们,在我们后来在中国和欧洲居住的时间里,即使时间流逝,她一点没有忘记自己的朋友,经常表达“我的朋友们一定都在想我去哪里了”“我很想她们”之类的。

作为她的父母,我十八岁前不仅仅是只在一个城市长期生活,甚至家里二十年都没有换过房子,是在同样的一个家里长大;小人爹大概从有记忆的四五岁起也是在一栋屋子里长大十八岁离家上大学。可以说,我们自身的成长经历让我们自然接受的是一个不变比较“正常”的“普遍”的成长环境,我们多次跨洲迁徙也不是因为其中一个突发奇想觉得“需要让孩子多换国家/洲/地方长大。”

事实上,听到小人表达对朋友的思念之情,我们自然都是有些难过的,我们会鼓励她告诉我们想对小朋友说的话,然后给小朋友的爸爸妈妈发电邮,请她们转达。

我们为什么义无反顾地搬离生活多年的地方?其中一个很大原因是我们对美国教育尤其是基础教育的不信任。过去三年里,我作为大学申请咨询师(college counselor)一直在为一家大型课辅公司工作,接触硅谷各类公立私立中学生和小学生,而且可以长期深入了解她们。在此也顺便澄清一下大学咨询,其实正规的“大学申请咨询师”在美国并不是一个遍地开花的现象,因为这是个需要认证的专业职位。譬如我也只能经过一年多近两年的课程学习,完成符合条件的两三位数咨询时间后,由加州大学洛杉矶分校认证才获得可以独立咨询的资格。正是常年累月跟着各校学生体验了解她们学校生活中所遇到的问题,我越来越深切地体会到:让我的孩子在美国接受基础教育,无论对于她良好的学习习惯,理性思维还是常识的养成,都是一个风险更大的选择。

至于小人爹,虽然在加州长大,但因为受过良好高等教育的父母看到了基础教育对他的不良影响,为了让他有更好的教育环境,让他退学,在家自己从小学一直教到中学,才得以对抗环境的影响最终去了斯坦福上大学。他和很多大学好友的自身经历让他对美国基础教育非常不信任。

在我们眼里,美国基础教育最大的问题之一是美国社会环境的反智主义流行。孟母三迁,告诉我们的就是个人很难抗拒大环境,不如搬去,“打不过就跑”才是硬道理。而作为一个移民聚集区,硅谷里很多我工作中接触的移民家庭面临的和孩子的冲突让我了然:像中国这类有着复杂深厚的历史文化背景的国家,如果不在此生活,孩子永远不可能真正认识和了解。而认识和了解,是形成一切世界观的基础。我和小人爹都不甚认同西方中心视角下形成的一套现代世界观,那我们至少要给孩子一个机会接触别的认知体系。

作为父母,一个现实的问题是如何应对子女对于迁徙可能的不良反应。其实我觉得我们第一个要接受的现实就是人生并不完美,我们每个人能做的也都有限,子女无法选择自己的父母,但如果父母都不喜欢自己,子女如何爱这个你。

我内心希望自己给孩子的母亲印象是一个内心没有畏惧,有勇气和行动力去做出改变的母亲。可能因为这个世界对女人本来就不是很客气。即使现代社会,无论东方西方,女性大多数时候需要克服很多先天和后天的不利去达成自己的目标,但其实最大的障碍是你的内心,受到社会种种教化的内心去做一个过安慰日子的乖孩子好孩子的内心很多时候都在阻碍女性的前进,如果你自己都没有勇气,世界自然不给你让路。

另一方面,我从来没有过对自己的母亲角色完美主义的追求。这个世上从没有恰到好处的母爱,无论怎样子女都有对你的埋怨,更多时候我们作为父母要接受他们成长为和自己不一样的人。哪怕将来我的孩子成长为一个一辈子只喜欢呆在一个地方的人,我仍然希望在她足够小的时候,能帮她形成世界很大的印象,生活是有很多可能性的认知,即使新环境带来不适应和诸多挑战,全家人依然可以开心勇敢去拥抱改变的记忆。作为家长的我坚持离开美国,也并不是因为一定要让我的孩子将来在哪生活,无论她最终将来想在哪生活,我只希望她在生命之初耳濡目染有勇气去用有限的人生追求自己想要的生活方式,而不是固守别人认为应该和值得的。

第三类问题更多涉及女性的家庭关系以及现代社会婚姻稳定度下降带来的焦虑感。譬如最典型的从地广人稀的地方搬到人口众多的地方从概率上讲可能增加婚姻的不稳定性等。

对此我并没花时间做过多的设想和担忧,最根本原因可能是我个人并不觉得婚姻和家庭的终极意义就是要天长地久求一个安稳。我对伴侣最大的期许是三观融洽,可以和我并肩一起去体验人生的可能性,探索更宽广的世界并希望对方也乐在其中。体验世界也不是环游世界那种(当然旅游也是很爽的事情),而是一个不畏惧断舍离,不畏惧和熟悉的生活说再见,可以欣欣然接受新事物新生活的过程。在我看来,世上最成功的婚姻是我们在这场与岁月的伴行中都没有慢慢变成自己不喜欢的人。

近年来,伴随我们这代女性长大的“女性独立自主,自强自立”的教育口号渐渐退出历史舞台,大批新一代女性被成功洗脑恢复了向往“婚姻解放人生从此一劳永逸”的模式,结果是很多年纪轻轻的小姑娘都来表达对我所谓“生命不息折腾不止”的焦虑和不安,其中最大的不安就是担心缺失稳定,同辈甚至长于我的女性朋友反而各种理解和支持。这真让人觉得意外又无奈。

我只想说:姑娘,在你不停纠结他是不是还爱你,他会不会不爱你之前,别忘了先看看自己是否还爱自己。

今年看过的好剧之一是Breaking Bad(美剧《绝命毒师》,一个美国高中化学老师,暂叫他老白吧,身患肺癌为了筹钱利用专业知识,阴差阳错渐渐走上制毒贩毒之路,成为一代传奇的好看故事)。结尾部分我很喜欢,老白历经了逃亡之后回到家里,重逢时老婆说:“老白,你再他妈的敢说一遍你做这一切都是为了我们这个家,我就掐死你。”老白无比认真地回答:“不,我回来就是为了告诉你,我做这一切其实都是为了我自己——我真正地享受了我踏上这条路以后做的每一件事。”

是的,从二十到近三十,北京到洛杉矶到硅谷,成了家拖着娃后离开生活了七年的地方,我做这一切说到底也是为了我自己。离开美国,是因为我已不再爱那个在美国的环境里渐渐变成的自己。感谢我的先生,作为一个头脑里没有障碍的男人,从来没有觉得任何物质的东西包括房车暂住证之类是必须的,有变化,当然会有麻烦和意外,边走边解决就是了,不然要那么长的人生干吗。也感谢他在我们相识八年以来,从来没有试图改变过我(当然也有可能曾努力过,但没效果罢了),始终尽己之力,支持我每个不反社会反人类的正常决定,反之亦然。

在加州生活了了七年后离开已有一段时间,回头看看写下自己的经历和感受,只是希望分享近年来自己的视角:这个世界对于很多努力的人来说,正在变得越来越没有障碍,越来越自由宽广。在此辞旧迎新之际,所有还不想放弃追求自己想要的生活的不妨都抽空坐会儿,拿马克·扎克伯格同学那句著名的话问下自己:“What would you do if you weren’t afraid? ” (如果你的内心不再畏惧,你会做什么?)

【转载】安装modelsim SE 10.1c

http://lihm.thudep.org/?p=323

1.先从http://pan.baidu.com/s/1sjAT8yL下载所需版本的modelsim软件及其crack

2.windows的安装与破解自行解决

3.ubuntu下安装方法,首先mount **.iso,

安装:配置好jre后,双击install.linux,没有反应,发现在home路径下出现mgc文件夹,然后通过terminal执行文件夹里面的install,提示错误信息:缺少libXtst.so.6,通过命令

sudo apt-get install libXtst6:i386,解决问题。

然后在挂载目录下运行./install.linux

4.傻瓜式安装后将crack压缩包中的linux目录下的三个文件解压,放到modelsim的安装目录下,并且进入此目录,此目录有modeltech和_msidata两个文件夹

5.sudo chmod +x sfk6

6.打开patch_2013,复制其中的命令在terminal下面执行,显示有2文件被change

7.回到crack解压的目录,用wine打开MentorKG.exe,等待大约1分钟。会有一个license.txt的文件弹出来,将其保存到~/modelsim/license.txt

8.在.bashrc下面添加

export PATH=:$PATH:~/modelsim/modeltech/linux_x86_64

export LM_LICENSE_FILE=~/modelsim/license.txt

modelsim中安装ISE的仿真库

1.将modelsim安装目录下面的modelsim.ini增加可写权限

2.在ISE的Console里面输入compxlib,默认设置安装即可

【转载】dpkg: warning: files list file for package `*****’

  • [ 转载 http://blog.sina.com.cn/s/blog_82fc65ea0101k1pz.html ]
  • 装软件的时候总是提示dpkg: warning: files list file for package `*****’ missing, assuming package has no files currently installed,导致无法安装任何软件,结果百度+Google了好多教程,最后找到的解决办法如下:
    (亏得没有轻信别人只能重装系统来解决)
    #!/bin/bash
    set -e
    # Clean out /var/cache/apt/archives
    apt-get clean
    # Fill it with all the .debs we need
    apt-get –reinstall -dy install $(dpkg –get-selections | grep ‘[[:space:]]install’ | cut -f1)
    DIR=$(mktemp -d -t info-XXXXXX)
    for deb in /var/cache/apt/archives/*.deb
    do
        # Move to working directory
        cd “$DIR”
        # Create DEBIAN directory
        mkdir -p DEBIAN
        # Extract control files
        dpkg-deb -e “$deb”
        # Extract file list, fixing up the leading ./ and turning / into /.
        dpkg-deb -c “$deb” | awk ‘{print $NF}’ | cut -c2- | sed -e ‘s/^\/$/\/./’ > DEBIAN/list
        # Figure out binary package name
        DEB=$(basename “$deb” | cut -d_ -f1)
        # Copy each control file into place
        cd DEBIAN
        for file in *
        do
            cp -a “$file” /var/lib/dpkg/info/”$DEB”.”$file”
        done
        # Clean up
        cd ..
        rm -rf DEBIAN
    done
    rmdir “$DIR”
    原理是重新下载所有安装过的软件包,然后从中提取文件列表信息复制到info文件夹里。(所以请在网速较好的时候使用)

CentOS 6.x misses nobootwait fstab option.

http://www.sgvulcan.com/centos-6-x-misses-nobootwait-fstab-option/

Recently I added a new storage disk to a cloud server. The issue is that this disk might not always be available at boot time. There is an easy fix for this kind of problems. The nobootwait mount option (like it would show in a fstab entry):

1
/dev/xvdd1 /storage ext4 defaults,nobootwait 0 0

Note that the fsck order of 0 already ensures that fsck will not hold the boot process by complaining the disk is missing.

This is what I did, then I tried to mount my new attached disk:

1
2
3
4
5
mount /storage
mount: wrong fs type, bad option, bad superblock on /dev/xvdd1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog – try
dmesg | tail  or so

I checked dmesg and this is what it spitted out:

1
2
dmesg | grep xvdd1 | tail -n1
EXT4-fs (xvdd1): Unrecognized mount option “nobootwait” or missing value

I’ll be, CentOS never heard of it (surprise, surprise). I thought about nofailm but I was not sure it would do the trick.

This is what fstab(5) says about nobootwait

The mountall(8) program that mounts filesystem during boot also recognises additional options that the ordinary mount(8) tool does not. These are: bootwait which can be applied to remote filesystems mounted outside of /usr or /var, without which mountall(8) would not hold up the boot for these; nobootwait which can be applied to non-remote filesystems to explicitly instruct mountall(8) not to hold up the boot for them; optional which causes the entry to be ignored if the filesystem type is not known at boot time; and showthrough which permits a mountpoint to be mounted before its parent mountpoint (this latter should be used carefully, as it can cause boot hangs).

and this about nofail

nofail do not report errors for this device if it does not exist.

So I took the hackish route of adding noauto instead of nobootwait. This way the disk is not even mounted at boot time, and so it can be missing and added a mount line in rc.local.

1
2
3
4
5
6
7
8
9
cat /etc/rc.local#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

/bin/mount /storage &

Let me know if you know or find a better way of doing this.

[转载] nofail and nobootwait mount options in fstab prevent boot problems

Copy From: http://techmonks.net/nofail-and-nobootwait-mount-options-in-fstab-prevent-boot-problems/

Problem description: You (re)boot your computer, e.g. a headless server. The boot process can halt or exit to rescue mode when an external disk is unavailable or when an internal but non-critical disk is out of order.

  • mountall tries to automount all entries from fstab that have the defaults or auto mount options. It will halt the boot process if such entries cannot be mounted, except when the mount option nobootwait is given.
  • fsck tries to do a filesystem check on all entries from fstab that have the sixth field set to 1 or 2. Non-critical drives typically have this field set to 2. It will halt the boot process if such filesystems cannot be checked, except when the mount option nofail is given.

A possible disadvantage of nobootwait is that, if the disk is actually present, it will do the filecheck in the background and continue booting. That might be exactly what you want for e.g. external drives, but if other services depend on the drive, then those services can fail.

Another disadvantage of nobootwait is the fact that it is not supported by all Linux distributions. For example, using Scientific Linux (RHEL) 6.4, I cannot mount a partition that has the nobootwait set in fstab.

According to the fsck man page, this is what nofail does:

fsck normally does not check whether the device actually exists before calling a file system specific checker. Therefore non-existing devices may cause the system to enter file system repair mode during boot if the filesystem specific checker returns a fatal error. The /etc/fstab mount option nofail may be used to have fsck skip non-existing devices. fsck also skips non-existing devices that have the special file system type auto

Ubuntu has a bug listed: “mountall ignores nofail mount option”. That makes sense, as mountall has not implementednofail. It uses nobootwait. The bug reporters argue that both mountall and fsck should make use of the nofail option, and I agree with them.

So, if you want to be on the safe side, you

  • should use both nobootwait and nofail.
  • should test this with a manual umount followed by a mount.
  • should have no services depending on non-critial disks.

Below an example from my own SE 6.4 server using only the nofail option, because mounting with the nobootwaitoption present gives an error.

LABEL=Series  /mnt/filer/Series  xfs  auto,nofail,nodev,noexec,nouser,noatime  0  2

Sources: