返回首页
24小时热榜
亲爱的HN社区,
Turnstile让我生活得非常痛苦。大约一年前,我在手机上无法通过任何挑战。我在Linux(PureOS Byzantium)上使用Firefox ESR系统包。每当Turnstile给我一个复选框挑战时,它就会让我无法登录和填写反馈表等。这对我来说是个大问题,因为我无法登录一些我付费的服务。
不仅Turnstile的复选框经常出现,每当我点击它时,它就会在一个无尽的循环中转动,始终没有任何进展。无论我重新加载和重试多少次,它总是给我这个无尽的转圈。
今年我已经填写了数十份Cloudflare的反馈表,但情况没有任何改善。相反,随着越来越多的网站加入并集成Turnstile,情况变得更糟。感觉Cloudflare根本没有人关注我的反馈。天哪,我愿意付钱给他们,只希望Turnstile能让我安静下来,让我像以前一样在手机上上网。
我并不介意看到复选框(我明白看到复选框已经是他们将我的浏览器标记为可疑的迹象),我只是想用我真实的、活生生的手指通过Turnstile,继续我的日常生活。
我甚至不在乎底层的技术问题是什么。他们不必告诉我我的手机在他们的机器人检测系统中到底卡在哪里。我只希望他们能修复这个误报,让我能再次平静地浏览网页,忘记Cloudflare的存在,就像其他人一样。
我已经忍受这个问题一年了,变得如此烦人,以至于感觉像是卡夫卡式的困境。
有什么建议吗?有没有Turnstile的联系人可以让我联系?
为了更好地与我的团队分享如何访问Kubernetes和Terraform环境,并为每个环境设置明确的提示以避免错误,我开发了sbsh。
sbsh提供了持久的终端会话,内置发现功能、环境配置文件以及用于自动化的API。
**问题:**
- 访问多个Kubernetes集群和Terraform工作区所需的复杂配置,包括设置可视化提示以识别生产环境并避免错误
- 每个环境的环境变量和凭证的手动设置
- 没有简单、可共享的方式在团队中重现这些配置
- 缺乏结构化日志或对现有会话的可见性
- 在调试或长时间任务中SSH会话意外中断
**工作原理:**
sbsh将终端会话(你的shell和环境)与管理程序(控制器)分开。即使管理程序停止或网络连接中断,终端仍会继续运行。
**关键特性:**
- 终端会话发现:`sb get` 列出所有会话,`sb attach mysession` 可立即重新连接
- 配置文件:为Kubernetes上下文、Terraform工作区或Docker容器定义的YAML环境,在本地开发和CI/CD中完全相同
- 多用户连接:多个用户可以连接到同一个实时会话
- API访问:以编程方式控制和自动化会话
- 结构化日志:所有输入和输出都被记录,便于重放或分析
**使用案例:**
- DevOps:持久的kubectl或Terraform会话
- 开发者:在不稳定连接上进行长时间运行的测试和构建;启动Python环境、npm项目等
- CI/CD:本地和管道环境中的相同配置文件
sbsh是一个单一的Go二进制文件(类似busybox),也可以用作登录shell。它可以在Linux、macOS和FreeBSD上运行。
代码库:github.com/eminwux/sbsh
我已经使用它一段时间了,它彻底改变了我管理基础设施的方式。我很想听听反馈,并看看其他人可能如何使用它。
嗨,HN!我是Vince。我构建了Nallely,这是一个模块化的反应式Python框架,用于通过将信号处理模块连接在一起来创建自定义MIDI乐器,就像一个控制系统的模块化合成器。Nallely专注于实时、线程隔离的反应式行为,让你可以实验新兴的行为。
<p>演示视频:<a href="https://www.youtube.com/watch?v=rbMnKAdqAVI" rel="nofollow">https://www.youtube.com/watch?v=rbMnKAdqAVI</a>,展示了从零开始构建一个补丁,并在最后进行热调试。</p>
<p>主要特点:
* 连接反应式模块(神经元)的可视化补丁界面,
* 通过Python API、WebSocket和/或代码生成进行扩展,
* 集成任何输入源(MIDI、网络摄像头等)以控制合成器。</p>
<p># 是的,但为什么?
现有的软件/库虽然在MIDI操作方面功能强大,但不利于实时实验。它们是低级的,难以动态重连,且通常对于嵌入式或无头设置来说负担较重。我希望有一个系统能够动态演变,模块可以实时补丁、热插拔和调试。</p>
<p># 架构
该系统围绕一个没有共享数据的反应式线程模型构建:每个神经元都在自己的线程中运行,并通过通道发送消息进行通信。不再有CC……在神经元级别,一切都是信号(一个简单的整数/浮点值随时间变化)。没有全局时钟,每个神经元都在自己的时间上工作。由于每个神经元都是反应式的,它们大部分时间处于休眠状态。该系统深受“系统如生命体”哲学和Smalltalk的启发,将每个线程视为一个小的生命实体,而不仅仅是一个处理单元。以下是如何编写一个简单的采样保持模块:</p>
```python
class SampleHold(VirtualDevice):
input_cv = VirtualParameter(name="input", range=(0, 127))
trigger_cv = VirtualParameter(name="trigger", range=(0, 1), conversion_policy=">0")
@on(trigger_cv, edge="rising")
def hold_value(self, value, ctx):
return self.input
```
<p>控制层使用一个小型WebSocket协议,反应式的Web UI利用它来控制和检查会话。一个WebSocket总线神经元允许外部应用程序自动注册,以发送/接收信号:网络中的另一个神经元可以提供从任何源捕获的信号。它们对于在不同机器上分配计算负载非常有用。</p>
<p># 到目前为止我学到了什么
在MIDI/音乐上下文中,简单的线程模型可以非常强大:
* 你可以停止/恢复一个线程,毫无缝隙地停止处理链的一部分;
* 溢出的神经元可以减轻压力,而不会影响整个会话;
* 如果一个线程崩溃,它会被暂停,以便你能够调试该实例,并恢复它;
* 简单的WebSocket具有可接受的吞吐量。</p>
<p>我原本以为一个完全基于Python线程的系统会非常低效,但结果出乎意料地合理。根据经验,我发现每个线程的CPU使用率约为1-2%。一个20线程的经典会话(约45个补丁)在CPython 3.13 GIL下大约使用21%的CPU和45MB的内存。CPython 3.14无GIL显示出类似的CPU使用率,但内存约为65MB。反馈循环会提高使用率(约38%)。有趣的是,在CPython 3.13中,负载分布在多个核心上,我想线程足够休眠,能够频繁释放GIL。</p>
<p># 尝试一下!
你可以在最新的GitHub Actions构建的工件中获取预编译的PyInstaller二进制文件。文档链接在自述文件中,深入文章可以在这里找到:<a href="https://dr-schlange.github.io/nallely-midi/posts" rel="nofollow">https://dr-schlange.github.io/nallely-midi/posts</a>。</p>
<p># 我希望得到反馈
* 有什么可以改进的地方,以便让人更容易上手?
* 是否存在盲点或设计选择,可能在长期内造成问题?
* 尽管它是以MIDI为导向,但系统实际上是信号无关的,有什么非音频使用案例的想法吗?(例如视觉等)</p>
我很欣赏关于“谁在招聘 / 谁想被招聘”的帖子。我想知道我们是否可以稍微改变一下这个模式,讨论一下人们是如何找到他们现在的工作,或者那些在他们职业生涯中有意义和影响力的工作的。
定位:你是如何找到这份工作的?是这份工作找到你的?
面试:你做过什么让你脱颖而出的事情吗?有没有一些可能不太直观的不同策略?
生存:每份工作都有其缺陷,你是如何在面对让之前的工作变得困难 / 不愉快 / 无法忍受的问题时,维持自己的收入能力的?
我目前失业,早些时候辞去了在美国某州工作的职位,因为他们没有将软件开发视为一项重要工作。当你无法进行任何测试,得不到基础设施或项目管理的支持,所有事情都必须自己在一个封闭的环境中完成时,完成工作是非常困难的。还得在一个储藏室里的服务器上运行应用程序。
这是我人生中第一次“选择自己”,辞去了对我的心理健康产生非常负面影响的工作。找到一种方法重新回到职场很困难,因为我需要面对对敌对和有毒工作环境的恐惧。
希望能得到一些想法或方向,给我一些新的尝试,而不是一遍又一遍地做那些失败的事情。