Strange Brew java

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

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

JimC

Well-Known Member
Joined
Apr 5, 2007
Messages
304
Reaction score
14
Location
Ottawa, Ontario, Canada
Swing based, java brewing software. It isn't as mature as commercial offerings, but its the most mature and feature rich run anywhere app out there. It is also open source and has active development. It can run on any platform with a Java 1.5 or better VM on it.

CVS head version has a few bug fixes and features not available in the 2.0 release. Most of them are to overcome a few Swing UI annoyances. Currently it is has some award places in the UI which we hope to iron out.

But if you are looking for something to run on Linux or a Mac.. or just don't want to pay for something.. this might be the ticket.

http://www.strangebrew.ca/java/
https://sourceforge.net/projects/strangebrew
 
we, eh... are you one of the developers? I run qbrew right now which is based on...I forget probably C/++ but it;s lacking some features and has some bugs that are annoying. I'll deff check this out.

Ok I downloaded it and looked through it quick and the biggest thing that popped out at me was the database of malts, yeasts, hops etc is empty meaning I have to input everything about everything that I want in there? That would take a considerable amount of time.
and now I looked through the source files and see the data is there is cvs, just doesn't load up when executing the jar... will look into this to see if It's my comp.
 
Thanks for posting that Jim -- I didn't realize that Strangebrew was now opensource (read free). It looks pretty functional.

And it seems to work fine for me -- the entire ingredients database seems to be there.
 
Your current working directory must be the same one which the jar file is in. The app is picky about pathing.. something I plan to resolve so the app can be untied from its strict directory structure. But there are a few other things I want to fix first, like the annoying way Swing handles combo boxes inside tables.
 
I checked it out. Looks really well done. I'm a Beersmith user, but this looks like a great option for someone who is just getting started and/or doesn't want to pay $20 for beer s/w.
 
So I have been playing with this a bit, and you know what I REALLY like? Strangebrew can open almost any recipe! It opens BeerXML (Strangebrew, Beersmith, BeerToolsPro), Promash, and QBrew.

Too bad it couldn't export recipes to these same formats -- it would be nice if someone would make a good recipe converter -- this comes pretty close.
 
Yes it seems picky about the path. Not that that's worked out I'll give it a try next time I'm formulating a recipe.

As far as the promash support, can it just save to a promash style hex file?
Although in all honesty all the beer software should use an open format.
 
Promash Support: Ugh.. well.. I do know my way around a hex editor but, a) I didn't do the original reverse eng on the format for importing so I would have to start from 'scratch' and b) I don't own a copy, nor will it run on linux so I couldn't even buy one and run it. :) AKA.. you'll need someone else to implement that feature request.

I agree on the open format bit. There are a few XML formats out there to pick from, and they are all largely very easily interchangeable. I think support for QBrew took something like 20 lines of code. BeerXML was a bit more because the format doesn't play nice (read it doesn't identify itself programmaticly)

