Older blog entries for wingo (starting at number 12)

code

I'm becoming a better programmer! This is neat stuff. It's hard to relate, but during some gui programming on the editor I realized I was making cleaner, more modular code. The organization of the code I was producing was allowing me to do things I hadn't thought about. I mean, I've been coding since I've had computers around, but getting better at something is tough. Sorry if this sounds self-promoting, it really isn't intended that way. I have a long ways to go yet ;-)

This makes me think a bit about progressing in anything, how

  • you have to practice hard to get better
  • sometimes 'progress' stagnates or plateaus, then occasionally one seems to make a step change between levels

I was reading a book review yesterday that quoted Roland Barthes as saying that a writer doesn't have anything to say, only a particular way of speaking. It certainly is true to some degree, the extent to which form determines content or function -- hmm, I'll try to restrain myself from going on a rant about wordplays and postmodern writers.

gst-editor

Almost ready for a release. I don't know of any crashers, only a couple bugs, and I'd like to add a convenience palette to change debug options and quickly select elements to add to the pipeline. Other than that, automake tells me it's ready for distribution... 5/arpost=Post

site

Is there a way to ignore people on the recentlog with a rating of 1?

adding help to an application

I'm starting down the (potentially ugly) road to adding help to the gstreamer pipeline editor. There are a number of features that would be desirable:

  • The ability to link to other installed documents on the system (the application developer's manual comes to mind, as does the plugin documentation once it gets written). These documents are available as HTML, produced from docbook-xml, and could be given devhelp indices.
  • Readability. The Gnome 1 docs look horribly ugly, to me.
  • A nice interface to C programs

I started by trying to access the help to the panel on my gnome2 sid box. It popped up an error saying that "gnome-help" could not be executed. A bad sign for the most visible gnome app, eh ;) -- the version of gnome-help in sid is for gnome 1. I asked on #docs on gimpnet and was pointed to yelp, which somehow wasn't picked up by any gnome dependency. Wow. Yelp is rad. It's very pretty, and it directly views docbook-xml. And the C api is really easy to use, especially with the gnome-app-helper stuff. I'm pleased this isn't as hard as it could have been.

word up!

peace corps

I'm going to Africa, yo. To teach math. In October. Assuming the medical check doesn't come up with anything, and I'm pretty fit so I should be OK. No, I don't know where. And it's not certain until the end of August; I've been " nominated" but not yet invited. Craziness! I'm pretty excited about the whole thing.

There are actually IT-type jobs in the peace corps, but the ones available weren't for another 9 months or so. I want to go soon, yo.

raleigh

Someone was talking about raleigh. It's not all that bad. spot, was that you? Didn't you go to my high school? Long time no see. Anyway, I like cupajoe (hillsborough street only -- the other ones suck imo), the jackpot, mitch's, the pr, and i just found a pool hall that's pretty nice, snooker's up near wellspring. about 4 bucks/person/hr, nice tables and sticks.

hacking

Feeling unmotivated. Added a lame-o sorting algorithm to gst-editor; it doesn't know about bin boundaries yet. Still, it's kindof neat to see the boxes bounce around on the screen. I used a potential energy model, where the boxes slide down potential gradients. Also, the connections have an optimal distance and obey hooke's law. No momentum though, wouldn't make sense I don't think. See the example java applet for what I'm trying to do. There are a few differences, but the essentials are the same.

Yay, advogato back. Reload... reload... wait for it... Which reminds me, thanks for the site, raph, I know I'm not the only one to fiend for some rant-space :-)

boston

was fun. Got to meet thomasvs finally, what a fine fellow. Also, meeting the gnome hackers was nice. That was fun, now there's work to do. I'm working on improving LADSPA in GStreamer by adding support for LADSPA 1.1 and improving the int/float and (de)interleaving code. Kindof tedious getting capabilities negotiation to work out with nonlinear pipelines, but necessary.

job

I got one -- I saw on /. some comment that 'most open-source coders probably aren't left-wing radicals working nights waiting tables who code during the day..' and thought, hey that's me. Sushi Breeze, downtown Raleigh, we open on Monday. Dinner only.

habes: That's fabulous! Nice work. No screenshot, but it's still quite nice. The article said "Mac OS X/Linux", which was amusing to me :-)

bwoston

Going to boston, yo. Pretty stoked about that, as I don't think I've actually met any other hackers yet. It will be much fun, and I think a lot of the gnome people don't have a good grasp on multimedia stuff. It will be nice to sort things out, even if I'm not all that interested about the place of media within a 'desktop framework'. Also, who knows -- Ximian might need someone on the inside of GStreamer (scheme, scheme, scheme :-)

hacking

Been doing too much talking lately, not enough hacking. thomasvs was mentioning work on the graphical pipeline editor, that's pretty rewarding hacking. Otherwise, not much... I need to get my Jack mixer working properly...

