Urgent.News

What's breaking now, across thousands of outlets.

Tech

From Zero to 3 Merged PRs: Contributing Python CLI Recipes to BasedHardware/omi

Over the past few weeks, Iโ€™ve been contributing to BasedHardware/omi , the open-source AI wearable project. As of this week, all three of my pull requests have been officially approved and merged into main by core maintainers and Omi's founder Nik Shevchenko ( @kodjima33 ). Here is a quick recap of the journey, the recipes built, and 3 key engineering lessons learned along the way. ๐Ÿš€ What Weโ€ฆ

Over the past few weeks, the author has been contributing to the open-source AI wearable project BasedHardware/omi. Three pull requests have been officially approved and merged into the main branch by core maintainers and Omi's founder Nik Shevchenko. This article provides a brief overview of the projects, the lessons learned, and the next steps.

The trio of Python CLI Recipe projects were all focused on making it easy for Omi users to export and structure their conversational data without using complex setups or external dependencies. The first recipe, PR #13701, converted raw conversation JSON dumps into Markdown that works with Obsidian, Notion, and local notes. It handled UTF-8 character encoding and atomic file writing to prevent corrupt exports.

The second recipe, PR #14458, exported Omi's memory stream, organizing insights by date and category tags. The third and most rigorous recipe, PR #13960, extracted action items and checklists into formatted task lists. This recipe was subjected to thorough testing, with 9 comprehensive unit tests written in Pythonโ€™s standard unittest library that all passed in just 0.05 seconds.

Three key engineering lessons were taken away from the experience. Firstly, relying on Python's standard library over third-party libraries is always beneficial. This avoids dependency bloat and eliminates potential breaking changes across user environments. Secondly, constructive feedback from maintainers should be welcomed, as it serves as mentorship that can improve the code. Lastly, maintaining a clean and atomic Git history is crucial for simplifying the review and merge process.

Looking ahead, the author plans to expand these recipes to support direct third-party REST API payloads, such as Todoist tasks and Notion blocks. Participating in active AI hardware/software projects is a fast way to enhance real-world software engineering skills. The author invites readers to share their experiences with contributing to open-source projects and what they have learned from working with repository maintainers.

Written by urgent.news from Dev.to's reporting โ€” not their text. Machine-written โ€” may contain errors; check the original before relying on it.

Read the original at dev.to โ†’

More in Tech

We Chose the Actions by What Was Easy to Build

A manager came back from three weeks' leave in February and found that a colleague had been reading her mailbox. Nobody had told her before, during or after.

  • A colleague accessed a manager's mailbox in four minutes via a self-service tool.
  • The tool, built in 2022, logged 1,900 actions, 310 of which were mailbox delegations.
  • Of the 310 mailbox delegation actions, three were moved behind an approval process.

LINQ GroupBy: The Operator Everyone Uses Wrong

LINQ GroupBy: The Operator Everyone Uses Wrong GroupBy in LINQ looks like SQL GROUP BY . It isn't. At least, not in the way you'd expect.

  • LINQ GroupBy differs from SQL GROUP BY, returning IGrouping objects instead of aggregated rows.
  • Combine GroupBy with Select for SQL-like results, enabling aggregation and computed values.
  • Use composite keys with anonymous types and element selectors to refine grouping behavior in LINQ.

More from Wednesday 23 September โ†’