Fly Higher's Blog
Do one thing and do it well
-
英语学习的一些建议
本文转载自zippera‘s blog Introduction 经常有朋友询问怎么学英语,有的是要考四六级,有的是想看论文,有的是已经工作的希望能够更加通畅地阅读英文资料。这些人中,与我同为计算机出身的比较多。与英语专业的学生不同,我们没有那么多的时间、精力和师友资源来浸淫在英语的世界中慢慢打磨自己,很多人也缺少对英语足够的兴趣,而只能在课余、工作之余,抽取些许时间,在「学以致用」的动力下努力提高自己的英文水平。 我本科学的是「信息管理与信息系统」,研究生在读「计算机科学与技术」,在英语学习方面,跟大家有几乎一样的先天条件和成长环境。因此,也许我的英语学习之路能给与我类似的读者一些可资借鉴之处。 为防止被指责为「理论家、学院派、纸上谈兵大将军」,我应首先证明一下自己是有些资格谈论这个问题的。稍列一下我的英语成绩: 中学、大学的英语相关考试在学校范围内位居 Gaussian 分布均值位置左右。 中学和大学参加了几次全国英语能力竞赛,一等奖(worse than 特等奖,better than 二等奖) 英语四六级分别622、633 考研英语84/100 考过托业、GRE 可以看到都是一些考试,没办法,我又不是英语专业的,只能提供这些 certificate 了。...
-
Markdown简易教程
1. Markdown简介 Markdown 是一种「电子邮件」风格的「标记语言」,它的目标就是实现「易读易写」,现在Markdown已经成为一种适用于网络的书写语言。 总结Markdown的优点就是: 纯文本,所以兼容性强,可以用所有的文本编辑器打开 然你更专注于文字而不是排版 格式转换方便,Markdown的文本可以很轻松地转换为html语言 Markdown标记语法有极强的可读性 本博客所使用的Hexo(博客搭建软件)默认采用的就是Markdown语言作为博文编辑语言,博主编辑好内容后就可以通过Hexo将博文发布到博客网站上。 2. Markdown基本语法 Markdown标记语言的语法非常简单,只需要多使用就会熟能生巧,作为初学者也可以点击这个网站在线学习编辑Markdown文档,在这个网站中左边是Markdown语言编辑的文本,右边则实时解析出对应的网页页面,十分方便。 2.1 标题 Markdown支持两种标题的语法,类Setext和类atxs形式。 类Setext形式是用底线的形式,利用=(最高阶标题)和-(第二阶标题),例如: This is an...
-
Android 虚拟激光键盘设计及实现
简介 当第一次在网上看到虚拟激光键盘时,我真的被震惊到了,觉得这键盘好科幻好酷炫啊,完全就是电影里的未来高科技的赶脚啊。看到这么酷炫高达上的东西,其实心中早已按倷不住了,要不自己就动手DIY一个?于是,就在网上各种搜索查找相关的资料,找到一个写得很详细图文并茂的的一个教程,低成本激光投射虚拟键盘的设计制作-上(原理和硬件)和低成本激光投射虚拟键盘的设计制作-下(算法与实现),我也在RoboPeak公司的产品中看到了这款虚拟激光键盘的产品(其实这家公司是做国内开源硬件和机器人平台的公司,我觉得它们的很多产品都非常有创新性)。 当然我也在淘宝上搜过有关虚拟激光键盘的产品,网上在售的主要是韩国Celluon公司的产品(如上图所示,价格在800-1000左右)和国内深圳某公司生产的与之相似的产品(价格只有200-300),它们都是基于蓝牙连接技术的键盘,只要你的设备支持蓝牙与其连接,智能手机、平板电脑、台式电脑、笔记本电脑也都可以使用。总之,虚拟激光键盘技术已经很成熟了,并且蓝牙技术也使得平台兼容性得到很好地解决。 现在移动办公的概念也离我们越来越近,只要一个手机或平板连上WIFI,就能随时随地进种处理各种事务,但是对于移动办公来说,文本文件和图表文件的处理是主要的业务需求,而现在的手机中自带的触屏输入系统存在着输入速度慢、键盘按键小、误输率高等缺点,所以能不能将虚拟激光键盘和移动设备结合在一起,将虚拟激光键盘内置到移动设备中作为其内置的一个输入功能,解决移动设备中触屏输入的缺点呢?于是,我就决定做这么一个基于Android系统的虚拟激光键盘,但这只是一个功能模型,如果能够将各个部件缩小化,然后将其嵌入到移动设备中,上面的设想也就能够实现了。 基本原理 本设计的虚拟激光键盘主要由键盘图像投影模块、红外激光定位系统、广角摄像头图像采集系统和Android平板四部分组成。在任意的平整的漫反射表面,通过红色波段的激光器透射刻有键盘图像的光栅,投影出QWERTY式的标准键盘图像,当用户敲击投影出的键盘图像中的某个按键时,通过广角摄像头就能捕捉到键盘区域内的键盘图像信息,再利用图像处理技术识别出图像中用户所敲击键盘的位置坐标,然后根据位置坐标映射到预先测量保存好的键盘布局文件中由此来确定按键的键值,然后将按键的键值封装成Android系统中的按键事件发送到Android系统中,这样就能实现与Android系统自带的软键盘一样的输入功能。 在上面虚拟激光键盘的原理介绍中,有三个核心的问题: 如何产生产生键盘画面? 如何识别按键事件? 如何模拟Android系统中按键事件 产生键盘画面 如果你小时候也和我一样玩过下面这种激光笔的话,相信你就知道我们的键盘图案是怎么产生了 实际上在激光投影键盘产品中,这类画面往往是通过全息投影技术得到的。激光器通过照射先前保存有键盘画面的全息镜片的方式在目标平面上产生相应的画面。还好现在我们有万能的淘宝,我们可以买到这样的激光键盘投射器。Ok,键盘图案就可以通过这个模块很简单地实现了。 识别按键事件 由于键盘画面可以投射在任意的表面上,因此传统的靠物理按钮的手段自然是不可能的(否则也称不上虚拟键盘)。需要非接触的手段来检测。这里给出了几种途径,他们在技术上都是可行的: 通过计算机视觉的方式,通过图像来识别 通过摄像头捕捉键盘区域的画面并进行分析,判断出键盘输入事件。 通过检测按键发出的声音来判断 这里假设使用者在按键时会碰触桌面,产生一定的敲击声。通过检测该声音传播时间,可以进行定位。该 方案在国外的一些研究机构已经实现。...