Sunday, February 2, 2025

Show HN: Modest – musical harmony library for Lua https://ift.tt/scaBPgh

Show HN: Modest – musical harmony library for Lua This is a project I've been building in my spare time over the past few months. It's a library that provides methods for working with musical harmony ‒ intervals, notes, chords. For example, it can parse almost any chord symbol (Fmaj7, CminMaj9, etc) and turn it into notes, or it can identify a chord from a given set of notes. I started this project with the idea of using formal grammar to parse chord symbols. I wanted to use it instead of a hand-written parser, which is the common approach among similar libraries. Lua caught my attention because of Lpeg, a Parsing Expression Grammar library that is both fast and easy to use. An additional motivation for using Lua was the lack of comparable libraries for it, even though the language is commonly used in audio programming. However, despite being a Lua library, the project itself is written in Fennel — a "lispy" language that transpiles to Lua. Fennel has features that make writing code for the Lua platform much more pleasant: a concise syntax, macros, and destructuring — a feature Lua sorely lacks! In the process, I definitely learned a lot about music theory, although my new knowledge is quite one-sided. By working on this library, I know a thing or two about types and structure of chords, but I learned almost nothing about their composition and transformation. Perhaps these will be the directions I explore next in the project. https://ift.tt/isQJfCS February 2, 2025 at 04:02PM

Show HN: I built a full mulimodal LLM by merging multiple models into one https://ift.tt/OuFZHbo

Show HN: I built a full mulimodal LLM by merging multiple models into one https://ift.tt/EsW63ye February 2, 2025 at 12:44PM

Saturday, February 1, 2025

Show HN: ESP32 RC Cars https://ift.tt/S1b0rVg

Show HN: ESP32 RC Cars This is a projected I started that blends both the fun of playing a split screen multiplayer driving game and controlling real rc cars. The cars can also be controlled via bluetooth gamepads and is meant to be easily hackable. https://ift.tt/tB4IXQP February 2, 2025 at 12:21AM

Show HN: I hacked LLMs to work like scikit-learn https://ift.tt/hHoWVYm

Show HN: I hacked LLMs to work like scikit-learn Working with LLMs in existing pipelines can often be bloated, complex, and slow. That's why I created FlashLearn , a streamlined library that mirrors the user experience of scikit-learn. It follows a pipeline-like structure allowing you to "fit" (learn) skills from sample data or instructions, and "predict" (apply) these skills to new data, returning structured results. High-Level Concept Flow: Your Data --> Load Skill / Learn Skill --> Create Tasks --> Run Tasks --> Structured Results --> Downstream Steps Installation: pip install flashlearn Learning a New "Skill" from Sample Data Just like a fit/predict pattern in scikit-learn, you can quickly "learn" a custom skill from minimal (or no!) data. Here's an example where we create a skill to evaluate the likelihood of purchasing a product based on user comments: from flashlearn.skills.learn_skill import LearnSkill from flashlearn.client import OpenAI # Instantiate your pipeline "estimator" or "transformer", similar to a scikit-learn model learner = LearnSkill(model_name="gpt-4o-mini", client=OpenAI()) data = [ {"comment_text": "I love this product, it's everything I wanted!"}, {"comment_text": "Not impressed... wouldn't consider buying this."}, # ... ] # Provide instructions and sample data for the new skill skill = learner.learn_skill( data, task=( "Evaluate how likely the user is to buy my product based on the sentiment in their comment, " "return an integer 1-100 on key 'likely_to_buy', " "and a short explanation on key 'reason'." ), ) # Save skill to use in pipelines skill.save("evaluate_buy_comments_skill.json") Input Is a List of Dictionaries Simply wrap each record into a dictionary, much like feature dictionaries in typical ML workflows: user_inputs = [ {"comment_text": "I love this product, it's everything I wanted!"}, {"comment_text": "Not impressed... wouldn't consider buying this."}, # ... ] Run in 3 Lines of Code - Concurrency Built-in up to 1000 calls/min # Suppose we previously saved a learned skill to "evaluate_buy_comments_skill.json". skill = GeneralSkill.load_skill("evaluate_buy_comments_skill.json") tasks = skill.create_tasks(user_inputs) results = skill.run_tasks_in_parallel(tasks) print(results) Get Structured Results Here's an example of structured outputs mapped to indexes of your original list: { "0": { "likely_to_buy": 90, "reason": "Comment shows strong enthusiasm and positive sentiment." }, "1": { "likely_to_buy": 25, "reason": "Expressed disappointment and reluctance to purchase." } } Pass on to the Next Steps You can use each record’s output for downstream tasks such as storing results in a database or filtering high-likelihood leads: # Suppose 'flash_results' is the dictionary with structured LLM outputs for idx, result in flash_results.items(): desired_score = result["likely_to_buy"] reason_text = result["reason"] # Now do something with the score and reason, e.g., store in DB or pass to next step print(f"Comment #{idx} => Score: {desired_score}, Reason: {reason_text}") https://ift.tt/YT4tzQx February 1, 2025 at 10:09PM