If there is anything anyone would like to see, please take the time to submit a Feature Request on the sourceforge page (or give me enough details here to do it for you). The latest version from CVS (for those of you who aren't afraid of compiling java) has quite a number of user interface enhancements.
 
There are a number of contributors, of which I am a distant second for "amount contributed" after Drew, author of the Strange Brew windows app.
 
i may take a stab at the promash format export. its been a while since ive done any java coding but i am pretty familar with structured file formats.
 
It looks like a good program to me as well I've been waiting for something that will work with my machine (Ubuntu) since I can't run Widows programs. I am having a problem trying to figure out how to get the database to work however, none of the data is currently available, I know it's there but Strangebrew doesn't want to connect to it.
 
farmbrewernw said:
It looks like a good program to me as well I've been waiting for something that will work with my machine (Ubuntu) since I can't run Widows programs. I am having a problem trying to figure out how to get the database to work however, none of the data is currently available, I know it's there but Strangebrew doesn't want to connect to it.

Read post number 6 in this thread.
 
It is also, sort of, described in the "Extra help running on Linux" section. This issue should be a lot clearer in the readme. I still intend to remove the applications dependency on a specific directory structure. Unfortunately, that isn't as easy to make platform neutral and still maintain platform specific logic.

Windows: everything goes in program files and changes affect every user on the system.
Linux: application and app data is owned by root in /usr/local and a helper script is put in /usr/local/bin. User data (recipes, config, modified data) goes in ~/.strangebrew. Your data is yours.

I suppose I just need to bite the bullet and make some platform dependent installers and add a command line option or two.
 
JimC said:
It is also, sort of, described in the "Extra help running on Linux" section. This issue should be a lot clearer in the readme. I still intend to remove the applications dependency on a specific directory structure. Unfortunately, that isn't as easy to make platform neutral and still maintain platform specific logic.

Windows: everything goes in program files and changes affect every user on the system.
Linux: application and app data is owned by root in /usr/local and a helper script is put in /usr/local/bin. User data (recipes, config, modified data) goes in ~/.strangebrew. Your data is yours.

I suppose I just need to bite the bullet and make some platform dependent installers and add a command line option or two.

This is my first post here, so hi to HomeBrewTalk, seems to be great site for the homebrewer.

I'm a java developer as well, and figured I'd register and chime in as I've faced these kinds of problems before. My apologies if this is something you've already considered.

If you have a web location you can use to setup deployment, I'd suggest looking int Java Web Start as a way to distribute and launch your app. It turns it into a one click operation for the user on most all platforms. JWS takes care of downloading the latest JAR files, storing them locally, updating them, and starting the application.

For storing local data files, I would use users home directory using code like this below.

Code:
//Set data cache directory
String sUserDir = System.getProperty("user.home") + System.getProperty("file.separator"); 
String sCacheDir = sUserDir + "brew_cache" + System.getProperty("file.separator");
File fileCacheDir = new File(sCacheDir);

if(!fileCacheDir.exists()) {
	try {
		if(fileCacheDir.mkdir()) System.out.println("Created Cache Directory.");
	} catch(Exception ex) {
		System.out.println("Unable to create cache dir.");
		throw ex;
	}
}

This code makes creating a location for data storage platform independent.

If you've never used JWS, and want some assistance drop me a PM and I'll try to point you to a couple examples. Its fairly straight forward.

Anyway, there's a couple ideas from a nOOb.
 
Lambo3 said:
:mug:

I've tried to mix the two, but strange code tends to surface :D


So is JimC the main developer on this product???

No, Drew is the main developer. I did a chunk of work in Dec/Jan on it but haven't looked at it in a month or so (paying job taking all my brain power).

Thanks for the tips. That should help a lot down the road when I get a chance to spend some more time on it.
 
JimC, you mentioned OS-specific as a possible way to go. I was able to turn StrangeBrew into an application bundle on my Mac using the Developer Tools and this link. It's crude but it works. Even got it to use the system menu bar. Now I can click it in the Dock, or if I set a document's "Open with..." attribute, I can click the document and StrangeBrew.app will automatically open.

I have no experience with java or development or any of that fancy stuff. I'm sure those of you who know what you're doing could do wonders with better integration and utilization of system resources! Maybe even give it a nice icon.
 
I haven't been active in a long time. Kid, life, etc. All the problems with Open Source software. Not sure what Drew has been doing with it. I keep meaning to get back to polishing up whats there but there is always so escuse like brewing.. or drinking at the cottage.

In short, not to my knowledge yet.
 
Your current working directory must be the same one which the jar file is in. The app is picky about pathing.. something I plan to resolve so the app can be untied from its strict directory structure. But there are a few other things I want to fix first, like the annoying way Swing handles combo boxes inside tables.


i can launch strangebrew (on ubuntu) by right-click and select "open with sun java 6.0 runtime" but in this case i dont have any data (malts, hops, etc). if i open it from a terminal i get this strange log and the process never ends...heres what it looks like :

denis@denis-desktop:~/Documents/denis/creation brasserie/recette biere/StrangeBrew$ java -jar strangebrew.jar
LOCATOR
SYS ID: file:/home/denis/Documents/denis/creation%20brasserie/recette%20biere/StrangeBrew/src/ca/strangebrew/data/styleguide.xmlLOCATOR
SYS ID: file:/home/denis/Documents/denis/creation%20brasserie/recette%20biere/StrangeBrew/src/ca/strangebrew/data/styleguide.xmlException in thread "main" java.lang.NullPointerException
at java.awt.GridBagLayout.GetLayoutInfo(GridBagLayout.java:1095)
at java.awt.GridBagLayout.getLayoutInfo(GridBagLayout.java:893)
at java.awt.GridBagLayout.ArrangeGrid(GridBagLayout.java:2048)
at java.awt.GridBagLayout.arrangeGrid(GridBagLayout.java:2008)
at java.awt.GridBagLayout.layoutContainer(GridBagLayout.java:789)
at java.awt.Container.layout(Container.java:1421)
at java.awt.Container.doLayout(Container.java:1410)
at java.awt.Container.validateTree(Container.java:1507)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validateTree(Container.java:1513)
at java.awt.Container.validate(Container.java:1480)
at java.awt.Window.show(Window.java:861)
at java.awt.Component.show(Component.java:1585)
at java.awt.Component.setVisible(Component.java:1537)
at java.awt.Window.setVisible(Window.java:842)
at ca.strangebrew.ui.swing.StrangeSwing.main(StrangeSwing.java:414)


i hope this can be easily solved because strangebrew looks solid!
i really hope to use it instead of beersmith!

all the best, thank you for making this!
 
Jim, Drew, et al...

I just dl'd StrangeBrew 2.0.1 and it looks pretty sweet. (And I teach Java.) My only problem is that I can't import a BeerXML file (below) that I dl'd from here. I'll be honest tho, I haven't tried any others yet.

I'm running it on Mac OSX 10.4.11
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- BeerXML Format Generated by BrewBlogger, http://www.brewblogger.net -->
<RECIPES>
	<RECIPE>
		<NAME>Eisbock</NAME>
		<VERSION>1</VERSION>
		<TYPE>All Grain</TYPE>
		<BREWER>  </BREWER>
		<BATCH_SIZE>20.818</BATCH_SIZE>
		<BOIL_SIZE></BOIL_SIZE>
		<BOIL_TIME></BOIL_TIME>
		<NOTES></NOTES>
		<STYLE>
			<NAME>Eisbock</NAME>
			<VERSION>1</VERSION>
			<CATEGORY>Bock</CATEGORY>
			<CATEGORY_NUMBER>05</CATEGORY_NUMBER>
			<STYLE_LETTER>D</STYLE_LETTER>
			<STYLE_GUIDE>BJCP</STYLE_GUIDE>
			<TYPE>Ale</TYPE>
			<OG_MIN>1.078</OG_MIN>
			<OG_MAX>1.120</OG_MAX>
			<FG_MIN>1.035</FG_MIN>
			<FG_MAX>1.020</FG_MAX>
			<IBU_MIN>25</IBU_MIN>
			<IBU_MAX>35</IBU_MAX>
			<COLOR_MIN>18</COLOR_MIN>
			<COLOR_MAX>30</COLOR_MAX>
			<ABV_MIN>9.0</ABV_MIN>
			<ABV_MAX>14.0</ABV_MAX>
		</STYLE>
		<HOPS>
			<HOP>
				<NAME>Magnum</NAME>
				<VERSION>1</VERSION>
				<ALPHA>13</ALPHA>
				<AMOUNT>0.015025</AMOUNT>
				<USE>Boil</USE>
				<TIME>60</TIME>
				<TYPE>Bittering</TYPE>
				<FORM>Pellets</FORM>
			</HOP>
			<HOP>
				<NAME>Hallertauer Gold</NAME>
				<VERSION>1</VERSION>
				<ALPHA>4</ALPHA>
				<AMOUNT>0.014175</AMOUNT>
				<TIME>30</TIME>
				<USE>Boil</USE>
				<TIME>30</TIME>
				<TYPE>Both</TYPE>
				<FORM>Pellets</FORM>
			</HOP>
		</HOPS>
		<FERMENTABLES>
			<FERMENTABLE>
				<NAME>German Pilsen Malt (2-Row)</NAME>
				<TYPE>Grain</TYPE>
				<AMOUNT>5.26</AMOUNT>
			</FERMENTABLE>
			<FERMENTABLE>
				<NAME>German Light Munich Malt</NAME>
				<TYPE>Grain</TYPE>
				<AMOUNT>3.63</AMOUNT>
			</FERMENTABLE>
		</FERMENTABLES>
		<YEASTS>
			<YEAST>
				<NAME>WLP830 German Lager</NAME>
				<VERSION>1</VERSION>
				<TYPE>Lager</TYPE>
				<FORM>Liquid</FORM>
				<AMOUNT>Slurry from a 2.5 gal sta</AMOUNT>
				<LABORATORY>White Labs</LABORATORY>
			</YEAST>
		</YEASTS>
		<MISCS>
			<MISC>
				<NAME>Irish Moss</NAME>
				<VERSION>1</VERSION>
				<TYPE>Fining</TYPE>
				<USE>Boil</USE>
				<TIME>15</TIME>
				<AMOUNT>1 tsp</AMOUNT>
			</MISC>
		</MISCS>
		<WATERS>
			<WATER>
				<NAME></NAME>
				<VERSION>1</VERSION>
				<AMOUNT></AMOUNT>
				<CALCIUM></CALCIUM>
				<BICARBONATE></BICARBONATE>
				<SULFATE></SULFATE>
				<CHLORIDE></CHLORIDE>
				<SODIUM></SODIUM>
				<MAGNESIUM></MAGNESIUM>
				<PH></PH>
				<NOTES></NOTES>
			</WATER>
		</WATERS>
		<MASH>
			<NAME></NAME>
			<VERSION>1</VERSION>
			<GRAIN_TEMP></GRAIN_TEMP>
				<MASH_STEPS>
				</MASH_STEPS>
			<TUN_TEMP></TUN_TEMP>
			<SPARGE_TEMP></SPARGE_TEMP>
			<PH></PH>
			<EQUIP_ADJUST></EQUIP_ADJUST>
		</MASH>
		<TASTE_NOTES></TASTE_NOTES>
		<OG>1.109</OG>
		<FG>1.03</FG>
		<EST_OG>1.109</EST_OG>
		<EST_FG>1.03</EST_FG>
		<DISPLAY_OG>1.109</DISPLAY_OG>
		<DISPLAY_FG>1.03</DISPLAY_FG>
		<PRIMARY_AGE></PRIMARY_AGE>
		<PRIMARY_TEMP></PRIMARY_TEMP>
		<DISPLAY_PRIMARY_TEMP></DISPLAY_PRIMARY_TEMP>
		<SECONDARY_AGE></SECONDARY_AGE>
		<SECONDARY_TEMP></SECONDARY_TEMP>
		<DISPLAY_SECONDARY_TEMP></DISPLAY_SECONDARY_TEMP>
		<TERTIARY_AGE></TERTIARY_AGE>
		<TERTIARY_TEMP></TERTIARY_TEMP>
		<DISPLAY_TERTIARY_TEMP></DISPLAY_TERTIARY_TEMP>
		<AGE></AGE>
		<AGE_TEMP>-18</AGE_TEMP>
		<DISPLAY_AGE_TEMP>-18</DISPLAY_AGE_TEMP>
		<EST_COLOR>13</EST_COLOR>
		<IBU>27</IBU>
	</RECIPE>
</RECIPES>
 
okay, before I go emailing Doug directly, anybody want to help a noob?

I just downloaded StrangeBrew 2.1.0 today to replace Hopville (BOOO Brewtoad!!) So far it's quite nice. I can edit the grains and hops to add what I need. But I can't edit the database to add other water salts.

I'm not a programmer, but an engineer so I can normally work my way around. But in all of the StrangeBrew folders the only database file is sb_ingredients. But Excel won't open it (it wants a username and password) and Notepad brings it up as programming code, not a simple csv.

Suggestions?
 
Okay, I see that there is a web app for Strangebrew to replace the locally run version. http://brewplan.appspot.com/

I was originally simply looking for a hopville replacement with the expectation of being disappointed (as my first few downloads proved). But Strangebrew is really good for a web app. There are some small hiccups, but the thoroughness of calculating entire mash schedules automatically along with a large ingredient database that can be edited and enhanced makes it great.
 
Back
Top