roncli.com blog
The blog of roncli
roncli.com blog
roncli.com
blog
Profile
roncli
Houston, Texas, United States
Labels
Coding
CTG Music
Editorials
Games
Miscellaneous
Music
Servers
Silliness
Software
Sports
Trax in Space Beta
Weather
Recent Posts
WTF did Revival Productions just do?
A Tale of Two Communities
The Final Stretch
A Two Tiered, Untiered OTL
Secretly, you wish you could've done what I did
What have I done since roncli.com v2?
It's Done. It's Finally Done.
The Big Picture is Starting to Wear on Me
A Low Bang to Buck Ratio
win-acme
Archives
February 2005
March 2005
April 2005
May 2005
June 2005
July 2005
August 2005
September 2005
October 2005
November 2005
December 2005
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
August 2006
September 2006
October 2006
November 2006
December 2006
February 2007
March 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
June 2008
July 2008
September 2008
December 2008
February 2009
July 2009
August 2009
September 2009
October 2009
November 2009
February 2010
March 2010
April 2010
June 2010
July 2010
August 2010
September 2010
October 2010
November 2010
December 2010
March 2011
June 2011
July 2011
August 2011
September 2011
October 2011
December 2011
January 2012
February 2012
April 2012
July 2012
November 2012
July 2013
April 2014
July 2014
August 2014
November 2014
December 2014
March 2015
April 2015
May 2015
June 2015
July 2015
September 2015
January 2016
February 2016
May 2016
July 2016
November 2016
March 2017
January 2018
May 2018
June 2018
January 2019
January 2021
February 2021
March 2021
August 2021
October 2021
December 2021
August 2022
November 2022
October 2023
February 2024
April 2024
Wednesday, November 12, 2014
LibWowAPI 2.0
Posted: 1:41:00 AM 0 comments
Well, it's been a long time since I've posted anything useful here, so let me introduce LibWowAPI, updated to version 2.0.

LibWowAPI's been behind Blizzard's WoW API for quite some time now, and between my last job and my re-found passion for gaming, I've not really had a lot of time to update it. Well, with Warlords of Draenor dropping this Thursday, and the fact that I sorely need to update my guild website, Six Minutes To Release (my next project!), I figured now was a good time to catch up.

For this release, I added an extensive Visual Studio test suite, which ensures that all of the of the classes are functioning properly before I go to do a release. Often times Blizzard will break things in the API, which requires me to make changes to avoid exceptions. It took me quite a bit of time to document all of the classes, but I really feel like a LibWowAPI release needs to be a quality product.

Blizzard most likely is going to make changes to their API in the coming weeks, and hopefully I can stay on top of them. However, with the number of projects I am giving priority to - the least of which is my 12-1/2-year old fail-design of a website... well, let's just hope Blizzard doesn't break anything serious.

Labels: , , ,

Tuesday, July 08, 2014
Open Source Adventures
Posted: 5:53:00 PM 0 comments
One thing I've always appreciated is open source software initiatives. Of course, in the beginning it was more an appreciation of "thank you for letting me use your stuff for free" without giving back. Over time, though, I've embraced the promise of open source. With LibWowAPI, I put out a .NET library that some found useful enough to contribute back to the project. It's awesome when you get other people interested in what you do.

Another thing I've grown to love is bleeding edge technology. While it took me forever to adapt .NET, I'm now always keeping on top of the latest and greatest technologies.

With these shifts in mentality, I've managed to learn things like Node.js and rendr simply by diving in and trying them. But lately, just trying hasn't been enough.

I've moved the source code of roncli.com to GitHub, and with it is a new Node.js code base that uses rendr. I just recently finished the login, registration, and forgot password work flows, which was a big step. But now I've sidetracked myself into upgrading the tools that rendr uses.

Specifically, I came up on an issue with Browserify and Grunt. I upgraded Browserify and some of its dependencies to the latest version, but this completely broke rendr, even when I fixed my configuration files to work with the latest version of everything.

It took me a couple of days, but ultimately I found the problem was mainly lack of Windows compatibility with some of the dependent projects these bigger projects use. Since ultimately I plan to have my website on a Windows server but want to have the flexibility to move to another server if I need to, I debugged the issue and found that there were three separate projects that had bugs.

Within two days, I have created three pull requests to fix the issues I am seeing, all with the goal of getting rendr to work with the latest and greatest of all the modules rendr is using. It's kind of cool, because contributing back to these projects means I'm not only helping myself, but hopefully I'll be helping a lot of other people out in the future as well.

Labels: , , , , , , ,

Monday, April 07, 2014
All Good Things and Such
Posted: 10:18:00 AM 0 comments
It's been a long time since I've written anything of substance here, so let this post serve as a catch up to what's been going on.

