Forwarded from Rachel 碎碎念 (IFTTT)
有感而发。
完全垄断市场。
可以设想,微信将不再是一个应用启动器,不是一个可安装系统,更不是一个纯粹的 IM ,它将成为一个人的实际人权。
每个人的出生就是一个新微信号的建立。微信号与这个人绑定,跟随这个人一生。此后微信再也不需要手机号,因为你的全部生物数据就是你微信号的唯一标志。(1/3) https://t.co/6mbLOnr6jZ— Rachel Mirai. (@tangrui003) February 13, 2020
完全垄断市场。
可以设想,微信将不再是一个应用启动器,不是一个可安装系统,更不是一个纯粹的 IM ,它将成为一个人的实际人权。
每个人的出生就是一个新微信号的建立。微信号与这个人绑定,跟随这个人一生。此后微信再也不需要手机号,因为你的全部生物数据就是你微信号的唯一标志。(1/3) https://t.co/6mbLOnr6jZ— Rachel Mirai. (@tangrui003) February 13, 2020
Twitter
是萝莉控
搞了这一出以后,必须重新审视一下腾讯的垄断行为。 腾讯从垄断人的嘴,转变成垄断人的数字生活,最后升级成垄断人的一生。一个萎信号被封了,就相当于人权被剥夺。
Forwarded from Rachel 碎碎念 (IFTTT)
没有绑定微信号的人不配进出公共场所,不配获得计划福利,甚至不配存在于官方的人口数据库。当你从微信上消失,你就不再是一个合法公民,就没有人来维护你的权利,而这种对自由的追求,就会使你成为可任意霸凌的对象。
Cyberpunk WeChat.
(2/3)— Rachel Mirai. (@tangrui003) February 13, 2020
Cyberpunk WeChat.
(2/3)— Rachel Mirai. (@tangrui003) February 13, 2020
Twitter
Rachel Mirai.
没有绑定微信号的人不配进出公共场所,不配获得计划福利,甚至不配存在于官方的人口数据库。当你从微信上消失,你就不再是一个合法公民,就没有人来维护你的权利,而这种对自由的追求,就会使你成为可任意霸凌的对象。 Cyberpunk WeChat. (2/3)
Forwarded from Rachel 碎碎念 (IFTTT)
微信已经从一个 IM ,彻底变成了一代中国人的生活方式。它从未拥有完善的 IM 功能,从未拥有完整的团队协作,甚至根本没有打算做完整的桌面端。它在从原来简单纯粹的联系工具转变为一款国民应用的过程中,越来越不思进取。
但用微信打理生活的做法却被越来越多的人奉为圭臬。
(3/3)— Rachel Mirai. (@tangrui003) February 13, 2020
但用微信打理生活的做法却被越来越多的人奉为圭臬。
(3/3)— Rachel Mirai. (@tangrui003) February 13, 2020
Twitter
Rachel Mirai.
微信已经从一个 IM ,彻底变成了一代中国人的生活方式。它从未拥有完善的 IM 功能,从未拥有完整的团队协作,甚至根本没有打算做完整的桌面端。它在从原来简单纯粹的联系工具转变为一款国民应用的过程中,越来越不思进取。 但用微信打理生活的做法却被越来越多的人奉为圭臬。 (3/3)
/tmp/duangsuse.sock
#China #Low #life #tencent #WeChat
而且微信自古以来对”别人“的技术用的都比较多
java.lang.NullPointerException#Kotlin 原来 Kotlin 里一个 superclass 的 <init> 不能访问到子类的 constructor override val
at NumUnitTrie.getMap(Parser.kt:1199)
at NumUnitPattern.<init>(Parser.kt:1193)
at NumUnitTrie.<init>(Parser.kt:1198)
val n=RepeatUn(asInt(), digitFor('0'..'9')) { it.toString().map { it-'0' } }
val u=KeywordPattern<Int>().apply { mergeStrings("s" to 1, "min" to 60, "hr" to 60*60) }
val k=NumUnitTrie(n, u, IntOps) 我写完了 NumUnits
/tmp/duangsuse.sock
val n=RepeatUn(asInt(), digitFor('0'..'9')) { it.toString().map { it-'0' } } val u=KeywordPattern<Int>().apply { mergeStrings("s" to 1, "min" to 60, "hr" to 60*60) } val k=NumUnitTrie(n, u, IntOps) 我写完了 NumUnits
我来说说,这
1hr1min1s 是累加、三千五百万是更复杂的折叠,因为汉字每个子意群都得带单位。
单位上升(“五百万”)的时候是乘,单位下降(“三千一百”)的时候是加,其实不必递归。
汉字没有 123 这种直接的数字(都是一百二十三)所以一个单位的显示还得递归地去做。
这个 show,不需要区分仅个位或大于十的情况,直接交给能输出数字的子程序即可。
NumUnit 已经做好了这一点,可它做不到最大单位也无法仅含个位情况下的递归输出。
而且如果 units 规则指定不对(间隔没在进制以内),也可能出现非仅存个位的情况,不过我觉得我不会出这个问题
关键是对于任何一位的内部数字显示,都必须是递归的…… 这一点我还没有打算
汉字的特例也就是 10 until 20 的 “十一” “十二” 无需带单位的情况了,这种情况下“十”作为数字起始部分特殊处理
还有
1hr1min1s 和 三千五百万 有啥区别。1hr1min1s 是累加、三千五百万是更复杂的折叠,因为汉字每个子意群都得带单位。
单位上升(“五百万”)的时候是乘,单位下降(“三千一百”)的时候是加,其实不必递归。
汉字没有 123 这种直接的数字(都是一百二十三)所以一个单位的显示还得递归地去做。
这个 show,不需要区分仅个位或大于十的情况,直接交给能输出数字的子程序即可。
NumUnit 已经做好了这一点,可它做不到最大单位也无法仅含个位情况下的递归输出。
而且如果 units 规则指定不对(间隔没在进制以内),也可能出现非仅存个位的情况,不过我觉得我不会出这个问题
关键是对于任何一位的内部数字显示,都必须是递归的…… 这一点我还没有打算
汉字的特例也就是 10 until 20 的 “十一” “十二” 无需带单位的情况了,这种情况下“十”作为数字起始部分特殊处理
还有
一千零一,如果两个单位之间不止差一个阶层就得加“零”,这个我还没想好