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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#ce #tool 有意思,不过看了 React 式的 declarative 和老式的 template, 我都不满意。命名前缀重复了
Forwarded from duangsuse Throws
#school #life 您的高职高专批文理类志愿于9月8日22:02填报成功。【湖北阳光招生】
duangsuse Throws
#school #life 您的高职高专批文理类志愿于9月8日22:02填报成功。【湖北阳光招生】
当然还是要改的。
自以为自己编程应用能力不错,其实也没有做到定义式表述式随意切换、异步索引区间DOM不求人的程度吧?(话说和这个有什么关系……这几天都不编程了,伤身体)
封装了一下就不报错了,太奇怪了
Forwarded from Rachel 的消息发布站点 (Rachel 孤寡)
app-release.apk
77.5 KB
听说搭载了 Android R 的一些设备隐藏了系统自带的 Files 所以某个🌶🐔开发者又来了
这个应用的功能就是调起 Android 自带的 Files,可以是 com.google.android.documentsui 也可以是 com.android.documentsui
帮人顺带折腾的,因为真的很简单而且特地水个应用很丢人所以就不上市场了,而且以后不一定还会更新(或者一定不)
不过顺便丢上了 GitHub https://github.com/Rachel030219/FilesLauncher

话又说回来,这玩意儿有多简单?我打开这个 Project 的一半的时间在和应用图标搏斗……
Forwarded from Yuze Wu | 女子高中生 | 喵!
Forwarded from dnaugsuz
蛤为废物。重构都不会-_-||
[synfig/synfig: This is the Official source code repository of the Synfig project](https://github.com/synfig/synfig)
[gtkmm · GitHub Topics](https://github.com/topics/gtkmm)
[cyrillwork/CuteCalibrator: Calibration program for Linux](https://github.com/cyrillwork/CuteCalibrator)
[dav991/octotouch: This is a touch interface for octoprint. It is writen in C++ with GTK interface.](https://github.com/dav991/octotouch)
[The GTK Project - A free and open-source cross-platform widget toolkit](https://www.gtk.org/)

Gtkmm 居然是 Gtk+ 的意思…… 我还以为是Gtk-- (minus-minus) 呢,这设计者真是调皮了 🤪
原来 Cairo 是 Gtk 系的图形库啊,可是为什么感觉 Cairo dock 性能还可以、 Synfig 的性能不如 Krita 呢(迫真
[GTK+ 3 Reference Manual: GTK+ 3 Reference Manual](https://developer.gnome.org/gtk3/stable/)
[GtkPlug: GTK+ 3 Reference Manual](https://developer.gnome.org/gtk3/stable/GtkPlug.html)
[Widget Gallery: GTK+ 3 Reference Manual](https://developer.gnome.org/gtk3/stable/ch03.html)
[GtkListBox: GTK+ 3 Reference Manual](https://developer.gnome.org/gtk3/stable/GtkListBox.html)
[GtkPaned: GTK+ 3 Reference Manual](https://developer.gnome.org/gtk3/stable/GtkPaned.html)

话说 gtk3-demo , gtk3-widget-factory (竟然还有 GTK Inspector 这种高级玩意), gtk3-icon-browser 都很好玩啊(可惜没有在线资源,想就是有这种实例就够了)
还有 gtk-builder-tool, gtk-query-settings, gtk-encode-symbolic-svg, gtk-launch 以前都没见过
天哪, GTK 还有这种操作(虽然只是让 GDK 用不同后端渲染... 话说 ATK 和 GTK 又和 GDK 是什么关系, GTK 代表平台整体?)

broadwayd :5
export GDK_BACKEND=broadway BROADWAY_DISPLAY=:5
gtk3-demo& gtk3-widget-factory


访问 http://127.0.0.1:8085 即可,看起来是可以做远程视频演示(迫真,那肯定包含多人协作... 只是显式后端而已)
https://developer.gnome.org/gtk3/stable/broadwayd.html
这个“后端”好像涵盖了输入和渲染,所以这里没有 OpenGL ,而且好像是默认为(browser)触摸屏一样

记得以前有个 Android XSDL 的,也可以实现类似的效果,不过那个是 X Server 层面的,这个是 GTK 的显式后端
GTK_DEBUG=interactive gtk3-icon-browser 草 GTK+ 还有这种便利啊…… 像 browser 一样可以 inspect element (条件:libgtk 带 debug flag 编译)... 没想到 GTK 也走出自己的路子来鹅
我TMD 简直是欲哭无泪啊…… 本来以为这破烂四官格不是 GTK 的(怎么可能不是呢)而是由于没有 panel 的全局 drag-drop 状态导致的未解决问题,或者是 Gtkmm(即Gtk+) 自作主张给 PanedWindow(不是,这应该读 SeparatedWindow 吧) 加了这个辅助创建新 Panel 方向的特技,没想到竟然是 Notebook::header 里加了个 GtkTable... 特地这么设计的么? 而且还没用流行的 Grid(吐嘈的点很奇怪啊)
duangsuse::Echo
我TMD 简直是欲哭无泪啊…… 本来以为这破烂四官格不是 GTK 的(怎么可能不是呢)而是由于没有 panel 的全局 drag-drop 状态导致的未解决问题,或者是 Gtkmm(即Gtk+) 自作主张给 PanedWindow(不是,这应该读 SeparatedWindow 吧) 加了这个辅助创建新 Panel 方向的特技,没想到竟然是 Notebook::header 里加了个 GtkTable... 特地这么设计的么? 而且还没用流行的 Grid(吐嘈的点很奇怪啊)
要解决也很简单。 所谓的 Panel (带 TabWidgetDockWidget) ,每个的最右都默认带上这个 vcenter 的 GtkTable, 不过默认不显示
加一个 MainWindow (GtkApplication) 层面的 bool ,只要有 Panel 被拖拽,要么在 drag-over(drag-motion) 里检查并显示要么维护一个 Panel 列表然后每次 drag 去 foreach 显示, drop 或 drop-fail 时再隐藏就好

真搞不懂为什么要做成一直显示的设计,难不成是复制粘贴的代码太多了,连 PanelBox 也没抽象出来? 🤔
https://developer.gnome.org/gtk3/stable/gtk-migrating-smclient-GtkApplication.html
不知道为什么,虽然自动化程度一般,我突然觉得要设计那个什么『鸿蒙操作系统』, GTK 的大佬都比蛤为有发言权…… 至少人家知道怎么给桌面应用程序提供它们需要的 service
let a=v in expr 是函数式 #FP 里常用的“赋值”方法(但不能重赋值,本质上类似内联的局部函数调用,仍属表达式)

仔细想一想,换成语句的思路也可以:
stmts.foldRight(Return) { expr, s -> if (s !is Assign) s else LetIn(s.variable, s.value, (expr as ExprStmt).expr) }
当然前提是都是表达式语句,的确可以这么弄啦,不然得用 run block