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加速。

如此课程思政太恶心了

刚才有人给我发过来一篇中国教师报5月4日的一篇文章《我发现了数学教育的“秘密”》。内容如下(点击原文链接可访问):

图片


这是放大之后的版本:

图片
图片

我先来个WHWM总结。

  • What说了什么:说了思政教育使得“我”找到了数学教育的道路,可以把数学说明白了,可以这样来教下一代了。
    • 是什么样的思政教育呢?把数学和《雷锋日记》、四个自信联系起来,把数学的特殊值代入法和国家政策做实验联系起来。
  • How怎么说的:我学了数学没法给妈妈解释清楚,上了数学和思政结合的课,想明白了,而且中间体现了巨大的喜悦。
  • Why为什么来这样说:先抑后杨,更加突出其中的痛苦到喜悦的转变,从而使得其主要信息,也就是其发现的数学教育怎么做的秘密,更加突出,容易产生同情共感。
  • Why为什么说这个:有可能真的是这么觉得,有可能是为了硬凑课程思政的主题。如果是前者,则是教育的悲哀。如果是后者,则是人品的卑劣。
  • Meaningful我觉得怎么样:这是一坨恶心人的狗屎。

我不知道为什么课程思政会这样搞,还能够深入到下一代的学生的心中去,然后等这个下一代的学生成了教师,注意他是师范大学的本科生看起来也打算未来当老师的人,就会继续祸害下一代。这是为什么啊?这到底是为什么啊?

课程思政,在我看到的上级传达的材料里面,关于数学和科学,要求是体现科学家和数学家钻研科学和数学的精神,为科学和数学献身的精神,体现学科思维方式。难道,数学就没有什么自身的思维方式,高层知识,值得学生学习,难道数学家里面就没有追求纯粹思维的高度和快乐为数学献身的先辈供后来人体会吗?数学就到了要依靠雷锋日记、四个自信、国家政策实验才能体会到什么是数学的地步了吗?

课程思政,如果按照“要求是体现科学家和数学家钻研科学和数学的精神,为科学和数学献身的精神,体现学科思维方式”,正好就是以高层知识生成器为目标的理解型学习,加上传递学科情感。然后,在有必要有可能的时候,对于真的是中国数学家前辈们的贡献,我们也应该点出来,因为这样的地方确实不多,比较珍贵,值得点出来。

这样的课程思政完全可以不恶心,甚至很有必要,甚至如果这些点都和具体的数学知识以及数学知识的创造过程结合,都可以做到高大上。

太原师范大学,中国教师报,请问:你们,为什么,为什么,要这样来谋害我们的下一代教师,然后利用他们来谋害我们的下下一代学生?

太恶心了。我只好安慰自己,正好明天省两顿饭,当减肥了。

太,太,太,太,恶心了。

为太原师范大学,中国教师报,立一根耻辱住在这里

数学学习和解题秘诀

数学学习和解题秘诀

吴金闪

数学学习秘诀

数学学习秘诀:搞清楚新学的概念和已经学会的概念是什么关系。数学是思维的语言。

提出和学习数学概念的例子就不整理在这里了。下面是这个秘诀在解题上的举例。

数学解题秘诀

数学解题秘诀:What——要算出来的是什么,已知的是什么;How——每一步都搞清楚算出来的东西是什么,这个东西和已经知道的东西有什么关系,和要算出来的东西有什么关系,它们是如何联系起来的;Why——这个联系用什么数学表达式来表达,为什么这样表达,为什么它们之间有这个关系;Meaningful——问题解决了吗,还有其他解决方案吗,我从中能够获取什么样的概念知识和思维方式、分析方法层面知识的启发?没准,还能进一步拓展一下,找到和其他问题或者知识之间的联系,甚至检验一下?

举例:一批工业最新动态信息输入管理储存网络,甲独做需6小时,乙独做需4小时,甲先做30分钟,然后甲、乙一起做,则甲、乙一起做还需多少小时才能完成工作?

先搞清楚每一个关系都知道如何转化成算式。包含:

  1. 在总工作量w、单位时间(每小时、每天、每个月等)的工作速度v、工作时间长度t之间的关系是:w=v*t=v+v+…+v (t个v加起来)。
  2. 如果有两个人工作速度分别是v1 和 v2,则他们合起来的工作速度是 v12=v1+v2。
  3. 如果整体w里面去掉一部分w1,则剩余的是 w2=w-w1。

这些最简单的关系和算式的对应关系搞清楚,以及为什么会有这样的对应关系也搞清楚(总共就四种关系:加法——和起来数一数,减法——整体里面去掉一部分,乘法——重复的加法,除法——重复的减法)之后,就可以通过上面的秘诀——先搞清楚每一步需要算出来什么、算出来的是什么,和其他的东西有什么关系,来解决更加复杂的问题了。

