以下都是自己使用中摸索的体验, 并不是官方答案.

对象与线程

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

函数

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

构造函数的形参

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

异步和同步

scratch中的事件块是异步执行的, 这个自然不用说.
绝大多数语句是同步的. 但有少数语句是异步的, 有的语句同时有异步和同步版本.
"广播"是异步的, 而"广播并等待"是同步的, 并且是等待所有"当接收到消息"事件返回后再继续执行.
"克隆"是异步的. 这算是个天坑. 如果

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版本

昨天晚上听了个抖音直播, 里面这个主播老师半夜11点多跟家长讲小孩子应该学什么才有利于以后的升学考试. 家长都可爱听. 其中注意到一个现象,就是大多数家长对编程的兴趣很高, 不停的在问多大年龄应该学编程, 怎么学. 主播简单的说了下乐高不要学, 图形编程不要学, 其他的等下让我讲两分钟其他学科再说. 可结果过了20多分钟也没讲到编程. 感觉主播有意吊着大家胃口. 主播反复说的是英语和编程晚点再讲.
从热度上感觉到编程正在快速在家长身上建立认知.
这里面两个方向:

1. 实物编程/实物代码

现在有几个品牌,但在淘宝上似乎都没有看到销售: 包括
GOBOThttps://show.chinaculture.org/SeeChinesedesign/cn/show-1-537.html
芒果乐联Egobot-少儿实物编程http://imangokid.com/egobot/index.html
"趣思维"实体编程桌面游戏https://www.jianshu.com/p/b76fad1a7c8d
石头村儿童编程益智积木https://www.163.com/dy/article/DEIEJ8S80511A0BH.html
Tangiplayhttps://www.tangiplay.com/?lang=zh
MatataLabhttps://www.sohu.com/a/500505601_121140523
途道编程机器人(积木机器人),淘宝可搜索 https://www.zhihu.com/question/523450964

我觉得在其中又有两点值得注意: 一是玩具化以后, 其实提供了很多可能, 因为玩具可以有很多种形式, 目前还没有固定下来; 二是与机器人的结合. 因为程序必须要操作一个什么东西才行, 机器人/小车就成了最好的载体.
玩具化有好几个的形式其实和lightbot游戏很像, 都是方块指令.

编程教育

这个方向讲了其实好些年, 最早我觉得从邓小平开始了, 在1984年邓小平参观上海一个微电子展的时候说"计算机普及要从娃娃抓起" http://cpc.people.com.cn/n1/2019/1030/c69113-31428714.html. 我记得谭浩强的C程序设计书的前言还提了这句话.
近十年steam教育提出后, 这方面又有很多创业公司, 但似乎都活得不咋样. 我记得四博最早也是做这个创客产品, 没有做下去但倒是积累的技术. 包括seeed(到底几个e😂).最后这些公司能活下来的似乎都是要靠卖芯片,做方案, 做电子产品才行了.
但三年前(2021年)的双减http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202107/t20210724_546576.html似乎又给了这个赛道新的机会. 这一次编程似乎作为素质教育之一, 列入了升学类考核了.
目前从各方面资料来看, 是各个学校, 或地方政府先行实施将编程列入中考和高考项目. https://www.sohu.com/a/437728806_99950984

  • 2020年11月25日北京将信息技术(含编程)列入中考范围
  • 2018年, 教育部的新课标将信息技术从兴趣课改为必修课, 并且多个高校给信息技术赛事获得名次的学生加分(这似乎也引起了很多歪风, 变得为竞赛而竞赛, 甚至假竞赛)
  • 2018年, 南京增加了中考的科技特招生
  • 2018年, 浙江省将信息技术作为高考3+7选3的"7选3"之一, 并且多所大学的工科类专业都将信息技术列为必须选考的科目
  • 2022年5月, 《2022年版中小学生信息素养与编程能力测评白皮书》发布
  • 教育部发布《中小学生信息素养提升手册(2024年新版)》,同时许多地市也有自己版本的信息素养提升手册
    我觉得科班出身的体系内的编程教学实力不见得很强,原因是这个与实践结合非常紧密,科班出身的其实缺乏与实践结合的机会,比如编程的最佳实践,软件工程,SCRUM之类对实际非常重要的内容,不做几次项目失败几次是体会不到的。说到项目,我记得似乎有一种项目式学习法,近几年也被提起过。
    下面说下社会方面对编程师资的培养

行业协会的认证和师资培养

我发现主要有三个行业协会,包括中国电子学会、中国软件行业协会、中国计算机学会

中国电子学会 CIE

主要认证是青少年软件编程指导教师证,需要登录后缴费学习.官网https://www.cie.org.cn/ .
并且学会有专门给儿童的考级网站 https://www.qceit.org.cn/bos/default.html

