陈沙克

Jul 012019
 

最近树莓派4发布,我也好好学习了一下。PI没到手,不过不妨碍我对PI的研究。刚好看到这个视频,讲的非常好,我就先提前记录一下一个树莓派买回来,需要做的事情。

文章完善中

目前1G内存,35美金,2G内存,45美金,4G美金,55美金。

大家需要清楚这个报价,是仅仅包括一个树莓派的设备,下面的东西都是需要额外购买的

  • 电源,树莓派4的电源改成type C的接口
  • 外壳,这个也是需要你购买的
  • sd卡,这是树莓派的存储,
  • hdmi线,如果你要接显示器,就必须有线,并且一头是小口
  • 键盘和鼠标,可以考虑蓝牙的。

上面的套件,至少电源,外壳,sd卡,你是必须有,才能把树莓派点亮,用起来。

Snap17

你单独买一个树莓派,至少还需要购买一个sd卡,16G的或者32G,用来装系统使用。

刷系统

树莓派4的操作系统要求有点差异。

https://www.raspberrypi.org/downloads/

你至少可以刷debian和win10的IOT版本,这个其实还是挺好玩的。视频里的刷的操作系统是

https://www.raspberrypi.org/downloads/raspbian/

基本参考文档,在windows,应该是很轻松搞定。

https://hackernoon.com/how-to-setup-a-headless-raspberry-pi-7f2b8b00c790

树莓派基金会在本周发布树莓派4B硬件之后,紧接着更新了 Raspbian 操作系统。新的版本号是 Buster,基于Debian10。
这个版本基于最新的 Debian 10开发,甚至比 Debian 的官方版本更早发布,这是为了在 Buster 中针对树莓派4添加 OpenGL 视频驱动为默认项。

SSH登录设置

玩树莓派的一个痛苦的地方,默认你是要卖一堆的配件,才能玩起来。你要接显示器,你是需要买一个hdmi的转接头,才能接上。这还是很麻烦的,我们就要想办法,让操作系统启动后,默认就打开ssh。

其实只需要在刷完系统的卡上,添加一个文件名是ssh,没后缀。就可以了。

登录设置

通过网络接入,分配到ip地址。这时候,你就可以ssh到树莓派。进行设置,主要就是解决vnc访问和vnc分辨率的问题。

桌面设置

剩下就是根据自己需要来对桌面来设置。

参考文章

https://www.youtube.com/channel/UCjTTeMYiWzfrKg5_i0cIkyA

https://zlotus.github.io/2018/12/01/rbp3-dev-env/

chrome ssh 上网

http://blog.pi3g.com/2013/05/raspberry-pi-socks-5-proxy-server-aka-browse-the-web-with-an-ip-from-a-different-country/

https://linuxize.com/post/how-to-setup-ssh-socks-tunnel-for-private-browsing/

详细指南 https://howchoo.com/g/ywmxmza2ndf/raspbian-buster-install-or-upgrade

Jun 182019
 

其实我关注这个挺久,有一次一个朋友说他教幼儿园的孩子编程,基本把小学3年级的数学都学完了。那么这个其实还是很吸引人的。