下面,我们来运用解题秘诀以及前面的关于三条简单关系的算式的知识来解决这个问题。

  1. 在这里,我们最后需要知道甲和乙合起来完成某个任务的时间,则我们肯定要知道当时要完成的任务的总量w2、甲和乙合起来的完成工作的速度v12。如果知道,就可以用w2=v12*t,或者t=w2/v12。
    1. 为了知道甲和乙合起来的完成工作的速度v,我们需要知道甲v1和乙v2各自完成工作的速度。如果知道,就可以用v12=v1+v2。
      1. 我们不能直接知道甲v1和乙v2各自完成工作的速度,但是,我们如果知道工作总量w,则v1=w/t1,v2=w/t2。
        1. t1已知为6小时,t2已知为4小时。完全已知。
        2. w未知,先留着。
    2. 为了知道要知道当时要完成的任务的总量,我们需要知道之前的任务的总量w和已经完成的任务的量w1。如果知道,就可以用w2=w-w1。
      1. 我们知道了甲的工作速度v1=w/t1,工作了t3=0.5小时之后,完成的工作量是w1=v1*t3。
      2. 剩余的工作量,如果原来最开始的工作量w已知的话,就是w2=w-w1=w-w/t1*t3。
        1. 仍然,除了w未知,其他都知道了,先留着w。
  2. 把这些关系合起来,我们有t=w2/v12=(w-w1)/(v1+v2)=(w-w/t1*t3)/(w/t1+w/t2)=(w-w/6*0.5)/(w/6+w/4)。分子分母同时乘以1/w,得到t=(1-1/6*0.5)/(1/6+1/4)=(1-1/12)/(2/12+3/12)=11/5 (小时)。

也可以把所有的量都写成以甲的工作速度v当作变量的形式。

  1. 如果已知甲的工作速度v,则工作总量为w=v*t1。
  2. 于是,乙的工作速度为v=w/t2=v*t1/t2。
  3. 则甲和乙合起来的工作速度是v12=v1+v2=v+v*t1/t2。
  4. 然后,甲工作半小时t3=0.5完成的工作量是w1=v*t3。
  5. 剩余的工作量是w2=w-w1=v*t1-v*t3。
  6. 剩下的工作由甲和乙共同完成,需要的时间是t=w2/(v1+v2)=(v*t1-v*t3)/(v+v*t1/t2)=(v*6-v*0.5)/(v+v*6/4)。分子分母同时乘以1/v,得到t=(6-0.5)/(1+6/4)=(11/2)/(5/2)= 11/5 (小时)。

记住,不管多么复杂,我们不过是用了这个数学解题秘诀:每一步知道要算出来什么,算出来的是什么,算出来的东西和已知的东西是什么关系,算出来的东西和将来要算出来的东西是什么关系,这些关系如何用数学表达式来表达。

列方程解应用题

列方程解应用题和前面的解题技巧实际上是一样的,不过,更简单,把任何未知的东西都先用一个字母来表示,然后只要顺着关系来想。

列方程求解应用题秘诀:

1. 找到最关键的东西(最关键的意思是知道了它就知道了很多其他东西),把它的量设为未知数;

2. 把其他的东西,按照这些东西和未知数所代表的东西的关系,写出来包含x的表达式;

3. 找到所有的东西之间的最后的大的关系,通常是一个不变量,或者一个等式,得到包含x的方程;

4. 求解方程(对方程左右两边不断地同时做加减乘除同一个数)得到x

5. x得到其他东西的量,回答问题。

举例:有四只盒子,共装了45个小球.如变动一下,第一盒减少2个;第二盒增加2个;第三盒增加一倍;第四盒减少一半,那么这四只盒子里的球就一样多了.原来每只盒子中各有几个球?

1. 找关键东西,设x:在这个问题里面,盒子里面的新的小球数量最关键,知道这个数量,就可以知道每个盒子原来的小球的数量。所以,我们假设“盒子里面的新的小球数量为x”。

2. 找关系,算其他的量:

第一个盒子减少了2个得到x个,所以,第一个盒子原来有x+2个;

第二个盒子增加了2个得到x个,所以,第二个盒子原来有x-2个;

第三个盒子增加了一倍得到x个,所以,第三个盒子原来有x/2个;

第四个盒子减少了一半得到x个,所以,第四个盒子原来有2x个。

3. 找到算出来的东西的量的之间的大的关系:在这里就是原来合起来是45个,也就是 x+2+x-2+x/2+2x=45

4. 求解方程:

4x + 0.5 x =45

4.5 x =45

9x = 90

x=10

5. 得到新的数量之后,算出来每个盒子原来的数量为:第一个盒子x+2=12,第二个盒子x-2=8,第三个盒子x/2=6,第四个盒子2x=24 个小球。

构造式解题

构造式解题秘诀以后再补充:转化,联系

哲学、数学、科学和系统科学之间的联系和区别

之前,经过我补充的罗素​的话是这样说的:

科学是讲道理和经过(或者快要能够)实验验证的,哲学是讲道理的可实验验证的但是还远远没有能够实验验证的,宗教是不讲道理也不需要验证的;以及我补充的——数学是讲道理的但是不求实验验证的。