中国软件行业协会 CSIA

官网https://www.csia.org.cn/
这个协会是给企业做双软评定和证书的, 跟企业的关系比较密切.
针对青少年的是NCT考试.

中国计算机学会 CCF

有三种认证, 针对青少年的GESP, 教师资格的PTA, 普通人的CSP

另外, 针对普通人的全国计算机等级考试 NCRE https://ncre.neea.edu.cn/ 是由教育部考试院直接举办的.现在这个考试与时俱进, 下分的门类也是非常丰富了.

通过二级调研,有如下结论:

欧美

收款方面, 欧美国家虽然没有那么强大的移动支付, 不过由于信用卡系统非常发达, 所以在线支付并不是问题.
物流方面, 虽然物流费用比较中国更高,但可靠性可以保证, 也有较好的时效.
品牌方面, 既接受强势的大品牌, 也接受创新的新品牌
增长方面, 近几年电商发展迅速, 增长已经不如前几年迅速, 正在趋于饱和

东南亚

不同国家发展不平衡, 比较有潜力的国家包括印尼(人口最多),马来, 菲律宾, 泰国, 越南,新加坡. 新加坡虽然地方极小,只有1/3个深圳大,但人口有560万, 相当于大半个香港, 而GDP却比香港还高30%左右, 与深圳GDP相当.
其中印尼人口2.7亿, 且出生率几乎是现在中国的两倍, 人口结构比较年轻. 但是人均GDP比较低, 物流不方便.但好在一半人口都居住在JAWA岛上, 物流配送费用较低.
从同样的3C产品height meter(stadiometer)在shopee的马来西亚,印尼,新加坡三站的价格对比来看, 印尼和新加坡支持从国内发货, 产品价格大约是国内的2倍,而印尼产品价格与国内几乎相同.

在阿里的无影云电脑中, 因为安装Uibot Creator无法启动运行, 于是看了下自带的软件商店中有两款RPA软件, 一个是实在RPA,另一个是朗思数字员工. 下载试用感受如下:

实在RPA

跟界面和使用和UiBot有些像的, 相对有这些优势:

  • 基于Python开发, 可视化界面可转为代码界面, 可以看到代码是python形式
  • 新版本有一个IPA模式, 相当于操作录屏, 能加快操作速度(不过Uibot也有录制, 但易用性上差一些)
  • 看其命令菜单,还能操作配套机械臂, 这点很赞
  • 和手机的连接有读取短信功能. 但似乎仅限于此了
    劣势方面:
  • 不能以纯代码方式编辑, 也就是代码界面只能看. 额外的代码需要以插入python代码的方式工作, 或者直接在可视化界面对应的输入框中写. 这样就可能比较别扭, 可视化界面的中文表述有些啰嗦, 而且还不容易看懂.

朗思数字员工

这个界面倒有些像是Blender的节点编辑器, 据说国外的著名UiPath RPA也是类似界面.
优势:

  • 可视化卡片界面
  • 支持微信的操作, 包括信息的读取,发送, 文件发送
  • 支持手机端控制操作
  • 有一些专业化组件, 比如适用于程序员的, 可惜都是企业版才有的功能, 需要付费
    从特别支持微信和手机端操作来看, 朗思的扩展性最强.
    缺点:
  • 并不是所有组件都开放使用, 很多只有企业版才有
  • 没有源码界面, 全部需要通过鼠标点击操作

今天看uibot的时候发现有个友链指向讯鸟软件这家自动化呼叫软件, 其中提到他们可以做BPO外包, 也就看了下什么是BPO外包, 虽然是业务流程外包的简称, 国内似乎和呼叫中心外包几乎等同. 也问了下GPT4还有哪些外包形式. 以下是GPT4的回答.

除了常见的业务流程外包(BPO)和信息技术外包(ITO),还有其他几种服务外包形式,它们根据专业领域的不同而有所区分,包括:

知识过程外包 (KPO) - 这种外包服务涉及更为复杂和专业化的任务,例如法律研究、市场调研、数据分析、高级工程设计等。KPO强调专业知识的深度和复杂性,通常要求服务提供商具有高级专业资格和能力。

法务外包 (LPO) - 法务外包是KPO的一个子集,专注于提供法律相关服务,如合同审核、法律研究、案件管理等。

人力资源外包 (HRO) - 这种外包涉及将人力资源的某些功能或整个HR部门的职责转交给外部服务提供商。常见服务包括员工招聘、薪酬管理、培训与开发等。

工程外包 (EPO) - 工程外包指将工程相关的设计、分析和支持任务交给外部专家。这可以涵盖从机械设计到软件工程等多种领域。

