Home
gary_kramlich [entries|archive|friends|userinfo]
gary_kramlich

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

gtkdoc for trac, FINALLY! [Nov. 28th, 2009|09:52 am]
This has been on my todo list forever, and I started tinkering with it the other day. But after a mega hackathon tonight, I have a pretty functional gtkdoc plugin from trac.

The idea of the plugin is to integrate gtkdoc books into trac's interface. This is accomplished, currently, by and iframe displaying the actual htlm output of gtkdoc, as well as integrating into the search engine in trac.

There's two new user permissions in this plugin, GTKDOC_VIEW and GTKDOC_ADMIN. GTKDOC_VIEW is obviously to view the api and well as search it, where admin allows the addition and removal of books.

As mentioned above the admin interface provides an interface for adding and removing books. Books are keyed on a name given to them at the time they're added, as well as an absolute path on the local filesystem of where the book actually is. This way, you can update the documentation and not have to touch a thing in trac.

At any rate, it's still pretty rough around the edges and lacking a ton of error checking. But feel free to grab it from our extras repo (hg clone http://hg.guifications.org/extras) and tinker with it. It's in trac/gtkdoc, use the normal "python setup.py bdist_egg" to build it.
link1 comment|post comment

green eggs and spam [Oct. 9th, 2008|05:13 pm]
so it looks like this blog got spammed to hell today. Not certain since some of the posts actually look real, but whatever... If I've killed your comment as spam incorrectly, my bad...

Anyways, pidgin.im will be back up and functioning correctly SOON, I don't know exactly when myself ;)
linkpost comment

gplate 0.0.2 has been released [Sep. 20th, 2008|04:54 pm]
GPlate is a template engine written in C using glib and the GObject system.

It was started due to the inability to find a template engine that was GPL
compatible and callable from C. Since these requirements couldn't be met, I
(Gary Kramlich), decided to write my own that was easier to use in applications
that are already using glib.

The idea behind gplate is to be extendable by the applications using it so that
it can fit whatever you needs may arise.

Changes in version 0.0.2
* Fixed the bug where a default tag that didn't start with a word rendered
an empty string
* Added a working directory property to GPlateTemplate that is currently
only used for GPlateIncludeFunction. This allows includes to work
correctly without needing to hard code the path in the including template.
* Changed the GPlateIterator->next to return a GPlateVariable rather than
a char *.
* Added GPlateFileVariable that exports the results of stat(filename) as a
GPlateCollection.
* Added GPlateDirectoryVariable that is a collection of GPlateFileVariables.

Downloads can be found at http://misc.guifications.org/trac/downloads/
link

Dear Anonymous [Aug. 21st, 2008|01:46 pm]
So I imported my development blog into planet.pidgin.im. Something I've been meaning to do for awhile, but just kept forgetting to do. This blog has been syndicated on planet-im.com for years now, way back when Christian first started it.

Anyways, planet decided it was going to import three of my posts. No big deal right...

Tell that to the "spam victims", one of the posts, sure wasn't really development related, I can somewhat understand that. The other was me annoucing the release of a new project, *I*, a *pidgin developer*, had written. Both of which we're met by "stop spamming planet pidgin". Which I found completely ironic since these posts and more have, as I mentioned earlier, been syndicated on planet-im.com for quite awhile now.

Still, I find it exceedling hilarous what people consider "spam" these days. Apparently a developer's blog, where he blogs about things he's developing and sometimes non-development things to try and get and see responses from a wider audience, isn't filtered down enough. The whole thing reminds me a lot about the on going complaints of pidgin launchpad on our support mailing list as being spam amoung others.

The point I'm trying to get at here, is that when you sign up for a mailing list or read an aggrated feed, that unless you're an admin, you can *NOT* control what gets posted. Ironically, when you complain verbally about supposed spam, all you do is create more "spam".

This spam, that the verbal crowd then creates, of course fills things like our support mailing list with junk that really isn't support related, and thus offtopic making it harder for those looking for a solution in the archives, and last but not least makes us, the developers/admin look insensitive, when if the verbal people just ignored the "spam" in the first place we'd all be better off.
link

mtn usage... [Aug. 21st, 2008|07:48 am]
It's been brought up by certain people, that they "know" how pidgin developers use monotone, and that monotone is an inferrior tool. Thus I decided to take the time to document how *I* use monotone. Keep in mind, I use monotone for everything nowadays. The only time I use a different (D)VCS is when I'm working on a project that I didn't start.

At any rate, I'd be extremely curious to see the usage/flow of the same actions (working on an existing branch, branching a branch, starting a new project/branch, working on a new (to you) project/branch, merging branches, and serving a new project/branch) in other (D)VCS's as well.

