Saturday, May 5, 2018

Code Quest - Weekly Roundup (Weeks 1-4)

Lo and behold, we're almost a month into the Code Quest already! I had originally intended to write this post after the first 2 weeks (already down from my initial target of maybe a single post per week). But... between making the most of my time here to explore Amsterdam/Europe, the day to day activities in the studio, having to deal with all the other "life crap" (e.g. cooking, laundry, groceries, and some ongoing struggles with our apartment's water heating system, etc.), and finally, a broken laptop this past 1-2 weeks (more on this in a moment), the third fourth week has been and gone, and I still haven't gotten around to putting this together finishing this post!


I'm going to keep this brief though, as I'm still running my laptop off its battery after the adapter started playing up (basically last weekend, it suddenly got somewhat fried, and is now only sporadically charging, and taking nearly a day to do so when it works)... just what I needed when development activity was starting to pick up pace here!

For more up to date info as it happens, I'll be mostly posting short updates to my Twitter feed, since that's a bit easier to update using just my phone. Hopefully I haven't already started getting my dates mixed up - I'd been trying to keep notes to help remember, but it's been a challenge even finding the time to get those done!



Week 0
After effectively spending 2 whole days travelling (or technically, something like 26+ hours in the air, and 6-7 more in transit in Singapore), I finally arrived in Amsterdam with Mum and Dad.  We spent the first few days doing touristy things, taking tours, walking around figuring out where things were, and also settling in (i.e. getting food, unpacking, etc.). Surprisingly, the jet-lag wasn't too bad (apart from having a weird 3-hours awake, 1-3 hours asleep thing going on the first day).

I've been meaning to put up some posts about my adventures in Amsterdam, but I still have heaps of photos I need to process and upload from my travels, and that's currently severely restricted by the laptop problems (i.e. just going through photos and adjusting can easily eat up of 1 battery charge cycle, and then processing + uploading eats another half). That said, the one positive is that the internet in my apartment is really nice and fast for uploading stuff, so that's kindof cool!  (That is something I will miss a bit heading home... what may take several minutes, and fail partway due to slow upload speeds + dropped connections takes < 1 minute here, and always works!)

Highlights:
  • Meeting everyone in person for the first time on Friday afternoon, and seeing the new institute! Wow, what an amazing, intense, and also really surreal experience! It's not everyday that you meet people you've known for over a decade, but not actually met in person before (as the conferences have always been at the worst possible times for me to be able to attend)!
  • Visiting Keukenhof - Man, that place is like my latest favourite happy place! So many cool things to see/eat/do - and so vast. Wow!  I'm thoroughly impressed :D  Now **that's** how you run a flower show!
    • (Note: I really wanted to bring some of the amazing tulip varieties I saw home, but was left cursing NZ's horridly insane + "security theatre"-ish strict biosecurity measures - F*** YOU MPI! F*** YOU ALL!)
  • Going on a bit of a "Blender pilgrimage" in central Amsterdam. In particular, there were 2 particular highlights:
    1. Randomly stumbling across De Waag (and recognising it a mile away from just the peaks of the towers) after having lunch in Chinatown on my first day out and about. It was surprisingly exciting coming across it, and seeing how close it was to a lot of other stuff.
    2. Visiting the old Blender Institute! It took a bit of navigating, but I finally managed to find the old Entrepotdok office! Unfortunately, this was the day immediately after the big move (and a Saturday too to boot), so no one was around to let me in for a look around inside  :( Still, it was good being able to explore around the neighbourhood, checking out the area all around the studio (not just the front door + the obligatory selfies)



Week 1
This week was the kickoff week, and was mostly consumed by "all hands" meetings (and then smaller sub-committee meetings, of which there were also many), where we sat around for 1-2 hours at a time, attending consecutive meetings to flesh out what the current status was, what needed to be done, and the designs that we should use to get there. It was great to be able to spent time debating (sometimes vigorously) these things in person with people I've know for years. That said, for a bunch of coders used to working online, in isolation for hours at a time, it was also quite a change (and challenge) sitting through so many hours of social contact a day XD

It wasn't really until the end of the week that I finally started getting time to get some "actual" stuff done:
  1. My first real commit from Amsterdam (and on a Linux desktop, for the first time in over 4 years), after finally getting a dev environment set up. It was only a small bugfix, but every fix counts right? ;)
  2. My long-term vision doc for the future of animation tools (in Blender/wider industry)

Outside of work, this week was also notable as for the first time ever I'd cooked a meal for myself - Thursday night dinner after work to be precise! (Making the achievement all the more amazing is that up till Wednesday night, I hadn't been able to even turn the gas stove on!). I backed this feat up a number of times the following days too, proving it wasn't just a fluke :)


