MyVideoGameList.com v3.0

Over the last couple of weeks we've been hard at work optimizing the code that runs MyVideoGameList.com. During this milestone our main goal was to not only optimize our code but also make sure it was ready for newer versions of PHP and MySQL. During the optimization we also decided to change the layout of the site so that it was cleaner, and hopefully allowed everyone to easily manage their games and libraries and easily perform tasks within the site. We've also been hard at work on making sure to secure our code and functions on the site. Check out a few screenshots from the upcoming v3.0.















I hope that within the next couple weeks we can roll out this new update to everyone. After this next milestone is finished we're hoping to dive back into getting new features added such as groups, more privacy settings, connections to Twitter and Facebook so people can share updates to their social pages, and more!

Personal Anime List

I recently wrote about my new anime list site, but I finally took a little time to build my own Bootstrap based page which lists all my anime (watching, completed, on hold, dropped and plan to watch). Currently I may open up the site to a few people, friends and see how well it does. If anyone wants to help me test things out, feel free to drop me a comment 😄

Screen_Shot_2014-05-01_at_1.png

You can check out the page here.

A New Chat Server

I've been running a Jabber server for friends and family for a few years now. I've gone between using OpenFire on OS X and Linux to 3rd party hosted solutions to ejabberd. One of the main reasons I am writing this was because I saw something on Ars Technica about setting up your own private chat server. While I was currently using the iChat Server which comes built into Mac OS X Server, my Xserve has been on the fritz for the last couple weeks (I think the NIC on the logic board is becoming unsoldered which causes connections to come and go) and I was looking for a replacement.

The Ars Technica article kind of prodded me to start looking for another solution since my poor Xserve was on it's last legs. The article uses Prosody as the server daemon which I had never heard of, but looked worthy as a replacement. After having a fair amount of issues getting the right Lua libraries installed, I finally gave up and started looking for another solution. I came across http://www.getvines.org which looked really promising and quite slick.

Vines is Ruby based and supported everything I wanted, server-to-server chat as well as had TLS support. It even included a nice web interface as a chat client incase you didn't have a Jabber client installed. I spent about 2-3 hours trying to get this to work but found there was a bit of a learning curve involved with getting it to work properly. The documentation also appears to be a bit out of date as well and I got no response when I attempted to reach out to the developer on Twitter. The issues on their GitHub respository also appeared to be unattended to for quite some time. Once I finally wrapped my head around how it worked and tested it with my girlfriend, it was essentially un-usable. It took about 1 minute and 30 seconds for a message to go from one person to the other. I checked into all the configurations and settings again but I saw nothing that would have caused it to delay messaging between users. Of course nothing in GitHub issues, Google, or on the Vines site hinted as to what was causing this, so I was back to the drawing board.

The next Jabber server I tried was ejabberd, another popular one. It also supports TLS and server-to-server chatting. It required very little effort to get running and when testing between users it worked great. The only issue I had was getting my StartSSL SSL certificate working, but that was due to lack of documentation. Fortunately a quick Google search turned up this site and I was up and running with my SSL certificate in no time at all. It also has a decent (but still stuck in 1995) web front-end which I can use to easily manage adding users to the server.

For all this testing, compiling, installing, poking, and prodding, I used a Droplet from DigitalOcean. I think they're definitely going to be my go to company when I need a quick Linux environment for testing and even for production servers. I literally switched to and from Ubuntu and CentOS, and reinstalled (multiple times) the operating system, all within 30 seconds to a minute. They've got a great infrastructure and even offer instances all over the globe! If anyone is looking for a provider check out DigitalOcean! I should even note I used a tutorial from DigitalOcean to get ejabberd running on my Droplet.

If anyone wants to add me on Jabber, my address is jimmy@chat.cookiecache.com 👍

Horse Time!

I had a fantastic time this weekend riding my horse. He did a great job and I really had a lot of fun. I love having a super awesome horse. 🐴 🍃

Install GitBucket to Heroku

