Articles Tagged git
My new project: Cube IRC
Posted on January 18th, 2012 17:23:18
by landon
Comments
What is it?
Cube IRC is a 3d IRC client that I've been working on for the last two weeks off and on. What I want to do is be able to connect to a chat room and visualize what's going on. Who are the frequent talkers? Who is lurking? Who are the talkative groups? Right now the client isn't at the stage where I can answer those questions, but it does connect to a room and create an avatar for everyone joining the room and talking in it.
The architecture
(so far)
Working with threads
There are two major elements so far, the graphics thread and the IRC thread. Threading is implemented using boost::thread, which ended up being very simple. The program starts off initializing the graphical client and setting the parameters of the IRC client, which is then started. Communication between the two threads is handled with a message queue that passes every IRC event to the graphics thread. The upside of this method is that it is very simple, but the downside is that the graphics thread has to do all the processing, the IRC thread only keeps state as much as it needs to to stay connected to the server.
IRC
The IRC client is implemented with libircclient in a custom C++ wrapper. There's not much more to it other than a configuration file read in using Ogre::ConfigFile. Currently there is support for joining a single server and multiple channels, although the graphics side does not really differentiate between channels. That's one more hurdle to jump, how I am going to deal with a user that is in more than one channel.
Graphics
I'm using Ogre3D for the graphics side of the client. Every time someone on IRC joins or talks to the channel, an avatar is created and if necessary a chat overlay will pop up over their head. When they quit the server or part a channel, the corresponding model is deleted. Right now this side doesn't have much depth, because most of my time spent so far was getting the basics to work, such as thread communications and popping up an overlay to represent a line from IRC.
Future Plans
I would like to use some of the animations available in the current model and attach those to specific phrases, such as starting the dancing animation when someone mentions dancing in the channel. I also want to have some sort of AI in the avatars that moves them closer to avatars they're addressing, but still maintaining a distance and not colliding with others. Also, ideally, when someone joins the channel, the avatar should enter from a "doorway" and walk over to their default position.
The Goods
Screenshots of current progress
Sooner or later I'll open up the git repo as well.
Friday Open Source Summary (get it?)
Posted on May 29th, 2009 21:39:18
by landon
Comments
Now that the week of May 23 is over, it's time for a brief status update on my Summer of Code project. What I had planned to do this week was:
May 24 - Start of coding, get up to speed with using python-ogre
Overall, I feel this was accomplished. I spent the week browsing through jmtan's 3D client code, banging my head against quaternions, and finding (and reading!) some good Ogre3d documentation (such as the manual and API, both of which would be nice to have bound ... somehow.)
Also this week I had some adventures trying to get python-ogre set up on my netbook. It seems that I might end up having to recompile python-ogre (nightmares!) on my netbook if I want to test the battleviewer on it.
Next week?
May 31 - Work on constructing a battle scene
That was the plan, but it seems when I made my timeline I didn't take into account how much work on the battleviewer was already done by jmtan (test_battle.py is quite the innocuous filename!) I may end up moving a few weeks ahead to:
June 14 - Work on getting battle events from BattleXML implemented and create simple 3D models for missiles/similar
The bottom line: I did research on the tools and code I would be using and am ready to go as soon as I move back to Manhattan on the first of June.
SVN to Git
Posted on April 29th, 2009 15:10:41
by landon
Comments
After coming to love the idea of git and related version control systems, I finally decided to move all of my repos over to it. After quite the ordeal of getting gitosis+gitweb+git-daemon set up on Ubuntu, I'm finally ready to move my main personal repositories from SVN to git. Pretty straightforward, but I thought it would be best if I document it here as well:
The process:
-
Assuming you have git and git-svn installed, go ahead and clone your SVN repository
git svn clone svn+ssh://lfowles.org/home/landon/src/school -
Now, you need to clone what you just got from your SVN repo to a new git repo
git clone --bare school school.git -
That's it!
Now you have a git repository that you can stick in your gitosis repositories directory or wherever you store these things.
Considering a switch to HG
Posted on March 24th, 2009 00:40:21
by landon
Comments
Over time I've become more and more disenchanted with SVN (especially when I found out that DVCS like git have commits seperated from pushes... revolutionary!) Soon enough I'll probably be switching my own repositories from SVN to Mercurial. Only a few things holding me back though:
- SVN is everywhere! If the computers at school have any VCS type things installed, it's usually TortoiseSVN.
- Well, actually, there's only one thing holding me back