a fabulous weekend.

A beautiful quaker wedding in the smoky mountains of north carolina, seeing many old friends I hadn't talked to for too long... then visits to some friends in asheville, and romping about on a farm to the south, barefoot hiking, swimming, and fine appalachian hospitality. Oh, and I met the girl of my dreams -- I have to seduce her now ;)

Bryce: you should have gone to the festival for the eno :-)

a break.

I wasn't hacking this weekend. It was quite nice. Just relaxing a bit, one has to wait sometimes for the hack urge to hit. There are some Jack patches I've been slack about integrating, I need to get to that, but. In praise of the break, wingo out.

coding

I've been working some more on beatbox, an app that's designed to be somewhat like part of gdam but make extensive use of jack and gstreamer, two of my favorite pieces of software these days. The web page is a little out of date, and the software itself is in transition to a somewhat different model of "tracks" and "effects". I'll update it soon. I'm just pleased that I'm hacking on apps again and not working on libs as much.

irc

So the folks from lad set up an IRC channel (#lad/opn). It's pretty neat to be able to chat with a lot of those kids...

... but. So much blather. People pontificating about their projects. Folks popping in wanting to be hand-held (more of a problem in #gstreamer/#g*). If you reply to a newbie, being nice, sometimes they flood the channel, kindof like a fire extinguisher but digital. I guess I'll deal. I don't want it to become impersonal, and I hate being really aloof... balances, balances...

job.

Still looking for a job. I even went to a temp agency today. You can't even find manual labor jobs easily. It's degrading.

gstreamer

I fixed the cothreads problem. A few months ago I had come up with this elaborate hack that would fool LinuxThreads into thinking it was in a particular thread when in reality the stack had been allocated on the heap. It was a neat hack, but it was a hack, and changes in libc for i686 broke it.

There are two basic problems in portable user-space threading, how to switch between 'machine contexts' (the state of the registers), and how to allocate stacks. The first part was solved by Ralf Engelschall in GNU Pth. For the curious, there's a whitepaper that documents this beautiful hack. Allocation of stacks is only tricky when you're working within pthreads, which happens often in GStreamer. You can't allocate them on the heap, because many pthreads implementations find which thread you're in based on the stack pointer.

Anyway, I removed the hack that allowed allocation of more stack space under linuxthreads in favor of the posix solutions, setrlimit(2) for the main thread and pthread_attr_setstacksize for the other threads. Unfortunately, this does not work for i386 glibc (it does for i686). Ah well...

party!

Party at my house on Friday (tomorrow)! Seriously, I live in Raleigh, NC, USA, as I know a number of you all do too. If you got nothing to do, come on by -- I think I'm going to get a keg of Greenshield's for this one... Send me an email (wingo at pobox dot com) for info.

gstreamer

Well, thomasvs, for better or for worse, switched the default scheduler in GStreamer over to the one that uses my new cothreads package. For the record, cothreads are a sort of low-level user-space thread that require manual scheduling, and are how exceptions and tail-recursion work. Sorta.

Anyway, it's been causing problems; for some reason it doesn't run on a lot of redhat boxen. An odd problem that I'm looking into, I haven't had it fail on my box in a long time. I suppose it's for the better, giving it the trial by fire. Who knows ;)

gst-editor

It actually runs pipelines now, and can do many neat things. Still some bugs to work out, though...

15 Jun 2002 (updated 15 Jun 2002 at 19:14 UTC) »

gst-editor

Lately I've been working on GStreamer's graphical pipeline editor. It was bitrotten for over a year, and I'm bringing it up to speed with Gnome 2 and current GStreamer. It's a classical boxes-and-wires editor with a canvas, similar to pd, glame, amsynth, alsa modular synth, spiral synth modular, etc -- but with a few differences. First, the underlying pipeline technology is already in place, it's just a question of UI hacking. Second, it can handle many media types, as many as GStreamer can. Also, it's a Gnome app, that I hope can be made very usable and intuitive.

Anyway, I've been working on it recently. It still can't connect elements, but here's a current screenshot -- the property view/control is fully MT-safe and MVC-designed which is nice. I'm saying all this because this is a great project, with lots of possibilities, and I could use some help. I can get it done on my own, but it's an easy project to get started with, with lots of positive feedback.

Just to mention a few of the possible applications of the editor:

  • Graphically construct pipelines for testing before coding them in C
  • Save pipelies to XML and load them up in applications, à la libglade
  • Add a command line option to GStreamer that would dlopen the editor libraries, if possible, and display a canvas that could view and control the pipelines of *any* GStreamer app, in real-time (an idea of thomasvs)

Those are just some of the more exciting possibilities. So if you're looking for a project to hack a bit on, any help would certainly be appreciated.

3 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!