Open Source Brew Planning Software Assistance?

Australia & New Zealand Homebrewing Forum

Help Support Australia & New Zealand Homebrewing Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

OzMick

Well-Known Member
Joined
13/6/09
Messages
125
Reaction score
0
Hi all,

Been toying with the idea of building an open source brew planner computer program (think Beersmith etc), and was wondering if anyone might be interested in helping out with the more artistic/creative side of things. I'm useless at graphics, and loads and loads of writing that could easily be broken up if there are volunteers prepared to give a bit of their time.

Not after anything to be done right at the moment just expressions of future interest (names in credits etc), but lots of jobs will no doubt come up once the actual program itself is built to the point where it is useful:
  • Icons and other such pieces of small artwork (including replacing my horrible 1 minute job icon in screenshot...)
  • Raw material database information - original content or with owner's permission if taken from a supplier website etc.
  • Style descriptions & example information - again, original content or with permission from owner
I've been in touch with a BJCP rep, they might be willing to allow full use of their style comments and descriptor info (being a free app) so that might make that part considerably easier, have got something half written already to tear that directly from their website. Stil an absolute mountain of written material that would need to be prepared for raw materials in either, and it all needs to be original content, you'll be personally responsible if anyone tries to sue over something you contribute.

Some background about how I'm going about things at the moment:
  • To originally run on Linux, but should be portable to Windows later on
  • Writing in C, using GTK libraries
  • sqlite database backend to handle all record keeping, undo/redo functionality etc
  • Maybe build with plugin system for easy addition/removal of features
Been mostly hung up on how things will be done and presented to date, and doing it all from scratch as a learning/remembering exercise as much as anything, so taken a few days to get to the point it is at presently, but gaining a bit of momentum now that it is starting to come together in my head. Still a long way to go and looking to do all coding myself up to the point where it is actually ready for some playing around with by others, do don't hold your breath on much for a few months. Then there is a fulltime job and helping to plan my wedding to contend with for time too...

So, anyone interested? This is the kind of thing that just needs to be done once and done well, and everyone now and into the future can have access to a top notch tool without having to spend a thing (and not have to rip someone else off for the privilege - you pirates know who you are). Maybe look at contributing as a way of generating some good karma for previous software theft indiscretions...

Screenshot.png
 
I'll help where I can.

10 years unix/Linux admin experience.
Good at shell scripting and dabble in C.

Need to get a new linux puter in the house though, currently only have the works Windoze laptop.
 
Thres a couple of open source programs going at the moment. Might be best to colaborate with one of them rather than start another program. There are heaps of work. Contact chris Taylor. He's got one if the best ones going at the moment and he's an AHB bloke.
 
I can help a little, would be happy to do the windows "port" of your linux system as a simultaneous development

I have 20+ years development experience (most operating systems and languages from embedded to banking & defence)

Andy
 
In terms of porting, using GTK widgets, so shouldn't be a massive job. Could be horribly wrong though, but shouldn't be doing too much platform specific stuff hopefully unless plugins get used heavily. That could make things messy maybe.

I don't mind coding, can have some fun trying new things. But one of the biggest, most boring jobs that I see is populating the database with good data. Might be able to pull that from another OSS project if it has been done (well) previously. From what I see though, they tend to just have the raw material names and specs, which is almost meaningless to a new brewer. How many threads are there on these forums alone asking if they can substitute munich and caramunich? A program without good descriptions isn't worth writing at all, just forces new brewers to cough up for the proprietary one that does have them.

Tried looking for other open source alternatives... None really seem to have the ambitious goal of replacing a fully fledged program like Beersmith in terms of maintaining inventory and brewing with the constraint of what is on hand, keeps easy to review logs of past brews or has a full suite of helper tools built in. Not talking about a program that is good enough that an experienced hand can make do with, talking about a real competitor to the established products.
 
In terms of porting, using GTK widgets, so shouldn't be a massive job.

Why not write the thing in Java and get around the porting issue? It's a bit easier to code in than C and there are a vast number of supporting libraries.
 
In terms of porting, using GTK widgets, so shouldn't be a massive job. Could be horribly wrong though, but shouldn't be doing too much platform specific stuff hopefully unless plugins get used heavily. That could make things messy maybe.

I don't mind coding, can have some fun trying new things. But one of the biggest, most boring jobs that I see is populating the database with good data. Might be able to pull that from another OSS project if it has been done (well) previously. From what I see though, they tend to just have the raw material names and specs, which is almost meaningless to a new brewer. How many threads are there on these forums alone asking if they can substitute munich and caramunich? A program without good descriptions isn't worth writing at all, just forces new brewers to cough up for the proprietary one that does have them.

Tried looking for other open source alternatives... None really seem to have the ambitious goal of replacing a fully fledged program like Beersmith in terms of maintaining inventory and brewing with the constraint of what is on hand, keeps easy to review logs of past brews or has a full suite of helper tools built in. Not talking about a program that is good enough that an experienced hand can make do with, talking about a real competitor to the established products.

Hi OzMick,

I and another AHB member have been working on an on-line brewing tool (Ruby on Rails based) for some time now. And would be happy to collaborate with you in terms of
- sharing reference data,
- importing/exporting recipes between applications
- sharing feature sets etc