​现在,我来进一步补充一下:

  1. 数学是研究关系(形成的数学结构)的学科,不屑于接受现实的检验。
  2. 系统科学也是研究关系的学科,要接受现实的检验。
  3. 科学(例如物理学)是研究某一类特定关系(例如,物理相互作用)的学科,要接受现实的检验。

尽管数学不屑于接受现实的检验,但是,其提供的数学结构往往会成为思维的语言,进而成为用思维来描述世界的语言。例如,在上面的几句话里面,你可以发现,关系远远比对象重要。那,为什么关系比对象重要?数学集合和映射的语言、范畴论的语言,都告诉你,给对象一个什么样的名字是次要的,重要的是这个对象和其他对象之间的关系。当然,如果对象的名称和关系刚好适配,则这个名字就更具有启发性,​可以用来望文生义。

系统科学是数学和科学之间的学科。在特定类型的关系被研究得比较成熟形成自己的学科以后,就会脱离系统科学进入专门学科。当然,历史上是先有专门学科的,因此,可以看作是系统科学是把分散在各个专门学科之内的研究关系的那部分具有共性的东西总结提炼出来​而形成的。尽管系统科学仍然非常不成熟,在发展过程中,至少,现在已有了一个大概的精神​:从孤立到有联系,从直接联系到间接联系,从个体看到整体,从整体来看个体,以及在这个精神下的一些针对具体研究问题的分析方法,并且正在形成具有一定​普适性的超越具体系统的分析方法。

看起来,似乎,宗教、哲学、数学、系统科学、科学之间的​联系和区别基本上搞清楚了。​请大家批判。​

代码同时更新到Gitee和github

由于国内同步到Gitee更方便,国外同步到github更方便,需要把同一套代码同时同步到Gitee和github。把这个过程记录下来。

同时,由于github禁止了用户名和密码来认证,因此,这里对于Gitee和github统一采用ssh认证。注意,选择ssh认证之后,代码库clone的命令的细节会和用https的方式不同。

第一步,生成ssh key公钥和私钥对。可以采用不同的协议。在这里用rsa格式。进入~/.ssh目录下,输入命令:

$ ssh-keygen -t ed22519 -C "YourGIthubEmailbox" -f "github_id_rsa" 

直接两次回车.会在文件夹下生成github_id_rsa和github_id_rsa.pub.Gitee已经不允许rsa编码的公钥,因此,改成ed22519。

第二步,把github_id_rsa.pub的内容添加到github的SSH Keys中,取个名字,保存。

针对Gitee,重复这个过程。

第三步,在~/.ssh文件夹下新建config文件,添加以下内容

# gitee 
 
Host gitee.com 
HostName gitee.com 
PreferredAuthentications publickey 
IdentityFile ~/.ssh/gitee_id_rsa 
 
# github 
 
Host github.com 
HostName github.com 
PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa 

第四步,添加识别 SSH keys 新的私钥。为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent 中

$ ssh-agent bash  
$ ssh-add ~/.ssh/github_id_rsa
$ ssh-add ~/.ssh/gitee_id_rsa

第五步,测试是否连接成功。运行如下命令,看是否受到欢迎信息:

$ ssh -T git@github.com
$ ssh -T git@gitee.com

这样认证方式就设置好了。下面,我们来建立代码库,来使用这个ssh key认证方式和Gitee以及github连接。

第一,建立本地代码库和远程相连。假设Gitee和github都已经建立代码库,test.git。我们需要查看代码库,获取这个代码库的ssh访问地址,例如 git@gitee.com:XXX/test.git。然后把这个地址通过 git clone和git remote add从其中一个远程代码库创建本地代码库,以及把新创建的本地代码库连接到另一个远程代码库。

$ git clone git@gitee.com:XXX/test.git
$ git remote add github git@github.com:XXX/test.git

第二,同步代码库。用git config -e 或者用命令行git remote set-url origin来修改config文件,得到以下的效果(也就是origin下面包含两个远程库的信息,两个远程库分别有自己的名字和信息):

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@gitee.com:XXX/test.git
url = git@github.com:XXX/test.git
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "github"]
url = git@github.com:XXX/test.git
fetch = +refs/heads/:refs/remotes/github/
[remote "gitee"]
url = git@gitee.com:XXX/test.git
fetch = +refs/heads/:refs/remotes/gitee/

有了这个状态,就可以通过git add,git commit和git push 来同时把本地库文件push给两个远程库,以及用git pull来从两个远程库pull到本地。如果需要针对独自远程库的push和pull,则用相应的名称,gitee和github就可以。例如

git remote update 同时从两个库拉过来本地;

git pull github master 仅仅从github库拉过来本地;

git push github 仅仅从本地推送到github。

当然,如果只为了同步速度,仅仅使用Gitee也可以,只需要把Gitee的ip地址修改成154.213.2.253。这个地址对于国外用户,会快很多很多。可以通过修改/etc/hosts文件,或者修改ssh下的config文件。