1作者: DenisDolya3 个月前原帖
版本1.2引入了两个LZW后端(安全的边界检查与不安全的涡轮模式)、微缓存以实现30-40%的解码速度提升、三种输出格式(RGB888/RGB565LE/RGBA8888)、基于跨度的涡轮位图处理、可选的256KB RGB565 map2以实现一次渲染两个像素、对正确的处置方法3的支持、用于索引输出的渲染器API、在需要原始速度时禁用检查的安全开关,以及避免符号冲突的前缀模式——所有这些都在用户提供的临时缓冲区上实现100%无malloc分配。<p>仓库链接:<a href="https://github.com/Ferki-git-creator/TurboStitchGIF-HeaderOnly-Fast-ZeroAllocation-PlatformIndependent-Embedded-C-GIF-Decoder" rel="nofollow">https://github.com/Ferki-git-creator/TurboStitchGIF-HeaderOn...</a>
1作者: StrangeSound3 个月前原帖
嘿,HN, 在2024年,我的儿子出生了。在漫长的夜晚频繁醒来的时候,我开始(但从未完成)构建一个Electron应用。我很快发现,连接主进程和渲染进程所需的样板代码非常繁琐。我相信和许多人一样,我开始围绕它构建抽象,以便让生活更轻松。 由于在工作中深受NestJS生态系统的影响,我开始喜欢依赖注入(DI)、装饰器和声明式编程风格。 我第一次尝试抽象的结果相当平庸,但我最近决定再试一次。我更加深入地使用装饰器,以便为库提供一种简单易用的干净语法。然后,我将其打包,以便其他人也可以使用。 Electron IPC Bridge允许你在主进程中装饰你的类,并自动配置预加载中的合同。随附的vite插件从这些合同中生成类型,并确保渲染器中的类型安全。如果你更改了合同,类型也会自动更新。简单易用! 之前的代码: ```javascript // 主进程 ipcMain.handle("users.get_profile", async (_event, userId: string) => { return userService.getProfile(userId); }); // 预加载 // 容易出错的通道,或者忘记注册 contextBridge.exposeInMainWorld("api", { getProfile: (id: string) => ipcRenderer.invoke("users.get_profile", id), }); // 渲染器 // 没有类型安全 const profile = await window.api.getProfile(userId); ``` 之后的代码: ```javascript // 主进程 @IpcController() class UsersController { @IpcHandle() async getProfile(userId: string) { return userService.getProfile(userId); } } // 预加载 setupPreload(); // 渲染器 // 100% 类型安全,自动生成的合同,支持IDE自动补全 const profile = await window.api.users.getProfile(userId); ``` 我还尝试提供了一些不同的依赖注入库示例,以帮助人们入门。我把我原来的未完成应用迁移得相当顺利!现在它也使用Nest而不是typedi。 AI披露: 核心:大约90%是手写的,部分地方有一些辅助和重构 Vite插件:大约50/50,倾向于AI主导,因为我在Vite方面的经验不足 文档:大部分是我写的,但AI规划了网站结构,并审核和编辑了我写的内容。它还编写了故障排除页面,并为我生成了一些图表。 这篇帖子完全是我写的!
1作者: gg_equal_G3 个月前原帖
嗨,HN, 我创建Horizon是因为我在信息过载中感到窒息。我关注了数十个RSS源、子版块、GitHub用户,当然还有HN本身。我发现自己花了几个小时“无目的地滚动”,只为了找到3-4个对我的工作和兴趣真正重要的内容。 Horizon是一个个人智能助手,自动化处理这一过程。它不仅仅是聚合信息;它还会过滤和丰富内容。 它的工作原理如下: 抓取:从GitHub(发布/事件)、Hacker News、Reddit以及任何RSS源提取信息。 评分:使用大型语言模型(如Claude、GPT-4、Gemini,或通过OpenAI兼容API的DeepSeek)根据您的特定兴趣/标准对内容进行评分。 丰富:对于高评分的项目,执行网络搜索以添加原始片段中可能没有的上下文。 总结:生成一个干净的每日Markdown报告,并可选择将其部署到静态网站(GitHub Pages)。 演示: [https://thysrael.github.io/Horizon/](https://thysrael.github.io/Horizon/)
1作者: femtobusa3 个月前原帖
Mac 有 Screen Studio,Windows 有 FocuSee,但 Ubuntu 却没有类似的工具。<p>我开发了 Screenix 来填补这个空白。它在录制过程中提供平滑的光标跟随缩放效果,支持 60fps 捕捉,无需后期处理。这是一款可以直接使用的工具,无需在 OBS 设置中花费一个小时。<p>目前仅支持 X11/Xorg。Wayland 的光标位置在协议层面受到限制,因此我首先专注于完善 Ubuntu 的 X11 支持,然后再进行扩展。<p>screenix.studio
1作者: nabuhad3 个月前原帖
嘿,HN, 我在观察一位我熟识的天使投资者仅凭15分钟的推介和直觉做出五位数投资决策后,创建了Brevoir。没有研究基础设施,没有分析师,只有感觉和一份演示文稿。结果发现,这几乎是所有早期投资者面临的问题。 在过去十年中,个人投资者市场迅速增长,但相关工具却未能跟上。现有的工具是为拥有研究团队和分析师预算的机构所设计的。没有人为那些自己撰写支票的个人投资者建立基础设施层。 Brevoir就是这个基础设施层。只需上传一份推介文稿或公司网址,平台就会在不到2分钟内生成一份涵盖七个部分的全面尽职调查报告:创始人背景、市场验证、竞争对手分析、市场反应信号、风险警示、可比分析以及Brevoir评分。我们使用平行研究代理、行业领先的OCR和网络爬虫技术,以及大量投资特定逻辑,确保输出结果不仅仅是摘要,而是可供决策的报告。 此外,我们刚刚推出了一个完整的交易管理平台,包括看板管道、交易室、标签和CSV导入功能。Brevoir是个人投资者从初步评估到决策的整个交易流程的操作系统。 首份报告免费,无需信用卡。希望能收到任何评估初创公司的人的反馈。 brevoir.com
1作者: tradrich3 个月前原帖
在量化开发中,市场速度(Python)与账面速度(C++)之间存在着持续的紧张关系。多年来,我们有像 PyBind11 这样的桥接工具,但手动的样板代码通常让人难以在日常工作中使用它们。 随着 C++26 反射(P2996)的出现,这座桥现在可以变得隐形。新的语法是:^^T 和 [: x :]。 我建立了这个仓库,以展示如何使用 Bloomberg/Clang P2996 分支,自动将 C++ 量化引擎反射到 Python 执行循环中。我使用了 Merton 跳跃扩散模型作为示例——这是一个标准模型(没有特殊的 alpha),以便在实际应用中展示这项技术。我最初是通过 Callum Piper 的 ACCU 演讲发现这一点的。 我还包含了一个 justfile 和 Docker Clang 构建,这样人们可以在不必经历构建繁琐过程的情况下,实验新的反射语法。 1. [https://github.com/pybind/pybind11](https://github.com/pybind/pybind11) 2. [https://isocpp.org/files/papers/P2996R13.html](https://isocpp.org/files/papers/P2996R13.html) 3. [https://github.com/bloomberg/clang-p2996](https://github.com/bloomberg/clang-p2996) 4. Merton, R.C. (1976). 当基础股票收益不连续时的期权定价。《金融经济学杂志》,3(1–2),125–144。 5. [https://youtu.be/SJ0NFLpR9vE](https://youtu.be/SJ0NFLpR9vE)