Below is the fruit for said labor (click it for the full sized version, it's about 400KB though...). The digrams were created with dot from the graphviz package. The source of the diagrams can be found over here.

the graph

the key
link19 comments|post comment

wiispiracy [Aug. 11th, 2008|08:36 pm]
This is a long drawn out post about my experience with trying to get things you really want for the WII. If the WII or the lack of ability of the WII and it's games don't interest you, I suggest you skip this post :) I'm posting this mostly as just a record of the absurtity that Nintendo lack of supply presents to the general consumer.

So back in Feburary, I won a WII on ebay. Paid a bit more for it (about 350 USD after shipping), mainly because I was tired of calling around and looking for one.

Now fast forward two months and Mario Kart WII is released. I've always been a big Mario Kart fan, since the SNES, and I've owned every version, including Double Dash which I just happened to finally buy. So anyways, I see it in stores, and go "meh, I'll grab it later".

Fast forward four more months and I can't find Mario Kart WII anywhere. Calling stores like made, watching ebay, watching craigs list, etc.

Sunday night, I place a bid on a new copy on ebay. At the same time, I search through craigs list and find a used copy. I end up winning the copy on ebay (for way more than it's worth, especially since it had a tricky title and descripion). I tell the guy on craigs list I'm going with the one on ebay since I have to. Also the one on craigs list is used.

I then decide I should go and pick up some of the necessities, two more wiimotes and four wii wheels. I end up hitting target since bestbuy is already closed. Target doesn't have any of the official wii wheels, but they do have the wiimotes. Score. I return home with half the job done and decide to persue the rest on monday on my way home from work.

So here's where the real fun begins...

grim's quest for four wii wheels

So I leave from work (A) at about 4:00PM.

I head to the nearest bestbuy (B). What do you know, they have Mario Kart WII. I say screw it, I've been trying like hell to find this, I found it, I'm getting it. The one I have coming from ebay with either go back up on ebay or be a present to my niece. Unfortunately, this bestbuy doesn't have any official wii wheels.

Current progress: 1 copy of Mario Kart WII, 4 wiimotes, 1 WII Wheel.

Theres a Game Stop close (C), so I head there. Guess what, no official WII Wheels. An employee (who is/was by far the most helpful Game Stop employee I've ever dealt with), offers to call a nearby EB Games and see if they have any. They have one, they're going to hold it. Awesome.

Current progress: 1 copy of Mario Kart WII, 4 wiimotes, 1 WII Wheel.

So I head to EB Games (D). Pick up the WII Wheel. Score.

Current progress: 1 copy of Mario Kart WII, 4 wiimotes, 2 WII Wheels.

Since I'm right by a mall which has another Game Stop (E), I decide to head there. They as well, have one WII Wheel. Grab it.

Current progress: 1 copy of Mario Kart WII, 4 wiimotes, 3 WII Wheels.

I decide that I can't go home when all I need is one more WII Wheel, so I head to the next closest Best Buy (F). What do you know, they're useless and don't have any.

Current progress: 1 copy of Mario Kart WII, 4 wiimotes, 3 WII Wheels.

Since I'm right by another mall which has another Game Stop (G), I decided to head there. Get inside, find the WII accessories, shit they have three on the damn shelf. It's a locking hook, so I ask the guy at the counter for one, and he sends another guy to get one out of the back. So I get my fourth WII Wheel and head home.

Current progress: 1 copy of Mario Kart WII, 4 wiimotes, 4 WII Wheels.

I finally get home around 6:00PM. Tear everything open and finally get to enjoy the damn game.

So what have we learned here? For some reason, Nintendo seems to have a *VERY* difficult time meeting demand. For the consoles I can understand, something can go wrong in production of a chip, pcb, etc. But a game disc?! Come on, it's freaking pressed, they should be chruning the games out. I mean the wheel could take some time to produce, but think about it, it's plastic that is created from a mold...

Anyways, long story short, back order WII stuff online and be patient, or waste time (about 2 hours), gas (about a gallon or so, gotta love good gas milleage), and extra money (I still have a over paid copy coming from ebay) by being impatient.
link28 comments|post comment

GPlate 0.0.1 is^H^Hwas released! [Mar. 10th, 2008|12:51 am]
So on March 1st, I released the first version of GPlate.

GPlate is a template engine written in C, using GObjects. You can find out more info on the above link!

Of course, there hasn't been any activity since due to the lack of me making a public announcement until now ;)

Anyways, if you have a use, feel free to let me know, the code is far from completely, but does have some pretty good basic functionality right now.
link1 comment|post comment

check; check minus; check plus; [Feb. 11th, 2008|08:56 pm]
I've been using check for unit testing in just about everything lately, and I've been spending a lot of time working on a little side project named GPlate (more on this at a later date).

During the development of GPlate I've change the API quite a few times and broken it horribly in the process. Fortunately, check has been there to help me find the issues. Unfortunately, the output from check tends to be a very cluttered terminal.

To combat the clutter, I threw together a style sheet to transform the xml output of check to something a bit more eye pleasing.

The style sheet is released under the GPL and the icons are stock GTK+ icons which are also GPL. Anyways, a bz2 ball of the stylesheet and the images can be found here.

The style sheet accepts a few parameters. Namely project, arch, and version. Which are the project name, the architecture that it was tested on, and the version of the project.

I've been transforming with the following:

xsltproc --nonet --stringparam project GPlate --stringparam arch `uname -m` --stringparam version 0.0.1mtn -o results.html check.xsl gplate-tests.xml

You can of course dump this in a Makefile rule too, and let it fill everthing in :)

Feel free to hit me up with any questions or comments.
link2 comments|post comment

quick monotone hack [Oct. 8th, 2007|11:53 pm]
I've been plagued by having multiple keys in monotone and doing a merge without specifying one. Well those days are over, drop this in ~/.monotone/monotonerc and edit accordingly:

function get_branch_key (branch)
d = { ["im.pidgin"]="grim@pidgin.im",
["org.guifications"]="grim@guifications.org",
["com.reaperworld"]="grim@reaperworld.com"
}

for k, v in pairs(d) do
if (k == branch) then
return v
end
end
end

I'll probably extend this at some point to check my keystore, and do the maintenance for me, but this works for now ;)
link1 comment|post comment

awesomes maximus [Sep. 4th, 2007|07:05 pm]
If a picture is worth a thousand words, does that mean that a movie is 1000 * FrameRate * Duration?

While you're pondering that, take a gander at this.

It doesn't look like much, but theres a lot going on in the backend. I start by running guifications-daemon. Then I go on to launch guifications-gtk and open up the feeds window. Finally I start pidgin with a profile directory that loads purple-guifications by default.

What you see, is that the feed is automagically added to the gf-gtk feeds window. Now most of you will go, big deal, you're just using a D-Bus signal. And to that end, you're partially right.

In guifications3 communication is abstracted and everything must interact at a gobject level. What does this mean? The server and cients can't touch dbus directly.

So what you are really seeing is purple-guifications talking to gfd via a remote object (which just happens to be connected through D-Bus). The object in the gfd then emits a glib signal saying that a feed was added. Then there is a proxy object inside of gflib-dbus that is connected to the feed-added signal, and transmits it over D-Bus as a D-Bus signal. Then theres a proxy on the client side that listens for the D-Bus signal, and re-emits it as a glib signal.

Needless to say, this movie is worth a lot more than 1000 words, since it is, in fact, a major breakthrough for one of the outstanding issues I've been having with guifications3.
linkpost comment

blarg [Aug. 12th, 2007|03:37 am]
My computer geek score is greater than 100% of all people in theworld! How do you compare? Click here to find out!
linkpost comment

Hey hey hey! [Apr. 22nd, 2007|06:22 pm]
Busy busy busy, what else is new right? Well a few weeks ago we finally went public with the Gaim->Pidgin stuff. It's so relaxing to be finally rid of that AOL garbage.

Because of the name change, we did most of our updates to Guifications2.x and the plugin pack in private in our new monotone setup. So there wasn't a whole lot to do after the announcement. Although I'm still cleaning up parts of the build system for the plugin pack. One of those cleanups are basic stats about the build of the plugin pack. Namely, how many plugins there are, how many are incomplete, how many build by default, and how many for each ui.

For Guifications2, I'm still looking for someone to make us a new default theme. Although I've been considering having people vote on the theme pack, whenever we get back to it, for one to become the new default.

On the Guifications3 front, I've slowly been making progress like always. Last weekend I gave John Bailey ([info]rekkanoryo10000) a basic online tutorial about the GType system and how it's used in GF3.

On the Pidgin front, I'm mentoring for SoC again. My student this year is Eoin Coffey who is working on the mono loader. Anyone who knows the history of the mono loader knows how ironic this all is. Eoin applied for the mono loader in SoC 2005. Unfortunately another application was chosen instead. By the end of SoC 2005, the student that was chosen didn't have any work done, and Eoin offered up his preliminary work on the loader to be included into Gaim at the time. I jumped into get it into cvs (at the time), and we've both slowly been working on it. But now, this year, he gets to finish what he started two years ago, awesome! Right now most of the developements on the mono loader can be tracked on the Pidgin Developers wiki at http://developer.pidgin.im/wiki/MonoLoader.

I also recently picked up a Tux Droid. I'm some what disappointed with the current way of communicating with the droid, and have started rewriting the daemon as a D-Bus app. Unfortunately, I need to talk to the wireless dongle through raw USB, which means I get to learn libusb. Needless to say this is going to be an interesting project.

I think that about brings everyone up to speed on the state of things since my last post.
linkpost comment

well... [Jul. 28th, 2006|06:14 pm]
I picked up brain age for nintendo ds on tuesday. When i got it, without any of the "daily training" i scored a brain age of 80. The best brain age you can have is 20. So I followed the training and did a bit more than was required because a score of 80 is just not acceptable to me. So I took the test again on wednesday and scored a 60. Still not great, but that's a hell of a improvement. Last night I was bored so I was just doing the calculation training trying to get faster and faster. Today, I take the test, and scored a 34, thats right 26 "years" in a day. Obviously my brain was out of shape, and who knows, maybe I'll be at 20 by the end of the weekend :)
linkpost comment

