Linux/Coldfusion DIY Tap Display Project

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.

lextasy23

Well-Known Member
Joined
Jan 4, 2011
Messages
366
Reaction score
47
Location
Dirty Water
The Project:

So, I am taking on a project to make a tap display for the TV above my buddy's bar. I had thought of going the Raspberry Pi route, but that seems like a lot of PITA maintenance for upgrading info.

I make websites and a kid at work suggested I make one for this purpose, so here we are. I'm using an old desktop PC from work, free Linux Ubuntu (I was intimidated, I really have no prior knowledge - but this is my second Linux box with v14 and it's pretty friggen easy...), and Adobe Coldfusion Server (I make Coldfusion websites - this way, the page is dynamic and can easily be updated by anyone with zero coding knowledge).

I also found a page here that discusses SRM to RGB color conversions, so I'll be adding that in as well.

This thread will serve more or less as a blog during the process, and at the end I figure I can make all the code available to anyone who wants to replicate it, plus a basic step-by-step.

The Hardware:

  • I'm using a Dell Optiplex 755 SFF (Small Form Factor)
  • 2GB RAM, Core 2 Duo E6650
  • Basic video, nothing special
  • DVI > HDMI cord to connect to the TV

The Software:

  • Ubuntu 14.04 LTS
  • Adobe Coldfusion Server 11 - Free Developer Edition
  • Home-grown Coldfusion site

The Design:

Number and type of taps
He's got the setup for 8 taps, so I'm making the code for that many. I figure I'll make it dynamic so you can click on 'Options' and choose how many taps you have, and the code changes based on that entry (should be easy). As of right now, only 4 of his taps are in use, 2 are off (no kegs yet), and the other 2 are earmarked for nitrogen (possibly only 1). I need to add a way to select if it's a nitro tap or regular CO2.

Custom Logo
We're also working on a logo for his brewery, so that will be displayed at the top. Again, with the options page you could configure this.

Color and Background
This should also be customized. His bar is dark wood, as is the matching coffin. His taps are chrome. Some guys may have gold, some may have brick walls, some may have a modern look with granite and brushed taps - who knows. The point is, it can all be customized later.

Feedback?

I openly welcome feedback, and greatly appreciate constructive criticism. The goal of this is to polish up my design skills, I do it on the side and I do it pretty infrequently these days, so it's nice to hone the skills. I also am new to Linux, so it's a neat learning experience project for me there too. The benefit is my buddy gets his tap display that he's wanted to work on, and mambers here can get a copy if it works. I could make it static and 100% custom to his application - with the 8 taps and the woodgrain background and his logo... But I'm going to make it easily customized right from the start so anyone here (again, with ZERO coding knowledge) can implement it in their bar, and customize the crap out of it. Heck, maybe I'll even sell it some day. I'd be cool with beer donations via mail though, to be perfectly frank lol.

If you have any suggestions, PLEASE feel free to submit them here. I'll try to make it happen.

Ok... Linux is installed right now, Coldfusion server is downloading, and Photoshop is up with a picture of an empty glass. I think I'm going to add a chalkboard with a free chalk font somewhere too - perhaps for the names of the beers. The creative juices are flowing. I wish I had a beer in my hand.

And away we go....
 
Coldfusion Installation:

Download BIN from Adobe. You will need an Adobe.com account, but it's free to sign up. I used Server 11, and these notes are for v11. I'm an IT manager, an I always keep proper documentation when we implement a project. This thread is my documentation lol.

You can also very easily do this in Windows or Mac, I just used Linux so I wouldn't have to pay for Windows on a free computer I got.

http://www.adobe.com/cfusion/tdrc/index.cfm?product=coldfusion

