Sunday, February 2, 2025

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

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/l1dnjia February 2, 2025 at 12:21AM

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

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/cKAPhvk February 1, 2025 at 10:09PM

Show HN: I re-designed interface for HN https://ift.tt/e0svRUk

Show HN: I re-designed interface for HN Any suggestions are appreciated, stack utilizes Gluestack UI ,Expo, React Native, and Cloudflare Pages. There is a known bug via touch scroll ability on Android, external keyboard's spacebar or mouse works correctly though, currently. If you know about a solution, let me know. Please note, this is just a prototype, it still has a lot of features to be included. I'd like to learn more about how people use HN and how Hacked could help, where other HN clients failed. https://ift.tt/6YxKdCw February 1, 2025 at 10:41PM

Saturday, February 1, 2025

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

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

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

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/hDjzy5F February 1, 2025 at 06:20AM

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

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

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

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/Te1PMAo 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/EzLQPN3 https://ift.tt/EzLQPN3 January 31, 2025 at 09:13PM

Show HN: Pocket2Linkding – Migrate from Mozilla Pocket to Linkding https://ift.tt/IwYJfju

Show HN: Pocket2Linkding – Migrate from Mozilla Pocket to Linkding With the Mozilla Pocket shutdown coming up in about two weeks, I thought ...