whoa... [Jul. 25th, 2006|10:13 pm]
livejournal over jabber... This is actually pretty cool... for anyone that hasn't see the message at login, check this out http://community.livejournal.com/lj_dev/716451.html
linkpost comment

Not quite dead... [Apr. 17th, 2006|02:09 am]
[music |Nirvana - Aneurysm [Mark Goodier Session]]

I've been completely swamped with school lately, so guifications3 dev time has been severely lacking. But tonight I threw together a trac plugin to pull in data from planet. It needs a bit of polishing yet but it works. Also cleaned up a bunch of other stuff on the site. Anyways, more time for development when I graduate in June. :)
linkpost comment

Woohoo [Feb. 7th, 2006|12:21 am]
Well I finally got images working correctly over D-Bus as byte arrays. Quite a bit of it was brain farts on my part. But here have a look at the fruits of my labor



With this working, I should HOPEFULLY have this thing working by the end of the month. But again, thats another date I'm setting and I missed the last one too. But atleast I'm making progress.
linkpost comment

Well I finally did it... [Feb. 2nd, 2006|02:52 am]
I had been planning for a very long time to open a cafepress store for guifications when I had finally settled on a logo. Well today I finally settled on that logo. You can find the store at www.cafepress.com/Guifications.
linkpost comment