I also disabled the screensaver and wake with password. Sort of pointless to have a screen saver on a computer that's acting basically as a screen saver.. Although more to come here too - some kind of screenshot screensaver could end up being cool.

  1. Save the bin file to your home folder.
  2. Click Applications, Accessories, Terminal.
  3. To make the BIN file executable: In the terminal, type the command:
  4. chmod 755 ColdFusion_11_WWEJ_linux64.bin <ENTER>
  5. To run the file and install RealPlayer type the command:
  6. sudo ./ColdFusion_11_WWEJ_linux64.bin <ENTER>
  7. Accept the license agreement
  8. Choose Developer Edition (3)
  9. Choose Server Configuration (1)
  10. Choose Development Profile (2)
  11. Sub-Components Install: Use default (Solr, PDFG, Start CF on init - 1, 2, 4) Continue with default, 5
  12. Access add-ons remotely: N (Can be modified later with <CFHOME>/jetty/etc/jetty.xml
  13. Install Folder: Default
  14. Earlier versions installed? Default NO
  15. Configure Web Servers: Continue with 2
  16. Runtime user: Add the name of your Linux user (ours is 'doghair')
  17. Configure Coldfusion with OpenOffice? (I chose to skip)
  18. Administrator password (I used 'doghair')
  19. Enable RDS: Y (password: doghair)
  20. Server Updates: Default Y
  21. Pre-installation summary: verify the information, ENTER to continue.

Installing..................Installation complete.

To continue with your installation, go to /opt/coldfusion11/cfusion/bin and type "./coldfusion start" to start your server.
cd /opt/coldfusion11/cfusion/bin
sudo ./coldfusion start


Once the server is started, log in to the configuration wizard at http://127.0.0.1:8500/CFIDE/administrator/index.cfm

  • Create a folder called 'taplist' in /opt/coldfusion11/cfusion/wwwroot/
  • Right-click > Properties > Local Network Share
  • Check 'Share this folder'
  • Name it 'taplist', comment if you want.
  • Allow others to create and delete files in this folder
  • Guest access

MySQL Server Installation:

I'd lay it all out, but just do this:
https://help.ubuntu.com/12.04/serverguide/mysql.html
 
Preview of the first design...

sample.jpg
 
(I make Coldfusion websites - this way, the page is dynamic and can easily be updated by anyone with zero coding knowledge).
OK, here's a link for you if you've seriously never heard of fusebox

http://www.fusebox.org/index.cfm/getting-started/what-is-fusebox/

If you have questions, don't hesitate to ask... basically makes designing huge websites easy by splitting up the workload into individual pieces leaving the graphics guys to do their work totally separately from the actual work happening in the background.

You might also want to do a mind-map of the project so that you don't get caught up I scope creep and it'll allow you to define the individual portions of the actual website in a graphical manner rather than being fully text based
 
OK, here's a link for you if you've seriously never heard of fusebox

http://www.fusebox.org/index.cfm/getting-started/what-is-fusebox/

If you have questions, don't hesitate to ask... basically makes designing huge websites easy by splitting up the workload into individual pieces leaving the graphics guys to do their work totally separately from the actual work happening in the background.

You might also want to do a mind-map of the project so that you don't get caught up I scope creep and it'll allow you to define the individual portions of the actual website in a graphical manner rather than being fully text based

Cool, thanks for the tips. I am a one man band, I do all the work for clients myself. That being said, I don't have graphics guys to have to bother with. This is sometimes disappointing though. The girls in marketing are always a pleasure to deal with.

I design my pages in photoshop. I make the basic code using simple tables that dictate the size. I separate the main page into separate ones, and use CFINCLUDE later to add them together. Typically I have a header, footer, body, and menu page all rolled into one with CFINCLUDE.

I have been doing HTML for almost 20 years, and I still use notepad. I treated myself to a CS5 and I have dabbled in Dreamweaver, but I honestly still prefer it the old school way.

This one is even simpler because the page is a static 1920x1080 - so the table is that big and the browser is set to full screen.

animated gifs for foaming beer previews is probably going to be the hardest part about this - but those will be flash.
 
Nothing wrong with notepad as an editor OR old-school in general... I still use intel's Alter Edit (Aedit) for some stuff I work on (yes I'm talking a 35 year old+ editor)...

Seriously though, look into fusebox.... it'll open your eyes to a whole new way of thinking that will allow you to extend the product with minimal/no impact to any pre existing code.

