读书“迷人的材料”

      人在感觉和生活上都和材料建立了关系,这带来了许多奇妙的结果。有些物质虽然有瑕疵,我们却爱不释手;有些材料很实用,我们却深恶痛绝。就拿陶瓷来说吧。陶瓷是餐具的原料,我们的杯碗瓢盘都是陶瓷做的,

无论住家或餐厅,少了陶瓷就不完整。

     人类从几千年前发明农耕以来就在使用陶瓷,然而陶瓷用久了容易有缺口、发生龟裂,甚至在不该破的时候摔得粉碎。我们为何不改用更坚固的材料,例如塑料或金属来制作碗盘和杯子?陶瓷在物理上有这些缺点,

我们为何还对它不离不弃?许多领域的学者都在问这个问题,例如考古学家、人类学家、设计师和艺术家,但有一门学科专门有系统地研究人对材料的感官反应,并且发现了许多有趣的现象,那就是 “心理物理学”。

    例如针对“酥脆感”所做的研究显示,我们觉得某些食物好吃与否不只是跟味道有关,还跟品尝时的声音有关,两者同样重要。这让不少厨师受到启发,开发出具有音效的餐点,而某些薯片商更进一步,不仅让产品更酥脆,还让包装更会发出声音。我在介绍巧克力那一章会讨论材料的心理物理学意义,同时说明材料的感官性几百年来一直是人类发明创造的主要动力。

拍于兰卡 科伦坡火车站 “放学了”

转:尚志堂 岳母家

我1948年出生在平望寺浜的柳家弄的一处平房里,在这条幽深的小弄里生活了45年,直到1993年才搬离柳家弄。柳家弄的东侧就是尚志堂和尚志弄。上世纪五十年代的时候,我的童年和少年时期就在尚志堂边度过的。
     记忆中的尚志堂已经破落不堪,只有南面第一进的房子和北面高大的楼房还在,大门前的四座花岗石的旗杆座子见证了当时的风光。尚志堂其他的地方全是碎砖乱瓦,一片废墟。孩童时的我们就在尚志堂里追逐嬉闹,玩老鹰抓小鸡,官兵捉强盗的游戏。那时候,在高大的楼房里住着一位姓吴的高度近视的老奶奶,她是“尚志堂”主人的后代,我们都叫她“盲婆婆”。每天我们都看到盲婆婆到寺浜里拎水淘米洗菜。
      上世纪五十年代,尚志堂的楼房的西面底层,办起了屠宰场,每天后半夜,阵阵杀猪时的嚎叫声划破夜空,响彻云霄,杀猪的老板竟是个八九十岁的老奶奶,能扛得起一头肉猪。1958年,尚志堂里办起了“平望草包厂”,那些家庭妇女从此走出家庭,走向社会,成为自食其力的主人。文化大革命中,尚志堂旧址又建起了“吴江灯头厂”和“平望印刷厂”。尚志堂从此旧貌换新颜。
     听老人们讲,尚志堂是明代名人吴善长所建。住宅坐北朝南,面对寺浜。宅子门前有一片广场,栽有四棵大榆树,还有四座花岗石做的旗杆座子,有1.5米高,夹着木旗杆。住宅前后有五进,第一进为门厅,门厅里别无摆设,只高高挂着一个匾额,上书“恩荣”两字。穿过门厅是一堂罩壁和一个天井,罩壁上有砖雕。第二进为大厅,也是正厅,取名“尚志堂”。大厅是一座三开间的大屋子,中央挂着一块大匾额,刻着“尚志堂”三个大字。白底黑字,字迹苍劲有力,大气雄伟。此外,厅内还挂有十多块小一点的匾额,刻有“贡元”,“贞孝”,“节孝”等字,大致是对家族中考取功名或妇女贞节事迹的褒扬。第三进为七楼七底的住宅,第四进为七楼七底加东西厢房的住宅。第五进为三楼三底住宅。第四进和第五进之间,有一排平房,共八间,作为厨房之用。同时,尚志堂也是吴氏大家族活动的地方。每逢过年过节,祭祀祖宗,尚志堂里热闹非凡。
       据清代翁广平《平望志》记载,吴善长家族乃明朝河南省官宦人家,连续出过两代尚书,是当地的望族。吴善长原名吴流隆,字天佑,人称善长公。相传吴善长一次舟游平望莺脰湖时,船上有人洗碗时不慎将碗落入湖中,这人就大有深恐主人责备之虑。吴善长善解人意,就解释说,此处乃我命中注定的“铁碗之地”,不妨靠岸访问。上得岸,被平望的地理环境所吸引,就决定在平望定居了下来。
     物换星移,人间沧桑。现在,尚志堂仅一幢楼房尚存,而吴氏子孙已全部外迁,其中,不少是高级知识分子。而尚志弄依然存在,成为“尚志堂”的历史见证。

