惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AWS News Blog
AWS News Blog
T
Tenable Blog
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
T
Threatpost
Security Latest
Security Latest
C
Cisco Blogs
L
Lohrmann on Cybersecurity
S
Security @ Cisco Blogs
Google Online Security Blog
Google Online Security Blog
NISL@THU
NISL@THU
AI
AI
V
Vulnerabilities – Threatpost
Google DeepMind News
Google DeepMind News
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Last Watchdog
The Last Watchdog
G
GRAHAM CLULEY
Cloudbric
Cloudbric
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Hacker News: Front Page
U
Unit 42
A
Arctic Wolf
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MyScale Blog
MyScale Blog
O
OpenAI News
Scott Helme
Scott Helme
V2EX - 技术
V2EX - 技术
P
Proofpoint News Feed
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Cyberwarzone
Cyberwarzone
博客园 - 【当耐特】
H
Heimdal Security Blog
S
Schneier on Security
阮一峰的网络日志
阮一峰的网络日志
Help Net Security
Help Net Security
D
DataBreaches.Net
Y
Y Combinator Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
TaoSecurity Blog
TaoSecurity Blog
K
Kaspersky official blog
N
News and Events Feed by Topic
WordPress大学
WordPress大学
P
Palo Alto Networks Blog

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
Smalltalk(Pharo)学习之旅
种瓜 · 2019-02-05 · via 夜行人

前言

2014年的时候,曾对Smalltalk有过一段时间兴趣: Smalltalk学习笔记, 那会儿刚毕业工作几个月,对各类事物都有兴趣,同时兴趣来得也浅。最终浅尝辄止,并没有实际用Smalltalk写过项目,哪怕练手项目也没有。

后来,由于对人工智能、认知论、教育感兴趣,开始读让·皮亚杰西摩尔·派普特艾伦·凯的东西.

西摩尔·派普特艾伦·凯将计算机视为一种增强人类智能的工具。

Bret在他的博客将这些概念综合在一起,以一种清晰的媒介重新展现出来。几乎是一夜之间,我突然知道自己在寻找什么,它如此确定无疑,你知道这就是你期待的东西了, 你愿意投入你往后的所有时间。 关于计算机的未来是什么,编程的未来是什么,教育的未来是什么,这些问题我想了很久,深受其扰,而且一度怀疑它们不是好问题,它们大而无当。Bret让我确信,他沿着西摩尔·派普特艾伦·凯所走的路,继续前行,最终带着我们看到了理想的未来。它如此耀眼,以至于你会担心,如果这些想法没被实现,未来得多么黯淡和乏味。

在技术方面,Bret使我确信,Smalltalk是相对理想的创作工具,在更为理想的工具(如Dynamicland的realtalk)诞生之前,我应该切换到Smalltalk上,将其用作日常编程所用的语言。这是一门经过精心设计,方便探索和创造的语言。

和稀泥的人总喜欢说,“采用什么编程语言并不重要,它们都一样”,我对这话的理解是,就"图灵完备"这点来说,他们是等价的。但图灵还论证过你在一条无限长的纸带上,是可以做到你用今天的电脑做到的所有事情的,它们在逻辑上等价,难道这是你选择使用纸带编程的理由吗?

编程语言不可能恰好都一样,总有一些粗制滥造,而另一些精心设计。像我这样愿意不断尝试新语言的人,实在没有办法假装使用过的编程语言都一样。像我这么蠢的人如果去设计一个编程语言,它怎么会和艾伦·凯精心设计的Smalltalk一样。对这个话题感兴趣的小伙伴,可以看看Bret在LEARNABLE PROGRAMMING对Processing这门语言的攻击,招招致命。

热情

Bret让我相信Smalltalk对我很重要,但仅是知道一件事很重要,似乎无法支撑我持续投入时间。

我有个习惯,在找到做一件事的乐趣/热情之前,并不愿意投入到这件事的细节之中。

换一种说法,我是个没什么毅力的人,如果没有兴趣驱动,就没办法坚持去做一件事。这么多年来学会了破罐子破摔,不和自己闹别扭,如果没有找到热情所在,就宁可发发呆,看看小说,四处走走,也不愿开始干活。

但有些事情即便没有兴趣,你还是会知道它挺重要的,我的做法是花点时间去寻找这件事的乐趣和意义所在,一般情况下都能找到。一旦找到后,就乐在其中,不必外部监督,也能用心于此事。我不知道别人的意志力是不是都很多,但我的意志力很少,而且是消耗品,它原本就不多,一旦消耗完,就对自己没办法了,多坐一会儿都极难受,如果此时非强迫自己一定要做点什么事,这事儿是体力活还好,磨磨蹭蹭也总有做完的时候;若是脑力劳动,还需要创造性的话,结果准特别糟糕。所以我没办法使用意志力来推进工作。

于是在假期的头几天,我并没有投入到Smalltalk的语法细节(完全忘了以前所学)。我开始了解Smalltalk社区的人都在干嘛?他们聚集在哪儿?他们做了什么好玩的东西?

4P

很喜欢Mitchel Resnick终生幼儿园一书中提到的4P学习方法: Projects, Passion, Peers, Play

我开始浏览各类Smalltalk Projects(主要关注Smalltalk的现代方言:Pharo),看看它们中的哪些能激起我的热情, 在pharo stories里看到许多有意思的项目, 我对Phratch最感兴趣。如它的名字所暗示的: Phratch是使用Pharo重写的Scratch.

PhratchScat的改进版。Scat的项目声明写得有趣:

We believe there is a conspiracy going on all over the universe, evil forces are constantly fighting to take down great Smalltalk projects and port them to other languages.
In a quest against such demonic plots, a couple of us started a confidential mission to rescue the last of these endangered projects, namely Scratch.

至此,我已经迫不及待想学习Pharo了,恨不得立刻就能读懂Phratch,想着学习完这个项目源码之后,立即使用Pharo7.0重写Scratch3.0。

确定了将要学习的方言(Pharo),开始搜索Pharo新手写的博文,看看从中能够找到他们发现的好的学习资源, 读到Exploring Pharo这篇文章,觉得十分出色。

在投入到Phratch源码之前,我准备简单过一下Pharo的语法,但有不愿只是看语法,希望有更周全的引导,包括调试工具的使用说明之类的。The Pharo MOOC是非常理想的选择,我选择在WebPortal里看课件学习,起初看了几个视频,后来觉得直接看PDF课件更快些,于是便直接看PDF。我今天已经看到了第五周的第一节,预计明天就看完了。Smalltalk的语法非常简单,连同它的编程风格,我想我已经基本掌握了。这个过程十分愉快,每学会一点知识,感觉离实现目标就更近了一步(读懂Phratch,重写Scratch3.0)。

结语

本文记录我的学习习惯 以及Pharo的一些学习资料。

参考