The tool we have been working is intended to be a "Beersmith like" in terms of features, but as CM2 pointed out it is a lot of work and we are still a ways off.

Its currently live and you can have a look at it here www.brewtoolz.com

Some suggestions if you want to do down this path:
- Focus on a Windows compatible application (its where the most users are likely to be)
- Look at the BeerXML for ideas on data modeling. Seems to be relatively mature, and bonus is that BeerSmith supports exporting recipes in this format.

Send me a PM if you want to discuss further.
 
Its been a while since I've done it but it may be possible to do it in a html/javascript environment that could be run from any web browser. Databases (such as syles, malt and hops) could probably be kept in XML files
 
Re Java vs C: I was originally wanting to write something with a possibility of selling it so didn't really want to use a language that was easily disassembled, I was actually looking forward to the prospect of putting in some anti-cracker code and wasting some of their time, so many programs just make it too easy and only need a single conditional jump to be reversed for all protection to be removed.

I then thought of targetting Linux specifically, and if someone else on "the other" OS wanted to use it, they can learn to use Linux while they're at it, a lot of programs running under Linux are all in the same bag. I also enjoy C, can be a bitch at times, but I'm a control junkie so resonates with me to be using a low level language. But java does start to make more sense for an open source approach, and will likely take it in that direction.

Re XML: XML is no substitute for a database. As example of problems associated with cutting corners from not using a database: I've had Beersmith crash under Linux (probably no fault of Beersmith though, more likely Wine) and lose the entire recipe that was being worked on - it has an undo feature, but nothing is actually saved until you hit the close button on a form I think. Under sqlite with appropriate triggers I think I can effectively manage undo/redo history almost transparently, just maintains a log of commit/rollback operations. BeerXML is a good idea though for basing database structures on and for compatibility with import/export of data, and certainly worth doing. I really don't want to proliferate files and have to deal with the associated reading/writing too, have a look at how many files are in the Beersmith folder for a bit of a shock... Multiple backup copies of everything that could be so easily handled by having a "cancelled" or "version" flag in a single database, and looks like someone hasn't heard of CHM either.

Brewblogger and brewtoolz, still need to have a closer look. I'm not sold on the cloud yet, I like to have easy offline access to everything, as often on my netbook and also without internet when I feel that urge to piece together a recipe. A locally hosted webserver might work, maybe even an embedded java webserver. Need to do some more research and thinking...
 
I currently use beersmith and I have multiple pc's at home and work laptops at home.. one function that would rock! would be a server/client model.. i.e. host the database on my mythtv backend (linux) and then I can hit with with windows client/web client/linux client.. etc..

I can help if your desperate also.. :) I.T. man by trade not a programmer though.. probs knock up some icons or something.
 
I currently use beersmith and I have multiple pc's at home and work laptops at home.. one function that would rock! would be a server/client model.. i.e. host the database on my mythtv backend (linux) and then I can hit with with windows client/web client/linux client.. etc..

I can help if your desperate also.. :) I.T. man by trade not a programmer though.. probs knock up some icons or something.


+1 for server/client

Im also in IT, but I'm a SAP guy which wont help you at all. But the SDLC should be similar, so I'm happy to get involved in UAT or as a BETA user or wherever I can.

My New years resolution. Use less acronyms.... :p
 
there is qbrew if anything some code could be reused from that project....... id be keen to contribute.... most likely with code rather then documentation


+1 for linux

-1 for java

lets get coding
 
Re Java vs C: I was originally wanting to write something with a possibility of selling it so didn't really want to use a language that was easily disassembled, I was actually looking forward to the prospect of putting in some anti-cracker code and wasting some of their time, so many programs just make it too easy and only need a single conditional jump to be reversed for all protection to be removed.

I then thought of targetting Linux specifically, and if someone else on "the other" OS wanted to use it, they can learn to use Linux while they're at it, a lot of programs running under Linux are all in the same bag. I also enjoy C, can be a bitch at times, but I'm a control junkie so resonates with me to be using a low level language. But java does start to make more sense for an open source approach, and will likely take it in that direction.
My initial interpretation of your post was you were looking to provide a brewing tool for the Linux community, and hopefully teach yourself some C along the way. There's nothing wrong with wanting to learn, or program in C, some guys like rebuilding 70's classic cars, stripping 4 barrel Holly carburetors even when there are perfectly good EFI systems now available. I shudder when I think back to writing mouse event handlers using the original Microsoft Visual C. Managed languages, on either the Java or .Net/Mono stack will shorten your development effort considerably.

I've been in the software business for 15 odd years now, and one of the major time sinks for any project is the "Not Invented Here" syndrome. Are you sure you're not just wanting to reinvent the wheel? I also believe that the next version of Beersmith, currently under development, is being written in .Net, and should have a Linux/Mono port available.

Personally, I don't think there is enough of a target market out there for 3 (or 4 if you include Mac) commercial homebrew software packages out there. You are looking to build it initially for Linux, but you are going to struggle to get acceptance within the F/OSS community if you either close source it up front, or plan on closing it up later.

Treat is as a fun side project, though, and I think you will learn a lot about brewing calculations, and about programming. Hope you don't enjoy spending time with your wife/kids, though ;)
 
Happy to put my hand up to help with the linux testing :)
 

Latest posts

Back
Top