Tuesday, November 26, 2013

Holiday Time

In what is quickly becoming a bit of a tradition, tomorrow I'm heading off on holiday for a week. However, in a bit of a break from tradition, this time I'll finally be able to see a full Friday and Saturday in Hong Kong (since on previous trips I've always ended up arriving late on Saturday, and leaving on Thursday/Friday).

During this time, I'll have limited (if any) connectivity - a good chance to take a bit of a break and also to get some serious exercise! Char Leong, MTR, Christmas Lights: here I come!

Saturday, November 23, 2013

Caminandes 2 Released

In case you haven't heard, Caminandes 2 has been released online.

Congrats to Pablo and the rest of the team for another entertaining short :)

Thursday, November 21, 2013

Thoughts on Rebase-Based Git Workflows - Rebase Considered Harmful

Personally, I'm not a fan of the "rebase" tool in Git workflows. Having initially tried it when starting out using Git over 2 years ago, abandoning it not long afterwards, and finally having to (grudgingly) start using it again for Blender's repos, IMO, it ends up being more of a hassle than benefit.

In all my other repos, I've settled on using an GitFlow-inspired workflow, which I think works better in the long run for distributed/parallel development streams with small granular commits - something we're slowly migrating towards. This post discusses some of my concerns with rebase-based workflows, and the kinds of issues that arise from using it.

Wednesday, November 20, 2013

Assorted Linux Tweaks - Over a Month in Linux

Here's another list of various tweaks I've made to my setup today to get it working with all the hardware I have (and a request for help!)

These include:
* Preventing USB Mouse poweroff on battery power
* Fixing video playback (green screen) issues in Qt applications
* Finding CA Certificates to get eduroam Wifi Working
* Avoiding duplicate entries in Bash up-arrow history

Monday, November 18, 2013

Blender Git Migration - Productivity Tips for using Git Gui

As I've written about before, IMO the "Git Gui" frontend is one of the best tools around. Sure, it looks butt ugly - like some nasty 90's relic when run on anything other than Windows (surprisingly!) - but what it lacks it more than makes up for in terms of being 1) flexible and easily extensible, and 2) it very clearly exposes you to the Git tools and workflow as it was meant to be done.

For all the pretty gloss and extra OS integration that all the others offer, you'll find that they fall down miserably on these fronts, and eventually end up just complicating things a bit.

Saturday, November 16, 2013

Blender Git Migration - Getting the sources for devs with commit access (as of Nov 16, 13:57 UTC)

As you may have heard, Blender development is finally moving over to Git. This is the second version control system switchover that's occurred over the years that I've been involved in Blender (the first being the CVS to SVN switch; and event that I still remember!).

After several delays, the repository is finally in place this evening, so I tried cloning (i.e. grabbing the sources) from this repository to get my dev setup with this sorted out again. Thanks to Sergey for help resolving some of the issues I encountered - hopefully many of these will be resolved by the time many of you start using this for real.

NOTE: These notes are only for developers with commit access to the main Blender.org repository. For everyone else, the
git clone --recursive git://git.blender.org/blender.git
on the wiki is the recommended procedure.

EDIT: Also, I'd strongly recommend using the setup I describe in my followup post.

Saturday, November 9, 2013

Getting NVidia Optimus + Intel HD 4600 + NVidia 740M on Linux Mint 15 (64-bit) Working

I've been postponing this (fixing up the graphics drivers) step of my Linux dual-boot setup on my HP Envy 17-j007tx process for a few weeks, but today I finally got around to sorting out these issues.

This had been put off several times already, given the various tight deadlines I was facing and the fact that apart from some minor inconvenient issues (i.e. heat issues + shortened battery life + a few OpenGL rendering glitches) there weren't any really pressing issues for which it was essential that I got my NVidia card working (especially considering the price of failure: a non-functioning Linux setup, potentially with a forced return to Windows 8).

Friday, November 8, 2013

Silvereyes in Action [Video]

