duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
sequence{yield} 应该像py和js 一样,返回Iterator
Anonymous Poll
80%
对,1次调用只创建了1个休眠函数
20%
错,多次遍历时难道应该重复调用?
不能单纯用Java的术语解释值类型,只要复制[在内容上]永远等于自身 ,其地址就是值
Anonymous Poll
71%
对,new String("") 就等于""
29%
错,值类型不造成GC压力,也无法直接添入List
0%
错, 1..getClass() 报错“无法解引用”而str.length不会
duangsues.is_a? SaltedFish
#编程语言 #Kotlin 做个关于语法和stdlib集合类型的小调查 点进来以查看「for(x in items) 是否过时」这种投票
#bing 对几个问题的回答:

接下来我要问关于Kotlin本身的问题,请对比python里的类似概念 提建议
如果List和Array有继承关系,来方便列表处理函数的定义,以谁为父类

List,它是一个抽象的数据类型,它只定义了一些通用的操作,比如添加、删除、遍历、查找等,而不关心具体的存储结构。Array是一种具体的数据类型

for(x in 0..9) 的语句化写法,是否过时于 pairs.forEach{(a,b)-> a} 的函数式写法,因为后者与 fun f()=a.map{} 等更一致

各有优缺点。😊语句化写法的优点是简洁、直观、易读,它可以清晰地表达循环的逻辑,也可以方便地使用break、continue等控制流语句。函数式写法的优点是灵活可组合

await f 是否可以视为自动传递回调的一种调用形式,因此只需要async 声明f以回调而非阻塞调用栈的形式,返回给调用方

await f,f必须是一个挂起函数,也就是用async声明的函数。async声明的函数会返回一个Deferred对象,一个特殊可await的Job。async声明的函数也不会阻塞当前线程,而是在协程作用域内启动一个新的协程来执行异步任务。

sequence{} 是否应和py,js一样返回单次遍历Iterator ,因为1次调用只创建了1个next()状态机

suspend lambda用来生成一个惰性的、无限的、基于协程的序列,而不是一次性生成所有元素。这样可以节省内存和计算资源,也可以实现一些复杂的逻辑。Sequence类型实现了Iterator接口,也就是说它有一个next()方法,可以返回序列中的下一个元素。但只能被遍历一次

ByteArray 和装箱类型 Array<Byte> 的区别是否没意义, 它和反射、泛型擦除有多大关系

通过反射访问或修改ByteArray和Array<Byte>的元素时,会发现它们需要传入或返回不同的值类型,分别是byte和java.lang.Byte。
#fp #statement SooXT 🫧:
为什么我看不懂 🤔
https://en.wikipedia.org/wiki/Monad_(functional_programming)

duangsuse:
右声明左定义

感觉像对x和[x] 都能处理然后flat()的.. 和Vec分量同算有点不一样

FP的 #parserc 在js里好写多了([],{}, /regex/ 值) ,但是FP界的人就只会在那 data instance Monad 的实现约束,却不懂得用更直接的语言表达意图 ,导致FP的技术套用到OOP后要么是浮云, 要么失去了FP逼格,唯独没有实用又专业的

其实写那么多多态,也只是把代码搞得七零八落, 还不如一开始就归类好要用到哪些情况

我其实也是喜欢重命名东西的人 , 但是我讨厌一种API 去给它重构,别人觉得没必要

FP领域重命名老技术,却变成了它特有的技巧🤔

其实组合子也是可以基于lexer流的 ,问题是到底需不需要。 PEG 是parserc的文本形式,它有跳空格问题, 但显然加个字符过滤流,就能同时解决高亮和注释😅

我在设计一门多范式语言,重命名了许多 thing(class), fun(method)的API

如果是我的话, 会把这类理论 变成与 value / (T)->R 的差异与共同点,而不是另成术语体系 ,因为这会造成术语和写法的冗余

不过说起来hs的parserc 因为不能“吃掉”或跳过剩余字符 ,只能把它拆成左右两部分 ,所以造成GC压力这点也挺可爱的😒
backtracing(peek右侧), 反而不占多少开销吧

纯函数还真是自己有一套 独有的问题和解决方案

