{"id":307,"date":"2007-12-06T22:17:10","date_gmt":"2007-12-07T03:17:10","guid":{"rendered":"http:\/\/journal2.alanv.org\/?p=307"},"modified":"2012-10-07T22:22:36","modified_gmt":"2012-10-08T02:22:36","slug":"day-of-endings","status":"publish","type":"post","link":"https:\/\/journal2.alanv.org\/?p=307","title":{"rendered":"Day of endings"},"content":{"rendered":"<p>Today was my last day of work at Viz. It was good&#8230; got the testing infrastructure started. Did as much as I could given I only had 8 hours to work on it. Managed to get it done after 5.5 (Wednesday plus some of today) and did some final bug fixing and integrating afterwards. Bid farewell to everyone. <\/p>\n<p>Today was our P3 interview, which marked the end of our kernel project. His main criticism was that we used 5 locking primitives in our kernel (mutex, cond [condition variable], icond [internal condition variable], ENTER_CRIT\/EXIT_CRIT, and disable_interrupts\/enable_interrupts). He said this was indicative of &#8220;running away&#8221; from problems by creating more locking primitives than figuring out those problems. Yeah, sounds about right. He also found a potential deadlock in our kernel (that, at least, is very very unlikely) and a few problems with the scheduler. Also, one part of our kernel (a function that either copies to\/from userspace\/kernel space or vice versa depending on where the pointer you pass to it is) was called a 1337 hax and we were told that 1337 hax should be very well documented (whereas ours was lacking any documentation&#8230; oops). Also, we generally had bad quality\/missing documentation in our kernel. Not surprising, given how we mostly did the documentation in the last 2 days.<\/p>\n<p>Today was our pen-based computing presentation, which marks the end of the pen-based class and also of our adventure game mapping tool project. That went pretty well&#8230; we managed to implement all desired features and Carl and Edmund got saving\/scrolling working at the last minute. Woo.<\/p>\n<p>Also, today was our P4 late day. We went into it rather confused on why free was causing page faults left and right and wondering if it was a kernel issue. After about 5 hours of debugging (in addition to the debugging yesterday), as I read through the code because I was completely stumped, I discovered the lines:<br \/>\n<code>file_desc* fd_struct;<br \/>\n...<br \/>\nfd_struct = (file_desc*)malloc(sizeof(fd_struct));<br \/>\n...<\/code><br \/>\nOops.<br \/>\nSo yeah, the end of OS projects (and our ~7 hour debug issue) and of the semester of workdeath was a stupid typo bug. Whee.<\/p>\n<p>Overall, it&#8217;s been a good semester. I think I&#8217;ve decided on a job (the one I kinda decided I wanted since the beginning), and I&#8217;ll send out the acceptance letter tomorrow (along side my last rejection letter).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today was my last day of work at Viz. It was good&#8230; got the testing infrastructure started. Did as much as I could given I only had 8 hours to work on it. Managed to get it done after 5.5 &hellip; <a href=\"https:\/\/journal2.alanv.org\/?p=307\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,7,10],"tags":[],"class_list":["post-307","post","type-post","status-publish","format-standard","hentry","category-code","category-gdc4s","category-os"],"_links":{"self":[{"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=\/wp\/v2\/posts\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=307"}],"version-history":[{"count":0,"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=\/wp\/v2\/posts\/307\/revisions"}],"wp:attachment":[{"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/journal2.alanv.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}