GitBucket is a clone you could say of GitHub. However while it looks similar to GitHub it's certainly quite far from being what GitHub is. Sure it allows you to:

  • Public / Private Git repository (http access only)
  • Repository viewer (some advanced features such as online file editing are not implemented)
  • Repository search (Code and Issues)
  • Wiki
  • Issues
  • Fork / Pull request
  • Mail notification
  • Activity timeline
  • User management (for Administrators)
  • Group (like Organization in Github)
  • LDAP integration
  • Gravatar support

but there's a lot missing, most notably the ability to use the Git/SSH protocol. However, with all the features included above I decided to give it a shot.

The first thing to note is this is not written in one of my preferred languages such as PHP, Ruby (on Rails) or even on node.js. It's done in Scala, which means that Java will be involved. I absolutely despise Java. Regardless I still went forth.

For my install I decided to deploy it to Heroku which meant I didn't have to install Tomcat or Glassfish, etc...

I have a CentOS 6.x Linux server which I used. First you'll need to install Java, pretty simple. You'll also need the development tools as well.

~/gitbucket $ yum install java-1.6.0-openjdk-devel java-1.6.0-openjdk.x86_64 -y
~/gitbucket $ export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre

This will install Java and any necessary dependencies. One that's finish you'll want to get the GitBucket code. By default GitBucket doesn't come with the necessary configurations for working on Heroku, but someone has kindly updated the latest GitBucket branch with the necessary code and files.

~/gitbucket $ git clone -b heroku-1.9 https://github.com/xuwei-k/gitbucket.git

This tells git to snag the heroku-1.9 branch. From there you'll want to change the name of the branch to 'master'.

~/gitbucket $ git branch -m master

Now, you'll want to run the sbt tool, thankfully this is included in this fork of the GitBucket code. It essentially allows you to compile the code locally on your system. You'll want to run the commands when prompted, clean, compile, and stage.

~/gitbucket $ ./sbt.sh
[info] Loading project definition from /home/git/gitbucket/project
[info] Set current project to gitbucket (in build file:/home/git/gitbucket/)
>> clean
[success] Total time: 0 s, completed Jan 29, 2014 9:10:55 PM
>> compile
[info] Compiling twirl template .../main.scala.html to .../main.template.scala
[info] Compiling twirl template .../index.scala.html to .../index.template.scala
[info] Compiling twirl template .../header.scala.html to .../header.template.scala
[info] Compiling twirl template .../signinform.scala.html to .../signinform.template.scala
[info] Compiling twirl template .../signin.scala.html to .../signin.template.scala
...
>> stage
[info] Generating /home/git/gitbucket/target/scala-2.10/resource_managed/main/rebel.xml.
[info] Wrote start script for mainClass := Some(JettyLauncher) to /home/git/gitbucket/target/start
[success] Total time: 1 s, completed Jan 29, 2014 9:13:58 PM

Once this is completed you can push it out to Heroku. First create the application:

~/gitbucket $ heroku create
Creating sheltered-shelf-3564... done, stack is cedar
http://sheltered-shelf-3564.herokuapp.com/ | git@heroku.com:sheltered-shelf-3564.git
Git remote heroku added

Next push your code to Heroku.

~/gitbucket $ git push heroku master
Initializing repository, done.
Total 0 (delta 0), reused 0 (delta 0)

-----> Scala app detected
-----> Installing OpenJDK 1.7...done
-----> Downloading SBT...done
-----> Running: sbt compile stage
       Getting org.scala-sbt sbt 0.12.3 ...

It'll spew forth a lot of text, hopefully you should see something similar to:

[success] Total time: 140 s, completed Jan 30, 2014 3:26:53 AM
       [info] Generating /tmp/scala_buildpack_build_dir/target/scala-2.10/resource_managed/main/rebel.xml.
       [info] Wrote start script for mainClass := Some(JettyLauncher) to /tmp/scala_buildpack_build_dir/target/start
       [success] Total time: 1 s, completed Jan 30, 2014 3:26:55 AM
-----> Discovering process types
       Procfile declares types -> web

-----> Compressing... done, 204.8MB
-----> Launching... done, v6
       http://sheltered-shelf-3564.herokuapp.com deployed to Heroku