儿童学编程不是为了将来成为一个程序员,而是为了培养孩子的逻辑思维、计算思维能力,并在过程中鼓励孩子通过分析思考来解决问题,通过游戏的设计,项目的参与,实现工程思维和设计思维想结合。而这些思维与能力的培养在我看来才是编程教育最灵魂的部分,(https://www.zhihu.com/question/67916260

让小孩学编程,其实还有一个目的,减少对游戏的依赖。儿童编程,基本都是教小孩如何编写游戏,那么确实也是可以减少小孩对ipad的沉迷程度。

让小孩学编程,其实不是让他掌握一门技能或者一种语言,其实是培养小孩思考和解决问题的方式。当然如果小孩在上学阶段掌握Scratch,Python,C++,确实可以很好解决日后吃饭的问题。

还有一个私心,想加入的可以找我。

Snap14

Scratch起步

儿童编程,学啥语言,这是一个家长经常问的问题,

少儿编程,选择哪种语言好?

这篇公众号文章,其实写的非常好。写这篇文章的作者:肖恩,其实就是一个儿童编程的创业者。我非常认同他的这段话

先让孩子可以不恐惧编程,产生兴趣,并且用编程表达自己。 等到孩子们已经产生了自信和成就感,再提高难度。如果都要选择一门语言进入编程的世界,一定是选择能让孩子快速找到自信,找到成就感的语言。 那这种语言目前最好的就是 Scratch

(作为从7岁开始做电子设计,读过Linux 源代码,写过RTOS(实时操作系统),做过芯片编程FPGA/DSP,有20年编程龄,能熟练使用汇编/C/C++/C#/Perl/Objective-C/JAVA/Ruby/Python/Javascript/HTML/CSS 等大家熟悉的编程语言和大家不熟悉的设计芯片编程语言 Verilog 和 VHDL的我,推荐使用Scratch 。)

Scratch是一款由麻省理工学院(MIT) 设计开发的少儿编程工具。其特点是:使用者可以不认识英文单词,也可以不会使用键盘。构成程序的命令和参数通过积木形状的模块来实现。用鼠标拖动模块到程序编辑栏就可以了

学完Scratch后,可以去学python,从我目前看小孩的进度,2年级的小孩开始学,学大概2年多一点,到4年级,就基本学完和掌握Scratch,这时候,开始学Python,就非常合适。

我儿子目前马上上完3年级,按照课程的进度,今年底,应该学完Scrath的课程,4年级的下学期,就可以开始Python的学习。

我大概估算了一下时间,也就是100个课时,就可以让小孩完全掌握Scratch语言,我建议二年级的小孩开始学习Scratch。在国外,确实4岁的小孩就开始学Scratch,不过我观察我儿子的进度,上课提问,同时上课的4年级的小孩,就没啥压力,二年级的小孩,起步的时候,确实就有点挑战。儿子是6个小孩里,年龄最小的,他是唯一一个二年级的小孩,1年半以后,基本就跟上大家的水平,算是学的比较好的小孩。

机器人编程和Scratch区别

很多家长,在孩子3,4岁的时候,就让小孩参加各种所谓机器人编程的学习,尤其是乐高。

关于两者的区别,我就引用另外一个儿童编程培训机构的观点:小麦儿童编程的培训机构,他们的观点

一般来说,有相关性,但不是一回事。

机器人编程(或单片机编程)通常是编程控制机器人或硬件,通常来说逻辑比较简单,系统的调试和安装比较复杂,电子方面机械运动方面的(物理)知识比较多,是很有价值的。

和我们的区别,相当于机械电子专业和计算机专业的区别。

我们的编程课是纯计算机编程,主要解决2大类问题:一类是计算机软件游戏创作问题,一类是信息学算法问题。

目前不少培训班,也加入用Scratch编程去控制硬件,尤其是最新的版本Scratch 3.0,对硬件的控制更多。硬件的控制,编程,可以增加儿童编程的兴趣。

大疆,也推出的DJI大疆教育机器人,支持Scratch和python的编程。其实在小孩学习到一个阶段后,引入这种机器人,我认为是一个不错的做法,

所谓的机器人编程,只要scratch有相关的硬件的Driver,那么其实让一个硬件做出响应,和让程序里产生变化,其实是没本质的区别。我看孩子现在的Scratch程序,可以通过外界的声音,触发程序的变化。所以我建议还是先让孩子深入掌握编程的原理后,再慢慢去玩机器人,完全可以自学。

编程思维需要长期的训练。无人飞机,无人小车的控制,其实应该靠小孩自己的兴趣来掌握。

上课形式

儿童编程,现在其实是一个非常热门的话题,也是一个创业热门的点。传统的培训行业,互联网巨头都介入。上课的形式无非就那么几种

  1. 录播,老师录好上课视频,让小孩上课,有问题,通过后台,微信回答。录播未来更好的管理,有些是采用统一上课,统一时间回答问题。
  2. 直播:就是老师小班上课,一般6人,线上上课。学员可以随时提问和老师交流。
  3. 线下培训

录播,其实是成本最低的,直播的成本,其实很难降低。不过直播确实是有好处,尤其在入门的阶段。

老师的稳定性,其实是一个非常关键的因素。我儿子学了一年半,都是一个老师,这样其实有利于孩子的能力的提升。

我听儿子上课:老师提问:什么是变量?

我还在想该如何回答,儿子很自信的回答:变量就是游戏里的生命值,不断的减少。老师对孩子的回答的鼓励,其实让孩子很有成就感。

小孩在学校上课,很难有机会回答老师的问题,参加编程课,让孩子的天性得到很好的发挥。

如果从商业模式来说,直播确实很局限想象力。录播可以很好的发挥互联网优势。如何实现平衡,确实需要摸索。

其实过去1年里,不少朋友一起探讨过儿童编程这个风口。身边的程序员都在等着孩子长大,自己亲自去教Scratch。我也真心希望可以看到儿童编程,可以产生一个真正的教育方面的独角兽。

培训机构推荐

其实经常有人问,那个培训班的老师水平高,其实讨论老师编程水平高低是没啥意义的。还是要看培训的课程体系,投入和口碑。

很多家长亲自去调研,读公众号,看培训学生的作品。目前公众号展示学员的作品,其实都非常炫。包括很多程序员老爸,也给搞晕,怎么能做出这种效果呢?

其实这里面是有很大水分的,让小孩按照老师的步骤,可以很快做出很炫的东西,但是不代表小孩具备逻辑思维的能力,其实我很多时候看我小孩的作品,并不很炫,但是从小孩日常语言表达,我真的觉得他已经受到编程的思维影响。

机器人编程其实也是类似,家长看着孩子可以操纵机器人,无人机,感觉很有成就感,其实我的理解,这个和编程的思维,关系真的不大。

我基本是无条件的向朋友推荐:小麦儿童编程,大家直接搜索公众号就可以找到相关的资料。

至少我知道的目前市场上唯一直播的儿童培训机构。每一个课时费:150元,100个课时的Scratch,大概就是1w五千,花2年的时间,培养逻辑思维能力。

Snap15

目前我儿子已经进入L5的阶段,在做一个游戏项目:我的小世界,这是儿子最喜欢在ipad玩的游戏。

Snap16

课程地址

这个python课程,其实对我压力很大,学习是python3.x,我都还没搞过Python 3的环境。python的课程,每次是2个小时,也是15次课程。可以理解,也是差不多100次课程,200课时,大概费用,应该3w左右。预计儿子六年级学完。我和他一起学习,问题不大。

我听完老师的上课,我的感受就是,就算是我教自己的儿子,我也没有那么耐心。后来和老师交流一下,发现真的是共性,可以教会别家的孩子,没法教会自己的孩子。

Jun 112019
 

今天刚好是孩子的生日,难得今天也有空,可以给他写一篇blog,来记录一下。

其实过去的1年,小孩真的是从充满童真,慢慢长大,童真也在慢慢消失。不过小孩目前其实还是比较单纯的。

陈奕霖

孩子的生日蛋糕:第五人格

生日蛋糕

身高体重

昨晚刚量了一下

  • 身高143
  • 体重76斤

对比一年前,身高涨了7厘米,体重增加了12斤。感觉明年,就可以到1米五。很快。

三年级小孩

小孩的成绩在班里,目前算是中等,甚至偏下。语文,还能保持在90分以上,数学已经是80分,英语90分以上。

其实也没啥,数学,其实很多时候,都是粗心大意,目前还没有太多理解不了的问题,小学阶段,能跟上就可以,不追求排名前列。

小孩的所在的班,其实家长们,真的挺有个性。这样其实也让小孩多了很多乐趣。

  1. 有家长搞培训的,英语培训的一个班,都是自己同学
  2. 有做糕点的,可以开蛋糕店的水平,给小孩生日做蛋糕。这次小孩的第五人格的蛋糕,就是她做的。独一无二。
  3. 童真的,孩子王,中午带小孩玩橡皮筋的
  4. 见识广的,哪里好玩,好吃,没有不知道的。
  5. 部队的家长,通州的军队的小孩,都分配在他们班里

老师有时候开家长会,老爱说一句话,我们班家长素质高,最开始没明白啥情况,后来才知道,原来很多班的家长,都为小孩矛盾找老师,互相指责。小孩班里家长非常和气。

小孩中午觉得学校的饭不好吃,中午管的严,所以中午也到外面的小饭桌吃饭,他们班里10来个同学都在这个小饭桌,中午饭吃完,还有家长过去带小孩出去玩。用小孩的一句话形容:吃好玩好。

兴趣班

这也是家长爱谈的话题,大城市的好处,其实就是你有啥爱好,你都可以找到老师来教。

我自己是一个严重缺乏兴趣的人,就是希望小孩日后能玩好,会玩,兴趣多一点。

小孩一年课外的培训费用,其实大概算一下

固定费用:1个小时scratch+2个小时英语培训=400元一周

一年大概40周,费用大概就是1万六,加上别的一些短期培训班,整个费用,应该在3万以下。

Scratch编程

这算是目前儿子坚持最长时间的爱好,到现在算是整整学了1年多,每周末都是非常期盼上课,这点是很难得的。

Scratch在国外,号称是4岁可以学,不过国内的情况,其实应该是二年级的小孩,7岁以上,学起来比较合适。我孩子是二年级第二学期开始学,15节课为一个周期,已经学了3期,一起学习的其实有比他高两年级的小孩,可以感觉出来,起步的时候,小孩理解明显比别人慢,加上编程的内容,也有一点和数学有关,有些内容小孩还没学到。不过经过了1年的学习,现在小孩已经算是优秀,老师的讲课已经全部都能理解。

Scratch课程上课的方式,其实有很多种

  • 录播,这个比较常见,可以支撑大规模的学生。组织老师课后回答问题,录播也分两种,统一上课和自己看视频
  • 线下教
  • 直播

直播的,其实不多,IT的课程,直播,一个班,其实很难超过10个小孩,通常就6个小孩。上课的时间是一个小时。直播的一个好处就是遇到问题,可以马上提问。现在的小孩,在学校上课,其实很难提问和回答问题。这次我们看小孩的编程课程,在课上直接提问,回答老师问题,真的是找到自信。

在家里上课,其实时间比较好控制,可以很好避免送小孩,接小孩的时间。

课程的费用,肯定相对贵一点,1节课,大概150块钱。

scratch

小孩已经学完L4.剩下课程,明年就可以开始学python。

儿子的编程班公众号:小麦编程教育

画画

儿子参加的画画培训,老师教的真的有点夸张,小孩的作品,如果放到我们那个年代,怎么都是参赛作品,获奖。

一次两个小时,现在是周3放学去上课,培训费用倒是不贵,一次100.

气球

英语

周日,还是给小孩报了一个英语班,牛津树。6个小孩,有4个是同班的,都是一个学校,同一个年级,每次开课,都能玩一会。

周日下午4点到6点。这个班,是小孩同学的家长搞的,已经交费到4年级。让他慢慢上课,学习把。

英语培训的价格,其实也是大概1小时150块钱。

棒球

这个学校课外兴趣班,不过上课是校外老师。一周上2次课。安排在周1,周5. 据说是北京市补贴学校,找外面的专业老师来教的。

小孩也就上了2次课,觉得非常好玩,挺好的,这个倒是免费。

玩棒球,比玩音乐便宜很多,就买一个手套就行,还有国际范。

体育运动

游泳,射箭,小孩都参加过培训班,几次课程,提高确实很快。剩下的体育项目,后续也找机会让小孩玩玩。

兵兵球:通州区这边是有专门的培训点,不过就是时间没法安排

羽毛球:也比较普及,很方便找到培训的地方

网球:这个目前还没看到通州有相应的培训,让小孩打打网球,其实挺好。

篮球:也是短期培训过,慢慢自己练习

旅游

去年暑假,没有带小孩出去玩,国庆的时候,就带他去唐山走了一趟,有点后悔没提前安排,搞一个东北三省国庆游。

寒假的时候,老婆带小孩从南京,苏州,上海一路玩过去,错峰出行,倒是不错。

去迪士尼玩了整整一天,有小孩陪着一起玩,还是特别高兴的。

一直以来都希望带小孩去泰国住上一个月,提高一下英语,顺便练习一下泰拳。费用比在北京上培训班便宜很多。

Jun 072019
 

对于我来说,确实已经很久没折腾过台式机,还停留在IDE硬盘的年代,不过最近几年,都要换成ssd,所以我这里就复习一下各种硬盘的接口。

我也算是IT老人,不过面对笔记本上的各种硬盘参数,其实也是一头雾水。去油管学习,这也证明是最快的途径。本来听完一个视频,感觉有点了解,不过多看几个以后,还是发现以前很白痴。

Snap8

一张图,把所有的知识点都放在一起,确实比较容易理解。

对于笔记本来说,M.2和SATA3接口,类似小门和大门的区别。

SATA的通道和PCI-e的通道,类似马路和高速的区别。

M.2的接口,可以走SATA的通道,也可以走PCI-e的通道,目前应该都是PCI-e的通道。

通道的协议,AHCI,和MVMe,类似自行车和汽车。

最后就是速度:你就算在高速上,如果你的车不够快,还是不行的。

最理想的情况下,就是M.2的接口,走PCI-e的通道,走NVMe的协议,最快的闪存。

Snap9

对于笔记本来说,其实你是无法感受到M。2和SATA3的SSD的速度的差异,他们的差异很小很小。

Snap11

简单点说,有2个接口的,就是速度慢的。不是基于mvme协议的。

购买笔记本的时候,PCI-e的ssd,就是表示M.2接口的

ssd的颗粒

Snap10

Snap12

SATA接口

这个是家用电脑的常用接口。分为 SATA2 和SATA3两种接口的规格,外形都是一样,SATA3兼容SATA2,只是传输的速度不一样。

Snap4

实际使用中,SATA3,如果装上SSD,可以跑到500M/S,如果是SSD装在SATA2上,可以跑到200多MB/s.

7200转机械硬盘,最高速度,也就最高达到200MB/s,正常的速度,其实就100多MB/s, 所以什么接口都没区别。

PCI-E插槽

真的不要和PCI插槽搞混,现在最新的主板,已经是全部都是PCI-E x16扩展插槽。

PCI-E插槽有长度的区别:X1,X4,X8,X16的区别。X16向下兼容,可以插X1,X4,X8的卡,通常X16是插显卡使用。

针对PCI-E接口的SSD,也分为PCIe2.0, PCIe 3.0,就是2代和3代。

Snap5

家用的PCIe,比较少见。京东可以搜索到一家 https://item.jd.com/6311640.html

PCIe Gen3x4,连续读取速度:高达3200 MB/s;连续写入速度:高达2100 MB/s。1T的价格大概是1800,目前普通SATA3的SSD的价格,大概是1k不到。

M.2接口

这基本是所有主板标配的接口,替代以前的mSATA接口。

这个接口,可以走SATA,PCIe和USB的通道,

Snap7

M.2的接口的速度,其实是看的主控芯片,到底是接到SATA接口上还是到PCIe接口上。

采购的时候,需要注意自己主板的接口,我的理解,目前主流的应该都是M key的,接到PCIe上。

M.2固态硬盘根据接口处卡口的数量分成了Socket 2和Socket 3两种形态。当接口使用B key或者B+M key时,定义为Socket2,可用传输模式为SATA或者PCIe X2,当接口使用M key时,定义为Socket3,可用传输模式为PCIe X4。

参考文章

https://g.pconline.com.cn/x/1084/10844576.html

https://www.youtube.com/watch?v=alb6-zp52mA

https://www.youtube.com/watch?v=NbL231dhnKs&t=182s

May 212019
 

最近看物联网相关的资料,我就顺手记录一下自己的学习总结。

对于搞IT的人理解,所谓物联网,就是每个传感器都给分配一个IP地址,这样他的信息就可以传回中心的节点上。感觉没啥太特别的地方。

实际中,物联网使用的协议,并不是我们熟悉的Tcp协议。他的传输的过程,和我们想象的有很大的不同。

image1

MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。

其实我读这句话也理解不深,我就动手来理解,搭建一个MQTT服务器,

开源干同样事情的软件,通常是多个

1)EMQTT:github 3265 stars

2)Mosquitto:github 1645 stars