所以说一开始就设计好,真的是很困难。 但作为“理论界” 术语解读那么多,也是CS独有吧..?

rami3l:
你有没有看link,这段话说的就是Haskell在设计之初就不希望做成well done

duangsuse:
但是这并不科学哎,难道绝对真理是不存在的

一开始就应该向完美去设计
编程语言和软件工程是扩展性的艺术

总的来说, 我肯定不适合和FP粉丝讨论,因为实现的目标就不一样🙊

我只是觉得FP粉丝,明明可以把自己的功底用到工业界,却偏偏要留在那一套含糊其辞、糅杂如Java的语言, 很浪费才华。

这就是我们的根本区别:

如果英文阅读速度不如母语 ,我会想办法用pdf2docx+deepl.com , 而不少人会订阅学英语的频道

这两者各有好处,但观念确实不同

同样是fp,kt和scala的理解不一样 ,这种差异才是我的研究, 我不管fp本身。

Pop:
所以我們的區別就是我看到不會的東西會去學你會走近路?

duangsuse:
差不多,因为计算机就是为懒得自己算的人服务的☺️

如果没有这种懒惰,翻译技术也不会进步,还没诞生时的GPT也失去了一个重要的支援领域

Misuno Akihisa, [2023/5/9 21:10]
Rust 完整替換一個字串是不是只能
s.replace_range(..s.len(), "new string value");
或者
s.clear();
s.push_str("new string value");
?

