KDE
I really, really hate kde4 sometimes. and everything related to it.
yeah, so my soc project is done. since friday or saturday I've been trying to merge kopete trunk to my branch, to make sure my code works with whatever everyone else has been doing.
you wouldn't believe the fucking problems I've had. svn merge, dbus, qt-copy, ccmake, qca, qconf, weird things in kdenetwork... all of it wants to stop me from compiling kopete. it's really gettting quite fucking ridiculous.
so, I've no fucking clue when my code will actually be available, because I'm too fucking pissed off at the endless bullshit I'm going through! goddamn fucking stupid fucking programs! gah! I am so sick of all the tools breaking every time I try to upgrade anything vaguely related to kde4!
oh. um. it works now.
although I haven't slept one bit and it's nearly 1pm. I think I've been awake over 24 hours.
er... now what?
I guess I should do some programming this evening if I find the time. er, and if I don't fall asleep first. maybe programming can wait 'till tomorrow.
time sure flies
hmm, I kinda forgot about this blog for a while. what's new?
well, I finished all the features I'd planned on time. it's just bugfixing and documentation left.
I decided to do what gaim did and blindly use aim filetransfer protocol on icq, for now. but before kde4 is released I'm darn well figuring out what icq is doing.
I'm a little more concerned about another bug: aim 5.9 hates me. it'll send files, but won't accept them at all.
also, no official aim client will let me do direct send - I've tried to figure out why, and I can't.
unfortunately, my brain has been kinda fried the last few days. I'm not really capable of working right now. hopefullly I'll be able to think clearly befoe the deadline; I want to at least get documentation in order and do one last pass over the code before merging it into trunk.
anyone here use icq?
hmm. I was up most of last night programming :) so my brain is kinda fried today... but I got the encoding thing done, plus various other bits and pieces, so I'm on schedule again and doing well...
now, my big problem is I have no icq testers. there was one person that added me, and then kopete crashed so I never found out who it was. so I still don't know if my filetransfer code works for icq :( and my mentor hasn't been around much either - er, speak of the devil, he's online now :)
if you have icq (and a client that can do filetransfers, of course), please add me. #273454723.
[edit] meh, nevermind...
well, fuck.
ok, so somehow my mentor managed to appear properly authorised on icq. but, then the evil news: icq's not using the same protocol. *most* of the rendezvous is the same, but it's a different cap, and the format of the 2711 TLV is totally different and undocumented. gaim, it seems, ignores this and pretends that icq is aim, which means it can't really do icq filetransfers with any client other than itself. should I do this, or try to reverse-engineer it, with two weeks left in my project? :P
also, I have a fucked-up bug. my counter in a for loop soemtimes fails to increment. seriously. there are times when it's fine, and times when it goes into an infinite loop. haven't a clue wtf it thinks it's doing.
whee
after a week of frustratingly bad timing and silly delays, I'm finally back on schedule. sorta. barely.
I got transfer resuming working with aim 5.1, at least :) although 5.9 was generally hating me. I'll have to fight with it some more later... also, both of them have a strange tendency to ask for a redirect when it's not necessary. I'll have to look into that, along with various other bugs I dug up.
there's still plenty of general testing to be done, and a bunch of little issues to sort out... and I have to make it work for icq, too :( but there's lots of time for that stuff tomorrow :)
the most annoying bugs always turn out to be stupid mistakes
so I finally got an ethereal log of someone else requesting a proxy, from their side - and when I compared it to mine, the problem was pretty obvious :P I'd forgotten to create my cookie, so my packet was missing that chunk. :)
so, I guess I will get it all done in one day :) ...well, except for the settings that actually let you control whether the proxy is used n'stuff. but who needs settings when you can edit the source? ;)
update
well, I finally got around to putting settings in the gui. I haven't got much else done for kopete lately - RL is being hectic and crazy. my bf is leaving the country in less than a week, so he gets top priority right now :)
I've got all the really vital stuff done now, anyways. filetransfers should be usable for the most part. next week I'll be doing general cleanup, and hopefully merging stuff from trunk. after that I'll have to see if the code works with icq, implement a few extra features (like resuming transfers) and test, test, test.
well, *my* code is fine...
I have code that'll theoretically do redirect transfers both ways. it was quite easy to implement - just a bit of reorganisation so that the existing code could be re-used - but I haven't been able to test it. I tried to send to gaim, lying about the port I used so that direct connect would fail and it'd try redirect... but it didn't. nor did it try a proxy. it just gave up :(
the guy that did the gaim code *documented* all the redirect and proxy stuff, so I had assumed he'd also implemented it. guess not :P now I have to wait for one of the people with a different client to come online.
it's a good thing the code was easy, though - I kinda slacked off for the weekend and the first part opf this week. the weather's been insanely hot; trying to think while my brain is melting is too much work :)
vague code outline thingy
well, it's been about a month now, and I have a fair bit of code written, so I guess I should write down a high-level map of what code does what before I forget. :) I've been spending far too much of my time figuring out what stuff kopete has already done, where it is, whether I can even use the code, and whether it actually does what its comments say. so I don't want my code to be that way for other people.
anyways, the main thing is the filetransfer task. this is the centre of all filetransfer stuff - it holds important information for one filetransfer, makes things actually happen, and has loads of signals & slots connecting it to everything else it needs. like all tasks, it's created by the Client class, either from a user request or from a received message.
