duangsuse::Echo
不用 class 封装游戏对象还是有局限性吧…… 为了性能不能检查 func 返回值来看是否中断,也不能每次 requestAnimationFrame 去 try-catch 一个,我看只有整体做大一点,key handler 放外面,才能避免为一个 Esc 键退出弄额外开销 目前的设计还是站在 inline 优化可信的基础上,可这毕竟是循环引用(updateFunc),func 参数不可能被内联的 不过,requestAnimationFrame 要自体再调用本身就不可以内联吧…… 关键是这个 next…
https://duangsuse-valid-projects.github.io/Share/HTMLs/renju_spaceship/spaceship.html
大家可以在这里试玩 #web #js #code #project
按 1 增加一盘, 2 增加彩球(我在干什么我,为什么要用五子棋盘当靶子…… 🤪 )
asteroids 方向键控制、空格射击、B 键刷新,其他参考 www.websiteasteroids.com
大家可以在这里试玩 #web #js #code #project
按 1 增加一盘, 2 增加彩球(我在干什么我,为什么要用五子棋盘当靶子…… 🤪 )
asteroids 方向键控制、空格射击、B 键刷新,其他参考 www.websiteasteroids.com
#lib #doc #js ACE code editor
https://ace.c9.io/index.html#nav=howto
https://mivik.gitee.io/compress
https://file.xecades.xyz/Linux/GetKeyDown.html
https://stackoverflow.com/questions/8832320/how-can-i-highlight-code-with-ace-editor
https://medium.com/@jackub/writing-custom-ace-editor-mode-5a7aa83dbe50
https://github.com/ajaxorg/ace#features
https://stackoverflow.com/questions/18614169/set-value-for-ace-editor-without-selecting-the-whole-editor '
啊... 感觉 ACE 真的好草啊
设计上大概就是 replace, getValue 这些常用"UI"功能放 root object
replace(range,text), setValue 放 .session
getSelectedText(), insert(s) 放 .selection
但是它的 cursor 真的好难弄啊,为什么是 {line, column} 的形式呢(Range 也是这种,四元形式...),而且都只有 cursor/selection Left/Right/Up/Down 的无参函数,估计只是给 UI 绑定的
那你定义个鸡毛啊! 就这?! 要知道不管什么文本存储后端, LRUD 四向的代码几乎都差不多,你暴露接口,而且不支持 length 只能为 1? 也没有元编程便利性 API 辅助?
而且
无了无了
https://stackoverflow.com/questions/23278238/ace-code-editor-set-language-dynamically
https://stackoverflow.com/questions/20869962/what-are-the-requirements-for-mode-html-in-ace-editor
https://www.xspdf.com/resolution/54957281.html
https://ace.c9.io/index.html#nav=howto
https://mivik.gitee.io/compress
https://file.xecades.xyz/Linux/GetKeyDown.html
https://stackoverflow.com/questions/8832320/how-can-i-highlight-code-with-ace-editor
https://medium.com/@jackub/writing-custom-ace-editor-mode-5a7aa83dbe50
https://github.com/ajaxorg/ace#features
https://stackoverflow.com/questions/18614169/set-value-for-ace-editor-without-selecting-the-whole-editor '
editor.setValue() does selectAll, forgot to unselect it'啊... 感觉 ACE 真的好草啊
设计上大概就是 replace, getValue 这些常用"UI"功能放 root object
replace(range,text), setValue 放 .session
getSelectedText(), insert(s) 放 .selection
但是它的 cursor 真的好难弄啊,为什么是 {line, column} 的形式呢(Range 也是这种,四元形式...),而且都只有 cursor/selection Left/Right/Up/Down 的无参函数,估计只是给 UI 绑定的
那你定义个鸡毛啊! 就这?! 要知道不管什么文本存储后端, LRUD 四向的代码几乎都差不多,你暴露接口,而且不支持 length 只能为 1? 也没有元编程便利性 API 辅助?
而且
ace.edit(selector, options) 居然没有用,非得 editor.setOptions 才行无了无了
https://stackoverflow.com/questions/23278238/ace-code-editor-set-language-dynamically
https://stackoverflow.com/questions/20869962/what-are-the-requirements-for-mode-html-in-ace-editor
https://www.xspdf.com/resolution/54957281.html
session() 也挺有意思的,但凡桌面应用都要有撤销重做的能力,这个是 .setMode("ace/mode/sql") 都能重做一样Stack Overflow
How can I highlight code with ACE editor?
I'd like to syntax highlight more than a dozen small snippets of code and then make them editable with ACE Editor by clicking on them, since I think it would be much faster than setting up the full
https://stackoverflow.com/questions/43647415/jekyll-site-not-rendering-markdown #web #blog
https://docs.github.com/en/github/working-with-github-pages/creating-a-github-pages-site-with-jekyll
https://docs.github.com/en/github/working-with-github-pages/creating-a-github-pages-site-with-jekyll
Stack Overflow
Jekyll site not rendering markdown
I have an issue where my remote repository is updated, but my Github pages site will not update. The content of http://balassit.github.io/readings/GitNotes.md is outdated. I have verified that in my
duangsuse::Echo
https://duangsuse-valid-projects.github.io/Share/HTMLs/renju_spaceship/spaceship.html 大家可以在这里试玩 #web #js #code #project 按 1 增加一盘, 2 增加彩球(我在干什么我,为什么要用五子棋盘当靶子…… 🤪 ) asteroids 方向键控制、空格射击、B 键刷新,其他参考 www.websiteasteroids.com
关于飞机打炮游戏,吃饭时想到三点。 🌝 不过还是衷心希望能重构好,争取 300 行内的 #design #web #js #game
1. Vector {angle, distance} 与点击指定方向的计算
一直不清楚这个『矢量』到底指的是甚,它是仅从 (x,y) 总结出了 angle (rad), length 两个变量,我之前只知道可以从一点 +角度 +距离 得到另一点的,这个矢量是自己就有角度和长度吧 😰
要实现单击指定飞机方向,得有
可见计算机图形学的艰难了。
重写 Vector(x,y) 和 Line(p1,p2) 的时候我有一个点子,可以基于 js 反射做一个 2 tab 的 class 相等性检查器,栏1 输入代码,栏2 显示同名类/成员的树,可以用定义好的 sequence (random 集什么的) 去测试输出的一致性。 #tools
2. oneclick, dblclick, pressmove 事件的检测(detect)
DOM 的 InputEvent 只有 keydown,keypress,keyup ,没有 singleclick, doubleclick 什么的(这也是为什么许多时候只注册 keyup 事件而不能叫 click ,因为 click 指代的事情不明确)
游戏的触摸屏移植计划的是,单击打子弹、双击前进、按下+移动变方向。
doubleclick 的检测比较麻烦,要区分单击和双击,就得计算点击间隔,如果到时没连则为单击;不过用 DOM Event 二次封装事件还比较方便
之前还想了要不要移植个基于 DOM
3. 关于 mainloop key handle 和 draw (重绘) 的解耦数据建模方式
关于每帧绘制的情况,是可拆分的,游戏里 bullets, (爆炸的)particles 这俩元素每次更新都要重绘, player(rotation),flame 这俩在玩家的 spaceship 移动/旋转时重绘 😋
目前,作者的设计是各存一个
基本上可以说最少要几个
可以说数据模型是这样,怎么建模最易用,且最高效?
可以用两个 dict:
可以用一个 array:
或
最后我还是决定用第一个 array(原因见最下方),静态决定绘制顺(绘制会消耗时间 比如 player,flame 显然是一起绘制而且分先后的)
然后利用动态语言的特性 let 解构给 types 命名(player, flame, bullet...)。
因为 instances 的集合大小是动态的,显然持有的都只能是堆对象引用而不能直接分配,再说 JS 现阶段的优化不足以直接度量 struct size ,不如减少 [] 分配量
1. Vector {angle, distance} 与点击指定方向的计算
一直不清楚这个『矢量』到底指的是甚,它是仅从 (x,y) 总结出了 angle (rad), length 两个变量,我之前只知道可以从一点 +角度 +距离 得到另一点的,这个矢量是自己就有角度和长度吧 😰
要实现单击指定飞机方向,得有
relativeDegree(a, b) (或者 absolute?)这样的函数,我当然是不会写可见计算机图形学的艰难了。
重写 Vector(x,y) 和 Line(p1,p2) 的时候我有一个点子,可以基于 js 反射做一个 2 tab 的 class 相等性检查器,栏1 输入代码,栏2 显示同名类/成员的树,可以用定义好的 sequence (random 集什么的) 去测试输出的一致性。 #tools
2. oneclick, dblclick, pressmove 事件的检测(detect)
DOM 的 InputEvent 只有 keydown,keypress,keyup ,没有 singleclick, doubleclick 什么的(这也是为什么许多时候只注册 keyup 事件而不能叫 click ,因为 click 指代的事情不明确)
游戏的触摸屏移植计划的是,单击打子弹、双击前进、按下+移动变方向。
doubleclick 的检测比较麻烦,要区分单击和双击,就得计算点击间隔,如果到时没连则为单击;不过用 DOM Event 二次封装事件还比较方便
之前还想了要不要移植个基于 DOM
dispatchEvent 的虚拟方向键盘(肯定不会有操纵杆那么高级)过去,后来说不要了(想必也有轮子)3. 关于 mainloop key handle 和 draw (重绘) 的解耦数据建模方式
关于每帧绘制的情况,是可拆分的,游戏里 bullets, (爆炸的)particles 这俩元素每次更新都要重绘, player(rotation),flame 这俩在玩家的 spaceship 移动/旋转时重绘 😋
目前,作者的设计是各存一个
[] (当然是 unshift/pop 的 queue 模式),然后 refresh 时逐个绘制;这个流程是可拆分的没必要写死 「用数据代表程序,让程序融进数据」基本上可以说最少要几个
name 不同的 function draw(p) 和它的实例 args (例如绘制点、绘制角度)类型:绘制函数=1:1;类型:实例参数=1:N 可以说数据模型是这样,怎么建模最易用,且最高效?
可以用两个 dict:
renderers={"bullet":drawDot}, instances={"bullet":[Point(1,2),]} ,遍历 render 的 key 就行,但这样要 o[key] 两次 不是很高效可以用一个 array:
[[drawDot, Point(1,2)]] ,但这样是针对动态类型语言的(混淆了 args 的 sizeof)或
[[drawDot, [Point(1,2)]]] (for [render, instances] in types), register render 函数进去时就要用索引号,不方便最后我还是决定用第一个 array(原因见最下方),静态决定绘制顺(绘制会消耗时间 比如 player,flame 显然是一起绘制而且分先后的)
然后利用动态语言的特性 let 解构给 types 命名(player, flame, bullet...)。
因为 instances 的集合大小是动态的,显然持有的都只能是堆对象引用而不能直接分配,再说 JS 现阶段的优化不足以直接度量 struct size ,不如减少 [] 分配量
Forwarded from &'a ::rynco::UntitledChannel (Rynco Maekawa)
Cockroach Labs | 如何在键值存储引擎上构建关系型数据库
https://www.cockroachlabs.com/blog/sql-in-cockroachdb-mapping-table-data-to-key-value-storage/
疑 惑 解 答
https://www.cockroachlabs.com/blog/sql-in-cockroachdb-mapping-table-data-to-key-value-storage/
疑 惑 解 答
Cockroachlabs
SQL in CockroachDB: Mapping table data to key-value storage
SQL? I thought CockroachDB was a key-value store?!? In the past we described CockroachDB as a distributed, transactionally consistent, key-value store.
#Ruby
草 好怀念啊; Ruby 的 OOP 是怎么玩的都忘掉一大半,还好基础语法、控制流和 mixin 什么的都没忘... 🤪
不过 gem 工具下载也没个提示,还不如 pip 。这些脚本语言的开发者很多人都喜欢搞 term color ,但是竟连搞好交互和灵活性都不会
什么时候能写 bash_completions 才能算好的 cli 开发者吧
Python 的各种新 pm 不用 pip 和 setuptools 都不会弄了, Ruby 还是自带 bundler, install 。
真的搞不懂 isolation 是在干什么,为什么要 isolate dependencies 啊,为什么要 venv 啊,直接用系统版本,向前兼容不好吗
妈耶, MRI 2.6 的 libruby.so 更新,还要这么操作才能修复老库,试了半天 #GitHub 发现还是只能按官方用 bundler 来... 不然识别不了插件
这个东西把
还好渲染是正常的,所有 md 文件不管带不带 header 都支持
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ 草 好怀念啊; Ruby 的 OOP 是怎么玩的都忘掉一大半,还好基础语法、控制流和 mixin 什么的都没忘... 🤪
不过 gem 工具下载也没个提示,还不如 pip 。这些脚本语言的开发者很多人都喜欢搞 term color ,但是竟连搞好交互和灵活性都不会
什么时候能写 bash_completions 才能算好的 cli 开发者吧
Python 的各种新 pm 不用 pip 和 setuptools 都不会弄了, Ruby 还是自带 bundler, install 。
真的搞不懂 isolation 是在干什么,为什么要 isolate dependencies 啊,为什么要 venv 啊,直接用系统版本,向前兼容不好吗
sudo gem pristine commonmarker 妈耶, MRI 2.6 的 libruby.so 更新,还要这么操作才能修复老库,试了半天 #GitHub 发现还是只能按官方用 bundler 来... 不然识别不了插件
echo 'gem "github-pages", "~> 211", group: :jekyll_plugins'>Gemfile
bundler exec jekyll s 这个东西把
Others/CommentBot/vertxBusGen/build/js/node_modules/balanced-match/README.md 的 node_modules 也 include 进去了,结果 Liquid 模板语法错误 😂还好渲染是正常的,所有 md 文件不管带不带 header 都支持
GitHub Pages
Dependency versions
GitHub Pages uses the following dependencies and versions
https://ace.c9.io/index.html#higlighter=&nav=higlighter
#parser 都是只支持内部状态机分词吗... Kate KSyntaxHighlight 也是
看来不能靠解析器导出 span 区间,还得想办法导出 tmlanguage,然后让它去支持新语言 tokenize rules...
也的确是…… 编辑器用状态机维持高亮的话就能避免完整解析了,如果算法写得好而词法规则又允许的情况下
#parser 都是只支持内部状态机分词吗... Kate KSyntaxHighlight 也是
看来不能靠解析器导出 span 区间,还得想办法导出 tmlanguage,然后让它去支持新语言 tokenize rules...
也的确是…… 编辑器用状态机维持高亮的话就能避免完整解析了,如果算法写得好而词法规则又允许的情况下
#game #web https://github.com/stevenjoezhang/osmos.io 🌝 大鱼吃小鱼,好玩
游戏逻辑/UI 是原项目提供的 ,这个做了一个 WebSocket online playing
游戏逻辑/UI 是原项目提供的 ,这个做了一个 WebSocket online playing
GitHub
stevenjoezhang/osmos.io
Multi-player Osmos game. Contribute to stevenjoezhang/osmos.io development by creating an account on GitHub.
https://duangsuse-valid-projects.github.io/Share/HTMLs/anim
目前还在检查 syntax highlight 以及 Android 支持...
https://github.com/Ray-Eldath/offgrid/blob/master/src/main/kotlin/ray/eldath/offgrid/model/UserData.kt #kotlin #service #docker overdesign
https://github.com/Ray-Eldath/DebateDownCounter/blob/master/src/main/main.ino #embedded #clang
目前还在检查 syntax highlight 以及 Android 支持...
https://github.com/Ray-Eldath/offgrid/blob/master/src/main/kotlin/ray/eldath/offgrid/model/UserData.kt #kotlin #service #docker overdesign
https://github.com/Ray-Eldath/DebateDownCounter/blob/master/src/main/main.ino #embedded #clang
Share
Animations
🐕 duangsuse’s shared files(e.g. productive software projects, documents)
#security #freedom #GitHub Signal IM 是理念类似 #Telegram 的 IM
它的 TLS 代理(类似 MTProto 代理)存在可被主动探测问题(不仅在中国不安全,如果伊朗有方教授那种人,也不安全)
有毛病,提isssue,带上poc和建议
然后直接给你三步操作:
1 close issue
2 关掉整个 issue 区域
3 让你去他们专门的论坛
https://signal.org/blog/help-iran-reconnect/
帖子里说为了能让更多的伊朗兄弟连上 Signal,他们自己造了一个 TLS 代理,在 TLS 隧道里跑 Signal,然后用 SNI 白名单控制访问。
我(指投稿者Duck)和 @studentmain 读完当时就觉得不对劲——这东西扛不住主动探测呀。没有 PSK,你用 Signal 客户端流量直接试就能试出来这是不是一个 Signal 代理。
于是我们觉都没睡,连夜码字指出问题(于是被删了)
它的 TLS 代理(类似 MTProto 代理)存在可被主动探测问题(不仅在中国不安全,如果伊朗有方教授那种人,也不安全)
有毛病,提isssue,带上poc和建议
然后直接给你三步操作:
1 close issue
2 关掉整个 issue 区域
3 让你去他们专门的论坛
https://signal.org/blog/help-iran-reconnect/
帖子里说为了能让更多的伊朗兄弟连上 Signal,他们自己造了一个 TLS 代理,在 TLS 隧道里跑 Signal,然后用 SNI 白名单控制访问。
我(指投稿者Duck)和 @studentmain 读完当时就觉得不对劲——这东西扛不住主动探测呀。没有 PSK,你用 Signal 客户端流量直接试就能试出来这是不是一个 Signal 代理。
于是我们觉都没睡,连夜码字指出问题(于是被删了)
duangsuse::Echo
#security #freedom #GitHub Signal IM 是理念类似 #Telegram 的 IM 它的 TLS 代理(类似 MTProto 代理)存在可被主动探测问题(不仅在中国不安全,如果伊朗有方教授那种人,也不安全) 有毛病,提isssue,带上poc和建议 然后直接给你三步操作: 1 close issue 2 关掉整个 issue 区域 3 让你去他们专门的论坛 https://signal.org/blog/help-iran-reconnect/ 帖子里说为了能让更多的伊朗兄弟连上…
补充几个给想吃瓜的链接: #opensource #security #censored
https://github.com/net4people/bbs/issues/60
https://github.com/signalapp/Signal-TLS-Proxy/issues/3
频道主觉得,有问题就要改,不要低估伊朗政府的封锁能力吧。
PoC(理念验证) 是用 #golang 写的,送信流是
“ I've quickly scanned the code, so this is just a TLS tunnel set up to forward inner TLS traffic with signal SNIs as-is.
后面还提了改正建议,并且表明如有疏漏自己会改正,但 Signal 选择禁止评论🥱。
https://community.signalusers.org/t/tls-proxy-server-unable-to-survive-active-probing-from-internet-surveillance-systems/27282 看看能活多久
👆🏼 补充:活下来了,瓜变大了 😋
试想:如果用 MTProto Proxy 不就没有问题了吗🥴😂 #都是高手
—
订户评论: 🌝 #DontKnow
避免主动探测
1就是要做得像个普通的网页服务器一样,无论是浏览器访问看起来还是实际上的流量分析。
2就是要有一定的门槛才能使用,别一个客户端对着一个服务器端口凑上去就全都招了“对对对我就是Signal的代理服务器,能找到我辛苦了,我这就帮你连上Signal的服务器”殊不知对面的是网络监视系统在打探自己。
至少像telegram这样,加个secret
不带个正确的secret凑上去就表现得像个普通的网页服务器一样
顺带:secret前加ee的是fake TLS代理
signal这个实现。。。。。。妈的,傻逼,一个signal客户端对着一个怀疑是代理服务器的家伙连上去就全都招了
https://github.com/net4people/bbs/issues/60
https://github.com/signalapp/Signal-TLS-Proxy/issues/3
频道主觉得,有问题就要改,不要低估伊朗政府的封锁能力吧。
PoC(理念验证) 是用 #golang 写的,送信流是
net.Dial("tcp",s) +二层 tls.Clent(c0,{serverName:server/sni,allowInsecurity}),才 40 行左右,核心代码才 5 行而且无需 tls 外任何算法,可以说是很低级的漏洞了。“ I've quickly scanned the code, so this is just a TLS tunnel set up to forward inner TLS traffic with signal SNIs as-is.
后面还提了改正建议,并且表明如有疏漏自己会改正,但 Signal 选择禁止评论🥱。
https://community.signalusers.org/t/tls-proxy-server-unable-to-survive-active-probing-from-internet-surveillance-systems/27282 看看能活多久
👆🏼 补充:活下来了,瓜变大了 😋
试想:如果用 MTProto Proxy 不就没有问题了吗🥴😂 #都是高手
—
订户评论: 🌝 #DontKnow
避免主动探测
1就是要做得像个普通的网页服务器一样,无论是浏览器访问看起来还是实际上的流量分析。
2就是要有一定的门槛才能使用,别一个客户端对着一个服务器端口凑上去就全都招了“对对对我就是Signal的代理服务器,能找到我辛苦了,我这就帮你连上Signal的服务器”殊不知对面的是网络监视系统在打探自己。
至少像telegram这样,加个secret
不带个正确的secret凑上去就表现得像个普通的网页服务器一样
顺带:secret前加ee的是fake TLS代理
signal这个实现。。。。。。妈的,傻逼,一个signal客户端对着一个怀疑是代理服务器的家伙连上去就全都招了
GitHub
Signal's TLS Proxy Failed to be Probing Resistant and seems leaky · Issue #60 · net4people/bbs
Links Signal Post: https://signal.org/blog/help-iran-reconnect/ Their Repository: https://github.com/signalapp/Signal-TLS-Proxy Our Original Issue: https://github.com/signalapp/Signal-TLS-Proxy/iss...
Forwarded from &'a ::rynco::UntitledChannel (Rynco Maekawa)
- 为什么在降落的时候只点燃两颗引擎?这样的话,任意一个坏掉都会降落失败,你就有两个单点故障了。为什么不点燃三颗,然后选择表现最好的两颗关掉第三颗?
- 我们太傻了
- 我们太傻了