IRC log of musicbrainz on 2004-08-01

Timestamps are in UTC.

00:06:14 [Knio]
Knio has quit
00:06:22 [Knio]
Knio has joined #musicbrainz
00:08:02 [MacIntire]
MacIntire has joined #musicbrainz
00:35:34 [enyawix]
enyawix has joined #musicbrainz
00:43:28 [Knio]
Knio is now known as Knio-dinner
00:44:01 [enyawix]
enyawix has left #musicbrainz
00:53:40 [MacIntire]
MacIntire has quit
01:10:04 [Knio-dinner]
Knio-dinner is now known as Knio
01:27:43 [MacIntire]
MacIntire has joined #musicbrainz
02:10:11 [MacIntire]
MacIntire has quit
02:10:34 [MacIntire]
MacIntire has joined #musicbrainz
02:45:01 [MacIntire]
MacIntire has quit
03:02:39 [real]
real has quit
03:06:20 [tma]
tma has joined #musicbrainz
03:07:49 [real_]
real_ has joined #musicbrainz
03:40:29 [MacIntire]
MacIntire has joined #musicbrainz
04:11:23 [MacIntire]
MacIntire has quit
04:12:09 [MacIntire]
MacIntire has joined #musicbrainz
05:30:20 [MacIntire]
MacIntire has quit
05:30:39 [MacIntire]
MacIntire has joined #musicbrainz
05:43:29 [lgonze]
lgonze has quit
05:44:36 [orogor]
orogor has joined #musicbrainz
06:07:05 [Knio_]
Knio_ has joined #musicbrainz
06:07:06 [Knio]
Knio has quit
06:11:24 [MacIntire]
MacIntire has quit
06:11:49 [MacIntire]
MacIntire has joined #musicbrainz
06:19:23 [orogor]
orogor has quit
06:26:18 [tma]
tma has quit
06:32:29 [tma]
tma has joined #musicbrainz
07:11:56 [Knio_]
Knio_ has quit
07:22:00 [MacIntire]
MacIntire has quit
07:49:07 [Knio2]
Knio2 has joined #musicbrainz
08:06:45 [Knio]
Knio has joined #musicbrainz
08:08:56 [Knio2]
Knio2 has quit
08:38:32 [Knio]
Knio has quit
08:40:02 [Knio]
Knio has joined #musicbrainz
09:00:18 [Knio]
Knio is now known as Knio-sleep
09:06:09 [djce]
djce has joined #musicbrainz
09:06:43 [djce]
Hey tma. How's it going?
10:43:58 [MacIntire]
MacIntire has joined #musicbrainz
10:50:36 [Knio]
Knio has joined #musicbrainz
10:53:32 [Knio-sleep]
Knio-sleep has quit
11:08:14 [tma]
hi dave
11:26:25 [MacIntire]
MacIntire has quit
11:26:35 [MacIntire]
MacIntire has joined #musicbrainz
12:10:44 [MacIntire]
MacIntire has quit
12:10:57 [MacIntire]
MacIntire has joined #musicbrainz
12:28:05 [lgonze]
lgonze has joined #musicbrainz
12:39:32 [MacIntire]
MacIntire has quit
12:39:48 [MacIntire]
MacIntire has joined #musicbrainz
13:00:11 [tma]
tma has quit
13:18:22 [MacIntire]
MacIntire has quit
13:19:27 [MacIntire]
MacIntire has joined #musicbrainz
13:39:42 [wheels]
wheels has quit
13:45:43 [wheels]
wheels has joined #musicbrainz
14:21:08 [MacIntire]
MacIntire has quit
14:29:16 [somniloquy]
somniloquy has quit
15:03:57 [Knio]
Knio has quit
15:23:14 [Knio]
Knio has joined #musicbrainz
15:29:30 [cool]
cool has joined #musicbrainz
15:29:41 [cool]
hi guys
15:34:33 [cool]
cool has left #musicbrainz
15:41:32 [MacIntire]
MacIntire has joined #musicbrainz
15:45:10 [somniloquy]
somniloquy has joined #musicbrainz
15:47:33 [real_]
real_ is now known as real
16:10:05 [real]
real has left #musicbrainz
16:14:17 [real_]
real_ has joined #musicbrainz
16:14:48 [real_]
real_ is now known as real
16:22:33 [real]
real has quit
16:33:03 [real_]
real_ has joined #musicbrainz
16:46:00 [Knio_]
Knio_ has joined #musicbrainz
16:46:21 [Knio]
Knio has quit
16:51:48 [wheels]
wheels has quit
16:52:54 [wheels]
wheels has joined #musicbrainz
17:13:38 [MacIntire]
MacIntire has quit
17:13:57 [MacIntire]
MacIntire has joined #musicbrainz
18:08:34 [Knio_]
Knio_ has quit
18:08:39 [Knio]
Knio has joined #musicbrainz
18:13:14 [lgonze]
lgonze has quit
18:49:29 [ruaok]
ruaok has joined #musicbrainz
18:49:34 [ruaok]
yawn.
18:49:39 [ruaok]
home at last
18:50:59 [djce]
hey ruaok !
18:51:03 [ruaok]
hey
18:51:06 [djce]
welcome back.
18:51:08 [ruaok]
how are things in .uk?
18:51:11 [ruaok]
thanks.
18:51:16 [djce]
warmish, and lazy.
18:51:18 [ruaok]
what a long and strange trip that was.
18:51:20 [djce]
which is nice.
18:51:24 [ruaok]
good.
18:51:35 [ruaok]
the talk went well.
18:51:56 [djce]
Cool. I Was thinking about staying up for the chat, but I was dead beat that day.
18:51:56 [ruaok]
perhaps too well - a couple people approached me about using our replication in their project.
18:52:05 [djce]
Is that a bad thing?
18:52:16 [ruaok]
no, except it means more work for us. :-)
18:52:22 [djce]
Hah! :-)
18:52:32 [ruaok]
at some point I need to seperate out the replication stuff into a seperate project.
18:52:42 [djce]
I've been hacking on better Unicode support for FreeDB this weekend.
18:52:59 [djce]
and I need to bounce some replication-related ideas off you some time.
18:53:20 [ruaok]
for importing data from freedb??
18:53:24 [djce]
Yes.
18:53:46 [djce]
That is, Unicode: yes. replication, no that's a separate thing.
18:54:18 [ruaok]
ight.
18:54:32 [ruaok]
well, today my presence will be spotty.
18:54:46 [djce]
np. no hurry.
18:54:47 [ruaok]
unpacking, napping, putting out serious fires.
18:54:54 [ruaok]
I should have some time tomorrow.
18:56:48 [djce]
OK. I'll send you a synopsis, in case you want to take a look.
18:57:17 [ruaok]
cool.
19:09:26 [ruaok]
* ruaok reads
19:10:18 [djce]
there's another message to come... still writing that one...
19:15:05 [ruaok]
I'm glad to see freedb is making some progress.
19:15:22 [ruaok]
all that sounds good -- go ahead and merge that branch in.
19:15:36 [ruaok]
the next thing that I need to work on is the TRM feeback improvements.
19:15:51 [ruaok]
'tis a fair amount of work, but its getting increasingly important.
19:19:36 [djce]
ok. Almost done with the second message... :-)
19:28:50 [djce]
sent
19:34:28 [djce]
* djce is away: food
19:34:30 [ruaok]
ohhhh
19:34:35 [djce]
?
19:34:36 [ruaok]
I really like your second mail.
19:34:44 [djce]
* djce is back (gone 00:00:16)
19:34:46 [ruaok]
that will make a freedb front end mirror trivial.
19:34:54 [ruaok]
* ruaok *really* likes it.
19:34:59 [djce]
Where we have the data, yes
19:35:11 [djce]
Not for FreeDB imports though
19:35:16 [ruaok]
yes.
19:35:19 [djce]
not unless a CDIndex ID was added too
19:36:06 [ruaok]
cool.
19:36:28 [ruaok]
I have some things that we need to consider on this issue.
19:36:35 [ruaok]
I'll try and respond in detail later.
19:36:40 [ruaok]
bon appetit!
19:36:47 [djce]
ok
19:36:48 [djce]
later!
19:36:50 [djce]
* djce is away: food
19:36:56 [ruaok]
* ruaok is away: GF maintenance
19:43:26 [roz]
roz has joined #musicbrainz
19:44:13 [roz]
i figure this is kinda sorta relevent in here....... so i will post it. I want a free Ipod...... maybe you do too..... go here and get one: http://www.freeiPods.com/default.aspx?referer=7565361
19:44:49 [roz]
its real. google for freeipods....... its all over people are getting free ipods
19:47:40 [RJ]
pyramid scheme?
19:49:28 [roz]
yes
19:49:37 [roz]
but its from a reputable pyramid schemer
19:49:42 [RJ]
haha
19:50:16 [roz]
its the largest internet ad agency on the web
19:50:21 [roz]
from what i can find out
19:51:06 [RJ]
you probably have about as much chance of 'winning' as you do with a lottery.. meanwhile they scammed lots of people in to filling out their survey, whatever that may be
19:51:36 [RJ]
</cynic>
19:52:31 [roz]
its not a "winning"
19:52:57 [roz]
its you get 5 people to sign up for ebay....... or evil aol..... ........... both of those dont cost a penny......
19:53:04 [roz]
and bam
19:53:10 [roz]
you get an ipod in 2 weeksd
19:56:08 [roz]
there are "howtos" all over the net
19:56:53 [roz]
if you do the ebay link, you have to sign up for ebay, and place a high bid on an item that you wont win........... like $5 for a laptop worth $500
19:57:29 [real_]
can you use proxies and shit
19:57:29 [real_]
real_ is now known as real
19:57:50 [roz]
proxy bidders you mean?
19:58:01 [real]
no sign up for ebay 5 times
19:58:04 [real]
to get 5 refferrals
19:58:16 [roz]
no
19:58:22 [real]
how will they know
19:58:42 [roz]
they have to be 5 different people ..... different addresses
19:58:49 [real]
yea different credit cards
19:58:49 [roz]
i mean i suppose u could circumvent it ..........
19:58:58 [real]
anyways, the ipod place wouldnt have access to ebay's stuff
19:59:04 [real]
they wouldnt be able to see my address
19:59:10 [roz]
but i wouldnt really try....... its not hard to get 5 people.....
19:59:24 [real]
is too
20:00:17 [roz]
they do investigations.....
20:00:29 [real]
who does
20:00:51 [roz]
before they approve you
20:01:00 [roz]
the ipod place
20:01:09 [real]
what if i sign up my grandma, grandpa and mom and dad and brother
20:01:11 [roz]
and considering ebay is PAYING for your ipod.......
20:01:13 [real]
all same addy, same ip etc
20:01:26 [roz]
It says 1 per household address
20:01:31 [real]
bastards
20:01:50 [real]
have to bend over just to get an ipod
20:01:56 [roz]
considering ebay Pays for your ipos
20:01:58 [roz]
ipod
20:02:18 [real]
could you sign up someoen for both aol and ebay
20:02:25 [roz]
nope
20:02:29 [real]
:[
20:02:34 [roz]
thatd be nice :)
20:12:37 [roz]
i have a domain
20:12:42 [roz]
so i use one email for this
20:12:50 [roz]
and then once i get my ipod
20:12:54 [roz]
i can turn it off
20:12:56 [roz]
if i want
20:18:57 [wheels]
wheels has quit
20:29:03 [wheels]
wheels has joined #musicbrainz
20:54:38 [Raph0Sk8er]
Raph0Sk8er has joined #musicbrainz
20:55:09 [Raph0Sk8er]
Raph0Sk8er has left #musicbrainz
20:55:25 [wheels]
Heh. Mmm. Pyramid schemes. ;-)
20:55:37 [wheels]
ruaok: Oh, and now that you're here I can pester you. ;-)
21:02:26 [MacIntire]
MacIntire has quit
21:12:58 [MacIntire]
MacIntire has joined #musicbrainz
21:26:43 [roz]
wheels
21:26:48 [roz]
its real though
21:26:54 [roz]
People are getting ipods
21:31:49 [wheels]
ruaok: So there are definitely two callbacks happening per event. Or I'm on crack.
22:05:33 [ruaok]
wheels: you still using 0.3.0 ??
22:05:38 [ruaok]
* ruaok is back (gone 02:28:43)
22:05:51 [wheels]
ruaok: Yeah, remember -- this is for stuff that'll be released in a couple of weeks.
22:06:26 [wheels]
ruaok: I've worked around it in my code, but was just pointing it out in case it comes up elsewhere.
22:07:11 [wheels]
ruaok: And a couple days ago I was confused by what actually was being returned by GetResults and when it should be called, but I think I have that clear now.
22:09:21 [ruaok]
cool.
22:09:38 [ruaok]
I think I've got some of the callback issues sorted in the CVS code for 0.4.0.
22:10:06 [wheels]
before 0.4 comes I'll try to compile / port it just to make sure.
22:10:18 [ruaok]
ok
22:10:45 [wheels]
But right now I'm looking at a freeze in about 2 days and not everything's working yet. :-)
22:10:58 [ruaok]
ick.
22:11:03 [ruaok]
anything I can shed some light on?
22:11:51 [wheels]
Well, I think I fixed it before I went out to the movies, but haven't gotten around to testing it. Just got in and dealt with finding food in the last hour.
22:12:16 [ruaok]
ok.
22:12:20 [ruaok]
drop me a line if you have issues.
22:12:29 [ruaok]
I'll be online spottily today.
22:32:25 [somniloquy]
somniloquy is now known as somnolent
22:34:08 [Pipian]
Hey wheels
22:34:14 [Pipian]
you did that other tag library right? =P
22:34:21 [Pipian]
"That other tag library" =P
22:34:35 [wheels]
guilty :-)
22:34:42 [Pipian]
Ah
22:34:45 [Pipian]
who am I kidding
22:34:52 [Pipian]
you're the only one that's production-quality =P
22:35:05 [Pipian]
But I've actually got a plan if I can get off my lazy ass and rewrite the code
22:35:17 [Pipian]
Switching to a more logical interface.
22:35:38 [wheels]
* wheels just released 1.2 last week...
22:35:40 [Pipian]
gets and sets, and nested structs with linked lists and what not.
22:35:55 [Pipian]
course the thing is, nothing exists but the header file =P
22:37:12 [Pipian]
Lots and lots of functions... But it's probably a bit smarter and easier to use (ironically)
22:37:54 [Pipian]
Care to take a look at the header file, out of curiosity?
22:38:14 [Pipian]
So you can laugh at the pitiful competition =P
22:39:12 [wheels]
Sure. Likely sans laughing. :-)
22:39:26 [Pipian]
e-mail?
22:39:44 [wheels]
or web or whatever. It's all just abstract IO to me. :-)
22:39:45 [Pipian]
you'd probably appreciate the additional annotation that isn't present int he header.
22:40:05 [wheels]
* wheels == wheeler@kde.org
22:40:40 [Pipian]
And thus the difference once again
22:40:56 [Pipian]
you aim for KDE/QT/C++ and I use Gnome/GTK/C =P
22:41:40 [wheels]
Well, I aim for world domination, mostly. And programming is fun too.
22:42:46 [wheels]
Though someone mentioned at one point that I might actually have wheeler@gnome.org -- I've never actually tried it though. :-)
22:43:06 [wheels]
* wheels has a CVS account for GStreamer, though now it's on Freedesktop.org.
22:43:33 [Pipian]
Sent.
22:43:41 [Pipian]
I'm content enough with pipian@pipian.com
22:43:56 [Pipian]
and once the stupid registrar stops locking it, pipian@pipian.net
22:46:08 [wheels]
Pipian: One thing that I notice quickly -- in C I tend to avoid declaring the types in the public interface unless you're really sure that they're premanent.
22:46:14 [wheels]
Pipian: ...since you can't add or remove anything otherwise.
22:46:35 [Pipian]
True
22:46:43 [Pipian]
Example?
22:47:13 [Pipian]
(Most I'm fairly certain on how they'd be used, at least the sets and gets...)
22:47:57 [wheels]
Pipian: Here's the C interface for TagLib: http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdesupport/taglib/bindings/c/tag_c.h?rev=1.7.4.1&content-type=text/x-cvsweb-markup
22:48:26 [Pipian]
(I might not have implemented them right, but I know how it would work. The gets ideally work similar to sprintf, and the sets return success or lack of such)
22:48:29 [wheels]
Pipian: If you just do a forward declaration and then just pass around the pointer so long as the functions keep working you can change the underlying data structures all you want.
22:49:43 [Pipian]
you mean like your typedefs right at the beginning?
22:50:08 [wheels]
Pipian: Well, those are to bind it to C++ types in the background.
22:50:24 [wheels]
Pipian: I just cast those to C++ classes in the implementation.
22:50:28 [Pipian]
Clarify then?
22:51:56 [wheels]
Pipian: Well, like TagLib_Tag is actually just a pointer to TagLib::Tag (http://ktown.kde.org/~wheeler/taglib/api/classTagLib_1_1Tag.html), but since I obviously can't have C++ types in the interface I just created a dummy type for the pointer.
22:53:01 [wheels]
Pipian: So something like taglib_tag_title(TagLib_Tag *tag) gets translated to reinterpret_cast<TagLib::Tag *>(tag)->title().toCString()
22:53:26 [Pipian]
Ah
22:53:34 [Pipian]
Well how does that apply to the forward declaration part?
22:54:19 [Pipian]
Or am I missing something?
22:55:52 [wheels]
Pipian: I'm trying to remember if you need a dummy type in C -- I think so, now that I think of it.
22:56:20 [wheels]
* wheels rarely does object oriented C, which is basically what this is.
22:57:42 [Pipian]
Can you maybe get to the point as I'm kinda groping through the fog trying to understand
22:57:59 [wheels]
I thought I did. :-)
22:58:05 [Pipian]
Well
22:58:17 [Pipian]
you said "I tend to avoid declaring the types in the public interface unless you're really sure that they're premanent."
22:58:24 [Pipian]
But I kinda lost you after that
22:58:32 [wheels]
Pipian: The point is that by hiding the type you have more flexibility while maintaining binary compatibility in the interface.
22:59:00 [wheels]
Pipian: If you don't expose what it contains you can change that. If you do, you can't (without breaking backwards compatibility).
22:59:33 [Pipian]
so basically I should redefine any points where I use those special types to something like a void pointer.
22:59:51 [Pipian]
instead of a pointer to the exact type.
23:00:05 [wheels]
Pipian: Well, but coming up with a dummy type at least gives you the guise of type safety.
23:00:25 [wheels]
Pipian: Well, and not have the structs in the header, but in the C file.
23:00:52 [Pipian]
I mean, the structs are pretty open now (unlike the previous ones) where I don't see much changing
23:01:33 [Pipian]
but in case, you would suggest I basically move the structs and create a dummy type (like your typedef struct { int dummy; }) instead...
23:01:41 [wheels]
Pipian: See -- let's say that you release it as is. Then you realize you forgot something important before the next release. Because previously existing code might have allocated some of your structs on the stack they can't change their size -- you can't add new members without breaking existing stuff. And normally in a library you don't want to break compatibility more than every couple of years.
23:02:19 [wheels]
Pipian: Well, that's how I would do it. You are of course free to do things most any way you like. :-)
23:02:30 [Pipian]
I *AM* sticking with pointers, rather than strait structs, which is a bit safer, no?
23:03:00 [Pipian]
But by masking it as an int, it avoids even the pretense of a bad struct
23:03:32 [Pipian]
but if such is the case, wouldn't you sorta lose something in the transition of a pointer to an int?
23:03:35 [wheels]
Pipian: Not really. Because someone could now (doesn't mean that they'd have to have a sane reason for such) could do "filedata_t foo;" -- that'll blow up if things change.
23:03:54 [Pipian]
So basically I'd want to mask it so that they can't make that mistake
23:04:27 [Pipian]
I force the use of pointers by not exposing such to the developers?
23:04:35 [wheels]
Yeah, basically.
23:04:50 [Pipian]
then why are you using double pointers?
23:04:54 [Pipian]
in your functions that is?
23:05:00 [wheels]
And of course this is just me -- and I'm mostly a C++ wanker...and I hate libs that break BC more than a few times a decade. :-)
23:05:06 [Pipian]
e.g. "void taglib_file_free(TagLib_File *file);"
23:05:16 [Pipian]
I suppose that's to use standard practice
23:05:20 [Pipian]
but the dummy protection
23:05:39 [Pipian]
is to prevent against stupid coders who don't know to use pointers from the beginning in the first place?
23:05:46 [wheels]
Pipian: Because for the interface I'm pretending that TagLib_File is a real type. And it's being passed by pointer. In fact it represents a real type.
23:06:18 [Pipian]
Even though the real type is just another pointer in disguise...
23:06:25 [wheels]
Pipian: Well, anything that you expose you have to take care of. Every library programmer has to be prepared for people to abuse the interface in any way that's technically possible. :-)
23:07:25 [Pipian]
So as I said, it's to make it normal protocol for normal programmers (who would expect to abstract as a pointer for such functions)
23:07:44 [wheels]
Yeah.
23:08:01 [Pipian]
While still allowing stupid ones to not break programs by defining a TagLib_File and then passing "&file" to the function
23:08:42 [wheels]
Pipian: Well, TagLib_File is completely meaningless -- that's kind of the idea.
23:08:52 [Pipian]
Right
23:08:58 [Pipian]
It represents something specific in the end
23:09:40 [Pipian]
but you could pass a TagLib_Tag that carries a pointer to a TagLib::File and cast it as a TagLib_File and have it work fine of course
23:09:42 [wheels]
Pipian: Well, sort of -- if you just defined a TagLib_File and did something to it it simply wouldn't work. Ever. In any version. In your scenario it might actually work in the first version and segfault in the next.
23:10:40 [Pipian]
Supposing that I didn't use dummy variables.
23:10:50 [wheels]
right
23:11:11 [wheels]
The other thing that jumps out at me is no max lenght for the character variables.
23:11:18 [wheels]
s/variable/returns/
23:11:19 [Pipian]
Yes
23:11:31 [Pipian]
I think I'm probly handling it right
23:11:40 [Pipian]
I just need to go back and figure out what I need to base it on
23:12:10 [Pipian]
I'm trying to base it on the expected behavior of normal C string functions
23:12:12 [Pipian]
like sprintf
23:12:17 [Pipian]
and strcat and so forth
23:12:38 [Pipian]
Though I think I should probably go more for snprintf, right?
23:13:13 [wheels]
Pipian: Another pet peeve -- you're using tags for alignment -- which makes things really ugly if someone uses a differnt tab width.
23:14:02 [wheels]
Pipian: Well, you either have to have a maximum size defined somewhere -- #define TAGS_STRING_MAX 2048 -- or the functions have to take an argument for such. Otherwise you'll end up with buffer overflows.
23:14:17 [Pipian]
Right
23:14:19 [Pipian]
I'm thinking
23:14:29 [Pipian]
I need to look at snprintf
23:14:32 [Pipian]
to see what I'm expecting
23:14:42 [Pipian]
I suppose that's better
23:14:58 [Pipian]
because sprintf, I know, returns a size_t representing the number of characters written.
23:15:06 [Pipian]
what I want to do
23:15:28 [Pipian]
is allow for limited numbers of characters, but also figuring out how many characters are present.
23:15:32 [Pipian]
(geting the lengths)
23:15:42 [Pipian]
And I'd rather not add functions for that.
23:15:56 [Pipian]
I know I'm getting confused on that though
23:16:41 [Pipian]
(I could fix the petpeeve too I imagin, by adding a line break between the type and the first var.
23:16:53 [wheels]
Pipian: You can also go the TagLib route and force the user to free the strings and go with a char ** type.
23:17:19 [wheels]
Pipian: Or I also keep track of the mallocs and they can all be freed at once using taglib_free_strings();
23:17:29 [Pipian]
Ah
23:17:31 [Pipian]
so basically
23:17:40 [Pipian]
use internal memory allocation
23:17:51 [Pipian]
instead of allowing for external allocation and frees.
23:18:33 [wheels]
Pipian: that's how I do it
23:19:04 [Pipian]
That's of course been an issue before
23:19:06 [wheels]
Pipian: there's void taglib_set_string_management_enabled(BOOL management);
23:19:10 [Pipian]
either use ALL internal memory allocation
23:19:16 [Pipian]
or NO internal memory allocation
23:19:24 [Pipian]
mixing the two is bad juju
23:20:04 [wheels]
Pipian: Well in my case I leave it up to the user -- they can either turn it on or off. If they leave it off (my string functions return char *) they have to free the strings. If it's on they can be freed with one call.
23:20:20 [Pipian]
*nod*
23:20:25 [Pipian]
I think that route is best.
23:20:35 [Pipian]
That way they can code simple
23:20:41 [Pipian]
or efficiently using memory
23:21:32 [wheels]
Though TagLib tends to be fairly CPU effecient generally things like memory allocation tend to be drowned out in IO performance in a tagging application.
23:21:44 [Pipian]
naturally
23:22:04 [Pipian]
and on machines these days
23:22:12 [Pipian]
where so much memory can be gotten relatively cheap
23:22:27 [Pipian]
memory efficiency is less importnat
23:23:14 [wheels]
Well, and I'd be hard pressed to come up with a situation where TagLib is internally even using 1 MB of memory.
23:23:27 [wheels]
Like it could happen, but it'd be rare.
23:24:00 [Pipian]
indeed.
23:24:05 [Pipian]
And even in such a case
23:24:15 [Pipian]
It's possible that people would want a C implementation
23:24:17 [Pipian]
^_-
23:24:52 [wheels]
Well, I already know of at least two groups using it on embedded devices.
23:24:58 [Pipian]
true
23:25:00 [Pipian]
but hey
23:25:10 [Pipian]
embedded devices that likely aren't pressed for memory either
23:25:34 [Pipian]
I know where libmetatag is going
23:25:40 [Pipian]
But I still don't know its niche =P
23:25:56 [Pipian]
Oh
23:26:11 [Pipian]
I imagine it would probably be a good thing to start prepping for doxygen now too.
23:26:21 [Pipian]
That way people will HAVE documentation
23:26:30 [Pipian]
instead of harrassing me for stuff that's just plain never gonna happen =P
23:26:53 [wheels]
Well, there are a handful of people using TagLib in C places that they'd rather be using something that's nativly C. But on the other hand GNOME tends to be shifting towards Mono at this point.
23:27:05 [Pipian]
true true
23:27:09 [Pipian]
but as long as there's XMMS
23:27:19 [Pipian]
there's need for my soon to be obsolete library XD
23:27:48 [wheels]
Well, XMMS is pretty obsolete itself. It still works and is popular -- naturally -- but development pretty much stopped a few years ago.
23:28:02 [wheels]
I mean -- it's still using GTK 1...
23:29:10 [Pipian]
exactly
23:29:53 [Pipian]
It would be nice if I had an idea what libmetatag would be used for o.o
23:30:14 [Pipian]
(Python bindings? Nah, you've got that covered, and if not, you'll have it covered long before I get there =P)
23:30:19 [wheels]
Pipian: I had a jukebox application that needed TagLib -- so the impetus was a bit more clear. :-)
23:30:33 [wheels]
Pipian: Someone sent python bindings last week. ;-)
23:30:57 [Pipian]
I have a plugin for XMMS that needed robust tag-reading abilities, so I knew why I was coding.
23:32:22 [Pipian]
problem is
23:32:36 [Pipian]
I don't think anyone else needs my robust tag-reading abilities in C o.o
23:33:19 [wheels]
Well, again -- I'm sure that there would be those that would welcome it if it was ready.
23:33:54 [wheels]
Just the rate at which TagLib has become fairly popular indicates how much most of the options kind of sucked.
23:35:50 [Pipian]
Problem is
23:35:56 [Pipian]
I'm afraid that by the time it IS ready]
23:36:09 [Pipian]
there will no longer be a need =P
23:38:00 [wheels]
Well, that's something that's up to you. I mean -- either go for it or don't. But like I've said before -- even projects that don't have practical application tend to be pretty good teachers.
23:38:33 [wheels]
I mean -- I've got thousands of lines of code that are completely dead and won't ever come back to life -- but I learned a lot in the process.
23:40:07 [Pipian]
True
23:40:10 [Pipian]
and you never know
23:40:19 [Pipian]
If I actually didn't slack off and coded my heart out
23:40:24 [Pipian]
I might actually get it done in a month =P
23:41:35 [wheels]
Well, but stabalizing tends to take a few months. It's almost inversely proportional to the speed at which things were originally coded. :-)
23:41:59 [wheels]
But I was lazy at TagLib -- I mostly hacked at it when I was bored with my other projects for about 2-3 years until I finally got it ready to release.
23:44:21 [Pipian]
right
23:44:24 [Pipian]
but if that were the case
23:44:32 [Pipian]
there's 2-3 years before libmetatag comes out
23:44:37 [Pipian]
by which point it's obsolete =P
23:56:30 [wheels]
Hmm. I seem to be getting really a lot of errors from TRM lookups.