duangsuse
这个 (..s.len) 好像 py 的 a[:-1] 的说 (都喜欢省略0的吗
原来rstd::String 是 mut 的,一直以为没有可变字符串呢

感觉C++开了一个坏头,导致 GLSL 和 Rust 里 Vec 完全是相反的涵义。 vec2本质是int 这种,而 vector 甚至可以 push 😒
感觉C++开了一个坏头,导致 GLSL 和 Rust 里 Vec 完全是相反的涵义。 vec2本质是int 这种,而 vector 甚至可以 push 😒

rami3l:
list默认是linked list啊
vector是dynamic array

内存布局完全不一样的

duangsuse:
这种C式理解让我想到了冯诺曼的“不能用汇编器,浪费CPU cycle”

我最开始说的就是C++和现代语言的术语分歧倾向

这点上kt就隐藏了java集合的具体实现
而java 的 Vec 其实是 parallel.MutableList ...还是C#最有水平

Rust 使用i8 i32取代 char int 确实很好,但仍继承了这些设计错误

vec的重名让我摸不着头脑 ,据我所知,编译原理和信号处理 应该是没交集的(taichi是py的SP友主动去学优化编译), 为何cpp java 这些自以为会用vec2呢😒,它们无论标准库还是基元类型 都未有向量计算的API

如同“文化挪用”,cpp设计者还根本无视了vecN 的特质.. list和vec竟意义相同

如果说cpp的template 还算适合高性能的跨类型复用,java泛型就是屎山 ,已经导致int和装箱Object 间的割裂越来越明显 ,java写的物理算式也不可能通用到向量数值上,这讽刺了vec的“xy轴算式相同”特质。东施效颦
duangsuse:
如果这些语言,有好好玩过 2D graphics ,就不会让人们对GPT写的弹球游戏崇拜得不得了了😅

汇编时代,在GBA都能编出超级玛丽 ,Vec明明可以让游戏开发更普世,然而更高级的cpp却把这样有用的术语送给无聊的列表处理..

编译器最本职的代码复制都没做好

Pop:
编译器本职啥时候变成复制了

duangsuse:
x86 CFI, C的栈帧传参规范、数值类型的统一、lambda,不含代码复制吗
各种lib的动态链接,不算吗

对人类最有价值的重载、无虚表子类型、0开销抽象, 这些入门者也会用的功能 ,当然是本职啊

那 if,while 这些基础结构 ,排除变量解析,不都是按模板生成代码的吗

你总不能说编译器的本职是codegen吧…… 那还不如js界认为编译=parse 一样

Pop:
你都说了按模板生成代码 那着就不是简单的复制代码

poly000:
https://www.reddit.com/r/rust/comments/awiisl/why_are_dynamic_arrays_called_vec_in_the_standard/

DynamicArray or ResizableArray is an option but it is somewhat long compared to just Vec

duangsuse:
哎,又是 one-liner 惹的祸😅
(一行狂魔)

大不了和java一样,到处public 得了,命名太长无所谓
duangsuse, [2023/5/11 20:04]
#kt (0..9).zipWithNext().all {(a,b) -> a<b} 🥰

不对,你是想做插入排序, 就是对每项O(N)地比较和交换
#bing import bisect
bisect.insort_left (num:=[1,3,4], 2)

bing没告诉你二分搜索插入点吗, Java SortedSet 里 floor(it) 就能找到[最大不大it]的项

duangsuse, [2023/5/11 20:39]
对了,我做过一个可视化 ,你可以点进去记录&播放

事 行.冒泡 = (0~末针)令,[i]
(i右~末针)令,[i1] i小于i1。

事 双主语<行 针>.小于(右:针) = 令,[i]
若非 你[i]<你[右],量值=你[i];你[i]=你[右];你[右]=值。


☹️看来没有系统的教学,还是很难读

我觉得应该这么写的,但看起来很幼稚

绝句利用内联,有 (rw:listOf(1,2) ).as<Var>.let { it=0 } must {0 0} 的特技(类似C++指针),但不知道怎么用 🤔

对何<T>(T:有序)
事 改行<可变>.冒泡=(0~末针)令,[i] (i右~末针)令「我[i]应小 我[它]」 。

对何<T>(T:有序)
事 可变.「应小」(B:可变) = 若我不<B, 可变去换(我、B) 。


此行[i右~末针] 没法迭代可变量,看来索引计算仍是不可避免的(悲) 本以为新语言可以完全消除蠢蠢的for循环
Forwarded from dnaugsuz
编程的尽头就是佛系,能使唤AI就不要动脑

设计新语言的心理压力还挺大的,尤其是没时间去实现它
总是有「明明已经这样费力,还是无法让所有人满意,也总是在否定自己之前的设计」的感觉 😶‍🌫️

比如
(0~末针)令,[i] (i右~末针)令
在kt里大概是无法写进1行的
for(i in 0..lastIndex)for(it in i+1..lastIndex) if(get(i)>=get(it) )swap(i,it)

但还是觉得,新语言没有价值;因为这个东西引入太多不常规的译文,甚至“合并消消乐”了Kt的一些API, 而如果
(0~末索引)遍历,[i] (i+1 ~ 末索引)遍历
的翻译,那就大输英文版 🥲中文,太难了

虽然我自以为绝句的翻译都是正确的,但却稍微颠覆了编程界的传统,比如
令滤序带叠|行表集组列
let only sort zip fold|Ln KV Set Ary Seq
换 过滤 排序 拉链 折叠|列表 映射表 集 数组 迭代

总感觉会被喷不专业,然后接受度两极分化。 这都怪之前没有人翻译那些函数名😡
虽然在现代OOP 里,重载与默认值的提供,比起名更有价值

但其是我是很反对把 List<Int> 译为 列表<整数> 而非行<数4>,列表应该是Lua,PHP 才有的,它混淆了一些概念(绝句有区分行和列的);我不会改这种译法,也不会放弃在新语言支持跨语种……🤪
duangsuse:
我知道,可现在不开始学说话,未来就更没希望了

IT界并不是没有受到大清政策影响的,如果他们成功了, 我们应该上山下乡才对的, 今天没锤到技术人,并不是因为体制机器不想,而是不能

对于那些岁静,今天面对政府的越界保持中立 而能相对自由,不是靠恩情和专业素质,是看运气。 中国有宗教自由,信“官场虚无教” 是个人选择。

保护技术基建,也是技术本身
Googlex:
物联网用5G联, 场景当前这样设定的。 必须用5G

duangsuse:
根本没考虑性价比,就硬推
市场为政治服务也不只有好事, 失败了还改不过来

捡芝麻丢西瓜的面子工程 , 实际没有需求、不做配套就狂投,最后烂尾的更多 ;还不如踏实的补上隔阂,该地摊时就摆摊

只是那个?早就遍地开花了……
Forwarded from Deleted Account
以下是一个使用 Kotlin 和 Jetpack Compose 编写的刷新按钮,点击按钮将使用 OkHttp 发送一个请求并显示新的图片:

import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.Button
import androidx.compose.material.Icon
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Refresh
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import okhttp3.OkHttpClient
import okhttp3.Request
import java.io.IOException
import java.io.InputStream
import java.util.concurrent.TimeUnit

@Composable
fun RefreshButton() {
var image by remember { mutableStateOf<Painter?>(null) }

Button(
onClick = { refreshImage { newImage ->
image = newImage
} },
modifier = Modifier.padding(16.dp)
) {
Icon(Icons.Filled.Refresh, contentDescription = "refresh")
}

image?.let {
Image(
painter = it,
contentDescription = null,
modifier = Modifier
.fillMaxSize()
.padding(horizontal = 16.dp)
)
}
}

private fun refreshImage(onNewImage: (Painter) -> Unit) {
// 使用 OkHttp 请求新图片并更新 UI
val client = OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.build()
val request = Request.Builder()
.url("<your-image-url>")
.build()
try {
val response = client.newCall(request).execute()
val stream: InputStream? = response.body?.byteStream()
stream?.let {
val newImage = androidx.compose.ui.graphics.ImageBitmap
.decodeStream(stream)
.asAndroidPainter()
onNewImage(newImage)
}
} catch (e: IOException) {
// 处理请求异常
}
}


在上面的代码中,我们使用了 Jetpack Compose 中的 Button 和 Icon 组件,用于显示和触发刷新操作。在点击按钮时,我们使用 OkHttp 发送一个请求来获取新的图片。在请求成功后,我们将 InputStream 中的数据解码为新的 Painter 并更新 UI。这里我们使用了 Kotlin 的协程和 Android context 来进行异步操作,并在请求完成后返回主线程更新 UI。

本次使用令牌数: 1589
https://m.youtube.com/watch?v=NWvjHQ8mcAQ

脱口秀这个艺术形式不适合中国人。
北京时间5月13号,笑果文化的北京场,有个段子,脱口秀演员house 本名李昊石,他说他的狗:
作风优良,能打胜仗。还是野狗。请听现场传出来的录音。
这段内容讲完以后,被人举报,于是,他本人被瞬间封杀,罪名是侮辱人民子弟兵。
然后我看了看中国的报道,哗众取宠、卑劣粗鄙、恬不知耻这些词一夜之间都用在了这个演员身上。
而且一天以后,北京文化执法总队对外公布,已经对笑果文化立案调查。
下面的评论我就不用说了,大家可以想象,中国人集体高潮,一片骂声,以及对脱口秀演员的讥讽谩骂。
早几年在脱口秀大会和吐槽大会火起来的时候我就说,我不看好中国的脱口秀,我觉得中国就不适合脱口秀,脱口秀在中国本身就是一个笑话。
今年2月,中国脱口秀演员池子在北美巡演以后,被洛杉矶一个傻缺给添油加醋地曝光了,随后,池子被封杀。
到底池子说了什么,因为没有录音和录像,所以没有到现场的不得而知,据说是因为讲了几句实话。
因为池子在加拿大演出完以后,一个加拿大的网友就说,这次是真正的脱口秀,你敢讽刺,敢说。处于安全考虑,这个被访者不愿意透露自己的名字。
池子在北美巡演的时候多次谈到自己的朋友卡姆,新疆小伙子,我最早的时候看过他的节目,非常不同寻常,有个性,是一个敢于去讲的脱口秀演员,可惜,很早就被封杀。
而且因为他是新疆人,无法办护照。池子还谈了卡姆在中国的遭遇,只要他在任何公共场所刷了身份证以后,警察几分钟就会出现在他的面前。
他讲的这些故事无非就是一些事实,可是你们知道,在中国讲实话就是乳化和寻衅滋事了。
但是脱口秀这个东西在中国属于文化部门审查监管,而我也曾经在媒体部门工作,而且我恰恰做过媒体部门的宣传口的对接工作,节目的审查报备这个环节是我负责,所以我特别清楚这里面发生了什么以及会发生什么。
我在媒体工作8年,我经历过大小领导以及基层记者,因为涉及审查不过关而遭到各种不公待遇,或者说职业生涯终止的事情非常多。
任何艺术形式,包括电影、电视剧、小品、舞蹈、话剧、脱口秀、相声,只要是在中国,必定是遭到阉割的。
https://t.iss.one/Javaer/914750

duangsuse:
因为他们不想以不由自己的贫富差距为耻..
你们户口的每月退休金,现在别发墙内。是敏感词呢

真的,我都不知道100每月能干什么
一爆出来才知道

啊啊,一档制发展的稳定性可棒了 ;以后一人之下 , 好日子在后头呢
农民饿死也是太魔幻了,以前谁信

总之好大喜功,自上而下分配就一定出问题,还农管 ,退林还耕
就是没有监督,上班能摸鱼 谁会自己内卷呢

人民币比USD消费力强的铁证 ,一个月100就能不饿死

Schinder Oskar:
还有个真相是,以前农村人是不能随便进城的,被制度严格限定在农村

D.Va 1分:
100块钱,200个馒头,一顿饭2个馒头

duangsuse:
反正,留守儿童是一直有

民间的绝密 “”守口如瓶啊这
是的,就是靠威慑给听话的人多个馒头,让人家逼不肯饿死的农民交粮吧..还不是本地人互斗

现在还不是开放摆摊了 ,一下子清零变躺平 ,完全不管 ,最后是不是要批评摊主占用社会资源

往好处想, 中国人不生了,聪明的老爷说不定自己闹革命呢😅

是啊,本来是在向现代文明国家发展
本来对官老爷也不无利益吧,可持续发展
继续加速

开始抢了,生产力就要萎缩了 ,马上回看大吃饱大健身算了 ,14亿人,养不起,不斗行吗?

云:
放心,需要你档子弹的时候又亲如一家

Dd Gt:
打仗让有钱人上?到时候穿制服,拿枪进村,顶着老婆,老妈,孩子的头,说你必须去

计划生育直接就是鬼子进村,直接抢

moushose:
要看空降政客和人民利益是否紧密

Schinder Oskar:
不夸张,我小时候经历过,我老家那边,计生办的人有的都把别人家房子给拆了,抢东西是很普遍的

Dd Gt:
很多当年的执法者还没死,只是变老了,只是坏人变老了
程序员们就算拼尽全力,死也要死城里。农村的规矩和人性底线太低了

Schinder Oskar:
太祖能皇帝能建立功业,不就是靠与人斗的能力很强么
还是期望今上不要学习太祖皇帝

Dd Gt:
河南一个叫田明建的,军人,天安门杀了一百多军警,震惊世界,就是河南的老婆被打胎死亡
加拿大当时卫星直播,被当局中断信号

duangsuse:
最猛韭菜 ,和因为一个毫无关系的脱口秀而玻璃心碎的拥军爱民,不是一个档次……

如果中国军人都有这种血性, 圣上今天就要打梧桐;可惜啦中国传统是功高盖主嘛

Silence Acappella:
就,全世界除了中国外的历史都是假的

duangsuse:
感觉阿Q正传 就是讽刺政史野史之论。。

匪夷所思,意思是马克思支持靠鼓吹民主、许诺分田地上位的农民,去革低端农民的命 ;既匪又境外,可不是匪夷?

什么反智阴谋论。鸟是美国监视人民的武器的,信众大有人在

其实,文艺复兴后宗教和科学是互不干涉
无神论也是宗教信仰的。。
科学和人道是共荣的,少一个都不行

Gaius:
马教徒已经不比宗教疯子差了,神话某些人

duangsuse:
现在还有毛左。。 但已经不是信独裁的了,就很自相矛盾,可能是中国特有

他们是不要民主要明主 ,和官宣都形成精神分裂;反正官宣就是把阶级化和民权 “合二为一” ,封建阶层,说的那么清新脱俗

说白了只要不瞎指挥生育权,就没有这档事,不打仗最好
所以那些大兴土木, 靠卖住房的税收最好还养得起 ,要是亏空了就..赋储户红码
Forwarded from Deleted AccountSCAM
好的,以下是一个使用 Kotlin 和 Jetpack Compose 编写的刷新按钮,点击后使用 OkHttp 请求新图片的示例代码:

import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.Request
import java.io.IOException

@Composable
fun RefreshButton() {
var imageBitmap by remember { mutableStateOf(null as androidx.compose.ui.graphics.ImageBitmap?) }
var isLoading by remember { mutableStateOf(false) }

Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(
onClick = {
if (!isLoading) {
isLoading = true
loadNewImage { bitmap ->
imageBitmap = bitmap
isLoading = false
}
}
},
modifier = Modifier.padding(16.dp)
) {
Text("Refresh")
}

Spacer(modifier = Modifier.height(16.dp))

if (isLoading) {
Text("Loading...")
} else {
if (imageBitmap != null) {
Image(
bitmap = imageBitmap!!,
contentDescription = "New Image",
modifier = Modifier.size(200.dp)
)
} else {
Text("Click the button to load a new image")
}
}
}
}