Week 2
This week, the pieces started falling into place, and we started executing on the stuff that we'd been planning to work on. It was also a week with ups and downs, with several big highlights.

Highlights:
  • On Monday, the Hero open movie was released! This was produced entirely using Grease Pencil and Blender 2.8 - animated by Daniel M. Lara (pepeland) and his team of artists in Spain, sponsored by the Blender Cloud. (As of the the time of writing, we've had 62k views, and been featured on the front page of Cartoon Brew among other things). A cool perk of being here in Amsterdam was that I got to see a sneak preview the finished film in Ton's office shortly before it was released online :D
  • Earlier that day, I also published a Linux shell script to make it easier to quickly download and set up new checkouts of the Blender Git repo, ready to compile and develop Blender. (I now use this myself, when working on Linux)
  • On Thursday/Friday, I worked on merging the standalone Timeline Editor into being a DopeSheet Editor mode instead, making it possible have editable keyframes in the timeline! It only took me around 2 hours before/after lunch on Thursday to get the initial prototype/core working (after discussing the idea that morning when I got into the office); then it was just a matter of getting everything else ported over, and finding a way to apply the necessary version patching (hard). I finally committed this late on Friday, after the weekly, in-between chatting with our interesting visitors that night (see below).
  • On Friday night, we had two interesting visitors to the office after the weekly:
    1. Jos Stam - A legendary computer graphics scientist/researcher, specialising in physics sims. Interesting guy and a literal giant.
    2. A guy from MakerMex (sorry, I can't quite remember your name right now) -  They do amazing stuff teaching Blender/3D to a wide range of people in their local community (including developing a visual-programming environment based on Scratch for teaching people to create models using booleans, and running a "10 cubes challenge", as well as designing and building their own 3D printers.
  • Finding a way to top up my bus chip card. With a reliable way to keep the balance on this in the green, it really made things a lot easier in terms of not having to worry about how I was going to get around town to explore and enjoy nice food.

Lowpoints:
  • Early on Monday morning, the hard drive on my office workstation died - the one I'd just gotten all set up the previous week! As a result, for the first time ever, I opened up a workstation, and did stuff inside (i.e. changing out the hard drive - well, actually... I just left the old one in there, since I couldn't get it out, and just stuck the new one in there, in whatever what I could it to fit!). 
    • Seeing as I'd been planning for a few months on getting myself a tower for my home office for the first time in over a decade, this was a great taste of something I'll probably end up having to do at some point (I also finally learned why "thumb screws" are such a hotly talked about thing amongst the self-builder community ;)
  • I ended up spending a good chunk of Tuesday going through the Grease Pencil branch code, trying to fix compile and merge errors in preparation for getting it mergeable. Unfortunately, due to the multiedit changes + other big refactors that had occurred the previous day, this created a lot of code churn to work through. It was really frustrating work trudging through all the errors that kept coming up :/
  • We had a meeting (actually, 2 separate meetings, separated by lunch) to review the state of the Grease Pencil branch and what would be needed to merge the code to 2.8. We eventually arrived at the conclusion that large changes would be needed, and that we may need to split the work into both "short term targets" (i.e. bare minimum changes needed to get the code to a minimal standard for inclusion, including knocking out functionality where it will cause problems long term for Blender's design), and "long term targets" (i.e. refactors that need to take place to keep the code/behaviour sane in the long run). Overall, it was thoroughly draining for everyone involved to work through the complex issues presented here :/

Other Stuff
On Sunday, I went on a tour of several Dutch cities: Rotterdam, Delft, and the Hague.

The Good:
  • It was good getting to see all three of these in one go. Each one had some very unique and notable things about them. I'd also like to head back to each one and spent some time properly exploring them.
  • Rotterdam's architecture is so cool!  Lots of very imaginative designs!  Particular highlights were the u-shaped food hall (with the large renderings of food on its ceiling), the yellow cube houses, the bridges, and the central station.
  • Delft was also a nice little place (if a little sunny that day). It's like a tiny version of Amsterdam - but much tidier and neater. The other major highlight of this
  • The Hague was like a more modern and "richer" place, like a cross between Amsterdam and Rotterdam, as it had a balance between the two (but leaning towards more of a "formal + tidy" version of Amsterdam).
The Bad:
  • Unfortunately, our time in each location was extremely limited. About 45 minutes at each stop - or effectively 30-35 minutes if you didn't want to get left behind (and that was a definite risk with this bunch of people).
  • The fellow travellers that day were also not terribly friendly bunch overall. That did lead to some rather awkward encounters a few times (including *ahem* the Mainland Chinese dude who stole my seat on the bus, crushing my backpack with his junk, and ranting incoherrently when confronted about it.

Week 3
This week was a short one (due to Kings Day on Friday), and also one where my memory of event starts getting a little hazy.

Highlights:
  • For a bit of fun, on late Tuesday afternoon, I decided to spend an hour or two polishing up the Timeline a bit, making several main changes:
    1. Improving the workflow for working with "Camera Markers", but making the hotkey easier to use, and also making the markers draw as camera icons (which would should the names of the cameras)
    2. Tweaking the display of the preview ranges vs frame ranges, so that both are visible at the same time, so it's more obvious that one "overrides" the other.
  • After a lot of work, I managed to set up all the tasks for the Operator "Copy on Write" taskforce.  The idea is that we need to go through checking on all the operators in Blender, making sure they won't blow up when "copy on write" (i.e. the approach used by the new dependency graph to allow us to evaluate multiple things in parallel, such as motion paths being calculated in the background). I ended up hacking together a script to put this together (by scraping the Blender source code for operators), and then putting these operators into Phabricator (i.e. bug tracker) tasks. Despite the parts of the process being automated, it still ended up being a lot of work creating all the tasks.

Lowlights:
  • During the Grease Pencil meeting on Monday afternoon, my laptop's power adapter started playing up, eventually resulting in my laptop dying before the meeting had finished. The meeting was also a bit of a mess, as it was hard to focus with all the laptop power-related distractions, a busy room full of developers holding other meetings, and just the overall shittiness of trying to do videochat meetings (TBH, I never really seem to be able to make sense of what people say during these, other than feeling a bit awkward staring at the screen wondering where to look).  
  • When I got back to my apartment to debug things, I discovered that my laptop didn't seem to be charging, and removing the battery to start with just the adapter didn't seem to be working. I did however manage to conclude that it seemed to be the adapter that had gone bad - it's just that the laptop was so drained of power that it looked a lot worse. Unfortunately, between King's Day here, Anzac Day back in NZ, an international postal service shenanigans, I still haven't seen the replacement adapter that I'd gotten shipped over. (The local shops also seem to be out of adapters right now). Argh!
  • Over the weekend, the weather basically packed up, and it rained for the whole weekend, and either side of it. So, a total of 4-5 days of cold, windy + rainy weather. It was also quite dark, as the cloud cover just made everything look dark and dreary.

Kings Day:
Wow... where to begin! This probably deserves its own post at some point, but it was quite a bewildering and baffling experience around the office - a usually quiet area suddenly turned into a crowded and crazy marketplace where everyone was selling all their junk. And in many cases, it was very literally trash! And then there were all the happenings in the downtown area!



Week 4
This week was a story of fighting fires both on and off the field (aka the "super janitor" week). (It was also the week I ended up giving up cooking, as it was one more hassle I could do without... even though that did mean I ended up having to let some of my favourite broccoli go to waste :(

Things started going bad on Sunday morning, when, during the hot water heater started dying near the end of my shower. By Monday morning, things had started getting bad - the water heater was constantly dying (in fact, I woke up to a cold room as the thing had died overnight) - and only stayed alive long enough to wash my hair with lukewarm water before it died outright. By Tuesday, it was literally impossible to take a shower :(   We ended up contacting the landlord, and got the water boiler replaced. Finally, we had hot water again! What a revelation! Unfortunately, the problems returned last night with a water leak! Cue another round of water shortages/issues...

Meanwhile, in the office, I spent most of the week fixing bugs with operators (mainly with armatures - posing and editing). The good news is that we've been making some solid progress here, but the downside is that the leftover ones are all quite tricky yet important to get working!  More work continues next week!

In terms of the Grease Pencil branch, I've also been spending a lot of time getting the branch working with all the changes in 2.8, AND trying to clean up all the issues in the code (both existing, and those caused by the refactors/2.8 changes, etc.)  Currently, there's still a lot of work ahead to get this back to a stable state :(

Perhaps the brightest moment of the week was when we had the water working again at last mid-week, and I managed to find some time to have a walk in the park-like areas across the road from our apartment. I'd been wanting to do this for weeks now, but the weather and other things kept getting in my way. Anyways, it was a really relaxing experience, and I certainly need to return to explore in more depth!


Summary
Overall, it's been fun getting to hang out with everyone in the office. Despite the issues, I've been really enjoying my time here in Amsterdam.  There are lots of other things I'd like to mention, but I'll leave those stories for another time. Now, it's time to head off! Until next time :)

No comments:

Post a Comment