13th September 2018

Re: D7’s 2018 PGC: back at it


Quote:
Originally Posted by BenaBadBeat
View Post
<3 we missing you lad

Ah sheeeeeeeeit. I was missing you boys too – next year I promise!

Spoiler:
Quote:
Originally Posted by meale
View Post
Siq, you interested mostly in web dev stuff or more application dev ATM?

Started off mostly just following python tutorials on youtube and messing around. Took me a very long time to realise that if you’re trying to do something with a computer, it’s basically 100% you’re not the first person to come across the problem, so there’s probably something out there that does something at least similar. The awkward thing is that it probably doesn’t do EXACTLY what you need to do, and in order to tweak it enough to make it work you need to be able to read/understand/change the code – often it’s just a few characters/lines you need to change, it’s frustrating when you know it almost works but it doesn’t work.

Here’s one thing I actually made myself from scratch though, it’s a web scraper for 2p2 which lifts all the blog posts from my 3 proper PGC threads (spread over 5 years) and saves them as the date they were posted on.

Code:
import bs4 as bs
import urllib.request
import re
import os
import datetime
import io


urls = [
'https://forumserver.twoplustwo.com/174/poker-goals-amp-challenges/d7s-2013-pgc-100k-moving-up-1295523/',
'https://forumserver.twoplustwo.com/174/poker-goals-amp-challenges/200k-2014-crushing-msnl-1428843/',
'https://forumserver.twoplustwo.com/174/poker-goals-amp-challenges/d7s-2018-pgc-back-1702907/'
]
#the urls to be scraped

userId = '230247'
#OP's user number, could also read this from html..

my_posts = []

for i in range(0,(len(urls))):

url = urls[i]

sauce = urllib.request.urlopen(url).read()
soup = bs.BeautifulSoup(sauce, 'lxml')
#sets up the beautifulsoup

############################################

a_list = []
menu_tds = soup.find_all('td', {"class": "vbmenu_control"})
substring = 'Page'

for td in menu_tds:
if substring in td.text:
a_list.append(td.text.split()[-1])
break

length = int(a_list.pop())
##this finds the length of the thread (for the program, which is not logged in)

##########################################

my_urls = soup.find_all('a', {"class": "bigusername"}, href=re.compile(userId))

for item in my_urls:
my_posts.append(item.parent["id"].split("_")[-1])

for i in range(2,length+1):

sauce = urllib.request.urlopen(url+'index'+str(i)+'.html').read()
soup = bs.BeautifulSoup(sauce, 'lxml')

my_urls = soup.find_all('a', {"class": "bigusername"}, href=re.compile(userId))

for item in my_urls:
my_posts.append(item.parent["id"].split("_")[-1])
#this loops through the URL and subsequent associated pages to make a list of all my post numbers in these threads

my_post_urls = []

for item1 in my_posts:
my_post_urls.append('https://forumserver.twoplustwo.com/showpost.php?p='+item1)
#converts post numbers to actuals URL you could paste into a browser

text = str(my_post_urls)

saveFile = open('FULLLIST_2p2_PGC_urls.txt', 'w')
saveFile.write(text)
saveFile.close()
#saves this list of full post URLs to a .txt file

##############################################

url_scrape_file = open('FULLLIST_2p2_PGC_urls.txt', 'r')
post_urls = url_scrape_file.read()

a_list = post_urls.split(',')
b_list = []

for item in a_list:
b_list.append(item[2:-1])
#parses this list

for i in range(0, len(b_list)):
url = b_list[i]

sauce = urllib.request.urlopen(url).read()
soup = bs.BeautifulSoup(sauce, 'lxml')

td_tags = soup.find('td', {'class':'thead'}, {'id':'currentpost'})

date = td_tags.text.strip()

save_name = "Blog Archive Posted {:%A, %B %d %Y, %I %M %p}"

post_datetime = datetime.datetime(int(date[6:10]), int(date[:2]), int(date[3:5]), int(date[-8:-6]), int(date[-5:-3]))

my_dt_format = save_name.format(post_datetime)

text = str(soup)

with io.open(my_dt_format+'.txt', 'w', encoding="utf-8") as f:
f.write(text)
#writes the soup/html to a file named using the date of the post (encoding avoids headaches)

Probably brutal code for someone who knows what they’re doing lol. Spent probably about 15h on this altogether – a true boss could definitely do it in <1, but you’ve gotta be a 2nl whale before you can break even at 50nl.

I find it’s considerably more engaging to work on a coding problem that’s relevant to you (i.e. that you actually want to solve/would be useful for you). Clearly that’s somewhat difficult as to even think of possible applications you need to clearly understand what a computer/language can and can’t do, so yeah – I guess there’s some amount of pain involved in getting from 0 to 1 that’s just unavoidable. Right now it’s mainly what I’m interested in so I’m just going with it.

Also, another big misconception is that people who can write code spend their time writing code – the skill of coding is basically debugging. You try something you think will work, it doesn’t work, you try to fix it, you can’t, you try something else, it half works but actually you’ll need to start again because blah blah blah. It’s a grind, but I enjoy it.

