Our minds cannot repel logic of that magnitude!
Programming
Long Awaited Release of the WordPress-SMF Bridge 0.2!
Nov 23rd
For those of you using this plugin, the long-awaited 0.2 release has been made today. It has only been tested in a development environment and may have bugs. For anybody wishing to report bugs do not do it here! Instead, please go to the Google Code page (http://code.google.com/p/wp-smf-bridge) and do so there. My response to questions here will be severely delayed. Please use Google Code and the Google Group created for this plugin. Thank you all for your support!
WP-SMF-Bridge is a simple user registration and logon bridge between WordPress and Simple Machine Forum. To get this working, it is highly recommended that you have a fresh, unmodified install of SMF 1.1 or higher installed and running. To install the plugin, either use WordPress’ built-in plugin installation features, or visit the Google Code page for more information.
Flex 3: Forcing Numeric Sort of XML Data in a Data Grid
Nov 20th
Recently I’ve ran into some problems with AdvancedDataGrids in Flex with data loaded from a hierarchical data provider built from an XML object. When you try to sort on a column with numeric values, the data grid does not sort the values numerically. Instead it sorts them lexicographically. This is because Flex 3 treats all the attributes of an XML node as strings. So if you have an/some attribute(s) that is numeric amongst all of your nodes, Flex treats these as strings when sorting. It is apparently not smart enough to realize that the values are numeric and should be sorted as such.
Unfortunately, Flex doesn’t appear to provide an easy way to say that a certain column contains numeric values. A simple attribute of the AdvancedDataGridColumn element called valueType or something along those lines that you could simply say valueType=”Number” would be incredible, but that functionality does not exist. So what you have to do is write a sortCompareFunction for each of these columns. Well, if you have a bunch of different columns you would usually have to write one sortCompareFunction for each column.
That could get tedious and time consuming. Instead, declare the following function:
private function xmlDataGridNumericSorter(field:String):Function { return function (xml1:Object, xml2:Object):int { var diff:Number = ((Number)(xml1.attribute(field)) - (Number)(xml2.attribute(field))); return (diff > 0) ? 1 : ((diff < 0) ? -1 : 0); } }
What this function does is return a compare function that would compare the values of two XML node’s attribute (field:String). So what you do from there forth is loop over your columns that are numeric and do the following to each column, referenced in the example as col:
col.sortCompareFunction = xmlDataGridNumericSorter(col.dataField);
After that each of the columns you modified in this way will have a sortCompareFunction built to compare two XML nodes’ respective attributes numerically. Keep in mind with the above code that if your column’s dataField is prefixed with an at sign (@), which it very well should since you’re probably referencing an XML attribute, you will need to remove it when you are passing the dataField into the xmlDataGridNumericSorter function by adding .replace(“@”,”") after col.dataField.
I hope this helps people as much as it has helped me in the past few weeks!
A Simple Flex IRC Client
Nov 18th
For those of you who use Adobe Flex and IRC, the simple IRC client written in Flex that I use on The Brew Place is now available on Google Code and is released under the MIT License! Check it out here:
http://code.google.com/p/simpleflexirc/
More Adobe Flex and other projects are expected to make the migration to Google Code within the next few weeks, so keep yourselves posted!
Beginning my iPhone development…
Sep 18th
Well, I’ve finally broken down and done it. I’ve replaced my Windows desktop with a Mac, and now I’ve been sucked in to the realm of iPhone development. So if anybody has been wondering why it’s been a while since I’ve made a post – it’s because I’ve been spending my time working, being with the family, and developing for the iPhone. So keep your eyes peeled, because sooner than later, Vault Head Games is going to have a game on the App Store! More details to come soon!
Colloquy Mobile and ZNC – pushing even when I’m connected?
Aug 26th
Okay, so I recently picked up Colloquy Mobile for my iPhone so that I could stay connected to my IRC channels while I’m on the go. Now, since I do not own a mac (unfortunate, I know) I cannot run Colloquy itself, so using my desktop to send push notifications to my iPhone was not going to happen. As a result, I decided to set up a ZNC Bouncer and use the push module for ZNC that Colloquy provides. Everything went well, but I found one problem – even if I had my desktop machine connected to ZNC the module pushed notifications to my iPhone. That wasn’t cool. If I have some desktop IRC app connected to ZNC, I don’t want push notifications to my iPhone. So what did I do? I was a good programmer geek, and decided to make some mods to the module in order to get it working the way I wanted it to. Here’s what I came up with:
In colloquy.cpp (available here without my modification) around line 506, find the Push function:
bool Push(const CString& sNick, const CString& sMessage, const CString& sChannel, bool bHilite) { bool bRet = true; vector<CClient*>& vpClients = m_pUser->GetClients(); // Cycle through all of the cached devices for (map<CString, CDevice*>::iterator it = m_mspDevices.begin(); it != m_mspDevices.end(); it++) { CDevice* pDevice = it->second;
After the vector vpClients line, at about 510, add the following:
if (m_pUser->IsUserAttached()) { return false; }
The result should be the following:
bool Push(const CString& sNick, const CString& sMessage, const CString& sChannel, bool bHilite) { bool bRet = true; vector<CClient*>& vpClients = m_pUser->GetClients(); if (m_pUser->IsUserAttached()) { return false; } // Cycle through all of the cached devices for (map<CString, CDevice*>::iterator it = m_mspDevices.begin(); it != m_mspDevices.end(); it++) { CDevice* pDevice = it->second;
After making those mods, simply build the module, load it, and you will no longer receive push notifications when a client is attached to your ZNC bouncer! If you do not wish to modify the file yourself, it can also be downloaded from here: www.jonnyfunfun.com/pub/code/colloquy.cpp
Lots of changes in the pipe, LANRails on github!
Aug 3rd
WOw, so it has been quite a long time since I’ve done anything here – I guess I should probably get off my butt and do something. Well, I am, in fact. Coming up soon there will be a new theme, as well as all of the subdomains using the same WordPress install – you know what that means: unified logins! Yay! So keep your eyes peeled for a new look for the site, as well as a special look for all of those of you who like to follow the cult favorite RicePaddy.org. I will be resurrecting the old RicePaddy theme, though the content will still be the same!
In other news, for LAN party management website software solutions, there’s another player in town – LANRails, your Ruby On Rails solution for managing a LAN party! Visit my LANRails project on github.com if you are interested in it.
And also in other news – there’s a new beer in the primary as of yesterday – a Chocolate Coffee Stout! Keep your eyes peeled on the site for recipes!
FilePirate Alpha Test at GPA’s Gameday
Jun 17th
For those of you who have been following the development of FilePirate – Advanced LAN File Sharing, you will be happy to know that we will be engaging in an alpha test of the application at GPA’s Saturday Gameday this month. The LAN is on Saturday, June 27th at noon, located at the GPA clubhouse in Silver Creek. Those who wish to attend their event should sign-up on their webpage at www.gameplayersanonymous.com‘. If you are going to be attending and wish to help assist in the testing of FilePirate, please let me know ahead of time so that I may get an accurate count and some expectations on testing.
FilePirate and the rebirth of RicePaddy.org!
May 28th
For those of you who have been following the development of FilePirate – Really Advanced LAN File Sharing, you will be happy to know that I will be rolling out an Alpha soon and will be unveiling it at a GPA LAN party sometime next month (exact date TBD). For the time being, FilePirate now has its own website available at filepirate.jonnyfunfun.com.
Also, back by popular demand is the domain ricepaddy.org. For the time being, however, it simply just points you back here to this blog. As I start finishing other projects up, it will be migrated to its own website. What will be on it? No clue. I’m open for suggestions.
WordPress Plugin: WP-SMF Bridge
Mar 23rd
So I finally got off my lazy butt and at least released one of my projects – my very own WordPress and Simple Machine Forum user registration and login bridge. I just committed the first round of code to the WordPress plugins SVN repository, tagged the first release, and it should show up in the WordPress plugins list any minute now. For those of you who use the plugin, want to contribute, need help, or want to let me know of some bugs – feel free to visit the website, which is conveniently a Redmine project page, here. Don’t go peeking around this WordPress blog trying to find it in action, though, because it isn’t here. It’s actually going to be used for a different WordPress website I’m putting up to manage LAN parties I plan on having in my new houses’ garage – provided we ever close on it, but that’s a different story.
We’re Now Live with Gentoo!
Feb 8th
Okay, so I broke down, and got myself that dedicated server. Good news is that I got a coupon code and got it for cheaper than I had thought! So now, we’re running live on a Gentoo Linux-powered dedicated server in some datacenter in Florida. Please note that the Subversion repositories are down, as is the Redmine project management. The Brew Place, and many things Vault Head Games, are also down for the time being. I would have probably gotten the repositories back online tonight before I threw in the towel, but ColdFusion was not being very nice to me and I had some problems in getting isolated instances of ColdFusion running with each Apache virtual host. Needless to say, the Adobe documentation when it comes to Linux is extremely poor. However, after I’m all done with this beast, we will have our own IRC server and a web server that will understand practically every modern, dynamic web language (including (but not limited to) PHP, ASP.NET, ColdFusion, Python, and Ruby). I’m strapped with time, however, but regardless, I’m working very quickly to get everything back up and running, so check back here often for updates!

















