private fun loadNewImage(onSuccess: (androidx.compose.ui.graphics.ImageBitmap) -> Unit) {
val client = OkHttpClient()
val request = Request.Builder()
.url("https://picsum.photos/200")
.build()

val scope = rememberCoroutineScope()

scope.launch(Dispatchers.IO) {
try {
val response = client.newCall(request).execute()
val inputStream = response.body?.byteStream()
if (inputStream != null) {
val bitmap = androidx.compose.ui.graphics.Image.makeFromEncoded(inputStream.readBytes()).asImageBitmap()
onSuccess(bitmap)
}
} catch (e: IOException) {
e.printStackTrace()
}
}
}


这个示例代码中,我们使用 remembermutableStateOf 来管理状态,当点击刷新按钮时,我们会调用 loadNewImage 函数来请求新的图片。在 loadNewImage 函数中,我们使用 OkHttp 发送 GET 请求,获取图片的字节流,然后使用 Image.makeFromEncoded 将字节流转换为 ImageBitmap,最后通过回调函数将新的图片传递回来。在 Compose 中,我们可以使用 Image 组件来显示图片,使用 Text 组件来显示文本,使用 Button 组件来创建按钮。
#sb 好吧,我总结了我眼里,X 正确用词的回复:
其实就是我们谈话节奏不一致。 X一席话只是车轱辘式,强调不能主观化名词+OT, 而我觉得论题根本不是「支那是否贬义」,而是「支那该不该被自由派使用」