Gotta be careful in how aggro you are with your computer aswel – I was messing around for a while maybe a month ago trying to install ubuntu (alternative operating system) as a dual boot on this laptop and for a second I couldn’t boot anything at all – not even a blue screen of death/BIOS menu or anything, just blackness

=================================

Anyway, seeing as this is a poker forum and not a programming forum I’ll take this full circle – the main thing I’ve been working on these last few months is a complete overhaul of how I deliver content to BitB Cash students.

I first started making cash game content for students when I had just moved up to 100nl. IIRC that was just into in my second year playing full time, so something like 5-6 years ago. I made a 3-4 video mental game series for Pocarr staking group that (last I heard, good couple years ago) is apparently the first thing they recommend new students to watch (I do the same with my current mental game series).

I left Pocarr by mutual consent after the cash game program there didn’t take off, messed around with some informal staking things/ private coaching here and there but didn’t really get back in the game till late 2016 when I launched what was then d7sarmy. After a year or so of running that successfully, I had that built out into a site by a series of developer teams (made every mistake in the book hiring developers lol) and decided for a brief time to allow public access to our last few months worth of videos.

The day the site launched, I got a anonymous PM on 2p2 telling me about a super basic wordpress vulnerability which meant everything I’d uploaded to the site was freely available for download by anyone with a clue. This after literally months of pain having the site designed, emailing/meeting developers every other day, sweating pricing decisions, setting up payment options etc. Plus justifying the decision to students, who were understandably pissed off that information they pay good money for was going to go into the public domain. I think around 50 videos got hacked, mainly of me playing but also student reviews and liveplays from other coaches.

I was absolutely ****ing livid tbh – obviously there was nothing I could do about it, but having put so much time, effort and cash into a site I wasn’t even happy with, to think that the information I’d taken so much care to protect had probably already been hacked was pretty galling. Within a few days there were anonymous guys were doing the rounds on skype, adding everyone in the piosolver support thread and offering all of them for sale for $50. I still get messages from friends about these guys from time to time even though I’m 99.9% sure they only got the stuff that was put up before the site opened – up till early Nov 17 I guess.

Anyway, the other big problem I was running into with students was that they wanted more structure to their learning. They were very happy with the content, but they’d like more classroom style stuff and for things to be more organised into topics/sections of the game with a beginning/middle and an end. Often I post interesting spots I’ve played to the group and someone will basically wtf and be mad I haven’t taught him to look out for this spot – but the spot occurs so rarely it would be a waste of time to cover when we’ve just got an hour and a half to cover some type of pot that’s giving him bother.

BLAH BLAH BLAH cut to the chase right?

I decided to start again from scratch on a website that delivers content to students in a clean, protected, structured way. I’ve focussed on functionality over form for now, at some point the whole thing will need a massive facelift but yeah, I’m pretty proud of it, so here’s a little sneak peak – https://bitbcash.com/course/mental-game/

Do bear in mind the site is in legit hello_world stage, you can’t register and there’s no content to view (unless I’ve majorly ****ing something up, again about 99.9% sure I haven’t but could for sure be proven wrong ). But yeah, it seems to all work as intended so I’m going to slowly start running my existing students through the program and take feedback about what could be better. If this works, I can start building out real strategic content and churn out a conveyor-belt of guys crushing 200nl, I’m feeling super pumped for the future of the program so yeah – we’ll see how it goes

That’s about all for now, been doing programming stuff basically flat out since I got home so no poker played this month. It’s fresher’s week of my Software Engineering degree at Napier Uni round the corner, quickly learned that it’s all getting to know you/having the confidence to email a tutor if you’re stuck type **** this week (actually had to walk out of one class lol), not sure how seriously I’ll take lecture/tutorial attendance this first semester/year – been a while since I did an undergrad, I’d forgotten the extent to which you can coast and do enough to pass lol. Hopefully we start getting knowledge soon.

Oh also last thing, I’m going to fail one of the goals I set for the year – apparently the ju jitsu competition that was here last October is in Glasgow this year – given I had a month off training in Mexico and I’ve got a few other things happening in the next few weeks, I’m not going to have time to train properly for that, so I’ll be waiting till April to pop my competition ju jitsu cherry. Instead, I’ve committed to the ‘Wresting Gods’ group my instructors decided to set up – I come to wrestling classes twice a week till christmas, they get me passably good at wrestling apparently Went to my first class last night, actually really enjoyed it – not so tough on the joints/neck/mind as you’re just trying to get the guy on the ground with his shoulders flat, but still a helluva workout.

Aight that’s really all! Peace and GL out there,

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top
Scroll to Top

Join Our Email List!

We send emails we think you'll enjoy every Wednesday. Unsubscribe at any time, we won't sell your details to anyone, ever.

Please note: We are currently having problems sending emails to
hotmail addresses - please use another if you have one.

Perfect Your BB Defence!

45 Highly Accurate, Solver Derived Preflop Charts!

Vs 2x, 2.5x and 3x open sizes, 15-50% opening ranges

We send emails we think you'll enjoy every Wednesday. Unsubscribe at any time, we won't sell your details to anyone, ever.

Please note: We are currently having problems sending emails to
hotmail addresses - please use another if you have one.