Linux下Windows虚拟机的安装

由于UEFI的安全性设置,在Linux下安装虚拟机比以前要麻烦很多。探索了一天,记下来。下次方便使用。

基本信息:Ubuntu,希望安装virtualbox或者VMware(VMware的免费版不支持修改efi启动为bios启动,而只有在bios启动下Windows安装盘才能启动安装程序。这个应该可以想别的办法修改的,不过懒得折腾了。所以,直接采用virtualbox),在虚拟机内安装Windows,要求全分辨率显卡加速。

首先,最好在UEFI中停用Secure Boot。否则,虚拟机需要安装的很多驱动都需要额外认证。

其次,安装的virtualbox最好来自于Oracle的最新版本,不要用Ubuntu的自带版本。如果已经安装过自带版本要完全清除掉,例如运行sudo apt-get purge virtualbox-dkms 。然后在安装新版以后,运行sudo apt-get install dkms 。有必要的话执行sudo /sbin/vboxconfig 。

接着,安装完了virtualbox之后,创建虚拟机,连接到Windows安装光盘,设定好虚拟机资源就可以安装并运行虚拟机了。

但是,之后会遇到分辨率奇低的问题。为了解决这个问题,需要下载virtualbox guest additions,点击这个下载回来的文件,virtualbox会把这个文件变成一个虚拟机内可以打开的光盘。在进入Windows系统之后,安装这个光盘下的exe文件,重启。

注意,重启完成之后,分辨率仍然很低,这时候,需要在正在运行的Windows界面的菜单的“设备”里面在一次点击“upgrade guest additions”才能完成对这个guest additions的安装。安装完成之后,重启,就可以看到很高的分辨率了(试试窗口模式、全屏模式等)。中间可能需要修改闪存设置,需要加上3D加速。

Voice2text, text2voice, voice control

Recently, I start to work on setting up a computer for Joe with voice2text, text2voice and voice command functions. Here is a note on how to turn on and use those functions on a mac.

To use voice control, go to “System Preferences”, then click “Accessibility” and then click “Voice Control“, where you will find options to turn on and adjust the voice control.

To dictate voice to text, simply turn on the voice control as stated above. Further more, there are a set of key words, which are quite intuitive in fact such as “open/quit [An APP]” , that the voice control will regognize them as command and it treats often correctly the rest as text input. Dictation works well in Keynote and Pages, while it might not work in Microsoft Office, which needs to be tested out.

To convert text to voice, go to “System Preferences”, then click “Accessibility” and then click “Spoken Content“, where you will find options to turn on and adjust the text2voice function, for example, you can choose the option to always show the Spoken Content Player. You can then select/highlight what ever text and ask (by click Option+Esc key, or click on the play button on the Spoken Content Player control) the computer to read it out.

To request the computer to read out the whole screen, go to “System Preferences”, then click “Accessibility” and then click “VoiceOver“, which will do just that. However, if you have dictation/voice control on while using VoiceOver, the voice from VoiceOver will be recorded and treated as command or text.

How to apply those functions? For example, you can select contents of emails, and convert them into voice. You may reply emails or write articles via voice2text.

In addition, one may turn on Siri, which have both the voice control function and much more.