Since April of 2012, I have had the pleasure of working on the iOS application known as Sift. The company developing Sift is a San Francisco Bay Area startup, of which I am a founder. Needless to say, I put in many hours of work into the product.

Sift was more than a job to me. It was an opportunity to do something big, and perhaps make a profound impact in the way people shop online. It's still in its infancy, but the product that we put out there is pretty awesome.

However, I decided to step away from the company in February after three months of consideration. It was a very difficult decision for me, as I truly believed in the product and the company. I was a remote worker in a high-impact position, and I found that it wasn't easy maintaining the visibility required of such a position in a remote location while still being able to get done the stuff that needed to get done. This became especially true as the company grew, both with more internal employees and having to work with multiple contractors outside of the company (and the country), which would have me going as early as 8 am and as late as 2 am. Combine that with the demanding travel schedule - I spent only 8 of the final 18 weeks of 2013 at home - and it's not hard for most people to see how stress levels were through the roof.

Extreme stress levels aren't something I'm particularly fond of, which led to my decision to move on. I did spend a good deal of time with the company, accomplishing and learning plenty along the way. I learned much about the open source world, and found that I very much enjoyed working with Node JS. I met a lot of awesome people as well, and I can only wish for their further success as Sift continues to grow.

While leaving was certainly not a decision I came to lightly, I'm quite happy that I was able to leave my second startup on my own terms after being able to accomplish so much for them. My first startup, Trax in Space, ended in financial disaster, and I wasn't ready to step away when it all fell apart. This time, I look back fondly on the experience, knowing that I was a major contributor, and that the company is still growing upon the foundation that I helped to build.

So what's next for me? Well, back to the Monday through Friday, 8-hour a day grind, resharpening and honing my .NET skills while bringing my schedule back to a sense of normalcy that I have found was very much missed. What else?

Music. I'm slowly getting back into my music, and as always have several songs floating around. I want to get myself a new electric guitar next, as my last one bit the dust some years ago. In the meantime, I post things I'm working on to my creative blog as I work on them.

Coding. I'm in the process of upgrading all of my .NET projects to 2013, will be updating LibWowAPI, and plan on slowly transitioning my websites over to Windows Azure. I plan on learning Rendr and incorporating it into my personal website, roncli.com, as a way of learning and showing off my node.js skill. And I am wanting to figure out Xamarain so that I may be able to write mobile games.

Gaming. And of course, I spent a ton of time between jobs gaming. I'm big time into Diablo 3 these days, have gotten into streaming my gaming experiences, and am a regular host on the Six Gaming Podcast where we talk all about gaming.

Seems like I'm getting back to my roots these days. That could be a sign of some wonderful times to come.

Labels: , , , , , , , , , , , , , , ,

Wednesday, April 25, 2012
LibWowAPI 1.0.4
Posted: 12:52:00 AM 0 comments
This Peratryn guy is pretty good. A bunch of fixes and clarifications means LibWowAPI is now at version 1.0.4. From the GitHub commit:

Version 1.0.4
- Added PvpZoneStatus enumeration to describe a realm's PvP zone status, and updated the realm status lookup accordingly.
- Added item socket bonus to the item lookup.
- Added page number and sort order to the arena ladder lookup.
- Added number of characters, page number, and sort order to the rated battleground ladder lookup.
- Added battlegroup to the character profile lookup.
- Added battlegroup to the guild profile lookup.

Labels: , , ,

Friday, April 20, 2012
LibWowAPI 1.0.3
Posted: 4:56:00 PM 0 comments
It was Blizzard's turn to procrastinate with their first update in 4 months. The good news, though, is that not only do we have an update from them, apparently there is a new developer on their API team. Hopefully this means that more frequent updates will be forthcoming.

In this edition of LibWowAPI, I bump the version to 1.0.3 by adding the new rated battleground ladder. I also updated the realm status API to include the newly available information about world PvP zones such as Wintegerasp and Tol Barad.

Labels: , , ,

Monday, December 19, 2011
LibWowAPI 1.0.2
Posted: 2:45:00 PM 0 comments
So leave it to Blizzard. After months of no updates and me procrastinating in releasing an updated version of the API, it took them only 24 hours to add a new recipe lookup.

Well, I'm not procrastinating this time. Check out LibWowAPI in all of its 1.0.2 glory, with a shiny new RecipeLookup class.

Labels: , , ,

Wednesday, December 14, 2011
LibWowAPI 1.0.1 - Now on Github!
Posted: 11:25:00 AM 0 comments
Today, I released LibWowAPI on Github as part of my continuing effort to move my open source projects off of the roncli.com SVN and on to Github.