拍于兰卡科伦坡 菜场卖鱼 亲手制作“煎白鲳鱼”

树莓派使用docker

参阅 : http://shumeipai.nxez.com/2019/05/20/how-to-install-docker-on-your-raspberry-pi.html

安装方法:脚本安装是最推荐的方式,只需要输入下面的命令,等待自动安装好即可: sudo curl -sSL https://get.docker.com | sh

运行 hello-world 镜像来做一个测试: sudo docker run hello-world

常用命令:

查看 Docker 版本

docker -v
sudo docker pull 仓库/镜像:版本(留空的话默认为 latest)
sudo docker run 加参数,用来创建容器

查看运行容器

sudo docker ps

查看所有下载的镜像

sudo docker images

进入容器终端

sudo docker exec -i -t ha /bin/bash

实时查看10行的 ha 日志

sudo docker logs -f -t –tail 10 ha

重启 systemctl 守护进程

sudo systemctl daemon-reload

设置 Docker 开机启动

sudo systemctl enable docker

开启 Docker 服务

sudo systemctl start docker

强化学习相关论文和开源项目

1.五子棋AI开源项目

https://github.com/junxiaosong/AlphaZero_Gomoku

https://github.com/initial-h/AlphaZero_Gomoku_MPI

https://github.com/jimth001/my-Gobang-game-base-AI-algorithm

alphazero 五子棋开源代码分析https://blog.csdn.net/chiefzzs/article/details/84197124

2.应用在魔方的AI深度学习论文

http://www.falls.fun/wp-content/uploads/2019/10/AI-魔方-1805.07470-1.pdf

3. 围棋

腾讯金毛围棋引擎 https://github.com/Tencent/PhoenixGo

飞扬围棋论坛的AI围棋版面http://www.flygo.net/bbs/forum.php?mod=forumdisplay&fid=113

欧洲leela-zero围棋引擎 主流开源围棋 https://github.com/leela-zero/leela-zero

leela棋谱分析工具, 大赞! https://github.com/lightvector/leela-analysis

最好用的围棋人机图形界面https://github.com/SabakiHQ/Sabaki

4.中国象棋

开源 https://github.com/chengstone/cchess-zero

中文论文https://zhuanlan.zhihu.com/p/34433581

Conda创建python虚拟环境

conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。 conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身 Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。

anaconda包管理:
conda list 列举当前环境下的所有包
conda list -n packagename 列举某个特定名称包
conda install packagename 为当前环境安装某包
conda install -n envname packagename 为某环境安装某包
conda search packagename 搜索某包
conda updata packagename 更新当前环境某包
conda update -n envname packagename 更新某特定环境某包
conda remove packagename 删除当前环境某包
conda remove -n envname packagename 删除某环境环境某包

conda本身和anaconda、python本身也算包
conda update conda
conda update anaconda
conda update python

1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。

2、conda常用的命令。

    1)conda list 查看安装了哪些包。

    2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境

    3)conda update conda 检查更新当前conda

3、创建python虚拟环境

     使用 conda create -n your_env_name python=X.X(2.7、3.6等) anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。

