2024年5月

以下都是自己使用中摸索的体验, 并不是官方答案.
而且我认为下列这些坑, 有可能会导致孩子在学习真正的编程语言的时候产生经验冲突. 这些坑总让人感觉scratch可以学但又不能学太多😂

对象与线程

scratch中的角色和背景都相当于对象. 构造新对象的方式, 除了直接静态添加, 也可以动态新增,也就是"克隆"
"当作为克隆体启动"事件,相当于构造函数, 但这个构造函数不能输入形参.
但对象只有私有函数, 没有公共函数.
这些角色和背景中的所有程序,都是从一个事件开始的.每一个事件还相当于启动了一个独立的线程. 所以执行事件中的死循环不会影响其他对象和其他事件代码的执行. 所以可以在对象中死循环用"等待"积木等待一个全局变量.

函数

scratch没有全局函数, 也没有公共函数, 相当于只有私有函数, 而且私有函数只有形参而没有返回值. 造成了返回值的传递和不同对象间传递数据非常依赖全局变量, 或者是消息机制.

构造函数的形参

克隆体一般都需要表现的与原对象不同, 这就要传入形参. 此时又需要一个全局变量传递给克隆体. 等待广播消息是不行的, 因为等待广播消息是一个事件而不是一个语句. 如果循环产生多个克隆体, 由于克隆是异步的, 所以必须要等待克隆体使用了全局变量以后,才能继续克隆, 相当于是要将异步克隆改为类似同步的方式.

异步和同步

scratch中的事件块是异步执行的, 这个自然不用说.
绝大多数语句是同步的. 但有少数语句是异步的, 有的语句同时有异步和同步版本.
"广播"是异步的, 而"广播并等待"是同步的, 并且是等待所有"当接收到消息"事件返回后再继续执行.
"克隆"是异步的. 这算是个天坑, 尤其是在构造克隆体的时候, 通过全局变量给它传递参数.
例如, 在一个循环中创建多个需要不同构造参数的克隆体, 循环"设置全局变量-创建克隆体", 可能在第二次循环中已经修改了全局变量, 而第一次循环中的克隆体还没有创建完毕. 等第一次循环里创建的克隆体应用全局变量的时候, 全局变量可能已经被修改了很多次, 早已不是第一次循环该有的样子了. 我建议通过"等待变量"参数等待全局变量被克隆体使用完毕后给予提示.

列表

第一个坑就是列表从1开始而不是从0开始, 这几乎和所有的编程语言冲突了.
如果需要按列表循环, 并没有一个自动的index, 需要自己设置一个变量并自增循环.
某种程度上, 从1开始循环确实更容易让小朋友理解, 否则如何解释"第0个"其实就是"第1个"? 但这个以后确实会形成一些经验冲突.

产品功能缺失

  • Ctrl+S保存, Ctrl+O打开这两个几乎所有软件的基本功能是没有的. 尤其是Ctrl+S, 写程序需要经常保存, 没有这个功能非常不便, 还容易造成程序丢失.
  • 保存的时候,每次都是弹出类似另存为的对话框,而不是直接保存到当前文件.
  • 关闭软件的时候,每次都提示要不要保存,而不是根据保存情况询问.

产品BUG

  • V3.29.1版本, 从菜单第二次打开项目的时候, 可能造成无法输入新建的变量名称.
  • 删除某一个变量, 再重新新建一个同名变量时,然后保存->关闭->再打开, 会发现这个变量并没有被新建,连带相关语句都会收到影响, 或者删除或者留空.

scratch是为了用最快的方式引起小朋友对编程的兴趣, 所以都是围绕着人物及其移动、对话框、声音和对用户输入的响应来做的。它也希望给小朋友一些初步的编程概念,如循环、判断、变量、数组等,但这些概念非常弱,使用起来也很难用。并且像其他编程语言里的基础概念或者基础库功能,在scratch里也是缺失的。
这儿就scratch和python的基础库做一下对比。基础库指的是python默认安装自带的库。不和python第三方库对比的原因是:如果对比,那么python就是万能的了。

scratch有而python基础库没有的

scratch中的前三类语句:运动、外观、声音,都是控制角色的,在python基础库中都没有。当然这一部分是最有趣的,能快速激发孩子的兴趣。

scratch和python基础语法库的对比

python的基础语法也可以代表绝大多数现代编程语言的基础语法,甚至python的还要更少一些(或者说更简练些)
从scratch的事件开始讲,这部分不是最基本的语法,而是属于多线程异步编码的部分。如对按键的监听、屏幕点击事件的注册和回调函数、消息发送、异步等待等。
控制部分的等待1秒不属于基础语法,下面的就都是了。

分类 scratch代码 python代码
控制 重复执行10次 for i in range(10):
控制 重复执行 while True:
控制 如果<条件> 那么 if 条件:
控制 如果<条件> 那么 否则 if 条件: else:
控制 重复执行直到<条件> while 条件:
运算 + - * / 除以的余数 + - * / %
运算 > < = 与 或 不成立 > < == and or not