Guifications 3 Updates... [Jan. 9th, 2006|04:30 am]
[music |Tool - Schism]

A little over a week ago I decided that doxygen wasn't going to work for the documentation for guifications3. So after this past week's worth of work, I have everything except gflib-xmlrpc moved over to gtk-doc. I'm not too worried about gflib-xmlrpc since it doesn't do much of anything right now, and I don't even think it builds anymore.

Tonight I moved gflib-module to gtk-doc, and I'm really starting to question my judgement in moving it to a separate library in it's own source tree. Right now I think I'm going to move it into gflib's tree and have it built it's own library there depending on a configure argument. I can still keep all library specific stuff, .pc file, docs, etc, so it shouldn't be much of a problem. Plus it just seems better since it's basic functionality, and should have a more direct tie into gflib.

Aside from the documentation front, I'm getting *REALLY* close to finally getting GfFeed's implemented in D-Bus. I'm aiming to have all of the GfFeed API implemented on D-Bus by this weekend, minus the actual event emitting. Although, this will require finishing implementation of the GfFeedPool API on D-Bus, but that shouldn't take too long.

I'm still optimistic about being usable by the end of this month, but only time will tell.
linkpost comment

Long time no post... [Nov. 27th, 2005|06:53 am]
[music |Against Me! - The Politics of Starving]

Well I start quarter 7 of 8 on my way to my associates degree today. I actually don't have class on campus until Tuesday. This quarter I have Calculus and Capstone on campus, and Group Dynamics online. I'm actually quite stoked about having Calculus. I haven't had a high level math class in over 5 years, so I'm looking forward to geeking out there. The Capstone class is actually two quarters long. Basically the entire class, which right now is either 4 or 5 people, work on a big project, usually real world. This is going to be an interesting class, and unfortunately guess who is going to end up writing the majority of it... Anyways, Group Dynamics is going to suck major ass. In every online class I've had, whenever they assign groups, everyone in my group never shows up. So yeah this is going to be interesting. All in all with my classes coming to an end and becoming harder don't expect to see a whole lot of code coming from me any time soon :).
link2 comments|post comment

Planet Guifications [Oct. 13th, 2005|02:10 am]
Well John ([info]rekkanoryo10000) noticed last night that his name wasn't showing up and neither was his feed. It turns out that the planet software junks an entire feed if it has really old entries. He had entries dating back to 2003, so I just commented out the code in planetlib.py. I'm still kind of freaked out that """ in python is the same as /* in C. That just seems excessive. Speaking of retarded comments, why is it that these uber high level languages use ' and " as comment characters? Can anyone explain this to me? I mean is it really that difficult to hit // (no modifiers) than ' or " (which has a modifier...)</rant>
link4 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]

Advertisement