研发外包 (R&D Outsourcing) - 一些公司选择将研发任务外包出去以降低成本并加速产品开发流程。这涉及到科技创新、制药研究以及其它科学和工程领域的任务。

客户支持外包 - 包括呼叫中心服务、技术支持、客户关系管理等。通过外包这些任务,企业能够提供24小时支持,并能使用更多语言来服务全球客户。

这些不同类型的服务外包可以帮助企业更高效地利用全球资源,优化成本结构,并专注于其核心业务领域的发展。

两种模块

  1. 使用命令库, 发布后, 在任何一个项目中使用
  2. 在项目中建一个任务, 直接通过import 任务名导入模块
    我觉得项目少的时候用第二个就好了. 因为第一种命令库的方式似乎总是出错, 并且每次更新很麻烦: 关闭当前项目, 进入命令库项目, 改完代码再发布, 在进入原项目使用. 而方式1直接修改对应任务就完事了, 立即生效.

    使用

    官方对于模块描述比较简单, 主要讲了对模块内的函数使用和模块全局代码的使用.
    以下以建立一个叫tools的模块举例, 在main的任务中调用tools

导入模块

import tools

函数调用

比如其中有一个add(a,b)函数, main中调用方式为
Dim result = tools.add(1,2)

全局代码调用

main中全局代码调用方式:
tools()

官方没讲的, 全局变量和全局代码的返回值

如果在tools模块中定义了一个全局变量Dim g = 1, 这个全局变量会有如下特点:
在main引入了tools并运行了全局代码tools()后, 可以被tools中其他的函数使用, 但不能被main直接调用, 如:

// tools.task
Dim g = 1 
Function getG()
  return g
End Function

// main.task 正确调用方式
import tools
tools()
log.Info(tools.getG()) // 输出1

// main.task 错误调用方式1
import tools
log.Info(tools.getG()) // 输出错误: 名字 g 没有找到. 需要先运行全局代码,才能初始化g

// main.task 错误调用方式2
import tools
tools()
log.Info(tools.g) // 输出错误: 名字 g 没有找到. g已经被初始化但是只能被tools中的函数访问, 类似私有变量

全局代码也可以有返回值, 如

// tools.task
return 10

// main.task
Log.Info(tools()) //打印10

将一个模块当成一个对象来使用

上面的用法暗示了这个tools.task模块可以作为一个对象使用. 其中的全局变量是模块的私有变量, 全局代码是模块的初始化(构造)函数, 模块的函数全部是公有函数. 这个对象不存在公有变量, 需要用类似set/get()公有函数去模拟公有变量. 也没有私有函数. 私有函数可以通过编码规则去模拟, 如前面加下划线_, 外部函数则不要去调用.

很多海外软件下载速度经常只有几个k,这是要用国内镜像下载。从什么莫名其妙的下载站下载担心带毒,可以从华为云下载。

华为云

可以进入其镜像站搜索:
https://mirrors.huaweicloud.com/home
也可以后面直接加软件名

https://mirrors.huaweicloud.com/xxx软件名/
如:
https://mirrors.huaweicloud.com/git-for-windows/
https://mirrors.huaweicloud.com/git-tortoise/
https://mirrors.huaweicloud.com/python/
https://mirrors.huaweicloud.com/nodejs/

阿里云

主要作为库管理器。如python:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
nodejs
npm config set registry https://npm.aliyun.com

中国早期的劳动力分配,是按照是否是城镇人口划分的。没有接受教育的农民天生有地,就可以生活。如果经过学习,则可以通过国家分配进入工厂,进而农转非变为市民。根据这篇文章,关于毕业生的分配有如下叙述:

大约在1950年,当时的政务院发出《为有计划地合理地分配全国公私立高等学校今年暑期毕业生工作的通令》,提出对高校毕业生实行有计划的统筹分配;一年之后,再次发布的《关于改革学制的决定》,规定高校毕业生的工作由政府分配。
恢复高考后,国家仍然沿袭了这一规定。1981年,“文革”后的第一批大学生面临毕业之际,国务院批转了原国家计委、国家教委《关于改进1981年普通高等学校毕业生分配工作的报告》,要求对毕业生按照国家统一计划分配:国家教委直属院校毕业生由国家负责面向全国分配;部委主管院校,毕业生由各部委在本系统、本行业内分配;省属院校的毕业生主要由各省市自治区负责面向本地区分配。
建国初期,城镇人口只有一成,到改革开放初期也不到两成。到了去年也就是2023年,城镇人口已经超过65%。这本身导致了城镇就业人口的增加和农村就业人口的减少。如果在经济不景气的时候,意味着城市里分蛋糕的人口会越来越多,人均蛋糕越来越少。而农村人均需要创造的农业产值,却需要越来越高。
而事实上真正的铁饭碗其实只有农民。中国农民靠天(运气)吃饭,但除了给国家交粮,却不存在被压榨,甚至从古代开始自己有地的农民都是如此。所以如果是农民,确实只需要勤劳耕种,就能有收获。而城镇的企业员工除了给国家交税以外,还存在从生存的城市到所在企业的系统性压榨,所以其勤劳程度并不与其收获成正比,因此难以积攒财富。衣食住行成本一直在随着城市人口密度的提升而提升,而贷款买房又透支了员工的未来。而在企业中打工,多数企业往往不愿分享自己的红利给每个员工,反而是制定种种政策来限制员工。这甚至在很多上市企业中也不是个例,比如薪资结构中的工资部分就是城市的最低工资而避免给员工多交保险、加班不给加班工资而提倡员工“奋斗”、在实施双休日多年后依然实施大小周或单休、实施年假制度数年来不给员工批年假、或者仅按城市最低工资标准发放带薪假工资(如果最低工资占比低,相当于多数收入被扣除)、签署竞业协议禁止员工离职后从事本职业……公司通过法律部门规避了自己的各项风险,而员工则不可能改动任何条款,为了工作迫不得已签署的不平等条约式的劳动合同,或者根本不知道合同里面是否给自己埋了坑。在经济上升期,这些矛盾可能还不明显,因为工作岗位是充足的。而在经济不景气甚至不增长的时候,企业都生存困难,就会拿出不平等的合同条款来转嫁自身风险到员工身上。在企业需要人力的时候为企业加班奋斗,在兴冲冲买了房子背了房贷以后被企业一脚踢出大门。再加上AI在这几年快速兴起,可能很快会替代一些岗位,使得就业岗位更加减少。
现在时不时看到一些高学历人士跑美团、跑滴滴、或者自己开小店、摊煎饼、做民宿等等,可能就是一种后果和趋势。

电商有个困扰是发货的时候,对方提供的地址在省市区部分有缺失,自己要查找起来很麻烦。有没有一个方法能直接获取到一个地址的省市区呢?
比较极限的例子就是没有任何省市区,只有一个地名。比如输入深圳北站,返回广东省、深圳市、龙华区。
我猜测地图API应该可以实现。就问了Gemini。回答的答案居然一次性运行成功,没有编码错误。牛!
我用了高德的API,进驻高德开放平台,创建一个应用即可。而且获取省市区的API只需要KEY就行,没有复杂的鉴权过程。属于“地里编码”类型,每日调用限额5000次。

Gemini回答

以下 API 能够根据地址字符串返回省、市、区:

API 使用方法

高德地图开放平台

GET https://restapi.amap.com/v3/geocode/geo?address=深圳北站&key={{高德地图API Key}}

百度地图开放平台

GET https://api.map.baidu.com/geocoding/v3/?address=深圳北站&output=json&ak={{百度地图API Key}}

API 返回数据示例

高德地图开放平台

{
  "count": 1,
  "info": "OK",
  "infocode": "10000",
  "geocodes": [
    {
      "formatted_address": "广东省深圳市龙华区梅林街道龙胜社区万丰路一号",
      "adcode": "440306",
      "country": "中国",
      "province": "广东省",
      "city": "深圳市",
      "district": "龙华区",
      "township": "梅林街道"
    }
  ]
}

百度地图开放平台

{
  "status": "OK",
  "result": {
    "address": "深圳北站东广场",
    "location": {
      "lat": 22.60116700193512,
      "lng": 114.06170188547761
    },
    "precise": 1,
    "confidence": 70,
    "level": "地铁站",
    "formatted_address": "广东省深圳市龙华区梅林街道龙胜社区万丰路一号(近深圳北站东广场)",
    "business": [],
    "poiRegions": [],
    "semg": [],
    "adname": "广东省深圳市龙华区"
  }
}

示例代码

Python 示例(基于高德地图开放平台)

import requests

def get_address_info(address_string):
    url = "https://restapi.amap.com/v3/geocode/geo"
    params = {
        "address": address_string,
        "key": "YOUR_GAODE_API_KEY"  # 替换为你的高德地图 API Key
    }
    response = requests.get(url, params=params)
    data = response.json()
    if data["info"] == "OK":
        return data["geocodes"][0]["province"], data["geocodes"][0]["city"], data["geocodes"][0]["district"]
    else:
        return None

address_info = get_address_info("深圳北站")
print(address_info)  # 输出:('广东省', '深圳市', '龙华区')