{"id":5399,"date":"2014-01-17T16:34:53","date_gmt":"2014-01-17T15:34:53","guid":{"rendered":"http:\/\/daniel.haxx.se\/blog\/?p=5399"},"modified":"2017-01-17T13:23:17","modified_gmt":"2017-01-17T12:23:17","slug":"my-first-mozilla-week","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2014\/01\/17\/my-first-mozilla-week\/","title":{"rendered":"My first Mozilla week"},"content":{"rendered":"<h2>Working from home<\/h2>\n<p>I get up in the morning, shave, eat breakfast and make sure all family members get off as they should. Most days I walk my son to school (some 800 meters) and then back again. When they&#8217;re all gone, the house is quiet and then me and my cup of coffee go upstairs and my work day begins.<\/p>\n<h2>Systems and accounts<\/h2>\n<p>I have spent time this week to setup accounts and sign up for various lists and services. Created profiles, uploaded pictures, confirmed passwords. I&#8217;ve submitted stuff and I&#8217;ve signed things. There&#8217;s quite a lot of systems in use.<\/p>\n<h2>My colleagues<\/h2>\n<p>I&#8217;ve met a few. The Necko team isn&#8217;t very big but the entire company is huge and there are just so many people and names. I haven&#8217;t yet had any pressing reason to meet a lot of people nor learn a lot of names. I feel like I&#8217;m starting out this really slowly and gradually.<\/p>\n<h2>Code base<\/h2>\n<p>Firefox is a large chunk of code. It takes some 20 minutes to rebuild on my 3.5GHz quad-core Core-i7 with SSD. I try to pull code and rebuild every morning now so that I can dogfood and live on the edge. I also have a bunch of local patches now, some of them which I want to have stewing in my own browser for a while so that I know they at least don&#8217;t have any major negative impact!<\/p>\n<p>Figuring out the threading, XPCOM, the JavaScript stuff and everything is a massive task. I really cannot claim to have done more than just scratched the surface so far, but at least I am scratching and I&#8217;ve &#8220;etagged&#8221; the whole lot and I&#8217;ve spent some time reading and reviewing code. Attaching a gdb to a running Firefox and checking out behavior and how it looks has also helped.<\/p>\n<h2>Netwerk code size<\/h2>\n<p>&#8220;Netwerk&#8221; is the directory name of the source tree where most of the network code is located. It is actually not so ridiculously large as one could fear. Counting only C++ and header files, it sums up to about 220K lines of code. Of course not everything interesting is in this tree, but still. Not mindbogglingly large.<\/p>\n<h2>Video conferencing<\/h2>\n<p>I&#8217;ll admit I&#8217;ve not participated in this sort of large scale video conferences before this. With <a href=\"http:\/\/www.vidyo.com\/\">Vidyo<\/a> and all the different people and offices signed up at once &#8211; it is a quite impressive setup actually. My only annoyance so far is that I didn&#8217;t get the sound for Vidyo to work for me in Linux with my headphones. The other end could hear me but I couldn&#8217;t hear them! I had to defer to using Vidyo on a windows laptop instead.<\/p>\n<p>Doing the video conferencing on a laptop instead of on my desktop machine has its advantages when I do them during the evenings when the rest of the family is at home since then I can move my machine somewhere and sit down somewhere where they won&#8217;t disturb me and I won&#8217;t disturb them.<\/p>\n<h2>Bugzilla<\/h2>\n<p>The bug tracker is really in the center for this project, or at least for how I view it and work with it right now. During my first week I&#8217;ve so far filed two bug reports and I&#8217;ve submitted a suggested patch for a third bug. One of my bugs (<a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=959100\">Bug 959100<\/a> &#8211; ParseChunkRemaining doesn&#8217;t detect chunk size overflow) has been reviewed fine and is now hopefully about to be committed.<\/p>\n<p>I&#8217;ve requested commit access (<a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=961018\">#961018<\/a>) as a &#8220;level 1&#8221; and I&#8217;ve signed the <a href=\"https:\/\/www.mozilla.org\/hacking\/notification\/\">committer&#8217;s agreement<\/a>. Level 1 is entry level and only lets me push to the Try server but still, I fully accept that there&#8217;s a <a href=\"https:\/\/www.mozilla.org\/hacking\/commit-access-policy\/\">process to follow<\/a> and I&#8217;m in no hurry. I&#8217;ll get to level 3 soon enough I&#8217;m sure.<\/p>\n<h2>Mercurial<\/h2>\n<p>What can I say. After having used it a bit this week without any particularly fancy operations, I prefer git so much more. Of course I&#8217;m also much more used to git, but I find that for a lot of the stuff where both have similar concepts I prefer to git way. Oh well, its just a tool. I&#8217;ll get around. Possibly I&#8217;ll try out the git mirror soon and see if that provides a more convenient environment for me.<\/p>\n<h2>curl<\/h2>\n<p>What impact did all this new protocol and network code stuff during my work days have on my <a href=\"http:\/\/curl.haxx.se\/\">curl<\/a> activities?<\/p>\n<p>I got inspired to fix both the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Chunked_transfer_encoding\">chunked encoding<\/a> parser and the cookie parser&#8217;s handling of <a href=\"http:\/\/tools.ietf.org\/html\/rfc6265#section-5.2.2\">max-age<\/a> in libcurl.<\/p>\n<h2>What didn&#8217;t happen<\/h2>\n<p>I feel behind in the implementing-http2 department. I didn&#8217;t get my new work laptop yet.<\/p>\n<h2>Next week<a href=\"http:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2014\/01\/IMG_20140117_105251.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-5409 alignright\" title=\"Daniel's work place\" src=\"http:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2014\/01\/IMG_20140117_105251-300x225.jpg\" alt=\"Daniel's work place\" width=\"300\" height=\"225\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2014\/01\/IMG_20140117_105251-300x225.jpg 300w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2014\/01\/IMG_20140117_105251-150x112.jpg 150w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2014\/01\/IMG_20140117_105251-1024x768.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h2>\n<p>More of the same, land more patches and figure out more code. Grab more smallish bugs others have filed and work on fixing them as more practice.<\/p>\n<p>Also, there&#8217;s a <a href=\"https:\/\/github.com\/http2\/wg_materials\/blob\/master\/interim-14-01\/agenda.md\">HTTPbis meeting in Z\u00fcrich<\/a> on Wednesday to Friday that I won&#8217;t go to (I&#8217;ll spare you the explanation why) but I&#8217;ll try to participate remotely.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Working from home I get up in the morning, shave, eat breakfast and make sure all family members get off as they should. Most days I walk my son to school (some 800 meters) and then back again. When they&#8217;re all gone, the house is quiet and then me and my cup of coffee go &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2014\/01\/17\/my-first-mozilla-week\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">My first Mozilla week<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,11,22,13],"tags":[33,425,427],"class_list":["post-5399","post","type-post","status-publish","format-standard","hentry","category-curl","category-development","category-mozilla","category-net","tag-curl-and-libcurl","tag-mozilla","tag-work"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/5399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=5399"}],"version-history":[{"count":18,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/5399\/revisions"}],"predecessor-version":[{"id":9691,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/5399\/revisions\/9691"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=5399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=5399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=5399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}