3)Apollo:ActiveMQ的升级版,github 109 stars,但是该项目已经有3~4年没有更新。

就选择最热门的EMQTT来体验一下

EMQTT服务器端搭建

官方的文档提供了详细的安装过程和不同操作系统的软件包。包括docker

https://developer.emqx.io/docs/broker/v3/cn/install.html

我是在centos 7.5下,快速搞定

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo
yum install emqx
systemctl start emqx
systemctl status emqx

通过浏览器,就可以直接访问

Snap1

可以设置语言为中文。

客户端

MQTTBox,作为客户端。最简单的安装,就是一个chrome的插件,直接就可以使用。

https://www.jianshu.com/p/e5cf0c1fd55c

我参考上面的文章,确实跑完的全过程。

参考地址

https://www.ibm.com/developerworks/cn/iot/iot-mqtt-why-good-for-iot/index.html

Mar 202019
 

最近装Openshift,需要下载大量的镜像,想看看他们的带宽使用情况。

nload

这确实是非常好用的工具,我也是刚刚知道。直接yum install就可以。

使用也很简单,直接启动就可以,当然你也是可以加入参数,指定网卡。默认是监控所有的网卡

nload device eth0

Snap2

这样你就基本知道你的网卡的实时上传和下载的速度。

iftop

这个工具也挺有名气。可以查看到自己机器的IP和外面的ip地址,端口的连接情况。

iftop -n -P -b -i eth0

看看结果

Snap4

10.140.48.60,是我虚拟机的IP地址。124.160.145.59,是外面的地址,最右边的3栏显示的是实时速度,该访问ip连接到本机2秒,10秒和40秒的平均流量。

你会发现本地ip,利用不同的端口,请求远程ip的https端口。

=>代表发送数据,<= 代表接收数据

底部三行:

  • 表示发送:TX
  • 接收:RX
  • 全部的流量:TOTAL

底部三行第二列:为你运行iftop到目前流量 (cum)

底部三行第三列:为高峰值 (peak)

底部三行第四列:为平均值 (rates)

参考文章

https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858923.html

https://www.binarytides.com/linux-commands-monitor-network/