nilbus / pinewood-derby

Pinewood derby status board & sensor driver
Other
17 stars 9 forks source link

Ruby 2 compatibility #56

Closed everetteallen closed 9 years ago

everetteallen commented 9 years ago

Hi, A neighbor from Apex, NC trying to install pinewood-derby on OS X 10.10.2 with ruby version: ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14] I get:

Installing debugger-ruby_core_source 1.3.1

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 

checking for rb_method_entry_t.called_id in method.h... no checking for rb_control_frame_t.method_id in method.h... no checking for rb_method_entry_t.called_id in method.h... no checking for rb_control_frame_t.method_id in method.h... no Makefile creation failed


No source for ruby-2.0.0-p481 provided with debugger-ruby_core_source gem.


* extconf.rb failed * Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.

Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby --with-ruby-dir --without-ruby-dir --with-ruby-include --without-ruby-include=${ruby-dir}/include --with-ruby-lib --without-ruby-lib=${ruby-dir}/

Gem files will remain installed in /var/folders/m9/b383yhrj2mgf963rnymwr4980000gn/T/bundler20150208-748-1toyun3/debugger-1.6.5/gems/debugger-1.6.5 for inspection. Results logged to /var/folders/m9/b383yhrj2mgf963rnymwr4980000gn/T/bundler20150208-748-1toyun3/debugger-1.6.5/gems/debugger-1.6.5/ext/ruby_debug/gem_make.out An error occurred while installing debugger (1.6.5), and Bundler cannot continue. Make sure that gem install debugger -v '1.6.5' succeeds before bundling.

Any ideas?

nilbus commented 9 years ago

Yep. The immediate reason is that the debugger gem is only compatible with Ruby 1.9. After 2.0, the byebug gem replaced debugger.

I'll see if I can make this ruby 2 compatible tonight, because it should be anyway. I'll post back soon.

nilbus commented 9 years ago

@everetteallen This should now be ruby 2.0.0 compatible, though I've actually only tested it on 2.2.0.

I'd be interested to hear about your experience setting this up. How did you hear about this project? It happens that I'm actually moving just outside Apex in a couple weeks.

everetteallen commented 9 years ago

So was able to build out gems under 2.0.0.x on OS X and get the software up. Odd thing is the default page (see screen shot) does not show that the track is not connected even tho I have not even plugged in a USB/serial adaptor! (I am away from the track at work today). What I do get is:

sudo foreman start
12:13:34 web.1  | started with pid 8618
12:13:35 web.1  | Warning: You're using Rubygems 2.0.14 with Spring. Upgrade to at least Rubygems 2.1.0 and run `gem pristine --all` for better startup performance.
12:13:39 web.1  | I, [2015-02-09T12:13:39.118379 #8618]  INFO -- : Sensor watch started w/ device search path: "/dev/tty{USB,.usbserial}*"

screen shot 2015-02-09 at 12 14 49 pm

Any ideas?

I found the project on a routine google search since I look for a good way to do races every year. Also have you tried setting this up on a Raspberry Pi? I would love to create a distro that is preconfigured and ready to go for Packs and other pinewood racers to get going fast and very inexpensively.

everetteallen commented 9 years ago

I should also mention (and maybe open another issue?) That while I can register constants the Dashboard page does not give me any race controls.

nilbus commented 9 years ago

I am a little surprised that the unplugged notice doesn't come up, but it's not just you. I confirmed that that notice comes up when it was plugged in and then gets unplugged; I'll open a new issue to address that.

We used this successfully in this year's derby on a raspberry pi. It's not speedy, but it's very workable. I would recommend using the recently-released Raspberry Pi 2 (quad core, 1G RAM) for best performance. We have an image that you might possibly use. We set it up to broadcast a "derby" ad-hoc Wi-Fi network and serve the app on http://derby.net on that local network. It worked out very well. I had considered starting a business selling preconfigured pinewood derby devices using Raspberry Pi devices. Email me if that sounds interesting to you.

Have you set an admin password? If so, the derby controls won't appear until you log in from the welcome page using the Run the Race button. Does anything at all appear on the Dashboard page after entering contestants? I would expect the initial lineup to be shown. If not, something else is wrong.

To get started without plugging in an actual track sensor, see this section of the readme for running the mock sensor: https://github.com/nilbus/pinewood-derby#running-for-testing--development.

What track sensor does your pack own?

everetteallen commented 9 years ago

Ok so I have no admin password set. I have attached a screen shot of the Dashboard after adding contestants... no buttons but then there is no track.

My RPi2 is in shipping and I may have it today. I would be interested in the distro you have and giving it a try with our MicroWizard K2, 3 lane track (http://www.microwizard.com/k2page.html). I believe (will have to double check) we have a very generic Prolific usb to serial adaptor. I will try to make some time tomorrow to check out the gate again with this software per the dev link.

On canned devices not sure how profitable the market is but will try to drop separate email.

screen shot 2015-02-09 at 12 45 56 pm

nilbus commented 9 years ago

The green ​bar signifies that that heat has been started. A somewhat undiscoverable feature is that if you hover that bar, a small X button appears to the left, which will cancel the started heat. No other buttons will show while the heat is active (green).