View Full Version : myHomeCookingPC.com (recipe mgmt system) thread
Starting a clean thread to discuss architectural thoughts/options for the recipe mgmt system as i'm asking some of my developer buddies to chime in here with their thoughts, and the current thread doesn't seriously address this until page 7.
As discussed previously in the Grocery Inventory thread (http://www.charmedquark.com/vb_forum/showthread.php?t=2259&page=8), i'm in the midst of home-growing a recipe mgmt system as I can't find anything out there that will both meet my UI needs as well as be an open ODBC cxn to allow CQC to retrieve & display data on touchscreens/laptops in the kitchen for while we're cooking.
I'll update the schema as per some of the suggestions in the other thread, but based on some additional info from my buddies, one of the first decisions to be explicitly made is "what am I/we trying to do here, and is distribution/publication really needed".
The issue here is one of access of the admin screens from any PC in the house. This will probably not be done via CQC, rather CQC can be used as the read-only mechanism. We'll probably want to use tightly controlled screens for data entry, so as to be able to enforce any business rules we want.
The problem i'm running into is difficulty and heavyweight setup:
1) With fat client setups like the java app i'm in the midst of writing is that the app will need to reside on every PC, and mySQL or PostgreSQL will need to be on one of the boxes. That's not necessarily a simple setup.
2) With a thin client setup, apache will be needed, adding to the complexity even further
3) Will take some time to write.
The pro is that with a fat client, i can have a pretty rich UI.
Got some strong recommendations to look into a hosted solution, can certainly be ad-free and have as clean a UI as we decide. Furthermore, a connection may be possible, i'm posting this thread as a common location for all my developer buddies to post as well as get input from you guys.
The pro to this is that I can use a pre-written framework, such as Ruby on Rails, which will drastically cut setup/maintenance time. Even though mySQL and Apache are still needed, it would only be done once on the website. I'd have to figure out how to setup a CQC driver to point at a website and ODBC in [not even sure that's possible].
The con is that, well, it's a hosted solution, you need a live cxn to the internet for this. Given that you already need one for the weather.com driver and the metadata [in V2.0], i don't see that as a dealbreaker.
So the question to all here is this: Can you foresee any issues with me pursuing a hosted solution so I don't have to deal with any setup issues?
BTW, for bph, this certainly changes the nature of the schema as I certainly cannot pursue a non-int primary key field anymore, and will need to add a users and groups table starting from V0.1 .
ToyMaster458
08-14-2006, 06:49 PM
From my views I do not like hosted solutions. I like everything in house.
Why not create the front end in VB or something? All you would need on the local maching is the run-time files and any special dll or ocx that you use during development.
well, i could create it in Java in that case. The issue is that it becomes a fat client, and each person would need to d/l and setup mySQL or another db source. Plus, i'd have to handle any serialization/concurrency issues, although in this case that's probably not that big a deal.
So the question is: How prohibitively difficult is the mySQL/postgre sql setup and install process? Do I care about multi-user?
well, i could create it in Java in that case. The issue is that it becomes a fat client, and each person would need to d/l and setup mySQL or another db source. Plus, i'd have to handle any serialization/concurrency issues, although in this case that's probably not that big a deal.
So the question is: How prohibitively difficult is the mySQL/postgre sql setup and install process? Do I care about multi-user?
I'd use VB2005, but VB2003 or VB6 would do it too, and an mdb file. You can access the MDB file with ODBC from CQC or anywhere else and don't need to install a (separate) database engine.
Can you create an MDB without having MS-Access? Just tried googling it, can't quite figure out how.
Dean Roddey
08-14-2006, 08:12 PM
mySQL isn't bad. That's what used on most Linux based ISPs these days, and on many Windows based ones as well (we use it on our Windows based web machine.) It's not unlike MS SQLServer really, with plenty of graphical interfaces for management and such.
penngray
08-14-2006, 08:28 PM
IF you are considering thin client design (web application) then apache, Mysql and Python have ZERO cost to them, accept for time. Huge flexibility and simple usage.
I would stay away from Java since its too time consuming to develop with.
I guess the draw back here is that Python is the unknown. IVB, tell your programmers they missed the boat by not choosing Python ;)
penngray
08-14-2006, 08:38 PM
Question about this...is there good enough site already for storing recipes online.
If there are, they probably have RSS feeds or XML type downloads.
ie....http://www.bigoven.com/
instead you might want to focus on access a current site and feeding data to CQC from there.
ToyMaster458
08-14-2006, 08:42 PM
A mdb can be created created from code. I have a few VB sample if needed.
Another Database option is Microsoft SQL Server Express Edition. It is also free.
Question about this...is there good enough site already for storing recipes online.
If there are, they probably have RSS feeds or XML type downloads.
ie....http://www.bigoven.com/
instead you might want to focus on access a current site and feeding data to CQC from there.
I checked out BigOven, actually downloaded it and got it currently on my laptop. Two issues:
1) (minor) Don't like the UI. No tree view, forced to use keyword/filters.
2) (major) Forced to use XML, which means a 2 step process rather than ODBC direct access. That'd be 3 different XML feeds for me to do, as wife can't do that type of stuff. 4 if we decide to export Outlook and import that. This much manual intervention isn't the direction I personally want to go.
mySQL isn't bad. That's what used on most Linux based ISPs these days, and on many Windows based ones as well (we use it on our Windows based web machine.) It's not unlike MS SQLServer really, with plenty of graphical interfaces for management and such.
My wife is not going to install mySQL and Linux to enter a recipe.
Dean Roddey
08-14-2006, 08:56 PM
Isn't that why she married you? :-) Actually it doesn't require Linux though. It's available for Windows as well.
Can you create an MDB without having MS-Access? Just tried googling it, can't quite figure out how.
A common approach is to ship an empty MDB file with the app, so that you don't need to ship the code to create it, but yes, it can be done programatically.
penngray
08-14-2006, 09:05 PM
1) (minor) Don't like the UI. No tree view, forced to use keyword/filters.
I suspect the keyword filter is more of a time saver then building a tree view for 150,000+ recipes. Tree views are great but only for very small datasets.
2) (major) Forced to use XML, which means a 2 step process rather than ODBC direct access. That'd be 3 different XML feeds for me to do, as wife can't do that type of stuff. 4 if we decide to export Outlook and import that. This much manual intervention isn't the direction I personally want to go.
I dont know how CQC interacts with XML documents so I dont have a clue but if we are going to go with a third party UI anyways XML document handling could be automatic within the program.
Sorry for rambling, it just seems there has to be away to access online recipe data. We should be able to download all the recipes locally once and then just get updates for new recipes. the local copy of the recipes doesnt have to be stored in a database either. It could be simply XML and a "fat client" program (I love powerbuilder for that stuff) could give you all the flexibility you need.
Sorry for rambling, it just seems there has to be away to access online recipe data. We should be able to download all the recipes locally once and then just get updates for new recipes. the local copy of the recipes doesnt have to be stored in a database either. It could be simply XML and a "fat client" program (I love powerbuilder for that stuff) could give you all the flexibility you need.
Well, if anyone else has a better idea, i'm all for it. I have no specific burning desire to write anything I don't need to, but I couldn't find a way to get BigOven or allrecipes.com or Livingcooking (or ...) to work in a clean & fully automated fashion.
Shipping an empty mdb is certainly a good option to go down. I'll check that out. Can one of youse guys PM/email me the code to do that?
penngray
08-14-2006, 09:26 PM
yeah, I guess it comes down to what full automation means to each of us.
It will be cool for me to have CQC just kick off a web browser directing me to my favorite recipe site (login me in automatically) That site already has so many bells and whistles for searching, storing favorites, looking at new famous chef items or looking at what is hottest download. Its just hard to replace it.
ie....just start to type shrimp in the bigoven find webpage and you get lists of recipes as you type, Pretty cool. That stuff is going to take a long time to reproduce.
hmmm....This now has me convinced I need a mounted touch screen in the kitchen. :D
I'm having a hard time seeing how a web browser widget is going to cut it.
1) can't type into a web browser widget.
2) even if you could, it would suck bigtime to type from a touchpanel - mine is only good for using a pen to click onscreen.
3) no website is going to be setup for touchscreen access, plus they'd have a TON of ads which take up way too much space on an 800x600 10" 3400 touchpanel
penngray
08-14-2006, 09:36 PM
Yep its late because I forgot about the no keyboard issue and I did make any assumption the screen would be 14'' or greater (In my case).
lol, sorry to sidetrack you. You need something because it doesnt exist when considering our requirments ;)
Ripper
08-14-2006, 09:40 PM
For typing on screen if you need to why not use the windows OSK? Press a command button and it pops up and when you are finished press the x and it closes.
As for the database stuff I'm not sure this will be as user freindly if people need to install Apache and mysql...it be easier to just use .mdb and load a bunch of recipes in it to start or even 50 or so and then people can import their own?
I'd rather not have to install Apache and Mysql on my CQC server if the same could be done with a .mdb database...what advantages really would you have by using Mysql? Myself I have used mysql databases and apache for years and ran webservers with Apache but do we really need all of this for a simple recipe database...
It seems a few recipes programs already use .mdb and a VB frontend and they work fine but can you imagine them trying to sell a recipe program where the person needs to install and configure Apache/mysql to make it work...don't get me wrong but I think this might be more than what is needed for a recipe database.
ToyMaster458
08-14-2006, 09:43 PM
but I couldn't find a way to get BigOven or allrecipes.com or Livingcooking (or ...) to work in a clean & fully automated fashion.
I am getting closer to having BigOven work with us. They really like the idea of integrating with a Touch Screen application like CQC. At this time they do not have the time to integrate it as tight as we want it. I suggested an option if the could add a File Export option that would make a copy of the current Recipe Box to an unprotected Database. This would allow us to connect to that database using ODBC and display the recipes in CQC. The down side is everytime we added new recipes to that box we would have to export them again.
Depending on what type of sales this feature generates depends on where they would take it into the future. If they get a high number of sales from this and it justifies the development time they may create a BigOven Port Services that would allow CQC to request information and make changes real time.
Before I keep pushing BigOven I realy want to know if others feel the same that this would take care of our needs.
IVB: I am not trying to push your idea away or saying that it is not good. I just feel that using a product that is already in the business would provide more features and abilities in the long run then re-inventing the wheel as you could say. I also personaly do not want to setup Apache, MySQL and anything also needed just for a Recipe Book. There are just to many points of failure along with support.
if you can get BigOven to do this in a fully automated fashion, i would be excited to delete all this stuff from my machine. I can avoid the apache need by writing a fat client, and can handle the mysql stuff by setting up a db that ships with the product [or mdb or whatever], but that's still a ton of work as compared to a proven, off-the-shelf solution. I could even get over the horrid UI, as it'd be used minimally.
But again, i have no desire to do yet another XML 2step in order to get this done. It's too much of a maintenance hassle.
ToyMaster458
08-14-2006, 10:06 PM
The way I am thinking it would only be a 1step and only as changes are made. The CQC driver would not be doing any continuous polling of the database or writing so as long as the database is not accessed at the same time a CQC UI is accessing it you should be able to export over the existing database.
I have a feeling that we're not going to come to a common agreement about this, which is fine as CQC can support both of us.
I might be jaded from all the manual XML exports & loads I need to do with the CDs & DVDs, but I grow weary of needing to manually intervene in order to have all this stuff fit together when my wife does stuff. When it changes, I could handle pushing a single button inside CQC to do an export and import, but I really don't want to go through the hassle of doing an export, picking the file location, then pulling up CQC and doing an import.
I just want it simple and handsfree to use on an ongoing basis.
ToyMaster458
08-14-2006, 10:31 PM
All that would be required is opening BigOven and doing an Export. The CQC Driver would be working off of ODBC so there is no import that is needed from CQC. As soon as the Export is done CQC would have the new information. If they go for this and the sales justify they would create a 2-way Integration model that would allow more abilities and features. I maybe abile to talk them into a command line argument that would alow BigOven to export a Recipe Box driven by a Command Event. But this maybe all moot if the interest is not there.
well, in the meantime, minor progress but major learnings on my part.
i've now got a java app that can pull data from the db and dump to system.out. I forgot how picky programming is, down to the line, the case, the order, etc.
I can't figure out how to send the recipe names to the window i've created, i'm sure it's something similarly stupid. Hopefully within a few days i've got a screen that shows everything i want it to show, then i'll move on to figuring out how to get the UI to update the db.
Even if the BigOven thing works out, understanding how to program in an OO language will prep me nicely for learning CML.
rhamer
08-15-2006, 01:42 AM
You guys are starting from the wrong end (at least in my experience)
How do you want the user to interact with this.
This is the first thing that you need to thrash out. Forget the back end how, where and what is used to store it, just figure out how you want to use it, and more importantly how you expect to be able to interact with it via CQC.
I'm reading web apps or fat clients or no client and lots of other back end design talk, but nobody has started a list of functionality.
Getting a functional description down will lead into the solution(s) which I think will be a lot simpler than we realise.
BTW there is a lot of discussion about the storage system and comments like MySql and access files, but the whole point of an ODBC connection is to provide an application independent interface to a data storage system. So as long as they are all built using the same schema each person could use whatever they like.
Cheers
Rohan
ToyMaster458
08-15-2006, 06:02 AM
You guys are starting from the wrong end (at least in my experience)
How do you want the user to interact with this.
This is the first thing that you need to thrash out. Forget the back end how, where and what is used to store it, just figure out how you want to use it, and more importantly how you expect to be able to interact with it via CQC.
Thats like deciding what you want to control of a receiver from CQC then going out and purchasing one based on that information. But to answer your question I would be happy with the ability to pull up recipes and display them in the interface for now. No matter which solution we work with they will have the same restrictions in CQC. Integration with CQC is the easy part of the whole process as long as dean provides the needed tools to display the information.
I'm reading web apps or fat clients or no client and lots of other back end design talk, but nobody has started a list of functionality.
Getting a functional description down will lead into the solution(s) which I think will be a lot simpler than we realise.
The functions will be based on the tools Dean provides us to display the information.
BTW there is a lot of discussion about the storage system and comments like MySql and access files, but the whole point of an ODBC connection is to provide an application independent interface to a data storage system. So as long as they are all built using the same schema each person could use whatever they like.
Cheers
Rohan
yes they could but then everyone is re-inventing the wheel over and over. The time consuming part of a Database application is the development of the Front-End. It is the Front-End that inforces the restirction of data input and how it is entered into the Back-End.
klindy
08-15-2006, 06:59 AM
I think Rohan has a point.
My intentions to use this would be the following-
BASIC NEEDS (All these should be possible by selecting buttons not typing anything)
Lookup recipes based on a keyword ("Chicken" or "Leg of Lamb")
Drill down deeper to narrow the choices based on cooking style ("Grilled" or "Bar-b-que")
Allow me to scroll through the available recipes to find the one I wantADVANCED POSSIBILITIES (except #6 all these can be possible by selecting buttons and not typing. #6 can be done off touchscreen at a PC with a keyboard).
Allow multiple selection queries ("Chicken" and "Grilled") which may filter the available recipes faster but still be able to filter more from there --> "Lemon" or "Cajun"
Suggest potential side dishes which go well with the main course
Suggest potential wines that would go well with the main course (wine type to begin with and ultimately specific wine - see below)
Be able to show more than one recipe on screen at a time (or quickly toggle between two or more). Main dish, side dish, dessert selected may need to be 'in process' simultaneously.
Be able to scale recipes based on number of mouths to feed.
Suggest alternatives for unavailable ingredients (specifically thinking about spices, etc.)
Allow adding recipes to the database (this one is not a biggy to me if the database is fairly substantial to start with but I'm sure there will be a point where a new recipe will need to be added.) Personally I have no problem doing this outside CQC and 'refreshing' the database somehow.
Provide nutritional information about the recipe.
Prioritizing recipes based on preferred tastes. For example, if "Liver" is never selected or is ranked only '1 star' it moves down the list.ULTIMATE DESIRES (some of these just require coordination with other similar databases)
Coordinate with a 'grocery inventory' and provide a list of recipes that are possible based on what's in-house.
Coordinate with a 'wine database' to suggest specific wines based on what's available (possibly reference notes or specific fields in the wine database to drill down to personal preference)
Possibly be able to convert units from metric - imperial. Our house has a lot of South African recipes which are all in metric units and it's a PIA to convert everything as you go.
Produce a backward scheduled timeline which will predict when 'dinner is served' and provide start times for various side-dishes or sauces etc. to get the whole meal to come together at one time. This would be a HUGE WAF item!
Coordinate with a 'nutritional calander' to help prioritize recipes based on the last X days based on how good you've been eating.
Allow forward planning of X days of meals - including grocery lists etc.That should about do it! ;-) I left off the items about printing custom menus based on the selection and automatically ordering home-delivered groceries based on next weeks menu but I think this would be a good start!
I frankly would not want to start with a blank database and add only my own recipes to it. I wouldn't likely use it if that were the case.
You guys are starting from the wrong end (at least in my experience).
This is the first thing that you need to thrash out. Forget the back end how, where and what is used to store it, just figure out how you want to use it, and more importantly how you expect to be able to interact with it via CQC.
I'm reading web apps or fat clients or no client and lots of other back end design talk, but nobody has started a list of functionality.
You're overthinking this. It's much much simpler than you're making this out to be.
I'm running this like a conference room pilot, not a waterfall model where I've got a gun to my head to come up with a list of pretty words describing what I want before I see anything tangible. For all I know, what I want is undoable. As long as:
1) time isn't a factor
2) there's no cost (i work cheap),
3) I don't have to measure ROI,
it's better to organically grow a solution via that conference room pilot as opposed to forcing some artificial list of words prematurely.
But, to answer your question, from this post (http://www.charmedquark.com/vb_forum/showpost.php?p=29737&postcount=71):
For now, all I want is basic rolodex level stuff to start with. In CQC, all I want is the ability to pick a keyword, filter on it, then show all the recipes under that keyword, scroll through the list. Very generic stuff.
There are a few "fancier" requirements for the app, but that's not relevant until I get the basic thing built. (i.e, imports from other programs, share data across groups over the internet, shopping lists, etc)
BTW, i'm going to follow 2 paths for this:
1) Java fat client app to do the basic stuff mentioned above.
2) Hosted solution. Setup Ruby on Rails on myhometheaterpc.com as a proof of concept. Not sure if I can remotely get ODBC access so I can pull up in CQC, but that's part of the POC.
If #2 works, i'm 99.9% sure I'm personally going down that route so neither me nor anyone else who's following me has to muck with apache, mysql, etc. The whole "keeping it inhouse and local" isn't adding up for me as we have to go externally right now for weather, hopefully xmro soon, another location shouldn't be a concern.
I frankly would not want to start with a blank database and add only my own recipes to it. I wouldn't likely use it if that were the case.
This is exactly the upside to a hosted solution - very simple to access other folks' recipes.
There is a question about additional content above & beyond what we manually add in, but i *believe* i've noticed food manufacturers providing recipes for distribution providing you leave in their product names. That's what i'm looking into now.
Regardless, there's no pressure to anyone to use anything that i'm writing. I'm still doing it if it works only for me. If, over time, more folks gravitate towards it, so much the better.
And, in an attempt to cover the bases, i just sent allrecipes.com an email to see if they're interested. I'll see if I can hunt down any other candidates too.
rhamer
08-15-2006, 02:14 PM
Thats like deciding what you want to control of a receiver from CQC then going out and purchasing one based on that information. But to answer your question I would be happy with the ability to pull up recipes and display them in the interface for now. No matter which solution we work with they will have the same restrictions in CQC. Integration with CQC is the easy part of the whole process as long as dean provides the needed tools to display the information.
I'm not saying the wish list should be limited at this point, but once the wish list exists, then the reality of the project has to come into play and the wish list gets modified to actually be achievable given the technology. I think you will find that intergration with CQC will not be the easy part, because there is lots of talk about being able to search for things, but remember CQC has no text input functionality, so any search functionality has to be pre setup.
The functions will be based on the tools Dean provides us to display the information.
As far as I'm aware dean hasn't promised a new suite of functionality specifically to deal with this project.
yes they could but then everyone is re-inventing the wheel over and over. The time consuming part of a Database application is the development of the Front-End. It is the Front-End that inforces the restirction of data input and how it is entered into the Back-End.
I don't know what you mean. My point was that if you use ODBC to access a data store then people can use whatever they like or have access to. This is not reinventing the wheel nor is it much work, a simple script that generates the required tables is all that is needed and only has to be done once (with exception to perhaps a couple of small syntax differences that may pop up between different platforms).
You're overthinking this. It's much much simpler than you're making this out to be.
I'm running this like a conference room pilot, not a waterfall model where I've got a gun to my head to come up with a list of pretty words describing what I want before I see anything tangible. For all I know, what I want is undoable. As long as:
1) time isn't a factor
2) there's no cost (i work cheap),
3) I don't have to measure ROI,
it's better to organically grow a solution via that conference room pilot as opposed to forcing some artificial list of words prematurely.
I'm overthinking this ?... I think you've got it the wrong way round, you guys are debating the database schema before you have even settled on the functionality, how can you possibly build something that you haven't defined?
Sure brainstorm (or conference room pilot or whatever the current marketing hype term is) and get all the ideas, good, bad, sensible and way out, on the table and then look at how you could actually achieve them.
Once you have settled on the functionality than you can figure out the best way to implement it, otherwise you will be continually chasing your tail.
Oh, and as far as my input into the design goes, the only comment I have at this stage (and it's too early because its a "how to do it" comment and not a "user functionality" comment) is I think the data should be local to the individual's network and have the ability to upload/share recipies between users by way of DB export/import functionality. Having a central internet repository is in my opinion a waste of time, who is going to pay for it and manage it in 5 years time?
Cheers
Rohan
penngray
08-15-2006, 02:26 PM
BASIC NEEDS (All these should be possible by selecting buttons not typing anything)
Lookup recipes based on a keyword ("Chicken" or "Leg of Lamb")
Drill down deeper to narrow the choices based on cooking style ("Grilled" or "Bar-b-que")
Allow me to scroll through the available recipes to find the one I want
ADVANCED POSSIBILITIES (except #6 all these can be possible by selecting buttons and not typing. #6 can be done off touchscreen at a PC with a keyboard).
Allow multiple selection queries ("Chicken" and "Grilled") which may filter the available recipes faster but still be able to filter more from there --> "Lemon" or "Cajun"
Suggest potential side dishes which go well with the main course
Suggest potential wines that would go well with the main course (wine type to begin with and ultimately specific wine - see below)
Be able to show more than one recipe on screen at a time (or quickly toggle between two or more). Main dish, side dish, dessert selected may need to be 'in process' simultaneously.
Be able to scale recipes based on number of mouths to feed.
Suggest alternatives for unavailable ingredients (specifically thinking about spices, etc.)
Allow adding recipes to the database (this one is not a biggy to me if the database is fairly substantial to start with but I'm sure there will be a point where a new recipe will need to be added.) Personally I have no problem doing this outside CQC and 'refreshing' the database somehow.
Provide nutritional information about the recipe.
Prioritizing recipes based on preferred tastes. For example, if "Liver" is never selected or is ranked only '1 star' it moves down the list.
ULTIMATE DESIRES (some of these just require coordination with other similar databases)
Coordinate with a 'grocery inventory' and provide a list of recipes that are possible based on what's in-house.
Coordinate with a 'wine database' to suggest specific wines based on what's available (possibly reference notes or specific fields in the wine database to drill down to personal preference)
Possibly be able to convert units from metric - imperial. Our house has a lot of South African recipes which are all in metric units and it's a PIA to convert everything as you go.
Produce a backward scheduled timeline which will predict when 'dinner is served' and provide start times for various side-dishes or sauces etc. to get the whole meal to come together at one time. This would be a HUGE WAF item!
Coordinate with a 'nutritional calander' to help prioritize recipes based on the last X days based on how good you've been eating.
Allow forward planning of X days of meals - including grocery lists etc.
BigOven I think does 99% of this...I havent used it extensively so I dont know how detail weekly meal plans are or shopping list are but the interface (IMO) is very detailed and very good.
The question here is more about why we want CQC to do this instead of a website....
Cons to a website like BigOven
1. Website is on the internet and not everyone has access to internet.
2. The ability to Type keywords isn't great on touchscreen.
Pros of just linking to a website....
1. Everything is there, 150,000 recipes, Full search capabilities, lots of great functionality ready for us.
2. No installation, design worries and so on.
So the problem here seems like just a key board problem, I dont think the internet is really problem. Lets solve the problem of typing in keywords for searches.
I have been writing application type software for 18 years and I have learned one thing and this is to never re-write something that is already done very well. Integrate it instead.
...Once you have settled on the functionality than you can figure out the best way to implement it, otherwise you will be continually chasing your tail.....I think the data should be local to the individual's network and have the ability to upload/share recipies between users by way of DB export/import functionality....
One clear requirement is the ability to share recipes. Let's start with figuring out how to accomplish that before getting into any front-end type stuff, as that'll be easy comparitively speaking.
So, on that front - why do you think it needs to be local? Because it's too expensive to pay for the hosting fees for an internet repository?
So the problem here seems like just a key board problem, I dont think the internet is really problem. Lets solve the problem of typing in keywords for searches.
More than that - their website is laden with ads, not designed for an 800x600 screen, cannot read it at least on my touchpanel from 3' away [distance to screen from countertop].
For my personal purposes, simply rendering a website is NOT going to work. But, I accept that your situation may be different, hence all you may need is typing in keywords on a browser widget.
ToyMaster458
08-15-2006, 02:42 PM
1) If the Internet goes down the system is still operational
2) I personaly feel better that my stuff is in my hands not some one elses
3) No monthly or yearly fees in order to use the product. If I renew or upgrade it is my choice
4) If an issue comes up I can repair it and not wait for someone else to get to it.
That's cool, no pressure, it's not like I'm forcing anyone to follow me into the abyss. And honestly, i'm hoping BigOven or AllRecipes.com comes through for us so none of this is even an issue, and we can all go back to being friends :D .
And now, the friendly abuse: Extending your logic, I presume you won't be installing the weather.com or CQC metadata repository driver for any of your clients, or providing remote PDA cellphone access, as that requires the internet, and hence is out of your control?
BTW, I would like to point out that we are talking about recipes here, not your security system. If the internet goes down, order a pizza.
Ripper
08-15-2006, 04:06 PM
I agree with Rohan and Toymaster and where this doesnt really need to have anything to do with the Internet..in fact this might even cause more problems so personally I think a local database is much more desirable than a Internet hosted database.
Why bother spending any money for Internet hosting for a database when a local database will work just as well?
As for getting recipes into such a CQC driver..this is rather simple if you were to adopt something *standard like "MealMaster" format, this is a known recipe format and well established and is importable by most recipe programs
Here is one page with 140,000 recipes...do you need more than that? :-)
http://www.thehoseys.com/recipes.html
Download a .zip from that page and inside will be a .mmf file which is basically Mealmaster format, right click on this file and open in "Notepad"...thousands of recipes instantly!
Search google for "mealmaster recipes" and you will see you have access to probably millions of recipes...lets be realistic this is all you will ever need!
Okay so now you have all the recipes in .mmf , make this CQC driver so it can import MMF and as well export .mmf and this way people can share their recipes database or even single recipes if they choose.
If you choose the mealmaster format most people can keep using the desktop software they have to collect recipes and then they just export a file and can add to the CQC recipe database...let be realistic your not gonna be adding 50 recipes each day that this all needs to be automated..I'll bet the average person will load it up with a few hundred or few thousands recipes and maybe add 10 new recipes a year..if for some reason they are adding 50 per day and need it updated in real-time then I'd say they need psychological help.
As for searching recipes that are in a database like this..I have no idea, I know we will need some sort of list view and a way to sort lets say "Chicken" so we can see all chicken recipes in a list view and of course this will have to be scrollable, all recipes on the list can simply be text with perhaps a small 48x48 thumbnail preview if ya wanna be fancy but really I doubt thats needed....touching the text name of the recipe will perhaps launch a popup with the recipe ingredients etc etc and this also would be scrollable I imagine because some recipes will take more text lines than others.
As for text entry to search..I'm not sure CQC has this..if so and a search widget can be used to connect to a database and then output the results in a scrollable list widget...to type stuff into the search just use a command button that launchs windows onscreen keyboard(osk.exe)
The last few days I sorta avoided posting on the topic to see where people would go with this, personal I say the easiest way to do something like this is using Mealmaster format recipes..you have thousands for free and making something to import/export them you would think would be easy.
I don't see any reason why webservers etc even need to be involved in anything...you need to install apache/mysql for a recipe database? Common guys this is a recipe database..installing apache and mysql to make it work would be a pain for alot of people to even wanna try this driver and personally I don't wanna install apache and mysql for recipes..sheesh.
If people want new recipes go grab what you need and download them and import into this driver...we do not need some live connection 24/7 to some database that might cost money to host and add more complexity to something that could be much easier.
I seen mention of the weather driver connected to the Internet...well of course it needs to so it can grab the new weather data every x amount of minutes, do we need to grab new recipes 10 times per day? The weather driver connects to the Internet because it *needs* to but really why do we need to get recipes from some master server?
Being realistic most of you guys are not gonna be sitting round the touchscreen all day sorting your recipes..your gonna load it up and forget about it and maybe show to a few freinds, I'd highly doubt many people will add many personal recipes and if they do just import them as mealmaster files and its done with.
Your wife does not have to import the recipes..you should do it like you do everything else with the HA :-) , I can understand wanting to be all fancy and stuff but seriously ask your wife how many recipes she will add each month and if it would bother her that you had to do it and it might take 5 minutes....you add the DVD's and CD's now right so why would you expect her to add recipes by import if it was a little process to do...surely your gonna add more CD/DVD to your archive in a year than you will add recipes so this doesnt need to be rocket science and adding them manually is not that big of a deal.
I support whatever you guys choose to do but I think keeping it simple and having some sort of plan will make things easier in the long run, simple import/export of files and the ability to possibly add recipes using a web form hosted locally like maybe an asp/php page that could stick stuff into a .mdb and then of course we need a widget to view this data in CQC...really what more do you need than this?
klindy
08-15-2006, 05:22 PM
As for getting recipes into such a CQC driver..this is rather simple if you were to adopt something *standard like "MealMaster" format, this is a known recipe format and well established and is importable by most recipe programs
Here is one page with 140,000 recipes...do you need more than that? :-)...
...If you choose the mealmaster format most people can keep using the desktop software they have to collect recipes and then they just export a file and can add to the CQC recipe database...
As for searching recipes that are in a database like this..I have no idea, I know we will need some sort of list view and a way to sort lets say "Chicken" so we can see all chicken recipes in a list view and of course this will have to be scrollable, all recipes on the list can simply be text with perhaps a small 48x48 thumbnail preview if ya wanna be fancy but really I doubt thats needed....touching the text name of the recipe will perhaps launch a popup with the recipe ingredients etc etc and this also would be scrollable I imagine because some recipes will take more text lines than others.
Your wife does not have to import the recipes..you should do it like you do everything else with the HA :-) , I can understand wanting to be all fancy and stuff but seriously ask your wife how many recipes she will add each month and if it would bother her that you had to do it and it might take 5 minutes....you add the DVD's and CD's now right so why would you expect her to add recipes by import if it was a little process to do...surely your gonna add more CD/DVD to your archive in a year than you will add recipes so this doesnt need to be rocket science and adding them manually is not that big of a deal.
Ok, sounds to me like if we have some flexibility with the Media Browser Widget we can format an XML file like we do with JRMC or DVDP and we're golden!?
I agree with you Ripper that this makes a lot of sense. That said, it sure sounds a lot like your typical media browser stuff. Why recreate the wheel?
All sounds nice, and i'm not trying to overengineer anything, but a few fatal flaws in the reasoning.
1) Meal-master isn't directly usable, unless you think this is a usable screen. This means we need a way to update meal-master.
http://www.myhometheaterpc.com/temp/meal-master.JPG
2) This is the meal-master format, no idea how you'd ever be able to intelligently import that given there's not any guaranteed consistency of structure between records, except for the recipe start/end. This means stuff like scaling of recipes, heck even a list of ingredients, would never be possible.
Title: "Band" Sloppy Joes
Categories: None
Yield: 1 Servings
10 lb Ground beef browned and
-drained
5 lg Chopped onions
5 c Chopped celery
20 tb Chopped green pepper
5 ts Mustard
10 tb Lemon juice
2 ts Salt
20 tb Brown sugar
20 tb Open Pit BBQ Sauce
10 c Catsup
Brown ground beef. Add onions, celery, and green pepper to beef and
saute. Add remaining ingredients, mix well, and cook 45 minutes.
Posted to TNT - Prodigy's Recipe Exchange Newsletter by Al & Debbie
Cook <alcook@niia.net> on Dec 16, 1997
MMMMM
MMMMM----- Recipe via Meal-Master (tm) v8.06
Title: "Basic Salsa with Any Kind of Dry Chiles"
Categories: Mexican
Yield: 4 Servings
6 lg Chiles dry (morita or mulato
Or guajillo or any kind) if
The chiles are littles like
Jalapeņos or serranos, use
15 chiles.
1/2 md Onion
1/4 c Vinegar
1 sm Clove of garlic
Salt
Vegetable oil
The kind of chiles that you use determine the final flavor, you can
experiment with different kinds or mixing the different kinds of
chiles. But this is the basic recipe for prepare salsas with dry
chiles.
Wash the chiles in water and discard the seeds and threads of chiles.
Let stand in water at least 2 or 3 hours or all the night, if you do
not have time let the chiles in warm water at least 30 min. Then
ground with the other ingredients and in a sauce pan put a little
amount of vegetable oil when it will be warm add the salsa and cook
30 min or more, the flavor of vineagar have to disapear, add water if
need. When it is cook you can use for "Chilaquiles", "Enchiladas",
and eggs.
From Gemini's MASSIVE MealMaster collection at www.synapse.com/~gemini
MMMMM
3) I just imported the first few dozen files. Even with 140K recipes, the very first thing I looked isn't available [Balti Chicken, it's an indian dish we cook often.]
4)BigOven won't let us have access to their database.
5) Current XML format for JRMC/DVDP doesn't work for recipes. Any new XML formats need to be created by Dean, and i'm sure recipes are so far down the list of important stuff it wouldn't be done for a while.
6) No easy ability to share just those recipes you've created. Total PITA using that format.
7) It's not like you're requiring a 24x7 internet connection JUST for this - you've already got one, it's just going unused most of the time.
8) Use of a central hosting repository does not preclude the use of a local db, nor does it require Apache. I suspect you can set this whole thing up to hit a local data store. The internet could just hold the master copy, and you pull down updates as appropriate. CQC can access that local datastore, doing away with the mandate for an internet connection. However, all administration & maintenance [ie adding recipes] would be done against the internet datastore.
In the end, I still only see 3 options:
1) Beg BigOven or AllRecipes to hook us up. No idea how recipe sharing works, but they're in the s/w business, let them deal with it.
2) Build our own.
3) Don't do recipes via CQC.
my bad - #2 above is wrong. looks like BigOven can import MMF files.
Data is a little dirty though, i'm getting a few "ATTENTION:" messages when scrolling through it.
Unfortunately, we cannot use BigOven as a translator between formats. This means someone has to write a parser, which sounds scary.
Ripper
08-15-2006, 06:47 PM
Check out this link maybe it has stuff your looking for
http://www.wedesoft.demon.co.uk/anymeal-api/design.html
Here is the main page
http://www.wedesoft.demon.co.uk/anymeal-api/index.html
AnyMeal is a Linux recipe database software developed using MySQL and XML. It can manage a cookbook with more than 100,000 recipes, thereby allowing to search, display, edit, import and export them. AnyMeal is designed to be lean and flexible. AnyMeal is open-source software. Happy cooking!
**Here is something made for Xlobby that converts mealmaster to xlobby database which I suspect may be xml
http://xlobby.com/forum/viewtopic.php?t=3061
Dean Roddey
08-15-2006, 06:51 PM
There wouldn't need to be any new format for display only, from an ODBC source. What I'd originally suggested is a 'DB Browser' widget. It would just be a widget that you could configure with a SELECT type command and tell it the format of the rows returned. It wouldn't necessarily display anything itself, it would just be there to send commands to to tell it to move to the next or previous row, jump to a first character, find a pattern in a given row, that kind of thing.
It would have an 'OnSelect' event that you could use to spit out the data of the newly selected row to other widgets, or to carry out some command. So it would be a simple, generic browser of database rows of a select query, and to invoke an action that would make use of some of the text of the returned columns.
ToyMaster458
08-15-2006, 07:27 PM
There wouldn't need to be any new format for display only, from an ODBC source. What I'd originally suggested is a 'DB Browser' widget. It would just be a widget that you could configure with a SELECT type command and tell it the format of the rows returned. It wouldn't necessarily display anything itself, it would just be there to send commands to to tell it to move to the next or previous row, jump to a first character, find a pattern in a given row, that kind of thing.
It would have an 'OnSelect' event that you could use to spit out the data of the newly selected row to other widgets, or to carry out some command. So it would be a simple, generic browser of database rows of a select query, and to invoke an action that would make use of some of the text of the returned columns.
We also need to be able and hide columns and use the hidden column as the data for other widgets
It would have an 'OnSelect' event that you could use to spit out the data of the newly selected row to other widgets, or to carry out some command. So it would be a simple, generic browser of database rows of a select query, and to invoke an action that would make use of some of the text of the returned columns.
Kind of like an MS Grid control? :)
Ripper
08-15-2006, 07:49 PM
I'll let the geeks figure it out :-D
ToyMaster458
08-15-2006, 07:49 PM
Dean
I am thinking more about this ODBC Widget and a couple of questions come to mind. First from the way you are discribing the widget would be accessing the ODBC configuration directly, this means the database would have to be accessable on a share from all computers and setup as a ODBC machine datasource on all machines. How would this widget work with DNV??
Wouldn't be better if just the server that the driver is installed on had access to the database then pushed the data to the clients?
klindy
08-15-2006, 07:52 PM
I'll let the geeks figure it out :-D
Me too....I kinda thought I was over my head suggesting what I would like to see it be able to do! Now I'm convinced I was!! :shock:
Dean Roddey
08-15-2006, 08:19 PM
I am thinking more about this ODBC Widget and a couple of questions come to mind. First from the way you are discribing the widget would be accessing the ODBC configuration directly, this means the database would have to be accessable on a share from all computers and setup as a ODBC machine datasource on all machines. How would this widget work with DNV??
Wouldn't be better if just the server that the driver is installed on had access to the database then pushed the data to the clients?
I guess I was thinking that the ODBC source would always be network available, since I've worked only with MySQL and SQL Server, but I guess that's not the case with simpler sources.
Anyway, I'll think about it some more after 2.0 is out.
Well, I got cookdojo setup up on my site here. (http://www.myhometheaterpc.com/cookdojo/cookdojo_home/index.php) It's a very very very simplistic basic recipe db. Go ahead and check it out - i'll be taking it down within 24 hours for other reasons.
It's only got 2 tables in it's data structure:
CREATE TABLE catrecipe (
catID int(11) NOT NULL auto_increment,
cat_title varchar(200) NOT NULL default '',
PRIMARY KEY (catID)
) TYPE=MyISAM;
CREATE TABLE recipe (
recipeID int(11) NOT NULL auto_increment,
recipe_title varchar(200) NOT NULL default '',
recipe_ingredients text NOT NULL,
recipe_method text NOT NULL,
recipe_note text NOT NULL,
catID int(11) NOT NULL default '0',
PRIMARY KEY (recipeID)
)
I'm going to see if/how I can get some Meal-master format (MMF) recipes in there, so I can see how it works with a larger db.
Not really what I was looking for, but it's literally the only windows-based program out there that uses an open database.
Interesting food for thought. [ba dum bum]
What's the data structure for joomla look like? (ie, CQC-users.com?)
I found this joomla component for recipe mgmt (http://www.mosdemo.com/index.php), not sure how the data gets stored on the back-end. Obviously an import into that format would be needed somehow, as well as some mechanism to download it to folks' local machines.
ToyMaster458
08-15-2006, 10:10 PM
After a few days going back and forth with BigOven it is a BIG NO! They will contact me if and when the want to do Home Automation Integration.
Well doesn't that just suck. The Allrecipes guy hasn't yet returned my email.
On the upside, I've been searching the joomla FAQ's and forums, looks like it's just a mySQL db.
This tells me that if that Rapid Recipe component works out, then for me and potentially a very small subset of you:
1) Folks might be able to use that component directly online to manage their recipes
2) I need to find a way to import recipes en-masse into it
3) I need to find a way to replicate that db down to the local user, so CQC can use ODBC to access it directly. Frankly, based on the size of the db, full replication may even work as the local datastore wouldn't be directly worked on, and can hence be overwritten.
If I can do that, then there should be no issues with those of us who don't have an issue using a browser and internet connection to maintain the repository, only pulling data down if it changes. The simplest thing would be a complete db retrieval, not sure how big that would be. But, given that this isn't a daily occurence, then a weekly retrieval at 3am Sunday would work for everyone but Ron & Ripper who like to work the night shift.
I'm waiting to hear back from the Rapid Recipe folks as to the licensing. If all seems well, i'll start a test of it on myhometheaterpc.com to see how it works.
bwally
08-16-2006, 04:45 AM
hey IVB, did your searches happen to fall on this page: https://studio.tellme.com/library2/code/ex-108/
not search if it is entirely relevent but looks cool.
ToyMaster458
08-16-2006, 05:56 AM
IVB the one issue I see with your solution is that it is not user based but one common database of recipes. I personaly only want to download my recipes and I would want security as some of my recipes have been in the family for a long time and the family as a whole does not want a few of those getting out.
One of the other links that was posted in here for GroceryIP as we know it is out of business and is for sale. I have put in an email to the developer to see what he has in mind for a price. It is a long shot but you never know to you ask.
hey IVB, did your searches happen to fall on this page: https://studio.tellme.com/library2/code/ex-108/
not search if it is entirely relevent but looks cool.
Not that particular one, but if this proof of concept works and is simple to setup, no reason this solution can't be cloned for drinks, wine, etc.
*sigh*
Setup Joomla, downloaded the 7 day trial for RapidRecipe.
Just forgot the admin password I setup for Joomla, now I can't get back in. Gotta reinstall it. ugh.
Slowly, ever so slowly, i'm learning how to joomla, and also how this damn rapid recipe mambot works.
Check it out. (http://www.myhometheaterpc.com/joomla123/index.php) There's only one recipe in there so far, haven't figured out how to add more via the front end [that one was done via the admin interface].
I'll also have to figure out how to do a mass import.
Not that I have any clue whether this will even work for my needs, but given this thread, we don't seem to have any better options, so I'll keep plugging away trying to find a solution that is simple and works.
Dean Roddey
08-17-2006, 10:10 PM
What is joomla? Sounds like a Caribbean power drink.
Free CMS software. Their standard tagline.
Joomla! is one of the most powerful Open Source Content Management Systems on the planet. It is used all over the world for everything from simple websites to complex corporate applications. Joomla! is easy to install, simple to manage, and reliable. (http://www.joomla.org/)
robertmee
08-18-2006, 04:40 AM
Slowly, ever so slowly, i'm learning how to joomla, and also how this damn rapid recipe mambot works.
Check it out. (http://www.myhometheaterpc.com/joomla123/index.php) There's only one recipe in there so far, haven't figured out how to add more via the front end [that one was done via the admin interface].
I'll also have to figure out how to do a mass import.
Not that I have any clue whether this will even work for my needs, but given this thread, we don't seem to have any better options, so I'll keep plugging away trying to find a solution that is simple and works.
mmmmm....Feta and Olive meatballs :)
mmmmm....Feta and Olive meatballs :)
Just got that recipe, harassing wife to make it tonight, she's putting up quite the fight.
She doesn't want to make a dish that only one person in the house would like. What's up with that?
Perhaps this driver will have unforeseen, negative consequences...
robertmee
08-18-2006, 08:59 AM
Just got that recipe, harassing wife to make it tonight, she's putting up quite the fight.
She doesn't want to make a dish that only one person in the house would like. What's up with that?
Perhaps this driver will have unforeseen, negative consequences...
Tell your wife to get with the program...To my wife's credit there is a dish that only I eat and she makes it for me on those special occassions. Nothing weird, just baked pork chops smothered in cream of mushroom on a bed of rice...who wouldn't like that?? Now she on the otherhand likes rice, milk and sugar mixed together...THAT turns my stomach.
ToyMaster458
08-18-2006, 09:23 AM
just baked pork chops smothered in cream of mushroom on a bed of rice...who wouldn't like that??
I would!! :-D
What time should Kirk & I be there for dinner?
robertmee
08-18-2006, 10:11 AM
What time should Kirk & I be there for dinner?
Are you guys a couple now? ;)
Are you guys a couple now? ;)
We've always been a couple.
A couple of what (pompous asses, myopic schmoes, etc) I leave up to the readers imagination.
bwally
08-18-2006, 11:15 AM
where's the real IVB?
i just noticed that Rapid Recipe thing is $60 U.S.
that doesn't sound like the same froogle IVB i know :)
Yeah, i'm looking at how much work it'll be to actually build this thing from scratch, might be better for a single $60 payment for myhomecookingpc.com. It's free for all the users, as you'll just use it up on the site.
What I'm researching is the ability for me to schedule a daily(hourly?) export of a few tables, so that folks can pick up those tables, pull down to their local machines, and retrieve into CQC.
What this means is that you'd need to use myhomecookingpc.com for "admin/maintenance" of your recipes, but CQC could read them at will. You wouldn't be able to make any modifications to your local db copy.
Not the best solution, but I don't see any other pre-canned way right now to get there from here. Considering this is just for recipes, this might be "good enough" for me. I'm continuing my java education just in case it doesn't work out, and I really do need to build my own.
bwally
08-18-2006, 01:06 PM
so, if i understand this right, ...
you've got this recipe thing going on up on the web on your joomla site
you get this java app that communicates with the recipe database up on your site
this updates the data stored locally for us CQC users
CQC talks to the local data store.
if anyone has a recipe they want in the database they can go to your joomla recipe site and add the recipe
am i close?
yes, you are close. I can't tell how close because of the following 2 unknowns that I am working to determine:
1) What kind of app is needed to communicate with the db that is on the site? Is it java? How will it work?
2) Will I be able to only send a partial set of data that is unique to each user's data requirements, or will I have to send the whole database? That means that each user would see every single recipe in the db, not just the ones that they want.
Obviously there's the desired answer for each of those 2 which would make for a very usable system. For #1, we want something that's automatable, ideally via the CQC event scheduler. For #2, we want the ability to only retrieve the data you want rather than a mega-dump.
No idea how close I can get to each of those desired answers as i'm really not that much of a techie anymore, so away I explore.
Ok, myhomecookingpc.com is now hosted at it's permanent location. I ended up going with a megacheap provider that specializes in Joomla; it's only $85/year, and comes with all these joomla tutorials/etc.
I'm currently trying to get an export of the full table for the recipe db. Once that's done, i'll see how to:
1) Automate the export for every 15 mins, put somewhere on the site (ie myhomecookingpc.com/exports)
2) Automate the download on your local machine. I doubt this'll be java, but you never know. If I had a VB compiler, I might just learn how to do it in there. I'm sure me/developer buddies will figure something out.
3) See if it's possible to do a partial export for just a given user. Not sure how this would work, as i'd have to also learn joomla, so i'm currently leaning towards only doing a full download first, deal with this last.
I'm also strongly contemplating NOT loading in 100's of thousands of meal-master/etc recipes. I looked through them and BigOven and ... today, seems to be an awful lot of JUNK in there. 22 different Banana Bread recipes, they all sounded gross. Perhaps just putting in "vouched for" recipes would work.
Given that V2.0 isn't going to be out for another few weeks, and that I need to wait for that for ODBC and any real progress, I'll back-burner this once #1 and #2 are done.
Progress progress progress!
The site is running an export every 15mins to a local db for just the 4 recipe tables. I used the windows event scheduler to automatically download that exportfile via a very simple NT command script. Downside is that each task only runs 1x/day max. I was hoping to do this every 15-30mins as it's a 10second command and takes almost no CPU cycles.
At this point, i'll probably put this project on hold until V2.0 comes out as all I need is a local display mechanism. I do need to populate the site with recipes, but I don't think i'll populate with MealMaster data as it's really 99.9% garbage, 1% useful. I might put in the recipes we use heavily [south beach stuff, indian food, etc].
Also, anyone else is more than welcome to signup and add their own stuff into it. PM me and i'll give you the NT command script with the login details for the site.
beelzerob
08-24-2006, 07:39 AM
For typing on screen if you need to why not use the windows OSK? Press a command button and it pops up and when you are finished press the x and it closes
That is definitely functional, and I have to access it quite frequently at this point....but it is also just about the last thing I'd want my wife to get used to using regularly. To me, having to use the OSK screams you've not made a useful interface.
It's a TOUCH pc. I want everything accessible by clicking/sliding. That might limit what I can do....or it might just force me to rethink how some things are accessed.
ACK! I finally get a db driver connected to CQC, and I realize this site was setup using mySQL, which for the life of me I cannot get to work with CQC.
Given that the SQLServer odbc works fine, i'll try for another 1-2 days. Here's hoping I don't have to resort to paying the $100/year that the SQLServer upgrade for the site will cost.
vBulletin v3.5.4, Copyright ©2000-2013, Jelsoft Enterprises Ltd.