Bittorrent Library - Final report

0 views
Skip to first unread message

Alan McGovern

unread,
Aug 21, 2006, 1:02:02 PM8/21/06
to mono-soc-2006
So the initial implementation of the Bittorrent Client Library is
practically (already?) at public release stage. It's definately been an
interesting 3 months. I have to say, this was definately more
challenging than anything else i've worked on before. If i had decent
knowledge of C# before, i now have good knowledge *and* great
experience.

I learned a lot over the summer. I finally got to grips with threading.
Beforehand my grasp of threading was mostly theoretical, but in the
last 2 weeks of the project everything clicked... unfortunately it was
a bit late as i had already created some threading issues which need to
be addressed ;) Coding with generics proved extremely useful for
BEncoding and PeerMessaging, and will probably come in useful when i
(or someone else) updates the client to use HttpSeeding.

Little tricks like having an "internal set { object = value; }" would
have been quite useful early on, but i never knew you could do that!
I've definately seen the benefit of NUnit tests. They've helped me on
so many occasions with the BEncoding engine. I was able to rip huge
chunks out of it, put them back together, and just run the tests. If
they passed, i didn't need to review my code. If they didn't, i knew
pretty much exactly where the problem was.

All in all, i'm grateful to 1) Google for having the event, 2) Miguel
for accepting my application and 3) All the people in the #mono channel
who heard me complaining and moaning on so many occasions when
"impossible" things kept happening ;)

So, i hope to see some people volunteering to help flesh out the
library with more features and sparkly bits. There's a TODO the length
of my arm, a bucket load of #warnings in the code and many bugs yet to
be found. Hopefully i'll work through a few of them in the near future
:)

Alan.

Tasks completed this week:
1) Commented *all* of my code (pretty much). Whoops, i forgot to upload
the xml comments file to SVN ;)
2) Bugfixes
3) Events
4) Feature requests
5) I'm too lazy to check the SVN changelog, but a lot of minor bugfixes
and improvements were done.

Tasks for next week:
Play guitar.

Reply all
Reply to author
Forward
0 new messages