This evening, I returned to my desk to find two silvereyes happily munching away, the closest just centimeters from the window. Not wanting to frighten them off, I decided to try capturing some video of their antics...

"This is the life!" - A plump silvereye surrounded by an all-you-can-eat buffet, leisurely munching away.

"Clumsy Silvereye" - This is one of my two favourite clips from today. I crack up every time I watch the antics of the hungry, clumsy, and slightly plump silvereye in this clip. So cute!

There's also a third video, but I'll hold off uploading that one lest I inadvertently overuse my bandwidth allowance and suffer Internet downtime for the next few days (not that I won't now :/) due to crappy throttling which results in frequent infuriating timeouts. Here it is, uploaded from where with a faster and less bandwidth limited connection. (BTW, the downtime from last time lasted 3-4 days)

"Close Up" - A silvereye dining right up against my window.

Blender Tip: Disabling Path Following for Curve Parents

Recently I investigated a bug report and a similar thread on BlenderArtists about how to have greater control over how objects behave when parented to curves.

For instance, sometimes you want to parent one object to the curve object, so that the two components will be translated/rotated/scaled together. That is, when you go into edit mode on the curve and try to move the endpoints of the curve, the position of the child objects should not change, moving relative to the moved points.

To have child objects ignore changes to the curve path, simply disable the checkbox in the "Path Animation" panel header. This setting controls whether a "Path" (i.e. a tessellated representation of the first curve island within a curve datablock, with positions on this accessed using a parametric parameter - similar to the "Offset Factor" in the Follow Path constraint) is generated and used to determine the parent location that child objects see. It is enabled by default to make curve following animations easier to achieve.

Silvereye Season

November is one of my favourite months of each year, as that's when the bottlebrush outside my window flowers, attracting the silvereyes within close range to feast. In past years, it's usually at least the second week (or after the 10th) before the bottlebrush really starts to flower. But this year, it's some 2-3 weeks early, and is currently in full bloom!

So far, I've seen at least 3-4 different birds coming in this year. So far, it seems that one of them has an orange patch on its head, and there's a pair of them which often come together.

This year, they seem quite tame, and in general don't seem quite so scared about my presence as they happily feast on for several minutes even while I'm following them intently with a telephoto lens pointed straight at them and clicking away noisily (having a convenient clump of flowers which stick up above the rest but still within close camera range helps too :)

On some days though, they've been a bit sneaky: it's like they have a sixth sense which lets them know if I'm sitting at my desk or not. For example, I once caught a flock having a free-for-all one day after having wandered off for just 5 minutes! They didn't even make a single noise as they happily dined!

(Side Note: I'm currently still in the process of adjusting my photography workflow on Linux. Apart from adapting to some new software/hardware support issues, I'm still struggling a bit with monitor calibration on this laptop. In its default configuration, yellows and blues have some rather sickly casts, which have been somewhat tricky to entirely correct).

WIP Experiment - Including Relevant Parameters in Keymap Names

Today for a bit of a challenge, I've been playing around with the keymaps editor UI to try and get it to display more helpful names for operators. As anyone who's played with this knows, it's not terribly helpful right now when you're faced with a list of 10 items in a row labelled "Context Enum Toggle" and each with different hotkeys ;)

DISCLAIMER: The following screenshots merely demonstrate a highly proof-of-concept hack aimed at establishing techniques for successfully extracting the necessary info out of the PyAPI. In practice, this has been much less cooperative than I'd have liked, so the ways that these things are actually presented is less than optimal.

Monday, November 4, 2013

Release Notes for Blender 2.68 and 2.69

It's been a few months since I last made a post highlighting some of the changes to animation-related features in Blender. During that time, we've had 2 (!) major releases. So, it's probably time that we caught up on things a bit :)

Since it has been quite a few months, I may have missed some changes in the following highlights. Also, since it's getting a bit difficult to remember which version exactly some of these changes occurred in, I've just clustered these by category instead.