Open Side Menu Go to the Top

10-14-2013 , 04:24 PM
Quote:
Originally Posted by jjshabado

And when you get right down to it I actually don't think its that important to the original point. I could probably replace "complex object hierarchy" with "complex problem domain" and the point is still valid that its easier to model/work with/refactor in Java than it is in Python regardless of how you actually implement the functionality.
Well assuming Python is like a stand in for Ruby (which is what I have experience with) I would say: You can write your Ruby code pretty much like Java code if you want. You just also have a bunch of other options and shortcuts available. I will grant you that tooling is better in Java, and doing method renames or moving methods, etc, in Eclipse is just wonderfully easy. I think RubyMine might have those features now too, though.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
10-14-2013 , 05:01 PM
There's definitely a lot of code with too much OOP for the sake of being object oriented out there imo

gaming_mouse : OOP in Ruby is quite a bit nicer than in Python imo. I dunno it feels a bit kludgy in Python
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-14-2013 , 05:23 PM
Quote:
Originally Posted by gaming_mouse
more cohesion, looser coupling, easier to change, simpler, easier to remember (less cognitive load)... those would be the big high level things. if you meant to suggest a philosophical "well who's to say what's better? it's all subjective anyway...." then we'll have to agree to disagree, or in my case, agree violently disagree
You answered my question, thanks.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-14-2013 , 05:27 PM
I really like the mixin style with ruby.

Example:
Code:
class Foo < ActiveRecord::Base
  include Tire::Model::Search
  include Tire::Model::Callbacks

  # ...
end
Now I have a class that can do elastic search queries, has callback hooks in place to keep the index in sync with AR and does other housework type tasks related to ES.

If I had to inherit from some Tire class I feel like that would make the code more clunky, especially if I only wanted the search mixin and not the callback mixin.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-14-2013 , 07:51 PM
Mixins are definitely nice.

We have some ruby code but its pretty small and I'm not that knowledgeable about Ruby to really evaluate it compared to Python or Java.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-14-2013 , 09:43 PM
How is this for bone-headed?

I spent a somewhat productive 8 hours yesterday in the Virtual Box. Sure, much of that time was thinking "Why do I have a headache?", "How the **** do I do that?", but overall, I got quite a bit done.

How do I celebrate? I simply shut down the machine without taking a snap-shot.

My excuse? I was tired and had a headache.

The nice thing is that I remember (most of) what I did, so I may be able to get it all redone in less than half the time, though I'm not looking forward to it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-14-2013 , 10:05 PM
does that matter? can't remember virtualbox, it's been a while. but how would it ever install patches on windows if it couldn't shut down without losing changes?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-14-2013 , 10:53 PM
Once you shut down the machine, it reverts back the last saved snapshot. Nothing I can do about it now.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-14-2013 , 11:26 PM
That's unfortunate I guess you set it up that way to prevent accidental breakage? Mine certainly did not behave like that (or was set to auto-update snapshot or something idk). I remember having to actively choose to revert to a snapshot in event of breakage
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 01:27 AM
Amazing. Not only did I remember what I did, I did it better.

Well, didn't do it all, but still.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 03:39 AM
Quote:
Originally Posted by clowntable
There's definitely a lot of code with too much OOP for the sake of being object oriented out there imo

gaming_mouse : OOP in Ruby is quite a bit nicer than in Python imo. I dunno it feels a bit kludgy in Python
interesting... i have only a passing familiarity with python, but i had always just assumed a general equivalence between python and ruby, sort of like, "oh python is ruby with slightly less pretty syntax," but i'm not really surprised to learn that's a vast oversimplification.

@shoe, yeah, mixins are awesome
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 12:25 PM
Hi Guys,

I have been working on a small project for the last few weeks and am looking for some help testing it.

The problem
I have often seen questions on this forum along the lines of 'what is the easiest way to create a hand converter', or, 'I have this great idea for poker software, but I need a hand converter'. This is often the start and the end of the thread because 1) there is no easy way to write a hand converter and 2) currently there are no easy to use hand converter libraries which can be injected into poker software.

This is a real shame as there have been some really great ideas for poker software, but they never get off the ground because of the overhead of building and maintaining a hand history converter.

The solution
My solution to this is to build an easy to use hand history converter API. Taking the (absolutely incredible) FPDB, and putting a JSON wrapper around the hand converter (and making a few dirty code changes, sorry ), I have created a webservice that people can use to turn raw hand histories into a standard JSON format.

Current status
The project is at the stage where I need some help testing it. I have put a few limitations in place (currently it will only convert hands from PS or FT as I have only had time to build test suites for these sites), and the API is still very rough around the edges, but I would like to get some feedback as to what people like/dislike so I know what to work on first.

End goal
I want to offer this as a free service (I believe there are licensing restrictions around the FPDB anyway), but obviously if the service is popular then the hosting costs are going to increase. The plan is to offer the API for free, but charge for additional services (basically get the customer to pay for the hardware).

Working with FPDB
Apart from a couple of tiny hacks, the FPDB converter worked strait out of the box (cant emphasise enough how amazing the FPDB software is). I have started building automated test suites for the API which hopefully will come in useful to the guys working on the FPDB.

What I am looking for
At this stage, I am asking for some help testing the site. It would be great if anyone interested can sign up (takes less than 10s), and fire a few hands at the api, or, if you dont want an account, just use the 'live demo' on the home page. Please send all feedback to [email protected] (or reply here). The plan is to iron out the cracks a bit, then open it to the wider 2p2 community for review. Would be great to get feedback on the following:

* Any bugs
* Any recommendations on what should/should no be included in the JSON API
* Any tips regarding the site
* Any tips on user experience
* Any typos
* Anything else!

The site
The site is available at https://pokercloud.io

Also, if you have a few hours a week spare would be interested in working on the API with me (currently unpaid of course), send me an email.

Thanks!

G
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 12:35 PM
Wooster,

I like the design of the page a lot, especially the contracting header. Was that something from bootstrap?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 12:39 PM
I shamelessly purchased it off themeforest, unfortunately my design skills suck, and I didnt have the time to do the backend and the frontend.

The theme is written in bootstrap 3 + less with some custom javascript. You can see it on themeforest here http://themeforest.net/item/colorclo...allax-/5545263
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 12:45 PM
Awesome looking, great idea as well!

My comment, I don't play poker online anymore but want to be able to paste a HH in. In the "Paste a poker hand below to try it" can you have a link to preload some examples?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 12:47 PM
Quote:
Originally Posted by Gullanian
Awesome looking, great idea as well!

My comment, I don't play poker online anymore but want to be able to paste a HH in. In the "Paste a poker hand below to try it" can you have a link to preload some examples?
Good idea, I will add some example HHs.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 01:41 PM
Down the road you could combine the HH cloud storage idea with some datamining/leakbusting tools or some basic accounting (store all HH with you, click button boom you got the stuff you need for your tax report as a poker pro)
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 01:58 PM
not a programming question but thought you guys might know...

trying to use xbox controller with xpadder to play on pokerstars. Xpadder has to be ran at an higher privilege level (aka admin) than pokerstars for the keybinds to work. But hem2 doesnt allow me to use a hud for zoom unless pokerstars is running at admin level. Anybody know of a potential fix or do i just have to play nonzoom games?

edit: nvm, wont work, hem2 has to run as admin which stops it from working

Last edited by Burnss; 10-15-2013 at 02:17 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 02:08 PM
Quote:
Originally Posted by clowntable
Down the road you could combine the HH cloud storage idea with some datamining/leakbusting tools or some basic accounting (store all HH with you, click button boom you got the stuff you need for your tax report as a poker pro)
Yeah, this is what interests me. Mr. Wooster I'd really like to volunteer and help out. I'm just trying to decide if I have the time necessary to do it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 02:22 PM
Quote:
Originally Posted by clowntable
Down the road you could combine the HH cloud storage idea with some datamining/leakbusting tools or some basic accounting (store all HH with you, click button boom you got the stuff you need for your tax report as a poker pro)
I would like to implement this, and the api is setup to be able to permanently store hand histories, but the issue is going to be cost. Storing large amounts of HHs is going to rack up server costs pretty quickly.

A good use case for this project would be for someone to write a script that periodically backs up all your poker hands (as clowntable suggests) by sending them to pokercloud.io. You could then run queries against the API to retrieve the hands at a later date.

If I do go down the route of storing HHs, then I will add new requests to the api along the lines of api.pokercloud.io/v1/get/session-id which will return all HHs associated with that session.

By my calculation, the average HH is about 4kb. Once its been 'processed', the resulting data works out at about 8kb. This means that it will take 20GB to store about 2.5 million hands, at a cost of about $10/month. This is ok... but the problem is that the storage is permanent. If the API was getting 2.5 million hits / month, it would cost me $10 extra every month (probably more). For a 100% free service, I dont think this is sustainable.

However, given that people are likely going to be willing to pay for HH backups, it would be pretty easy to add permanent storage for a fee/x million hands.


Edit: @clowntable, regarding the datamining/leakbusting tools, this is exactly the sort of thing I hope people will use the API for.... I dont think it makes sense to have it as a core feature of the API (I want to keep it as simple as possible), but someone could easily use the API to build such tools.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 03:27 PM
I would suspect that storing all of the hands would be easily worth $10/month for you. If you use S3 you can even have any non-paying users HHs moved to glacier automatically where the cost to you will be significantly less.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 03:46 PM
I've spent some time thinking about a good universal HH format (also landed on Jason) to convert my hands to eventually. Currently my HHs are tracked in this very elaborate format :P
Code:
[preflop-[call, post-2, post-1], flop-[fold, raise-9 ,bet-3, check], turn-[], river-[]]
and just dropped after each hand. Obviously would change to something like
Code:
[2-CurrentHandHistory, 1-[preflop-[call, post-2, post-1], flop-[fold, raise-9, bet-3, check], turn-[], river-[]]]
And then I call
Code:
history_prettyHistory(History, PrettyHistory)
Which formats for display...it's just doing very basic stuff now and needs to be changed to
Code:
history_guiData_PrettyHistory(History, GuiData, PrettyHistory)
GuiData (bad name) would hold some stuff for output like player names and who had the first action etc.

I actually refactored some code today and all the relevant game logic uses the hand history now (to check what the last bet was for raise sizes etc.). I started with no HH at all and some extra variables like lastBet which got ugly quickly :P
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-15-2013 , 04:40 PM
It's a cool idea, bit probably better to charge per 100,000 hands. Not many people have 1m unless they are using your API as a backend to whatever service they are running.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-16-2013 , 04:23 AM
Quote:
Originally Posted by Burnss
not a programming question but thought you guys might know...

trying to use xbox controller with xpadder to play on pokerstars. Xpadder has to be ran at an higher privilege level (aka admin) than pokerstars for the keybinds to work. But hem2 doesnt allow me to use a hud for zoom unless pokerstars is running at admin level. Anybody know of a potential fix or do i just have to play nonzoom games?

edit: nvm, wont work, hem2 has to run as admin which stops it from working
run everything as admin, should do the trick. hem2, hem2hud, xpadder, pokerstars.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
10-16-2013 , 09:27 AM
Anyone have any good book/video series suggestions for learning about algorithmic stuff.

I am good at building websites really fast, but would like to learn a little more about efficiency/speed of the actual code I'm writing, or how to create some more complex stuff if I ever run into the need.

If this seems vague it's because I'm bored and just want something newish to learn, so I'm really open to new suggestions (so long as it's useful as a web developer).
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **
$25m Guaranteed WPM on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

      
m