Home Links History

History Pages

  Part 3 of 3  

College Subsequence

2011 - 2015

What lies directly after college? I ended up working at a university hospital for an eccentric doctor. For five years, to be exact.

Endocrinology 101

There was an endocrinologist who was convinced college students would code him the next big clinical research app to secure his imminent retirement. Here I dabbled in various languages, including Python, ASP.NET, and of course more PHP. I also learned additional database stuff, trying to work with highly variable form data, as produced in the medical biz.

I could write droves on my experiences at the Diabetes Center, but that would divert us away from Chpwner.org.


API.Chpwner.org

powered SteamCardSheet.com

None of this project remains to host (not even a screen capture), but both server side and client site code is preserved on GitHub; though I highly doubt the code is useful in any context. It is worth saying this was around the time I was first learning Python, and admittedly the first time I seriously used JS, so I was learning two languages. AJAX and APIs were unfamiliar to me as well, I just knew these fueled the modern web and so I had to at least attempt to move beyond the web I knew, which was extinct.

During this time, I had set up a proper cPanel host; my coworker had a connection with a company which allowed him to share his hosting ability for free (I did later lose this perk which ultimately led to the closure of my website). But this did not include a VPS, I still needed a customized Linux environment to program in. So, I upgraded my homebrew hardware at my parent's house to an Intel i3 3.4GHZ Quad core with 4GB of RAM. I can't remember if it ran 32-bit or 64-bit, but it was still Ubuntu Server.

2013 - 2015

Steam Card Sheet

Entering the Modern Era

Steam Trading Cards

In order to understand this section, I will preface it with a discussion about Steam. For those who are not aware, Steam (owned by Valve) is a digital distribution platform for computer games. Each game comes with a collector set of "trading cards", which are images or screens from the game, which is collected in packs. Packs are converted into badges and badges increase your total steam user level. After an initial finite drop, remaining trading cards are purchased and sold with real money, or traded but this can be harder to do than simply buying the cards you need.

Suffice it to say, many people became obsessed with Steam Card collecting and sought third party tools to assist them in this endeavor. I knew such a person at the Diabetes Center and so came the idea for Steam Card Sheet. This was also the first time anything I made actually had an appreciable impact on the World Wide Web—people were using this tool!

SCS Screen
   - 9090MG on the steamcardsheet.com (12/06/2015)

Frontend

Bootstrap and AJAX

The premise of the Steam Card Sheet was to create an interactive spreadsheet where you could filter or search for the cards you were missing, the prices of the cards, and the total price to level up one or more badges. The site contained a JS front end which displayed the spreadsheet, and a server backend which consisted of a web scraper and cache for all the data that was scraped. The backend was contacted by the frontend using an API.

Bootstrap is a JS framework for developing interactive content, it powered the spreadsheet display along with jQuery (an eminent JS library). AJAX describes a method of which the browser reaches out to either send or receive data using HTTP requests, without reloading the page. All this is done with JS by the browser after the page is loaded. Basically, it turns what would be a static webpage into something more interactive and app-like.

Backend

Django Rest API

The server backend was written in Python and more specifically was integrated in a framework called Django. Use of this framework made it simple to create an API, here specifically done in the REST modality. The API would read and write data to and from the cache, which was stored in a standard relational database like MySQL or MariaDB. I cannot recall which database I had installed, but everything was running on my homebrew server.

Data retrieval from Steam was triggered by certain API requests and would be appropriately rate-limited to avoid looking like a DDOS attack on the Steam servers. Part of the data was scrapped from HTML pages and the other part from Steam's own API. Data was moved to and from both APIs in the form of JSON, which is commonly used to store data for processing in JS, such as with the Bootstrap and jQuery framework.

Yucky Web-Scraping

Code Rots Quick

The majority of the code that was written, was used to scrape data from Steam. This in particular, will no longer work due to updates Valve made to eliminate this. Actually, Steam was and still does actively prevent these types of automated requests. Though they do provide an API, it was not robust enough to retrieve all that was needed to render the Steam Card Sheet.

The site became completely broken within 2 years. Here I also noticed that other similar tools were being developed, some of them worked as browser extensions, which admittedly is a clever way to integrate this type of tracking tool. Others were sites, like SteamCardExchange or SteamTools, to provide similar functionality and are still maintained today.

The latter is close and can literally output to a spreadsheet, but mine looked nicer and allowed for visualization of what you had vs what you needed. I also hotlinked all the graphics from Steam, which was probably not the smartest thing to do in hindsight.

Conclusion

Upon retrospect, my time with Chpwner.org was a reflection of my academic years. So, the Steam Card Sheet is aberrant, but it was technically impressive and was recognized on the web...by niche Steam collectors. Though I did dabble in other techy things, these were not preserved on my website.

In all actuality, this current iteration of Chpwner.org puts forth more content than its entire history. But I feel like I'm tracking into memoir territory! So, without further ado, I will conclude the history pages of my website.

I am going to grab a cup of coffee.

I am rather fond of coffee, especially Turkish coffee

 

Home Page  |  Legacy Index

Page 1 , Page 2