ALSO, I never saw a database being installed in your pics above... you going to use MySQL ?
Are you going to display the "recipe" or "food pairings" if anyone clicks on a beer (remember, it's not just us hop-heads and fellow brewers who might partake of this guys beer)
 
Not much else happened this weekend. I'm having a hell of a time getting CF server to talk to MySQL server properly - not surprised, this is my first time trying it on a Linux box.

I did however make a few sweet flash animations... The Chalkboard on the top is going to be animated - "What's on Tap" (erased) "[Brewery name here]" or something similar. Two different things that can be set on the options page, fed into the flash, and rendered on the page.

I also started a flash animation for the beer glasses - I'm adding animated bubbles so the beer actually looks carb'd not flat. Again, CF will pass values to the animation - SRM value will be entered numerically into the config page, then passed to the flash animation, which will show the proper color in the flash.

I have most of the hard parts done, I just can't test yet because the CF server won't let me successfully add a DB yet...
 
looks like you need to come over and work over a few pints....get the inspirational juices flowing if you will....
 
I'm trying this using Centos 6.5 as I prefer the Redhat style releases of linux.

I installed Coldfusion 11 as per previous post but I could not connect to
http://127.0.0.1:8500/CFIDE/administrator/index.cfm I kept getting a 500 error.

For anyone else who runs into this problem using Centos I had to add the machine name to /etc/hosts file at the end of the entry for 127.0.0.1 and then browse to
http://<machine name>:8500/CFIDE/administrator/index.cfm

Eagerly awaiting the next instalment :)
 
I'm trying this using Centos 6.5 as I prefer the Redhat style releases of linux.

I installed Coldfusion 11 as per previous post but I could not connect to
http://127.0.0.1:8500/CFIDE/administrator/index.cfm I kept getting a 500 error.

For anyone else who runs into this problem using Centos I had to add the machine name to /etc/hosts file at the end of the entry for 127.0.0.1 and then browse to
http://<machine name>:8500/CFIDE/administrator/index.cfm

Eagerly awaiting the next instalment :)

I'm still having trouble getting the CF server to talk to MySQL - I haven't touched it for a few days because I've been busy working in Flash and Photoshop.