Friday, January 31, 2025

Show HN: VoidDB –A transactional key-value DB written in Go for 64-bit Macintosh https://ift.tt/XhBMJrP

Show HN: VoidDB –A transactional key-value DB written in Go for 64-bit Macintosh https://ift.tt/f6MkCT2 February 1, 2025 at 10:03AM

Show HN: Simple to build MCP servers that easily connect with custom LLM calls https://ift.tt/rhM4AQK

Show HN: Simple to build MCP servers that easily connect with custom LLM calls Hi! After learning about MCP, I'm really excited about the future of provider-agnostic, re-usable tooling. Unfortunately I've found that while it's easy to implement an MCP server for use with tools that support it (such as Claude Desktop), it's not as easy to implement your own support (such as integrating an MCP server into your own LLM application). We implemented a thin MCP wrapper that easily integrates with Mirascope calls so that you can hook up an MCP server and client super easily to any supported LLM provider. Excited to see what people build with this! https://ift.tt/Hp3kK5z February 1, 2025 at 06:20AM

Show HN: Lua-libuv – A Lua with libuv experiments https://ift.tt/sqMlCta

Show HN: Lua-libuv – A Lua with libuv experiments https://ift.tt/GuYs9oB January 28, 2025 at 05:59AM

Show HN: Ros2_utils_tool, a powerful GUI toolset for ROS2-based utilities https://ift.tt/ZWs5P2i

Show HN: Ros2_utils_tool, a powerful GUI toolset for ROS2-based utilities Hi Hackernews, over the past few weeks, I've been tirelessly working on a GUI toolset for all sorts of ROS2-based utilites to simplify my tasks with ROS at work. Now I want to present to you the ros2_utils_tool. This tool can do many ROS2-based utilites, for example editing a ROS bag file to remove, rename or crop topics, extracting a video or image sequence out of a ROS bag, creating dummy bag files or just publishing a video as a ROS topic. While being developed to be as simple and lightweight as possible, the toolset supports many advanced options, for example different video and image formats, custom fps values, switching colorspaces and more. I've also heavily optimized the tool to support multithreading or in some cases even hardware-acceleration to run as fast as possible. The tool offers full graphical user interface support for all features, while I've also added additional command line interface support for most of them. As of now, the ros2_utils_tool supports ROS2 humble and jazzy. The application is still in an alpha phase, which means I want to add many more features in the future, for example GUI-based ROS bag merging or republishing of topics under different names, or some more advanced options such as selecting messages for video or image generation. The ros2_utils_tool requires an installed ROS2 distribution, as well as Qt6 or Qt5 for the user interface, the cv_bridge for transforming images to ROS and vice versa, and finally catch2_ROS for unit testing. You can install all dependencies (except for the ROS2 distribution itself) with the following command: sudo apt install libopencv-dev ros-humble-cv-bridge qt6-base-dev ros-humble-catch-ros2 For ROS2 Jazzy: sudo apt install libopencv-dev ros-jazzy-cv-bridge qt6-base-dev ros-jazzy-catch- Install the UI with the following steps: cd path/to/your/workspace/src git clone https://ift.tt/XcTvd19 cd path/to/your/workspace/ colcon build Then run it with the following commands: source install/setup.bash ros2 run ros2_utils_tool tool_ui The ros2_utils_tool uses the EUPLv1.2 as license. More information, for example regarding the command line interface tools are shown under [0]. [0] https://ift.tt/OTwKZpU https://ift.tt/OTwKZpU January 31, 2025 at 09:13PM

Thursday, January 30, 2025

Show HN: Workflow86 - An AI business analyst and automation engineer https://ift.tt/NdbIxBM

