Skip to main content

The Bidder Journey

It was time for another Rails Rumble event, and I was looking for Ideas what to build. 

Through one of coding competition I came across a problem in which you have to write a algorithm to outbid computer. I am (always been ) fan of Computer Games, so I thought why not build a Game based on this problem.

Rails Rumble is a 48 hrs coding competition in which you have to build one Rails application.

At this point, I knew what to build and which framework to use, but I didn't knew how to built it or even its possible in Rails, so I presented my Idea in Open Source Friday .  I dry run my Idea on white board and played  a demo with Gautam Rege (@gautamrege) on white board. People liked the Idea, and suggested how it can be done. Sanjiv Jha got interested in this game and joined me in the journey.

The day of competition arrived 19 Oct 2013. Sanjiv and I coded 2 days , Stack used in Bidder is Ruby 2, Rails 4, Bootstrap 2.3, jquery 1.9, we used Pusher for broadcasting and receiving request.

Although we didn't won competition but we had good experience.

Bidder didn't end with the competition , we took it to next level. We open source Bidder and asked our colleagues to be part of Bidder by contributing. In one of Open Source Friday we discussed Bidder Issues and took feedback from ruby hackers.

Now, after all this hacking on Bidder it was time to check how Bidder will perform.We organised a Bidder event on Friday evening and invited all rubyist in the city to play Bidder , offcourse there was prize for winner. Around 25 rubyist played Bidder in this event. Rishi Jain (@jainrishi15)  joined in and helped us organizing this event . Pratik Shah (@pratik141988) won this event beating Sandip Ransing (@sandipransing) in Final.

This event taught us many things which we under estimated like Pusher limitation on request (we were using Pusher in free mode). This also made us think what if internet is slow or no internet ? and most important some serious issues were discovered in this event.


Now we knew that Pusher can't handle more than 4 users (10 connections) at a time, we have to look for alternatives. Jiren Patel ( ) come to rescue us and suggested to use Slanger . Slanger is open source implementation of Pusher.

Moving from Pusher to Slanger is really easy if you know how to setup redis server on cloud. No need to change your code.We hosted Slanger on Amazon EC2(free version) with help from Shailesh Patil (@patilshailesh) . After shifting to Slanger we can easily handle 25 users at time.


Men are mortal. So are ideas. An idea needs propagation as much as a plant needs watering. Otherwise both will wither and die.

Ruby Conferences  are the best platform to share Ideas among rubyist. RubyConf  India 2014 was to be held in about one month, we took the opportunity to share Bidder with every rubyist out there.


We got a booth outside Conference hall to showcase our Game. Thanks to Josh Software for sponsoring T-shirts for bidder winner and arranging us booth.



This was our Flyer outside Conference Hall.

We hosted 70 knockout Games and distributed 35 T-shirts to winners, response at RubyConf was overwhelming. Pramod Shinde (@pramod_shinde) , Aditya Shedge () , Siva Gollapalli (@sivagollapalli ) helped us in organizing this event.

So far it was great journey, thank you everyone who joined us in this journey and made it more awesome, we will be looking for more rubyist to join in.

Github : https://github.com/anilmaurya/bidder
Site      : http://www.playbidder.in/



Comments

Popular posts from this blog

Resolve OpenSSL::SSL::SSLError on Yosemite

If you are using rvm installed ruby on Yosemite  OSX  and getting error : OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed then reinstalling ruby with ` --disable-binary` may fix this Issue. rvm reinstall 2.1.2 --disable-binary  Reason: Ruby installed with packaged binary in rvm has OpenSSL path: /etc/openssl  Path of installed openssl is :  /usr/local/etc/openssl To check openssl directory: > irb > require 'openssl' > "SSL_CERT_DIR: %s" % OpenSSL::X509::DEFAULT_CERT_DIR

Generating preview for pdf and images using Carrierwave in Rails

This blog post will cover how to generate the preview of pdf files using Carrierwave gem. Carrierwave gem has an inbuilt " manipulate! " method which reads the file and loops over every page.  This " manipulate! " method works as expected for a pdf having 300-400 pages but when I uploaded a pdf having 1000+ pages my machine crashed!!! That is when I started debugging the code and found out that there is an issue with the manipulate method. Here is my original code. class MyUploader < CarrierWave :: Uploader :: Base include CarrierWave :: RMagick def cover manipulate ! do | frame , index | frame if index . zero ? # take only the first page of the file end end version : preview do process : cover process : resize_to_fit => [ 310 , 438 ] process : convert => : jpg def full_filename ( for_file = model . source . file ) super . chomp ( File . extname ( super )) + '.jpg'

Letter To Ruby Conf India Organisers

Disclaimer : This article consist of my brutally honest review about Ruby Conf India 2015, If you are prone to depression, heart attack while reading criticism, please STOP reading this letter now  and move on. I know organizers worked hard to organize this event and I thank you for that but this does not mean I am happy with the way it was organised. I have complaints, so do lots of people I know. Someone has to raise voice, for now I am taking this responsibility. 1. Why Discriminate ? I was given accommodation in Justa-panjim while most of the conf attendees were in Cidade-goa, those two hotel are incomparable. Justa-panjim didn't have enough water for bathing, forget about swimming pool, beach. I didn't had complained if everyone was given accommodation in Justa-panjim, Yes I am being jealous here..!!! I paid conf fees(lite tickets.. yes thats how early I booked my ticket.) and I deserve to be treated equally , why discriminate ? 2. Where's Ruby ? In some o