>支那药丸
特色自由派(自嘲cina)笑死,确实

>你没法体会文革前夕的历史记忆, 中国的舆论环境越来越魔幻了 .. (所以你要理解种族主义自嘲)

如果说a谈b的话,并且强行重定义词汇的话
(OT、主观词汇理解词汇了)
去掉们,你是支那

>面对民粹主义能怎么办呢,他不会挺你说话
讨论这个没意义,如果把(数学)词汇重定义,然后运用自己的体系架构打败对手的话

>我是说,中国人要自信,或者说现在不是计较细节的时候,不是说支那无贬义
贬义与否不是你自己说的算,词汇原意也不是你说的算

> (称赞对对手所受不公的大度忍耐)

如果我只是反驳你这一个观点,你就任意得出这个结论
辩论本身已经带有目的性、确定性了
观点带有盲目性,辩论还有什么意义呢

> 比如,废死能不能 (你想说不能有“结论” 的辩论?)
你OT
第一,你不能自己define一个词汇,然后觉得这个词汇就是自己所想的,然后你的思想和我define的词汇不一样,那就抛出我的高级见解
第二,如果我只是反驳你这点,你就能得出以上种种结论,那我觉得观点就已经带有目的性了
「你把支那定義成 CCP 惡行的總和」

>不得不说,这是本就少数自由派里的一种习惯; 体现了一个本身就是从二元对立里走出来的人群
不可能和神人一样,一下子就清醒了
實用主義的邏輯解釋一下支那能造成什麼正面效果