Also came across this (haven't tried yet):
http://www.brewtarget.org/download.html

Got some sweet initial animations:

Here's the header: Normally flash would be easy, just static text. I made this dynamic with FlashVars, so the page passes the values to it. This way, it can be customized for holiday parties, special events, other people, etc...


This is the preliminary photoshop for the beer glass preview. I'll need to fine-tune the colors to be accurate to SRM values, but I have a nice chart that someone here already made. There'll be a background layer with the beer color, with this as a transparent PNG on top.


And for added effect, because hey why not.. Bubbles.


Now for layering them all together and not having anything blow up...
 
Those animations are sweet :rockin:

I like how you're making it easy to customize, ideal for someone with my lack of web coding ability :mug:

I know a bit about linux but hopeless with databases so I can't really offer any assistance, sorry :(
 
I have some basic knowledge, but I'm definitely a noob still with Flash. I know photoshop and illustrator inside and out, and I still haven't even blown the dust off AfterEffects or anything else in CS yet.

But... I'm an excellent Googler... The bubbles I stole lol. The beer glass came from Amazon, and I did all the work in Photoshop. The chalkboard at the top was from Google Images, trimmed and shadowed in Photoshop. The wood is from Google Images also. The background will be able to be customized with whatever you want - I'm even going to try to make it so that the background is distorted by the beer in the glass, and I want to add a clarity option. If your beer is cloudy, it'll look cloudy in the flash. Also the ability to add a second color layer, like for beers that aren't truly an "SRM color", like with an extra red tint from berries, or green beer from dye on St. Patty's day lol.

Plenty more to come...

NOTE TO SELF:
<param name="wmode" value="transparent">
 
. The background will be able to be customized with whatever you want - I'm even going to try to make it so that the background is distorted by the beer in the glass, and I want to add a clarity option. If your beer is cloudy, it'll look cloudy in the flash. Also the ability to add a second color layer, like for beers that aren't truly an "SRM color", like with an extra red tint from berries, or green beer from dye on St. Patty's day lol.
Some great ideas there :ban:

Plenty more to come...
:D
 
The page is coming along splendidly - the majority of the code is written and all the flash is done. I ditched the fade in/fade out on the chalkboard in favor of a written-on effect, and i'm searching for free code for an eraser effect. The glasses are done, I just need to figure out how I want to handle the SRM input. I know there's a way to do it with Flash and AS3, but I need to figure out exactly how. The other alternative is just to make 40 or so different flash videos, one with each SRM value, and then just have the page call the appropriate one. The downside there is that I can't add those tinted beers, like with red (he has a strawberry on tap now with a very chick-ish pink hue lol). I'm sure I can figure it out though.

As for Linux - I still couldn't get ColdFusion Server to talk to MySQL Server - so I scrapped and I'm going to reinstall from scratch. I actually got a free used SSD drive, so I threw that in the computer as well. I figured instead of cloning the drive I'd just start fresh - which is what I'm doing now. Two birds, one stone (hopefully).
 
This is a pretty cool project, I'm enjoying the evolution :mug:

I do think it'd get a lot more exposure if it was moved to the DYI Forum, where we have a number of related projects simmering along. I believe the potential for cross-pollination would be enhanced as well.

I'm sure any of the mods would be happy to make that happen if it seems like a good idea...

Cheers!
 
The list of current mods is at the top of this page. If you PM any of them and request to have your thread moved to the DYI forum I'm sure they'd go along with it promptly, they're usually very responsive to reasonable requests, and this is surely reasonable. Righteous, even ;)

Cheers!
 
ColdFusion Server Update
  • Reinstalled Ubuntu 14.04, installed MySQL First.
  • Also made some changes to the install options (updated the post above) for ColdFusion - seems to be working now.
  • Instead of adding a MySQL DB, I'm using Apache Derby Embedded.

Installed from Ubuntu Software Center:
  • Apache Derby Tools
  • Apache Derby Client JDBC Driver
  • Apache Derby Database Engine and JDBC Driver

Created Directories:
  • /opt/coldfusion11/cfusion/db/taplist
  • /opt/coldfusion11/cfusion/wwwroot/taplist (shared using instructions above)

In CF Admin Console > Data Sources:
  • Added new DB called 'cftaplist' inside /opt/coldfusion11/cfusion/db/taplist
  • Checked 'Create Database'

GUI Software:

I started with SQuirreL at first, because it was the first result of a Google search. I quickly gave up because it seemed like a ridiculous process to install, then went with RazorSQL. Then I gave up on that and returned to SQuirreL because RazorSQL was a 30 day trial... If I can get the development done in 30 days we're good, because you don't actually need this to run. It's just for me to create and modify databases.

I may also be able to just use Access on my Windows laptop, and save it as a file format that can be used by this Frankenstein of a project...

But I digress, and drink another beer.
 
dude, at least do yourself a favor and use Notepad++

You can thank me later!

I started with Notepad, then with Notepad++, now I use Dreamweaver.

What I desperately need is a database expert who can help me make a database work on this damn thing. I've never had a problem before with MS Access, but this home grown CF server with Apache Derby Embedded is starting to piss me off.

The whole idea was to do this for as cheap as possible, preferably free. So far I only have time into this, and I'd like to keep it that way. Of course though, I could make it cloud based and charge a monthly fee, but that sort of defeats the whole free purpose lol.
 
What I desperately need is a database expert who can help me make a database work on this damn thing. I've never had a problem before with MS Access, but this home grown CF server with Apache Derby Embedded is starting to piss me off.

What errors do you get trying to connect to the MySQL database? Does your mysql command line client work? Just type "mysql" - that *might* connect on a local install, but you may need to feed it some parameters.
 
What errors do you get trying to connect to the MySQL database? Does your mysql command line client work? Just type "mysql" - that *might* connect on a local install, but you may need to feed it some parameters.

ERROR 1045 (28000): Access denied for user 'doghair'0'localhost' (using password: NO)

MySQL config file missing my password?
 
Try this from a shell prompt

mysql -u doghair -ppassword

(no space between the -p and your password)
 
Try this from a shell prompt

mysql -u doghair -ppassword

(no space between the -p and your password)

Unfortunately, same error.

Let's start from the beginning... What do you think is the easiest way to get an Access DB to work here? The DB is super small and could be easily recreated in any other program or server type, but I'm just not a DB expert. I know enough to be dangerous, but I have always just stuck to Access accdb or mdb files (if it ain't broke, don't fix it...)
 
MS Access only runs on windows.

The error you're getting means mysql is installed and running, but you have a credential issue. Do you have a root user with superuser in mysql, or is doghair your only user? If you can get connected as root at the command line, you can probably run a grant to fix the credential issue - you may have created a remote user instead of a local user.
 
I'm a Linux noob, and this is Ubuntu - I'm pretty sure I only createwd the doghair user.

So, I tried sudo mysql

and got this:

doghair@DHB-LINUXTAPS:~$ sudo mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 55
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

_____________________________________________________________________________________

mysql> help

For information about MySQL products and services, visit:
http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:
http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:
https://shop.mysql.com/

List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

For server side help, type 'help contents'

mysql>

 
Back
Top