简单变量的四则运算到逻辑运算, scratch就会变得非常复杂. 要将不同的算式和变量拖入, 效率比python低了非常多, 逻辑复杂以后读起来也比较别扭
而复杂的变量, scratch只有一维数组,用起来的感觉就是捉襟见肘, 对二维图画的平面来说, 有个二维数组肯定方便很多, 比如做一个很简单的贪吃蛇游戏, 都需要知道蛇和苹果的二维坐标. scratch就只能用一维数组加算法来模拟二维数组了. 并且scratch数组只能预先建立,而不能实时新建new, 也限制了它的使用. 实际要用的时候,还要考虑scratch孱弱的语法限制.
其他功能,比如开发些小游戏需要保存和读取存档, 而scartch又不支持读写文件. 当然这也是为了安全, 怕小朋友把系统文件搞坏就得不偿失了.
另外一个比较糟心的就是所有变量几乎都是全局变量, 需要预先建立而不能实时新建. 稍微复杂一些的程序就会有一堆变量需要拖拽, 非常混乱. 另外没有自建积木类比函数, 没有函数内的局部变量, 也没有函数返回值, 全部要通过全局变量操作, 这对形成良好的编程思想其实是不利的.
理解这些限制, 也有利于理解scratch设计者的想法, 比较复杂的有很多函数的项目是不适合scartch的.

我作为产品经理, 只能从产品方面做出思考. 然而现在的各种分析报告中,主要是从资金和医疗保障方面提出的问题.
资金方面, 主要是养老金面临的沉重压力,根据这篇2021年的文章提到"城镇职工基本养老保险基金的可支付月数已经从2012年的18个月,降低到了2017年的13.8个月,养老保险基金的收支平衡在未来依旧面临沉重的压力。", 那么在疫情后的2024年压力只会比三年前更高. 由于区域发展的不均衡, 在部分养老金更加紧张的区域出现难以支付的情况也不是不可能.
医疗方面, 上面文章提到, 2019年有高达75%的老年人患有多种疾病;有40%的老年人认为医疗支出是当前家庭消费支出中压力最大的项目...老年人的医疗费用在全人群医疗费用中的占比稳步上升,到2030年可能将占到近50%,比同期全人群医疗费用的增速更快,“也就是说,会花更多的钱来应对医疗的需求”. 我们国家已经是在药品集采方面做得比较好的了, 常规慢性病如高血压等的药品价格已经很低,甚至部分免费供药. 但老年疾病种类极其多, 还有很多难治病和癌症, 一旦药品在医保外, 没有加入集采目录, 需要手术,化疗, 创新药等等, 个人费用很难负担,直接立刻拖垮家庭.
产品的机会, 似乎只能从早期预防, 预警和提高免疫力下手, 降低监测和预防的成本, 降低早期介入治疗的成本, 增进健康生活方式.

参考:
https://technastic.com/android-secret-codes-ussd-codes/

比较有用的部分

查看手机信号和WIFI信号/信道/RSSI强度

因为很多手机的信号强度只会显示强弱, 不会显示数值, 也不知道信道或者WIFI频率, 下面这个就很有用, 不需要再去找额外的软件. IQOO上可用.
*#*#4636#*#* – Display device information

列表

  1. *#06# – Display IMEI Number
  2. ##4636## – Display device information
  3. ##7780## – Perform a Factory Reset
  4. 27673855# – Wipe phone & re-install firmware
  5. *#0228# – Check battery status
  6. #0# – Hardware test mode
  7. *43# – Enable call waiting
  8. *#67# – Check call forwarding status
  9. *#21# – Check call forwarding status
  10. *#62# – Check call forwarding status when not reachable
  11. 002# – Erase all call forwarding

  12. *31# – Hide Caller ID
  13. *#004# – Check call diversion status
  14. *#9090# – Open diagnostic configuration screen
  15. *#0011# – Service Mode
  16. *#2222# – Check Hardware version
  17. *#1234# – Check software version (Samsung & OnePlus)
  18. #12580369# – Check Software and hardware version
  19. *#0283# – Check Audio loopback control
  20. *#34971539# – Check Camera firmware
  21. *#9900# – Launch System Dump mode
  22. *04 – Change Android device PIN
  23. Change the PIN of your SIM Card
  24. *#07# – Check the Maximum SAR Level of Android Device

Secret Code
Function
#07# Displays the SAR (Specific Absorption Rate) value of the device
##225## Displays calendar data storage information
##426## View Google Play Services diagnostic report
##759## Displays the RLZ Debug UI and Unique Device ID
3282# Receive a text message with your billing information
##372733## Opens up the service mode on Nokia phones
##682## Opens up the offline update tool on Nothing devices
#66# Displays the IMEI and MEID in encrypted format on OnePlus and Realme phones
#888# Displays the PCB version of the motherboard of the phone (OnePlus & Realme)
##2947322243## Wipes out the internal memory on OnePlus phones
#800# Opens up the factory mode on Realme devices
#6776# Displays the software version and other details on Realme devices
##64663## Displays the hardware diagnostic and quality check menu on Xiaomi phones
##86583## Enable VoLTE carrier check (Xiaomi)
##86943## Enable VoWiFi carrier check (Xiaomi)
##726633## Enable/disable 5G SA carrier check (Xiaomi)