>可能让粉红在预言说中的情况下,信心崩溃,从而能好好辩论
这恰恰反映了你根本没有中间态(客观选项),你的发言很支离破碎,支那

>得了吧,你们也没有立论,只是在追说我歪曲名词(reclaiming slur)等不会辩论;单纯唱反并不显得有理 (我们到底在辩啥子? 不是如何应对民粹主义吗?)
啊对对对,所以我很少和老潘讨论政治

>...原来辩论不是有论题, 有 off topic 的东西吗,那种东西叫思维风暴吧。好吧,这也不是我和GPT交流的方式
我没有说我一定反对你的观点,但我没看到你有何立论, 只是说我不应该像民粹

我拋出實用主義來只是為了讓你有個臺階下,但是你的回答讓我覺得你根本沒有實際和你期望的族群辯論過 (我们只是在辩支那,你找错人了)
我觉得你很难去预测特斯拉的股票是跌还是涨,因为他很有可能是震荡

>所以说统计学和自由预测很重要啊 ,不能说什么都是“纯个人观点”
但科学的预测,永远不是自己定义一套体系,然后说服别人接受自己的体系;如果相信自己太绝对,我觉得这不是坏事,但是你要接受自己的得与失
你已经算是混乱中立

>所以我又修正了,然后你们就说我不会辩论; 你觉得辩论不应该有论点的“目的性”, 是因为真理和一些事实本就不绝对吗?
🤔 你们是在哪学到“define谬误 ” 的, 这种名词的主观化,我是发现不了