To git@heroku.com:sheltered-shelf-3564.git
 * [new branch]      master -> master

Once that's done just visit your Heroku instance, in our case it would be http://sheltered-shelf-3564.herokuapp.com. Hopefully this helps some people trying to install GitBucket and deploy it to Heroku.

GitBucket certainly looks like it could have a lot of potential, probably even more if it wasn't developed in Scala/Java. I did come across one issue so far, I installed GitBucket one night and was too tired to write this up until the morning, when I returned to login to my GitBucket installation it had removed the user account I had created the night before. When I re-logged in with the default root user, it was as if the install had completely reset. The creation timestamp for the root user was today (just now). I will have to submit an issue to takezoe/gitbucket. Other then that, I haven't come across any other issues and I think I'll continue to follow this project.

Update: I guess I was still pretty tired when I wrote this article but the issue with my GitBucket instance "resetting" on Heroku was because they don't have a persistent disk system. Anytime the instance falls asleep or goes idle the disk state resets essentially. One should be using something like Amazon S3 for disk storage or another similar service. I should have known that as well...

Resources

Happy New Year - 2014!

It's been a while since I've written anything containing any sort of substance. I've been relatively busy between work and working on other various projects I haven't had any time to write anything down!

Savannah and I managed to snag both a Playstation 4 and an Xbox One on launch days (without pre-ordering at that). I must say I find myself using the Xbox One a lot more, most likely because more of my friends are on the Xbox platform. I got Killzone Shadow Fall for PS4 which I still haven't opened and Call of Duty: Ghosts for Xbox One which I've been playing a lot of. On Playstation 4 I did download a couple free games, Warframe and Blacklight: Retribution. I've only had some time to play a bit of Warframe but I did find it to be a fun game.

I've been mostly focusing on Call of Duty: Ghosts on Xbox One 🎮. Our clan won our first ever clan war this past week. We unlocked a couple new badges which was cool as well as leveled up our clan. I also managed to get this one badge I'd been trying to get for a while now. It's the Snooze Button patch which can be a real pain in the butt to get.

Savannah and I have also been watching Attack on Titan and we both really enjoy it. We're also working on Suzuka and we watched the first episode from Pokémon Origins. I enjoyed it, it was fun to reminisce and see a new Pokémon anime.

I also started working on Pokémon X again since I had put it down for a while. It's definitely a fun game, but I really need to level up my critters a lot if I want to have any chance at finishing the game. Some girl with a single Pokémon took out about 4 of my 6 Pokémon...eep!

I've also been busy working on MyVideoGameList.com as well as my new little anime list application. It takes place of my account on MyAnimeList.net since I was getting a bit frustrated with the reliability and stability of their services. Currently it's only available to myself, but I may open it up to some close friends at some point.

Of screen and out of the tech world, I've been spending as much time as I can with my new Christmas present, which came in the form of a horse 🐴. He's a fantastic little (ok big) fellow, and I've been really having a lot of fun riding and working with him. It's really great having him because he gets me out of the house and out from behind the computer 💻.

Other then these things, not much else is going on. Just enjoying life and going wherever it takes us...🌾

My Anime List - 私のアニメリスト

I like anime, so it's only normal I would have an account at MyAnimeList.net right?! I do, but for a while now the site has been deteriorating. The stability isn't what I'd like it to be, and being someone who rarely puts their data on other servers, I felt it was finally time to move away from MyAnimeList.net.

Over the course of about 10-12 hours I developed my own anime list application. Built from the ground up using PHP and MySQL and some fancy-dancy Javascript I now host my own anime list. At it's core it's very similar to MyAnimeList.net however it's been trimmed down and most noticeably doesn't really include many community oriented features. Why? Because I rarely if ever used those features and I wanted to build an application that suites me and my needs. I really only care about keeping a list at this time to keep track of anime I am watching, or have watched, or dropped, etc...

While it's not available for public use at this time, I may consider implementing an invite feature which would allow me to invite some of my friends and in turn they could invite some of their friends. I am still working on backend features, such as searching, adding anime into the database and checking over the current code for catching various types of errors.