Show HN: Workflow86 - An AI business analyst and automation engineer Hey HN, We built Workflow86 to help teams build and automate their internal business processes and workflows using drag and drop components like forms, tasks, tables and nodes for business logic, API requests, running custom code etc. It works as a standalone process/workflow automation tool, or as a workflow customization layer on top of existing apps and systems like HRIS, CRM and ERP. One common problem we hear from users is that no-code still has a significant learning curve, and it can take some time to understand how to properly build something. Users also needed help with knowing what to build in the first place, or what a process might or should look like. To solve this, we've integrated an AI that acts as a business analyst/consultant and workflow automation engineer. This AI is powered by a combination of Large Language Models and lots of prompt engineering, RAG and prompt chaining techniques we developed along the way. See a demo of it in action here: https://ift.tt/yM3dRL2?... In business analyst/consultant mode, the AI helps users brainstorm ideas, identify and discover processes and draft what a process should look like. Like a business analyst/consultant, the AI works to pull and extract information and details from the user by asking the right questions rather than rely on the user's instructions alone. Once the required information has been gathered, the AI goes into engineer mode: it will plan and then build the entire workflow by selecting the right nodes, connecting them together and then fully configuring every single node individually as well. This includes writing custom code and API requests using stored credentials when required. Once a workflow is built, edits can be done manually or by asking the AI to adjust the workflow at any time (e.g., “Add a compensation band check before final approval”). The AI has full context of the current state of the workflow, so it can “patch” in any changes like adding new nodes, rewriting existing nodes and so on. Some use cases we’ve seen from customers include building: - automated compliance checks for new CRM leads - custom international contractor onboarding workflows on top of a HRIS - automated vendor risk assessment before ERP updates Try it out and let us know how the AI performs and any other feedback you have! Full docs can be found at https://ift.tt/sLAI8eq https://ift.tt/pihvzfu January 30, 2025 at 10:35PM

Show HN: Reactive Signals for Python – inspired by Angular's reactivity model https://ift.tt/BXOsv8H

Show HN: Reactive Signals for Python – inspired by Angular's reactivity model Hey everyone, I built reaktiv, a small reactive signals library for Python, inspired by Angular’s reactivity model. It lets you define Signals, Computed Values, and Effects that automatically track dependencies and update efficiently. The main focus is async-first reactivity without external dependencies. Here is an example code: ``` import asyncio from reaktiv import Signal, ComputeSignal, Effect async def main(): count = Signal(0) doubled = ComputeSignal(lambda: count.get() * 2) async def log_count(): print(f"Count: {count.get()}, Doubled: {doubled.get()}") Effect(log_count).schedule() count.set(5) # Triggers: "Count: 5, Doubled: 10" await asyncio.sleep(0) # Allow effects to process asyncio.run(main()) ``` https://ift.tt/WDuQ05z January 31, 2025 at 12:26AM

Show HN: Audiocube – A 3D DAW for Spatial Audio https://ift.tt/WfYLQw4

Show HN: Audiocube – A 3D DAW for Spatial Audio I’ve recently released my solo project Audiocube I wanted to make a 3D DAW, where spatial audio, physics, and virtual acoustics are all directly integrated into the engine. This makes it easy to create music in 3D, and experiment with new techniques which aren’t possible in traditional DAWs and plugins. I’d love to get any feedback on this software (Mac/Windows) to make it better. You can download it for free through the website. Thanks, Noah https://ift.tt/0MlNGhI January 30, 2025 at 06:42PM

Wednesday, January 29, 2025

Show HN: Mcp-Agent – Build effective agents with Model Context Protocol https://ift.tt/oNIPAbH