With this move, I upgraded the library to version 1.0.1. There are a ton of changes packed into this little version, so many that I debated upping the minor version number instead of the revision number, but in the end I didn't feel that the library's underlying logic changed significantly enough to warrant it.

The biggest change is the removal of the Json.NET dependency. While I like the simplicity of the Json.NET library and its ability to easily manipulate data using LINQ, the overhead was too much for a public project like LibWowAPI, so I switched to using System.Runtime.Serialization.Json instead. This gives the library the advantage of now being self-contained without having to worry about adding dependencies. I will continue to use Json.NET in some of my personal projects, but there is no need for me to include it with this library.

I've also updated the library with many of the changes to the Blizzard WoW API over the past 4 months, including an equipped item's transmogrified property, pet talents, and Portuguese language support.

Several bugs have been fixed as well, removing some annoying errors that occur when Blizzard throws a 500. The IsModifiedSince stuff works now as well, no longer crashing when something hasn't been modified.

Overall, I'm pretty happy with the state of the library. My only wish is that I could have done this in stages, as some of the API data is a couple of months old. Unfortunately, my free time has been limited by a much bigger project, so the fact that I was able to put this out at all is a big win.

Labels: , , ,

Saturday, September 10, 2011
Cheevos FTW!
Posted: 2:56:00 PM 0 comments
While I was working on converting LibWowAPI to use the new Blizzard WoW API, I came up with an idea that, I think, is pretty good.

Cheevos FTW! is a new website that I've created that allows a World of Warcraft player to figure out what achievements to shoot for next. It works by crawling through the WoW API, reading a character's achievements, guilds, and arena teams. The achievements are stored in a database while guilds and arena teams look for more characters to crawl. Guild achievements are similarly stored. Every so often, the achievements are analyzed and sorted by how many players have accomplished the achievement.

When a player enters their realm and character name into the website, it takes the sorted achievements and removes all of the achievements the character has accomplished, and spits out the top 10 remaining achievements from the sorted list. This effectively gives a list of recommended achievements the character should go for next, based on what achievements other characters have already done. The same happens for the guild's achievements.

The site is a very simple concept, but is very data heavy. Already, before the site even has gone live, I've crawled over 70,000 players who have accomplished over 13,000,000 achievements! Within a couple days, this database will have more records than my logs site.

This was a fun, quick site to put together. I have no idea how big it will get, but it will be fun to see how it gets used by the WoW community.

Labels: , , , ,

Saturday, August 27, 2011
LibWowAPI 1.0
Posted: 6:47:00 PM 0 comments
It's finally all grown up!

LibWowAPI, my .NET library for accessing the Blizzard WoW API, has finally been completed, and version 1.0 has been released. It is feature-complete, meaning that everything that is available from the API is available in my library.

I've also spent the better part of the last week painstakingly documenting every last class, method, and property, so that developers will have an easy time figuring out how to use the library.

If you're a .NET developer and interested in playing around with the Blizzard WoW API, be sure to check out LibWowAPI.

Labels: , , ,

Friday, August 19, 2011
LibWow...API? 0.5 beta
Posted: 12:11:00 AM 0 comments
So I finally decided to drop the "Armory" moniker of what was LibWowArmory. It is now LibWowAPI to better match what it's a library for, namely the Blizzard WoW API. Yet, this version is a heck of a lot more than a name change.

The latest version now supports BNET authentication, provided you have an authentication key pair from Blizzard. The character profile got PvP and quest fields added to it. There are new classes for character achievements, guild achievements, quest lookups, and even battlegroup arena ladders. Item lookup is now fully supported as well.

Several properties got changed to become shared (or static if you're into that C# stuff), including the region and the language. I wrestled with this one for a while, as I wanted to give the library flexibility to change the region and language on a whim. However, making it shared allowed me to write a lot less code, and honestly I'd rather deploy the website as "us.something.com", "eu.something.com", etc. with each website controlling the value of the region and language in the Global.asax file. The resulting coding styles felt a lot more natural that way.

The headers got changed, as Blizzard is no longer using the LastModified header, but rather the IfModifiedSince header. Makes.. uh.. sense. I also send some of my own, though. X-Library and X-LibraryURL identify the library as LibWowAPI, and X-Application and X-ApplicationURL are exposed for the developer to identify their application accordingly.

I also decided to expose the Data property of each class, which gives you the JSON as returned by Blizzard.

Finally, this release is the first release with a binary distribution. Don't want to load the source? No problem, reference the DLLs and enjoy.

Once LibWowAPI includes auction data, I'm going to bump the version number to 1.0, drop the beta tag, and do a short screen cast on how to use the library via YouTube. After that, the sky's the limit with what you can do with this library. Enjoy!

Labels: , , ,