I've imported my list in it's entirety to my new applications and will hence using MyAnimeList.net from this point on. I wish them nothing but the best of course, and I have no doubt in my mind, with a little TLC ❤️ they could be better then ever. For now, enjoy some screenshots:

watashinoanimerisuto-mylist.png

watashinoanimerisuto-anime.png

My Very First Nendoroid

This is my very first nendoroid which I got for Christmas 🎄 this year. My girlfriend got it for me. It's Mirai Suenaga. I am hoping to get my hands on the Death Note characters, however they're a bit pricy, 3 at $200 💵 💵 💵 💵

I'll definitely take some more pictures soon! ☺️

Demise

demise-skyward_sword.png

Looking forward to fighting this big guy tonight and finally finishing The Legend of Zelda: Skyward Sword!! 🎮

Hearthstone: Heroes of Warcraft Beta

hearthstone-logo.jpg

This weekend I finally got some time to sit down and play a little Heartstone: Heroes of Warcraft. The game is in beta, but it plays very well. This game also is the first time I used the Battle.net game client. The Battle.net client is simple and works great. It allows you to manage any games you've purchased through Blizzard such as World of Warcraft, Diablo III and Starcraft II. I only own World of Warcraft and, now Hearthstone, but hey, it works!

The game download is about 1.3GBs, so it only took a 10-15 minutes to download and get installed. Before I go further I must admit that I suck at card games, so that's why I put off installing and playing the game for about a week or so. The only card games I've ever played are Pokémon and the World of Warcraft card games (which I was terrible at). I never really got into card games, they just didn't interest me. The idea of card games sounded boring and slow. Wizards, magic, spells, stats, and strategy is definitely not my thing.

Hearthstone: Heroes of Warcraft may not be your traditional card game, but it's definitely a lot of fun, and I really enjoy playing it. The game starts with a tutorial of sorts. It shows you how to play your cards, how various types of cards work and how Hearthstone in general works. If they hadn't included this I'd probably have given up and uninstalled the game already. Hearthstone only took me about 10-15 minutes to understand and pick up. Essentially you have a hero (who is Jana Proudmoore to begin with) and minion cards whom fight for you. There are also other cards you can utilize to boost your stats or cast spells or restore health.

Hearthstone-Heroes-of-Warcraft-beta-test-1.jpg

Once I made it through the tutorial I had a look into the store. You can purchase card packs to help build your collection. Each pack comes with 5 cards, one of which is guaranteed to be rare. Purchasing a pack during the beta also entails you to a special card from Blizzard as a thanks. I ended up getting 7 packs ($9.99) which seemed like a fair price to me; I didn't pay anything for the game, so I figured spending $10 on something I actually liked wouldn't hurt! After purchasing your packs, you get to virtually un-wrap them! Fun, I know!

Once I had unwrapped my 7 packs, the game brings you into your collection of cards. From here you can manage your decks and create custom ones. You can create decks per class as well. I quickly made what I thought was a good deck and gave a shot at playing against another human. I was quickly annihilated. Regardless I got some experience points and leveled up. One thing I am not sure about is if you gain more HP for your hero while leveling up or not, I guess I should pay more attention.

Hearthstone_5.jpg

Besides playing against real humans you can also go into Practice mode which lets you play against the computer. I find this to be useful in that I can level up my hero, as well as unlock new heroes and gain new cards. The game also has quests which you can complete to unlock new cards and goodies.

I've played about 5 matches with real humans so far, and unlocked the hunter class hero Rexxar. I've only built a single Mage class custom deck, but I attribute this to a lack of time to do much more. I certainly will continue to play Hearthstone: Heroes of Warcraft and may even drop another $10 for a few more card packs. For someone who generally dislikes card games, I find myself to be quite interested in this one. I have a feeling people similar to me, those who really enjoy Warcraft but aren't into card games may find themselves surprised at how fun Hearthstone is. I think not having a monthly fee to play also really helps me enjoy the game a lot more then say World of Warcraft (even though I do enjoy WoW). I'm excited to see how the game progresses as I suck less and less and as the game becomes more mature.

If anyone out there is playing, let me know!

AF1MUX3MHAKG1363893930368.png