Basically, Joe wants to be able to use email, browser, word processing, slides, and occationaly Cmaptools (maybe http://Lynkage.cn is easier to use?). For those, with the above text2voice, voice2text and voice control, it should be more or less enough. So it seems that Joe will not need additional hardwares and softwares for this, besides simply a mac with M1 chip (without the chip, it seems that voice2text will have to be run on the Apple server and thus limited).

从面向对象编程看分解和综合,个体和整体

计算机描述世界和解决问题的方式是对象、算法和编程(算法用语言表示出来)。计算机科学的对象是计算机科学在描述世界的时候对所描述的对象的抽象。一般来说,一个对象对于这个对象的使用者来说,主要关注的是:这个对象和外界是什么关系,也就是外界输入给这个对象什么,这个对象给外界输出什么;同时,刻画这个对象的编程者,关注的是这个对象内部需要什么元素,元素之间什么关系,这些内部元素和元素之间的关系如何按照接收到的外界信息来更新状态,从而如何产生输出给外界的符合其行为的输出。也就是说,对于把这个对象和程序当做工具来使用的人来说,我们得看到这个对象的整体,也就是跳出来看;对于设计和实现这个对象和程序的人来说,我们得看到这个对象的细节以及细节和整体的联系,也就是钻进去看。

如果我们有的时候需要创造性地使用这个工具,那仅仅跳出来就不够了。因为不了解细节如何实现的人,只能把这个工具用到它所设计的地方。就好像说,一个扳手就是用来拧螺丝的。但是,如果我们还了解这个扳手的其他细节,例如比较重,例如比较硬还有一定长度,没准在需要的时候我们还可以把扳手当做榔头或者撬棍来使用。同样,如果我们了解这个对象和程序的一定的细节,有需要的时候,我们就可以把这个程序的一部分算法和程序甚至设计上的想法拿来在适当的场合重用,或者迁移到一个完全不同的场景。这也就是创造性地使用工具和创造工具。

因此,如果要创造知识和创造性地使用知识,我们在学习的时候就要进得去处得来,跳出来的时候看到整体忽略其内部细节,钻进去的时候看到细节以及细节和整体的联系,合起来就是从细节看到整体,从整体的角度来看细节。这就是我们说的分解和综合,或者说既见树木又见森林,或者说,系联性思维。

Overleaf支持Markdown和LaTeX混合写作

对于稍微篇幅长一点的或者经常有公式和参考文献这种编号会变化的内容的写作来说,仅仅使用纯文本(text)的标记语言远远比隐藏了大量格式说明的“所见即所得”的文字编辑器方便。

当然,最成功和万能的是\(\LaTeX\),mediaWiki也很好,HTML也不错,Markdown语法更简单(注意,就算后面三者,实现数学公式的时候还是靠一个叫做MathJax的依赖\(\LaTeX\)语法的软件)。很早以前的WPS其实也是标记语言,后来就跟堕落的Word学习了这种——适用于不想深入一点学习结构化写作和一点点语法的用户,适用于写纯文字的短文章的用户的——所见即所得。结构化写作,先布局整体结构,再来补充细节,是能够启发你的思考的写作方式。任何人都应该优先尝试一下结构化写作,而不是顺着思路往下写。

对于不需要数学公式,但是还是需要参考文献以及结构化写作的用户来说,\(\LaTeX\)可能学习成本太高,也不太有必要。那是不是可以用Markdown来写书呢?这是可以的,例如“简书”和”Gitbook”就是一个可以用Markdown写书的网站。但是,对于一个团队,可能其中一部分成员已经习惯了用\(\LaTeX\),另一部分习惯用Markdown。怎么办呢?

当然,很早就有人来做三者之间的转换,例如pandoc。不过,很少有软件,并且是在Web端的不需要安装到本地的软件,能够让你直接把其中的两种甚至三种混合起来使用。Web端的软件第一是不用安装维护,第二是方便多人协作,如果还能提供版本管理功能就更好了。

现在,Web端\(\LaTeX\)写作平台Overleaf,就提供了这样一个实现(当然还有待于进一步提高,例如,除了PDF,如果最终能够输出成markdown或者\(\LaTeX\)格式就更好了):通过使用markdown.sty宏包,可以在\(\LaTeX\)中同时使用\(\LaTeX\)和markdown。具体可以参考这里的模板:
https://www.overleaf.com/learn/latex/Articles/How_to_write_in_Markdown_on_Overleaf
https://www.overleaf.com/learn/latex/Articles/Markdown_into_LaTeX_with_Style

R和R包的安装

R的最新版需要专门去CRAN镜像下载安装文件。Ubuntu库里面的R通常不是最新版。如果要重新安装,则最好清空之前安装的软件包。例如删除掉“/usr/local/lib/R/site-library”之类的。然后重新安装R。

完成之后,后来安装的很多包,例如”devtools”, “EpiEstim”可能依赖Ubuntu的编译功能和Ubuntu系统的软件包。因此,最好在Ubuntu安装一下编译包,例如运行一下“sudo apt install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev”之类的。再继续安装一下lapack之类的软件包。根据R里面安装的提示,还需要去下载相应的包。这个R包管理上和Ubuntu系统包没有整合在一起,比较麻烦。只好不断地发现错误,不断地补充包。

其中有一个软件包源程序(stringi/icudt61l.zip)很难获得,需要单独去下载回来(http://www.ibspan.waw.pl/~gagolews/stringi/icudt61l.zip),然后本地安装。或者到网络好的地方多安装几遍。

本地安装方法,例如:install.packages(“~/dplyr-master.zip”, repos=NULL, type=”source”),或者 install.packages(“~/EpiEstim3_src/EpiEstim”, repos=NULL, type=”source”)