joshdickson

Joined 11 years ago

Karma
630
Submissions
146
Member since
Mar 21
Currently building OpenNutrition.

Email: [email protected] Website: opennutrition.app Twitter/X: x.com/joshdickson40

View on Hacker News

Recent submissions

Comment · 1 year ago
Ah that's a good idea, should add that. Also I appreciate your phrasing of "you guys" when, as a solo developer, if someone thinks your efforts are the product of a larger team, it's always appreciated :)
Comment · 1 year ago
Thank you for your kind words and feedback. The search should be better now, and is much better in-app with additional local caching.

I can assure you that you are not overthinking it in terms of figuring that information out. The search experience tries to make it as clear and helpful as possible. If you encounter any situations where it could be more clear, I would love to see them. My contact info is in my bio, or there is a feedback prompt on the site/in-app. Thanks again for checking the project out and your feedback.

Comment · 1 year ago
Almost every protein that I consume is weighed raw for ease in logging. One reason is if you are cooking a dish with e.g. bacon as an ingredient, you may not be able or want to separate it out at the end. Likewise, if I sauté chicken breasts in a pan and then finish the dish with other ingredients, I probably want to just eat the food and not deal with weighing them after water loss. Providing both just provides greater ease in logging your meals and is exact-enough for most people :)
Comment · 1 year ago
Thank you for your questions and feedback.

> When something doesn't have a reference listed, and just says "sourced from a publicly available first-party datasource", what does that mean?

It depends, and the degree to which it depends is why the citation is ambiguous (although it is true, if imprecise). My goal is to individually cite the individual nutrients but it was simply too costly and time-consuming at the stage of the project at which I did this work.

> what is the process like there for interpreting those values?

Because the degree to which something in the database might be related to those values is so varied, it depends. The reasoning agent had access to those database entires, which is helpful because they tend to contain micronutrient data. It also had access to web data, as well as its own world knowledge, and considers sources in that order. Ultimately it was left up to the agent to decide what the most reasonable fit for each food was, thinking through what an average user likely meant by that entry (e.g. a typical user probably assumes a 'Tomato' is raw), and then to choose the best sources from there. For the chicken salad, it used approximate micronutrient values from the listed references to inform its answer, but adapted the end values for how the dish is described in the description.

> if you had the choice between verified data and fuzzy LLM data, you should go for the human verified data (for now)

Human verification isn't free, and that means it is not available to a lot of people who can't or don't want to pay for something. But if that's something that someone values, I would certainly not diss the human effort!

Comment · 1 year ago
Comment · 1 year ago
The licensing terms are identical to similar projects including OpenFoodFacts (which also has an app) and OpenStreetMap, see:

https://wiki.openfoodfacts.org/ODBL_License

You may disagree with each of those projects as well, but, I am following long-standing licensing in this space. I also have used some OFF data for product naming, and as a result, their terms state I have to maintain their license.

Creating these databases involves a tremendous amount of time and effort, and it would not make sense for me to make this data available to commercial entities to use without attribution. The alternative is not a MIT-licensed dataset, it is no dataset.

Comment · 1 year ago
Comment · 1 year ago
Comment · 1 year ago
Pretty standard Next app on Vercel. Some pre-fetching. Food pages are cached post-generation. Custom go-based search server behind a Cloudflare cache. Any other questions?
Comment · 1 year ago
I wrote a Go-based search engine that indexes full words and prefixes for the foods and their alternate names because I was dissatisfied with how slow OpenSearch was given the very specific needs I had. I have Cloudflare in front to act as a cache.
Comment · 1 year ago
Thank you for your feedback.

> If I can join the endless queue of feature requests, the ability to scale the portion size and update the nutrition facts would be great

This is all supported in-app if you're in a country with the ability to download it and have iOS (for now). The web product is more of a demo and isn't intended to be used on a day-to-day basis to track your food consumption, but this is a totally reasonable request.

> Also IDK where AI is wrt automated scraping but I've had some success feeding recipes into AI and getting the nutrition facts out. The ability to plop a URL in and get a scraped recipe with a name and nutrition facts would be immense.

I am not doing this for a few reasons, but, you can just screenshot the image of the recipe and use the app to upload that as a meal or recipe and it should parse out the ingredients and portions for you.

Comment · 1 year ago
OpenNutrition uses many of the same open datasources included there, including USDA SR, CNF, AUSNUT, etc. The other datasources are licensed and not open, and I do not use those so that I can deliver a free app with a more generous set of features.
Comment · 1 year ago
Your other comment is too deep in the thread for me to reply, but just wanted to say I appreciate you checking out the project and commenting, and appreciate the many years of effort you've undertaken in this space. How OpenNutrition can work with OpenFoodFacts is something I have thought a lot about (I think MacroFactor set a great example) and it's certainly something I'll consider moving forward.
Comment · 1 year ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton