Open Side Menu Go to the Top

07-31-2013 , 08:57 AM
Have never done anything AI related. I want to make an open face chinese poker game with AI for my dissertation. With there being no resources online (well from what i can see) about making one, does anyone think this will be too difficult to make or fairly easy? i dont even know where to start with it lol
** 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 **
07-31-2013 , 09:11 AM
Can you explain more? You are writing a dissertation (for a Phd?) in AI and yet you have never done anything AI related? What subject is the dissertation for? Do you have lots of programming experience but just not with AI?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 09:23 AM
nah dissertation is my individual project for year 3 of uni so i can pick it in whatever subject i want to do it in. I want to make OFC game where you can play multiplayer with friends or against AI (and hopefully play online with friends if i have enough time). The multiplayer against friends bit wont be too difficult. I just have no idea how to get the AI to work or where to start. Ive never taken any AI modules before and little info on google,

i wouldnt say i have a lot of programming experience, just all the coursework they gave me in the previous 2 years of uni.

I cant email uni lecturers to get there advice as they're currently closed and blocking all emails over the summer sigh. so asking you guys for your opinion as to whether this will be far too difficult or not.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 09:26 AM
the 'computer' player in most OFC apps is absolutely horrible

if you could write a decent AI, then you would be on your way to writing a decent bot for training purposes. at that point you could probably sell your services to one of the OFC highrollers instead
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 09:48 AM
Quote:
Originally Posted by Burnss
nah dissertation is my individual project for year 3 of uni so i can pick it in whatever subject i want to do it in. I want to make OFC game where you can play multiplayer with friends or against AI (and hopefully play online with friends if i have enough time). The multiplayer against friends bit wont be too difficult. I just have no idea how to get the AI to work or where to start. Ive never taken any AI modules before and little info on google,

i wouldnt say i have a lot of programming experience, just all the coursework they gave me in the previous 2 years of uni.

I cant email uni lecturers to get there advice as they're currently closed and blocking all emails over the summer sigh. so asking you guys for your opinion as to whether this will be far too difficult or not.
given this info, i think the answer is yes, this would be hard, and would have some decent chance failure. having said that, i don't think it's a reason not to try if it's something that interests you!
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 10:37 AM
I think the secret for a lot of things like this is just to set reasonable expectations.

Aim for building a heads-up OFC AI that people can play against. If you do well at that then start tackling the other stuff you mentioned.

Edit: Although I'm not super familiar with chinese poker so maybe the heads up aspect isn't that relevant here.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 10:59 AM
Quote:
Originally Posted by Grue
My desired outcome is to maximize my EV in a buyer's market. But its very very difficult to determine what that is exactly. For example I'm currently working a contract where the number offered to me seemed fine/OK, and I accepted it and am working, but just by overhearing things I'm fairly certain that I'm not even close to making 70% of what the recruiter is billing.

But what is the right way to go about making the most money here? Insist on "transparent billing"? Honestly at this point in time I have no problem in working 1-3 or more month contacts to make the most money as possible. But its tough to figure out the right path to making that happen.
In my time "selling contractors" I brought in 100% net new accounts, so I was always in a very competitive position against other companies. When you are trying to break into a new account, you obviously want to keep things as industry standard as possible, because there are literally 1000's of companies that have access to the same candidates as you.

Because of this my average margin was ~27%. The lowest contractor I placed was something like 12% gross, and the highest was something like 45% gross. The one for 45% I was basically charging double what the employee was making, honestly not a great situation for anyone but my company.

The account manager types were working only with repeat customers, some of which we had for years. They averaged around 33%, deals would come through at a higher margin, but that was pretty rare and usually not something that was broadcast loudly, because of the ethical dilemma.

I have been out of that game for about exactly 1 year, so my numbers are probably still very relevant. Here is a super basic chart of the breakdown of people I had working for me and what the numbers broke down as:

Skill SetMy BillingContractor Wage
0-2 year front-end engineer$50$27
3-5 year java developer$80-$90$50-$60
5-7 year java developer$90-$105$60-$70
5-7 year QA engineer$75-90$45-$60
5-7 year informatica developer$95$63
15 year data architect$200$150
7-10 year front-end UI$104$70

Hopefully that chart provides some general value. Now for your situation, here is what usually happens:

A manager/ director hints toward what you are making. I had one contractor get into an argument with his manager and said they needed to be using a specific project management software on the project, and he spent 2 hours setting it up. The Director said, "you just cost me $225 fooling around with that". Luckily, I was at standard margin and the contractor was cool with us being able to charge that much for him.

However, what usually happens is people talk to other contractors. You get a beer after work, etc. and you ask what the deal is, and you bump into someone who has been working with a single recruiter for a long time. That relationship is very transparent and the contractor may know a lot of info that you don't know, such as the budget for the entire project, and how much more or less everyone is making. Usually that is their recruiter telling them, and the have a very transparent relationship. He knows what the recruiter charges for him/her, and may even be a W2 employee for that recruiter with benefits and a 401k.

The basic options to you are this:

1. Ask your recruiter for a raise. Right now, as soon as you are done reading this. It happens all the time, a contractor is on a project for 1-2 weeks of a contract, and they see they are in a fancy office, with great equipment, etc. and they think "wow this company has money, I might be getting ripped off" and immediately ask for more.

2. If you are coming to the end of the contract and will be extended, say you require a raise to stay on the project. This usually always works.

3. Next time you are actively looking for a job (you are a contractor you should be looking all the time), add +20-30% to your required wage, and see what the recruiter says. Say you typically charge $50, say you are currently making $60, and would need $63 on a new project. If they immediately shut you down as too expensive, you may be getting a better deal than you think.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 11:00 AM
Quote:
Originally Posted by greg nice
the 'computer' player in most OFC apps is absolutely horrible

if you could write a decent AI, then you would be on your way to writing a decent bot for training purposes. at that point you could probably sell your services to one of the OFC highrollers instead
Yea this, Lee Jones has said that OFC is a "bot's dream" so it is only a matter of time until it becomes a dead game.

Selling the actual bot would probably be worth much less than selling the logic behind it, or even better, being able to provide lectures on what the logic and data is that makes the bot play optimally.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 01:01 PM
Quote:
Originally Posted by Burnss
Have never done anything AI related. I want to make an open face chinese poker game with AI for my dissertation. With there being no resources online (well from what i can see) about making one, does anyone think this will be too difficult to make or fairly easy? i dont even know where to start with it lol
As someone writing a dissertation in the field of AI...without sounding like a dick...my first thought was WTF

How can you not know where to start? Have you looked through say the last 10 years of the relevant AI journals at least?

Quote:
nah dissertation is my individual project for year 3 of uni
Haha that sounds a lot more reasonable
Sounds like a cool enough problem. It should be pretty doable. As far as AI goes there's an excellent free online course you should check out. They have exercises of actually implementing stuff for games in Python. Should give you a decent overview of AI stuff.

Could also be hard, I don't know how well you program but not knowing any AI could be a deal breaker. Chinese can be played HU, right? That would be the first limitation I'd set. These days the views should probably be webbased. The basic logic of the game is pretty ABC iirc

Edit (should be this one, I watched the videos of an older one):
https://www.edx.org/course/uc-berkel...telligence/579

Last edited by clowntable; 07-31-2013 at 01:12 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 06:49 PM
Quote:
Originally Posted by Xhad
I don't like code that doesn't say what it means. I'm actually writing a big rant about it that just hit 3000 words.
I now have a rough draft. (I know the site design is atrocious, but I appreciate opinions/feedback on the material itself)
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 10:02 PM
Quote:
Originally Posted by Xhad
I now have a rough draft. (I know the site design is atrocious, but I appreciate opinions/feedback on the material itself)
Just had to take a cheap shot at Lisp, didn't you!

This article is too all over the place for me. You start up with something about Cockney and then toss in:


And since the goal is to give you some empathy for the clueless newcomer, I'm going to demonstrate it without explaining it.


Then it goes into oddballs about language design, which is fodder for its own article, and not relevant to the central thesis of your article.

Then you roll back into talking about bad teaching. This should have been extended and discussed in depth, and about why it is bad for the newb programmer to be exposed to this stuff. That is another article.

Finally, you have a lot of lines like:

The real point I set out to make is that it's easy to forget that writing code with an eye only to behavior rather than meaning has a cost, and that it's really easy to underestimate that cost or rationalize it away.


Which could be rewritten as:

"Writing code with an eye toward behavior instead of meaning has a cost. It is easy to underestimate that cost or rationalize it away."

And you betray the root of this writing at the top of the article:

Recently I've developed a principle when it comes to code. I'm not about to assert it as a general principle of programming because I'm not qualified, but I am prepared to assert it as a general principle of pedagogy.

The entire point of writing, IMO, is to assert some truth. Every work of non-fiction and opinion has some element of fiction in it. I firmly believe that writing -- especially the kind you are attempting -- should be definitive, purposeful, and, in part, controversial.

I think it would be better if you broke this apart into a few articles, each with a tiny purpose and life. Write from the heart and write like you mean it, and your words will have more impact.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
07-31-2013 , 10:45 PM
+1 generally to what Dave said. Definitely needs shortening.

I really liked the intro.

In terms of your core complaint I think you're missing that sometimes a non obvious convention that has to be learned (like everything can be converted to a Boolean in the same general way) can be really valuable in making code more expressive to people that know the convention. It's the reason every profession/discipline/hobby develops its own slang.

Hijack (in poker) may be a stupid non-obvious term, but its an efficient way to convey information to other people in the know.

You have lots of good examples where what I'm saying doesn't apply but I think you should think about the ones you want to use and make sure you're not talking about a concept that is actually useful for in-the-know people.

Last edited by jjshabado; 07-31-2013 at 10:57 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 12:11 AM
I like the way this reads:

Code:
z = y or some_default
as opposed to
Code:
z = y if y else some_default
IMO it makes sense. I want to set z to y or some_default, depending on whether y has a value.

Just today though I was thinking about doing
Code:
x = y and y.x
but decided that was getting ridiculous and went with
Code:
x = y.x if y else None

Anyway, I think the general point depends a lot on the audience. For any kind of beginner material I 100% agree that it should be as straightforward as possible.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 01:04 AM
Whee, my angularjs app is live on the world wide web.

NOTE TO SELF: WRITE SOME TESTS NEXT APP, NO MATTER WHAT. What a vicious pain in the ass.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 08:14 AM
Quote:
Originally Posted by Nchabazam

NOTE TO SELF: WRITE SOME TESTS NEXT APP, NO MATTER WHAT. What a vicious pain in the ass.
no wai, if it compiles it's boviously correct...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 08:38 AM
Quote:
Originally Posted by Larry Legend
In my time "selling contractors" I brought in 100% net new accounts, so I was always in a very competitive position against other companies. When you are trying to break into a new account, you obviously want to keep things as industry standard as possible, because there are literally 1000's of companies that have access to the same candidates as you.

Because of this my average margin was ~27%. The lowest contractor I placed was something like 12% gross, and the highest was something like 45% gross. The one for 45% I was basically charging double what the employee was making, honestly not a great situation for anyone but my company.

The account manager types were working only with repeat customers, some of which we had for years. They averaged around 33%, deals would come through at a higher margin, but that was pretty rare and usually not something that was broadcast loudly, because of the ethical dilemma.

I have been out of that game for about exactly 1 year, so my numbers are probably still very relevant. Here is a super basic chart of the breakdown of people I had working for me and what the numbers broke down as:

Skill SetMy BillingContractor Wage
0-2 year front-end engineer$50$27
3-5 year java developer$80-$90$50-$60
5-7 year java developer$90-$105$60-$70
5-7 year QA engineer$75-90$45-$60
5-7 year informatica developer$95$63
15 year data architect$200$150
7-10 year front-end UI$104$70

Hopefully that chart provides some general value. Now for your situation, here is what usually happens:

A manager/ director hints toward what you are making. I had one contractor get into an argument with his manager and said they needed to be using a specific project management software on the project, and he spent 2 hours setting it up. The Director said, "you just cost me $225 fooling around with that". Luckily, I was at standard margin and the contractor was cool with us being able to charge that much for him.

However, what usually happens is people talk to other contractors. You get a beer after work, etc. and you ask what the deal is, and you bump into someone who has been working with a single recruiter for a long time. That relationship is very transparent and the contractor may know a lot of info that you don't know, such as the budget for the entire project, and how much more or less everyone is making. Usually that is their recruiter telling them, and the have a very transparent relationship. He knows what the recruiter charges for him/her, and may even be a W2 employee for that recruiter with benefits and a 401k.

The basic options to you are this:

1. Ask your recruiter for a raise. Right now, as soon as you are done reading this. It happens all the time, a contractor is on a project for 1-2 weeks of a contract, and they see they are in a fancy office, with great equipment, etc. and they think "wow this company has money, I might be getting ripped off" and immediately ask for more.

2. If you are coming to the end of the contract and will be extended, say you require a raise to stay on the project. This usually always works.

3. Next time you are actively looking for a job (you are a contractor you should be looking all the time), add +20-30% to your required wage, and see what the recruiter says. Say you typically charge $50, say you are currently making $60, and would need $63 on a new project. If they immediately shut you down as too expensive, you may be getting a better deal than you think.
Thanks for the great post I'll be referencing it a lot in the future. I immediately asked for a raise we'll see what happens and I'll follow up. I'm a little interested in #3 - usually I just tell recruiters "my range varies" or whtaever i.e. not giving them a number and letting them figure it out.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 09:35 AM
Quote:
Originally Posted by Xhad
I now have a rough draft. (I know the site design is atrocious, but I appreciate opinions/feedback on the material itself)
I only read until the three steps but up to that point it sounds like an introduction to logic programming lol

...wouldn't it be neat if all we had to do would be writing down the thought process of a human being (the logic) and have the compiler/interpreter do the rest for us...just write down what the solution should look like not the steps to get there...so much easier...weeee
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 10:30 AM
Quote:
Originally Posted by Nchabazam
Whee, my angularjs app is live on the world wide web.

NOTE TO SELF: WRITE SOME TESTS NEXT APP, NO MATTER WHAT. What a vicious pain in the ass.
Do you have any thoughts or opinions on angular?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 10:51 AM
Quote:
Originally Posted by splashpot
Do you have any thoughts or opinions on angular?
i went through an initial honeymoon phase with angular, but the deeper i delved the more needlessly complex it seemed. to really understand it well is an undertaking. it's big.

this recently released framework is much easier to learn, and still amazingly powerful:

http://www.ractivejs.org/

sort of the sinatra to angular's rails.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 11:25 AM
Quote:
Originally Posted by gaming_mouse
i went through an initial honeymoon phase with angular, but the deeper i delved the more needlessly complex it seemed. to really understand it well is an undertaking. it's big.

this recently released framework is much easier to learn, and still amazingly powerful:

http://www.ractivejs.org/

sort of the sinatra to angular's rails.
The problem I have with angular is that you really need to understand it pretty well to even solve somewhat simple problems at times. It has a steep learning curve when it comes to building a real site, and not just playing with some of the two way data binding.

That being said, I'm hesitant to bother with a new framework right now. I like angular, and it's gaining more and more support, with more blog/SO posts answering a lot of the questions I've had.

I also think I understand it pretty well at this point.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 11:31 AM
Quote:
Originally Posted by Nchabazam
The problem I have with angular is that you really need to understand it pretty well to even solve somewhat simple problems at times. It has a steep learning curve when it comes to building a real site, and not just playing with some of the two way data binding.

