During the Recent Google Code-In there were a total of 2167 tasks successfully completed by the 13-18 year old students. DragonFly's portion of these amounted to 72 successfully completed tasks, or around 3.3% of the total. Slightly lower than a perfect proportion considering there were 20 projects participating. In my estimation, however, we did quite well considering that tailoring tasks of the caliber required in order to benefit an operating system to 13-18 year old minds is quite challenging. That said, a number of students were able to tackle reasonably large and complex tasks that many of us (mentors) would not have thought feasible, if even possible, at the start of the program. Overall, I believe the outcome of the program is as good as any of us could have hoped.
As mentioned in previous status emails, the documentation tasks received a wholly underwhelming response. When the program opened DragonFly had around 35-40 tasks, roughly half of these were documentation work, with the other half being code-related. Now, after the close of the program, there are 72 completed tasks, mostly code related, while 20 tasks went uncompleted or unclaimed. Nearly all of these unclaimed tasks are of the documentation variety, and many simply sat dormant the entire duration of the program. Prior efforts invested in organizing and maintaining the various project pages on the DragonFly BSD wiki proved invaluable in the specification of a number of the tasks successfully completed during the program. I believe that more effort spent defining worthwhile tasks and specifying them in such a way that they may be broken down into bite-size units of work would easily pay dividends if the project were to participate in a program of this type in the future. Brief notes on the completed projects: - EXAMPLES sections were written for the setitimer(2), getsockopt(2)/ setsockopt(2), socket(2)/accept(2)/bind(2)/connect(2), sendfile(2), writev(2), select(2), poll(2), fork(2), send(2)/recv(2), mmap(2), setjmp(3)/longmp(3), dladdr(3)/dlinfo(3)/dlopen(3), directory(3)/scandir(3), ucontext(3)/makecontext(3)/getcontext(3)/setcontext(3), msgctl(3)/msgget(3)/msgrcv(3)/msgsnd(3), glob(3), popen(3)/system(3), exec(3) and tree(3) manpages. * - A patch was created to make the hammer(8) iostats command display humanized output. * - A devattr tool was written. - A libfsid was written. - A usage() function / help output was added to vkernels. - sysctl documentation strings were created for lwkt.*, p1003_1b.*, debug.*, net.inet6.*, net.inet.*, vfs.*, vfs.nfs.*, vfs.hammer.*, vm.stats.* and kern.ipc.* sysctl's. - The default password hashing method was changed from md5 to sha2. - Installation and vkernel setup screencasts were created and put on YouTube, http://www.youtube.com/user/dragonflybsd - FTP server documentation was ported, http://www.dragonflybsd.org/docs/newhandbook/FTP/ - A document detailing hammer recovery was written, http://www.dragonflybsd.org/docs/docs/howtos/howtorecoverdataonhammerfs/ - 20+ pkgsrc packages were fixed and patches submitted to pkgsrc or upstream. - Patches were submitted to convert various subsystems from zalloc to objcache, including: nfsnode, nfsmount, kqueue, dirhash, aio and crypto. * - Most kernel usage of m_get() was converted to m_getb(). * Those items with a * appended are not yet committed or only partly committed, most/all of the results of these tasks are committable and will hit the tree, but if you want to adopt something and get it in sooner than later feel free to let myself, alexh or another mentor know and we can fish out the patch for you. A big thanks to Google for the opportunity and the mentors and students for their time and effort. Sam