778 + call Brings up the EPST menu

##0## LCD test
##0588## Proximity sensor test
##0673## Audio test mode
##0842## Vibration and backlight test
##1111## FTA software version
##1472365## Quick GPS test
##1575## GPS test
##197328640## Enter Service Mode to perform network service tests and change phone settings
##232331## Bluetooth test
##232337## Check the Bluetooth device address
##232338## Wi-Fi Mac address
##232339##
or

##526##

Wireless LAN test
##2663## Check the touchscreen version
##2664## Touch Screen test
##273283255663282##*
or

##273282255663282##*

Backup all the media files stored on your phone
##3264## Check the RAM version
##44336## Displays build time and change list number
##49862650468## Displays PDA, hardware, phone, and RF call date info
##7262626## Field test
##7594## Change the Power button behavior
05
# Execute from the Emergency dial screen to unlock the PUK code
##8350## Disables voice dialing logging mode
##8351## Enables voice dialing logging mode
#03# Displays NAND flash serial number
#0589# Light sensor test
#0782# Realtime clock test
#2263# Displays the RF band selection
#7284# USB 12C mode control
#7353# Quick test menu
#746# View the Debug dump menu
#872564# USB logging control
#8736364# OTA update menu
##34971539## View the camera firmware information
3001#12345# Enter Field Mode to get information about available networks and cell towers
#3282727336# Displays storage and data consumption information
##0283## Perform a packet loopback test
##0289## Test the phone’s audio

0782*# Real-time clock test

#745# View the RIL dump menu
#3214789# Check the GCF mode status
#61# Check how long it takes to forward calls
5005*7672# View SMS message center number

我之前提出了运气-预测-努力三角, 我越来越感觉"努力"不足以支撑这个三角之一, 我想将之完善为:
运气-预测-资源三角.
努力(或者很多人将之等同为刻苦或奋斗)是获取资源的方法之一, 但远不是唯一.
运气就像是博彩中奖的概率, 中了就是运气好. 除了评估最重要的概率, 还应该评估这种运气游戏, 的其他重要数据. 还包括奖金的额度, 兑换的周期, 投入的资源等. 最后的运气值应该是一组综合数据, 或者是一组动态的函数曲线.
预测是预见和测试这个概率. 现代汉语对预测的定义是"预先测定或推测", 同义词有"展望 预料 估测 预期", 但事实上实际使用更偏向于预见或展望, 而不是测试和测定. 我这儿使用"预测"一词, 是"预"和"测"并重的, 在不能很好预见的情况下, 测试比预见还要更加重要. 用博彩举例, 那就包括预见不同玩法的运气概率以及实际去下注(资源)去测试那些概率最高的玩法. 也就是对运气进行预见, 用资源对运气进行测试.
资源类型包括多种,获取的方式也有多种.大的类型我分为两种: 软资源和硬资源. 软资源包括个人的智力, 情商, 阅历, 见识, 经验, 社会关系, 信誉等; 硬资源包括资金, 资产等. 资源并不总是能发挥它的最大价值的, 在不同时间, 不同的位置, 你只能将部分资源兑换为测试的筹码. 比如在一个陌生的环境, 社会关系可能就不起作用. 有个寓言故事, 讲到富商在沙漠里只有钱而没有水, 快要被渴死了, 这时候钱不能给他换取生命的筹码.
资源的作用包括两种, 无需预测就能知道其所能换取的利益或资源, 称之为固有作用; 可以换做运气-预测中的筹码的作用,称之为筹码作用. 这儿我只关注筹码作用.
资源的之一, 就是通过运气-预测中作为筹码, 下注并博取新的资源, 简称下注. 之二, 就是用一种资源换取另一种资源, 这其中资源可能会增加也可能会减少, 称之为换取.换取与下注的区别在于换取是无需运气和预测的, 而下注是需要运气和预测的. 所以, 换取是资源发生固有作用的过程, 而下注是资源发生筹码作用的过程.
说下努力, 是用自身的体力,脑力,时间资源去换取另一种资源的行为. 如果发生的是固有作用就是换取,否则是下注. 社会主流舆论所说的努力就是换取, 但又特别喜欢和下注混淆. 也就是社会主流舆论非常喜欢鼓吹通过换取行为可以获得像下注一样高的回报而没有下注的损失风险.

aidlux

官网社区版下载地址 https://community.aidlux.com/aidluxdownload
和termux相比, 更像是一个桌面版Linux. 体积比Termux大很多. 是中国团队开发, 需要手机号登录.
相对Termux来说, Aidlux集成度更高一些, 并且界面上更类似安卓桌面系统, 适合旧手机安装

UserLAnd

https://github.com/CypherpunkArmory/UserLAnd
似乎只是一个虚拟机端, 可以安装不同的linux版本