duangsuse::Echo
583 subscribers
4.12K photos
118 videos
579 files
6.13K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
https://segmentfault.com/a/1190000012641345 #Java #DontKnow #Stream
其实 ParserKt 里出现过的 Reducer 在 Java stream 里叫 Consumer, 动词都一样

这是个 Java8 StreamForker 实现,可以流一遍出多个结果,实质上和我的版本功能一致

简单说下, builder() 出一个 Consumer 然后会被拿去 sequential().forEach()
其中 m1.entries.reduce(new Map 的是 ... 啊不对, reduce(initial, op, op_finish={ m1.putAll(m2); m1 })
这实际相当于 forEach { (k,v) -> m1[k]=waitOperationTo(queues, v) }
其中 queues:List<BlockingQueue<T>>
m1=forks as Map<Object, Function<Stream<T>, ?>>

waitOperationTo 把 StreamSupport.stream(newSpliterator(addQueue()) ) 在 CompletableFuture.supplyAsync 里 apply 给 op

它返回 ForkingStreamConsumer(queues,actions=m1) , 这个里面定义一个 EndOf S(tream) 对象是“帮助”被 queue 的子 stream 鉴别的, finish() 时使用

accept() = queues.forEach(q -> q.add(item));
get(i) = ((Future<R>) actions[i]).get();
Forwarded from dnaugsuz
https://tttttt.me/dsuse/15727
总结了下,最后得出三行:
workers: Map<Object, Pair<Queue<T>, Future<R>>> = forks.entries.associate { (k,op) -> val q=BlockingQueue(); k to (q to Complet_Future.supplyAsync(op.bind(SSupport.stream(BQSpilterator(q)) ))) }

apply(x) = workers.forEach { it.first.add(x) }
get(k) = workers[k].second.get()/*await*/


queues 也可以不放在 Pair.first ,而独立成 List 或 Set 。
原版的其它函数:
finish() = apply((T)(Object)END_OF_STREAM) //unchecked cast

getResults() = sequential().forEach { accept(it) }.let { finish(); this }


Forker 类的 fork() 和 build() 感觉不至于用设计模式、命名失败,不作评。

Forker 可以用于归纳流至结果(如 1,2,3 => 6),但是默认带 async ,而且你的 op: Function<Stream<T>,?> 必须处理一个 (Object)END_OF_STREAM ,返回类型无泛型参数,需强转
看了我真的觉得一些 JavaEE 者必须学习一个,净搞些花里胡哨的,功能都没做好。
#js #lib #performance #gui https://editor.datatables.net/generator/
🤔 想起了 #Qt Model/View 的 delegate 和 createEditor 什么的... 但其实从 row 建立可搜索、可排序、可编辑的 table 并不需要那么多名词吧

https://github.com/fiduswriter/Simple-DataTables
嘛,虽说是 lightweight ,其实连 Date format 都支持...

http://fooplugins.github.io/FooTable/ 感觉还是这个最好看

https://github.com/frappe/datatable 这个也支持 inline editing
https://github.com/future-architect/cheetah-grid 有创意,内带比率可视化支持
https://github.com/mleibman/SlickGrid/wiki/Examples 感觉最糟糕的一个
https://github.com/bvaughn/react-virtualized 第二糟糕的
https://github.com/ratiw/vue-table 最像 Qt 的一个... 不对,这不像 Qt
https://github.com/jiren/StreamTable.js 支持 #stream 但只能用 templating 的一个
http://swimlane.github.io/ngx-datatable/#filter Angluar 的一个
https://github.com/daniel-nagy/md-data-table#demo Material #Design 的一个,作者眼力是不是不好... README.md 那么多示例 table 放着呢
https://clusterize.js.org/ #performance #web 🤔给 <tr> 甚至 <il> <div> tag 做 chunking 的简易 js 优化