That being said, I'm hesitant to bother with a new framework right now. I like angular, and it's gaining more and more support, with more blog/SO posts answering a lot of the questions I've had.

I also think I understand it pretty well at this point.
Agree, and those would be all my "pro" reasons for it as well. Unfortunately, as impressive as it is, I am becoming more and more convinced that simplicity trumps everything, so I think I'm moving away from it.

Btw, how is your screen name supposed to be prounounced and what does it mean?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 11:58 AM
Quote:
Originally Posted by Grue
Thanks for the great post I'll be referencing it a lot in the future. I immediately asked for a raise we'll see what happens and I'll follow up. I'm a little interested in #3 - usually I just tell recruiters "my range varies" or whtaever i.e. not giving them a number and letting them figure it out.
for #3, I definitely understand the motivation to say "your range varies", however 100% of the seasoned contractors we worked with always gave a firm rate, never a range.

In fact, if a recruiter ever told me "hey I got a guy for that req that is awesome" guess what my first question is "How much is he?". If they ever said to me "his rate varies" my response 100% of the time was "LOL GTFO".

If the recruiter told me he was "50-55", my response is "so is he 50... or 55?". EDIT**: this actually started to become a super annoyance and caught on with some of our recruiters for who knows what reason, so in a sales meeting we put a 100% end to it. We made the hard and fast rule that there was never to be a range given to a sales person.

On the business side of things, there is never a range. There is a firm price. I have contractor X for price Y. Will company Z pay Y? Yes... gg. No?.. keep recruiting.

You are however, allowed to be flexible. You can say $60, and the recruiter says, "can you do $58", you can say "yea I could do that" or "well I have another opportunity I am in front of for $60, so that would be #1" or "well if I get the offer by Friday I will do it". It works the other way as well. If you tell the recruiter you are $60, they very well may say "I have some flexibility and they really need your skillset, I can put you in at $65". I used to tell me recruiters to do this fairly regularly. If I found someone that had the skills, I wouldn't short them because of their ignorance. After the 6 month contract is up and it is time for them to renew, guess which contractor busted his ass and gets extended and accepts it. The guy I gave the extra $5 to. There is nothing sweeter in contract recruiting as an extension. Nothing.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 12:17 PM
Quote:
Originally Posted by gaming_mouse
Agree, and those would be all my "pro" reasons for it as well. Unfortunately, as impressive as it is, I am becoming more and more convinced that simplicity trumps everything, so I think I'm moving away from it.

Btw, how is your screen name supposed to be prounounced and what does it mean?
I looked at the framework you linked, seems pretty cool. I might take a look at it next time I need something like angular, but it isn't a complete 1 page app type of deal. Angular seems kind of a pain for just sprucing up parts of your site, instead of basically creating the whole site with it in mind.

My screenname is pronounced en-cha-bazam

As best I can tell its only meaning is "mediocre LHE player"
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 01:46 PM
Quote:
Originally Posted by Nchabazam
I looked at the framework you linked, seems pretty cool. I might take a look at it next time I need something like angular, but it isn't a complete 1 page app type of deal. Angular seems kind of a pain for just sprucing up parts of your site, instead of basically creating the whole site with it in mind.
This sounds about right - AngularJS seems complex, but if you're buildng a robust, complex long-running application that uses lots of third-party libraries/plugins, you kind of need all that complexity. AngularJs is definitely an overkill for minor visual enhancements for a primarily server-side application and maybe there's room for something a bit more declarative and higher-level than jQuery, but not as heavy as AngularJS.

With that said, this project is probably where AngularJS was in about 2009 or 2010 and doesn't seem to offer anything new or interesting. Frameworks are a bit of a popularity contest and I'd hate to waste time on a framework that's not super-interesting from an intellectual standpoint and isn't going anywhere.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
08-01-2013 , 03:04 PM
thanks for opinion guys!
** 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