# 指定python版本为2.7,注意至少需要指定python版本或者要安装的包# 后一种情况下,自动安装最新python版本
conda create -n env_name python=2.7
# 同时安装必要的包
conda create -n env_name numpy matplotlib python=2.7

4、使用激活(或切换不同python版本)的虚拟环境。

    打开命令行输入python –version可以检查当前python的版本。

    使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。

    Linux:  source activate your_env_name(虚拟环境名称)

    Windows: activate your_env_name(虚拟环境名称)

   这是再使用python –version可以检查当前python版本是否为想要的。

5、对虚拟环境中安装额外的包。

    使用命令conda install -n your_env_name [package]即可安装package到your_env_name中。。 环境中使用 conda update –all 可以更新所有包。

6、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)

   使用如下命令即可 deactivate env_name,也可以使用activate root切回root环, Linux下使用 source deactivate。

7、删除虚拟环境。移除环境 使用命令conda remove -n your_env_name(虚拟环境名称)  --all, 即可删除。
  • 删除环境中的某个包。使用命令conda remove –name $your_env_name  $package_name 即可。

8、设置国内镜像

如果需要安装很多packages,你会发现conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,我们将其加入conda的配置即可。

添加Anaconda的TUNA镜像 conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/# TUNA的help中镜像地址加有引号,需要去掉。

设置搜索时显示通道地址conda config –setshow_channel_urls yes

GPGPU的体系结构

自2006年NVIDIA公司和AMD公司两个主要GPU生产商推出统一渲染GPU架构至今,统一渲染GPU架构的体系结构不断得到改进和革新,以致短短几年时间内GPU的性能飞速提升。

    NVIDIA公司推出的三代GPGPU体系结构分别为G80、GT200和Fermi。GT200在G80的基础上提高了硬件计算资源和计算功能,并在存储层次和硬件比例配置方面做出了优化和改进。Femi则对G80体系结构进行了许多革新,引入了新的体系结构特征。

G80系列是NVIDIA公司最早推出的统一架构GPU,G80体系结构从总体上来说可以分成两个组成部分,分别是流处理器阵列(stream processor array,SPA)和存储系统。这两个部分是由一个片上交叉互联网络连接,因此,该体系结构具有良好的扩展性。

    统一结构中的基本计算单元被称为流多处理器(streaming multiprocessors,SsM)SM是GPU最底层的独立硬件结构,可以把它看成一个SIMD处理単元。共有16个SM,每个SM又包括8个流处理器(streaming processor,SP)和两个特殊功能单元(special function unit,SFU)。此外,每个SM中还包含一个16KB大小的共享存储器(shared memory),用来实现同一线程块中的线程共享数据和通信。共享存储器采用的是显式访存模式,在没有冲突的情况下,访存速度接近于寄存器的访问速度。SM上还包括8192个32位寄存器,在执行时分配给每个线程。在G80体系结构中,每两个SM组成了一个线程处理簇(thread processing cluster,,TPC),组成TPC的两个SM共用一级常量Cache、纹理Cache和一条纹理访存流水线,8个TPC共用二级常量Cache和二级纹理Cachet 

GT200架构是NVIDIA公司在2008年推出的第二代统一架构GPU。GT200架构是G80架构的延续和扩展。基于G1200架构的GTX280采用TSMC65nm工艺技术,芯片面积约为能达到90 GFLOPS。576mm2,在片上集成了多达14亿个品体管。单精度浮点性能达到1 TFLOPS,双精度浮点性能达到90GFLOPS。

Ubuntu解压缩zip,tar,tar.gz,tar.bz2

ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:

我们可以使用下列的命令压缩一个目录:
# zip -r archive_name.zip directory_to_compress

下面是如果解压一个zip文档:
# unzip archive_name.zip

TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
# tar -cvf archive_name.tar directory_to_compress

如何解包:
# tar -xvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -xvf archive_name.tar -C /tmp/extract_here/

TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:

# tar -zcvf archive_name.tar.gz directory_to_compress

解压缩:
# tar -zxvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/

TAR.BZ2

这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。

# tar -jcvf archive_name.tar.bz2 directory_to_compress

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/