你们一直在鬼打墙前一个 , 我想谈的并不是支那是否伤害中国人,而是它在改变舆论是否利大于弊。所以说这种辩论没有结果啊,

因为我方要「面对」的族群根本就无法避免这种名词主观化,已经形成了“通话膨胀”, 你说的 same page ,就像纠结形式正义是否够力,对他们那是什么.. 他们连事实都能罔顾
#android duangsuse:
为什么binder服务端死亡可以通知到客户端,而服务端却无法感知客户端的死亡?或者说有什么方法可以让服务端知道app被kill的事件?

Android Binder 框架,accept 到客户端后如何检测其中断连接
Forwarded from Deleted Account
在 Android Binder 框架中,服务端对象可以通过为自身设置死亡代理(DeathRecipient)来检测客户端是否已将连接断开。当客户端进程意外终止时,Binder 内核驱动程序会向服务端对象发送一个通知,告知与其连接的客户端对象已经死亡,服务端对象在收到这个通知后就可以根据自身的业务逻辑处理相应的异常情况。

为了设置死亡代理,服务端对象可以在处理客户端的连接请求实现的相应方法中(如 onTransact())调用连续两次 IBinder.linkToDeath() 方法,将一个死亡代理对象 DeathRecipient 与客户端连接的 Binder 对象建立联系。当客户端对象意外终止或者断开与 Binder 对象的连接时,服务端对象会在 Binder 内核驱动程序发送的通知中得知,并在适当的时候处理相应的结果。

具体实现可以参考以下示例代码:

class MyService extends Binder {
private DeathRecipient mDeathRecipient;

public void setDeathRecipient(DeathRecipient deathRecipient) {
this.mDeathRecipient = deathRecipient;
linkToDeath(mDeathRecipient, 0);
}

@Override
protected boolean onTransact(int code, Parcel data, Parcel reply, int flags) {
// 处理客户端的连接请求
...

// 为客户端连接的 Binder 对象设置死亡代理
if (mDeathRecipient == null) {
mDeathRecipient = new DeathRecipient() {
@Override
public void binderDied() {
// 客户端对象已经死亡,处理相应的异常情况
...
}
};
linkToDeath(mDeathRecipient, 0);
}

// 正常处理客户端请求的逻辑
...

// 正常返回执行的结果
return super.onTransact(code, data, reply, flags);
}
}


在上述代码中,MyService 是服务端 Binder 对象的示例类,setDeathRecipient() 方法用于为该服务端对象设置死亡代理对象,并调用 linkToDeath() 方法将其与客户端连接的 Binder 对象建立联系。在 onTransact() 方法中,如果在服务端对象未设置死亡代理对象之前检测到客户端连接请求,则需要先为该服务端对象设置死亡代理对象。这样,在应用程序的整个生命周期中,对于客户端的连接请求处理中设置的代理对象都会被保留,并可在 Binder 内核驱动程序发送的通知中进行利用,检测相应的连接变化。

本次使用令牌数: 3339