Show HN: Mcp-Agent – Build effective agents with Model Context Protocol Hey HN, I spent my xmas break building an agent framework called mcp-agent [1]( https://ift.tt/7krtYZ3 ) for Model Context Protocol [2]. It makes it easy to build AI apps with MCP servers, and implements every pattern from the popular Building Effective Agents blog [3] as well as OpenAI’s Swarm [4]. I’m sharing it early to get community feedback on where to take it from here, and to ask for contributions. For those who aren’t familiar with MCP, I think of it as a standardized interface to let AI communicate with software via tool calls, resources and prompts. mcp-agent provides a higher level interface to build apps with MCP. It handles the connection management of MCP servers so you don’t have to. It also implements the Building Effective Agents patterns: - Augmented LLM (an LLM with access to one or more MCP servers) - Router, Orchestrator-Worker, Evaluator-Optimizer, and more - Swarm The key design principles are composability and reusability – every pattern is an AugmentedLLM itself, so you can chain them into more complex workflows. Some background: I worked on LSP [5] and language servers at Microsoft, and saw firsthand how standards and protocols can revolutionize developer workflows. Before LSP every IDE had its own esoteric ways of providing language services. LSP changed all that, and arguably made every language server better, since they can focus on improving a single implementation for all clients. I think AI development is in a similar pre-LSP space right now. There are tons of frameworks [6], every model provider has its own way of handling messages, tool calls, streaming, etc. I really think we need a protocol to standardize these patterns. Pretty soon every service is going to expose an MCP interface, and mcp-agent is about letting developers orchestrate these services into applications (i.e. build “MCP apps”). This can cover any use of an AI model that needs to interact with the world around it: - RAG pipelines and Q&A chatbots - Process automation via AI workflows/async tasks - Multi-agent orchestration, with human in the loop The repo contains examples [7] to build RAG agents, streamlit apps and more. There’s a lot left to build, like streaming support, server auth and tighter integration with MCP clients. But I wanted to share early in the hopes that you can guide me: - If you find this useful, please let me know. If it’s useful to you, I will dedicate all my time to improving it. - I really welcome contributions. If you want to collaborate, please reach out on github to help take this forward. I want to help standardize AI development, so developers a few years from now can look back with horror at the pre-MCP days. [1] - https://ift.tt/7krtYZ3 [2] - https://ift.tt/eQ1zbFq [3] - https://ift.tt/CBdabnX [4] - https://ift.tt/bKLD3C2 [5] - https://ift.tt/96vARDP [6] - https://xkcd.com/927/ (I understand the irony) [7] - https://ift.tt/cvNVCTX https://ift.tt/7krtYZ3 January 29, 2025 at 09:56PM

Show HN: I built a SaaS thanks to my wife https://ift.tt/WyFduPX

Show HN: I built a SaaS thanks to my wife I’m Michał, and I’d like to share with you the journey I went through with my wife and how, thanks to her, we built our first SaaS, PDFBolt ( https://pdfbolt.com ). I’ve been a developer for over 10 years. In 2020, I decided to build a side project to learn all aspects of app development—deployment, authentication, payments, frontend, landing pages, etc. While looking for project ideas, I came across the Indie Hackers community, where I found a simple HTML-to-PDF API project. The creator mentioned a lot of interest in it and that it was generating revenue. I thought I’d build something similar myself and learn a lot in the process. But it wasn’t easy at all. After working from 9 to 5, it’s hard to spend another few hours in front of the computer in the evening. What about other responsibilities? Groceries, cooking, cleaning, hobbies, spending time with my wife? Still, I tried, very slowly. I had breaks lasting several months, and at one point, due to mental health issues, I practically stopped working on the project altogether. My wife worked as a physiotherapist but, due to difficulties in her job, decided to switch to IT with my help, starting as a manual tester. She did it very quickly (maybe six months) and immediately found a job. In mid-2024, she started asking about my old project and insisted that we finish it. Thanks to her enthusiasm, we managed to do it very quickly. I focused on the backend, and she, in addition to testing, handled the entire frontend and landing page. Around the same time, we also adopted a dog from a shelter, which added a lot of positive energy to our lives and helped us stay motivated. In early January 2025, we officially launched the project. It’s been a long journey, and we don’t have any customers yet—we don’t even know if we will, as we have no idea about marketing :) But we’ve learned a lot and are already happy with the journey itself. As for the technical aspects, the app uses: Backend: Kotlin, Spring Boot, Postgres, Redis Frontend: React, Next.js, Docusaurus Auth: Firebase Hosting: Render (the app is Dockerized) Cloudflare R2 for file storage PDFs are generated using Chromium via Playwright. If you have any questions about the tech stack or anything else, feel free to ask! I’ll be happy to answer. Any feedback or criticism will be greatly appreciated. Thank you! :) https://pdfbolt.com/ January 30, 2025 at 12:54AM

Tuesday, January 28, 2025

Show HN: Cdlog: nicer directory navigation for Bash https://ift.tt/ijl8wZQ

Show HN: Cdlog: nicer directory navigation for Bash https://ift.tt/8Yn6LjC January 29, 2025 at 12:14AM

Show HN: Share your path to resolve issues with Savvy's Chrome Extension https://ift.tt/HpYAfux

Show HN: Share your path to resolve issues with Savvy's Chrome Extension Track and Share links used to resolve issues from your browser history with Savvy's Chrome extension Try it out from the Chrome Web Store: https://ift.tt/40ujzrC... Use Cases: - Share your debug path or highlight links crucial to solving a bug. - Attach a log of your actions to any issue or postmortem. Privacy Savvy's Chrome extension does not store any of your browsing history. It reads your browsing history to surface relevant links (all done client side). Selected links can be copied to your clipboard or sent to Savvy's CLI. You can choose to store workflows generated from Savvy's CLI on Savvy or export data locally on your machine. Drop a comment if you have any questions or suggestions. https://ift.tt/IW6qsXg January 28, 2025 at 10:51PM

Monday, January 27, 2025

Show HN: I Drew Stickers for Programmers https://ift.tt/78HbEWp

Show HN: I Drew Stickers for Programmers same free for Telegram: https://ift.tt/xmWh58O https://ift.tt/mBNcGZl January 28, 2025 at 01:47AM

Show HN: Ollama server discovery tool (finds public LLM instances) https://ift.tt/Q9Kmq30

Show HN: Ollama server discovery tool (finds public LLM instances) I built a network discovery tool in Rust that helps identify public Ollama LLM servers. It scans IP ranges to find Ollama instances and catalogs their available models. Important note: This is intended for educational purposes and authorized security testing only. https://ift.tt/gYA7Psk January 28, 2025 at 02:40AM

Show HN: LLMule – Run and Share Local LLMs in a P2P Network https://ift.tt/IKV7iBf

Show HN: LLMule – Run and Share Local LLMs in a P2P Network https://llmule.xyz January 28, 2025 at 12:44AM

Show HN: AnswerHN https://ift.tt/JAsen17

Show HN: AnswerHN I had an itch to build a weekend project, and I've noticed that a lot of Ask HNs often go unanswered, so I built AnswerHN as a simple way to see recently asked, but as yet unanswered, questions on Hacker News. https://ift.tt/RWCZVSx January 28, 2025 at 12:27AM

Sunday, January 26, 2025

Show HN: A new native app for 20 year old OS X https://ift.tt/M9ecKND

Show HN: A new native app for 20 year old OS X A few of us here are probably familiar with the original Xbox modding scene and the iconic xbins FTP server. Recently, I came across an amazing tool called Pandora by Team Resurgent [0], which got me thinking about how incredible something like this would have been 20 years ago. Just to clarify, I had no involvement in creating Pandora—I’m just inspired by their work. For those who aren’t familiar, getting access to xbins involves a rather dated process. You need to connect to a channel on an EFnet IRC server, message a bot for temporary credentials, then plug those credentials into your FTP client to access xbins. Pandora (and my app) simplifies this entire workflow into a single click. Inspired by Pandora, I decided to build my own take on what this dream tool might have looked like back in the day. I wrote a native Mac app on original hardware—an Intel iMac (20-inch, 2007)—running a 20-year-old operating system, Mac OS X 10.4 Tiger. This was my first foray into native Mac app development, though I’ve done some iOS development in the past. The result is Uppercut [1], and the source is available on GitHub [2]. For the development process, I used Claude to help with a lot of the coding, especially since I was constrained to Xcode 2.5 and the pre-“Objective-C 2.0” features available at the time. I had to be very specific in prompting Claude to avoid newer features that didn’t exist back then. Since the majority of Objective-C code out there comes from the era of iOS development (which relied heavily on Objective-C 2.0 until the arrival of Swift), this was a unique and challenging exercise in retro development. [0] - https://ift.tt/LofV0PY [1] - https://ift.tt/wxksVvf [2] - https://ift.tt/Bl2N90b https://ift.tt/wxksVvf January 24, 2025 at 06:16AM

Show HN: Kstack – Skill pack for monitoring/troubleshooting K8s in Claude Code https://ift.tt/GQauRgE

Show HN: Kstack – Skill pack for monitoring/troubleshooting K8s in Claude Code Hi All, Recently I've been using Claude Code a lot for de...