Thursday, July 24, 2014

Joining the cult of the "picky about equipment" techies

In the past few days, we've been moving back into the lab/office space in our building following the remediation works of the past few months. As a result of this, I've been setting up a new workspace for myself from scratch - this time with the flexibility to actually configure a lot of the stuff to my liking (given that we had quite a lot of extra/idle furniture just lying around to choose from).


Tuesday, July 22, 2014

OneNote - An Experiment

After holding out against getting yet another copy of MsOffice for over a year, I finally ended up installing Office 2013 on my laptop. Along with this came a copy of OneNote - Microsoft's note-taking / scrapbook / braindump app to rival Evernote and co. Over the past few days, I've been giving it a bit of trial run to see if it might find any room in my workflow...


Friday, July 18, 2014

Stop the Madness!

The events of the past few months, and especially those which have occurred over the past 24 hours are deeply troubling. Stop the madness! When will us humans learn to stop slaughtering each other in the name of one or other ideological differences?!

Just because another group of people don't subscribe to your particular beliefs about there being "one true <insert-divine-figure-here>" is not an excuse to wage war against them. Violence motivated by or questionably "justified" by religious/sectarian differences, or that fuelled by excessive/unchecked nationalistic "my thingy is bigger/better/stronger than yours" arrogance (which essentially boils down to the childish posturing by cliques of 5-star generals holed up in secretive underground bunkers who have to find a way to justify their multi-billion dollar budgets each year), and in the name of claiming and grabbing territory that was "rightfully" theirs, has no justifiable place in the world. None. Zilch. Nada.

It's especially despicable when civilians and other innocent bystanders inevitably get caught up in the crossfire. Whatever your original motivations, when innocents are harmed/killed/maimed/forcibly displaced or imprisoned in the fog of war, regardless of which side is responsible, both sides are in the wrong. No single side can claim that they still have any semblance of a moral highground for any of the actions which follow. War is War. War != Good + Justified.


EDIT: Today's Google Doodle has a nice take on this

Tuesday, July 15, 2014

Windows Tip: Adding an item to the context menu for a particular filetype

This afternoon, I set up Qt5 (or rather, PyQt5) with the Python 3 interpreter so that I could have a play around with the new stuff (e.g. integrated widgets, etc.) in QML/QtQuick 2 (which ships with Qt5). By and large though, I still want to use Python 2 for the bulk of my work for the time being, so that got me thinking about adding context menu item to all the Python files so that would run these using the newer interpreted instead.



Here's what you need to do on Windows 8 to do this:
1) Start: regedit

2) Navigate to:  HKEY_CLASSES_ROOT\Python.File\shell

3) Right-click on shell -> New Key. Call this something like "Run with Python3" (or whatever you want that command to be called in the menu

4) Right-click on the folder/key created in step 3 -> New Key. Call this "command"

5) Double-click on the "(Default)" entry under command. Enter the command to run the Python interpreter as the new value for this entry

6) Repeat the process for HKEY_CLASSES_ROOT\Python.NoConFile\shell 
     (NOTE: this step only applies when dealing with Python files. If you're doing this procedure on some other file type, replace all the "Python.blah" bits with the relevant types for the filetype you've got)


I'm just writing this down here so that I know where to look next time I need to do this :)

Monday, July 14, 2014

QML in the Wild

In my previous post, I included a brief rant on the current trends of using raw HTML+JS+CSS clusterf***s to develop applications. After doing some more digging, it turns out that a group of devs in the KDE/Qt communities have had the very same thoughts, and have actually done something about it...

Introducing QMLWeb: A JavaScript port of the QML engine for use in web browsers. From the tests I've played with, it is somewhat functional already (though I'm sure it still has many rough edges if you poke hard enough). Hopefully in time this does get somewhere. In the meantime, I know what I'll be playing around with next time I'm looking at hacking together a webapp :)

----

It turns out that there are also some other interesting projects going on out there with QML - All of which are exactly the kinds of things I'd been dreaming about for a while. A prime example is SlideViewer (an as-of-yet unreleased system, which the guys at KDAB have been teasing us with). It certainly shows promise of finally being that tool for defining dynamic presentations where you can bundle up certain assets so that you can progressively build on them (vs having to create new copies on each slide, and manually propagate changes to each). Though their variant probably doesn't do this, there's nothing stopping us from doing it in standard QML :)

----

Finally, to conclude our little tour of QML-based systems in the wild, it turns out that it is already in wide use for things like the KDE "Plasma" widgets and Ubuntu's Unity Launcher. Then again, I should have guessed that that would be the case, as it's clearly battle-hardened in ways that Gnome/GTK simply isn't :P

Experiments with QML and Vim

This weekend, I've been having a lot of fun playing around with QML, and doing so in Vim (instead of my usual Notepad++). Chances are that you probably haven't heard of QML before (or if you did, your projects at the time wouldn't have really benefited from it, given that it does have limitations when it comes to being able to use standard widgets).


QML is basically a "declarative" language for defining dynamic UI's, built on top of the Qt Framework. It's syntax is like a nicer version of CSS, with the ability to throw snippets of Javascript in when needed to define small bits of custom logic when needed, and (if it's hosted via PyQt) you can even code up any of the more "tricky" or substantial logic in Python, then use the PyQt QObject bindings to make this available to your QML code.

Although it doesn't come with a fully fleshed out widget set that you can use (though apparently, this is only true for the PyQt4/Qt4.x that I'm still using, as they've developed a set of widgets for that purpose in Qt5), it more than makes up for that in terms of what it enables you to do instead.

Basically, if you're looking for a lightweight domain-specific language for defining/prototyping little graphical scenes, complete with dynamic behaviour (i.e. procedural animations, animation effects, and transitions in response to user input), and the ability to compose/package up you creations as reusable assets, look no further. This toolkit is for you!


Friday, July 11, 2014

Fantail

It's been a busy day today, with an early morning meeting + welcoming morning tea (for the visiting professor teaching the course I'll be tutoring this semester), and an afternoon function for the just retired professor. Following the latter, I went for a short walk around the Ilam Homestead grounds, during which time I came across two of these cheeky little guys...




Yep... Fantails! This is the first time I've actually been close enough to have a chance at getting some shots of them (though I've heard a few chattering away in the trees a few times). Notable for their large fan-shaped tails, it turns out that despite not being the best of fliers (i.e. they can't fly in a straight line for one thing; their oversized tails tend to drag them downwards an into crazy spiral loops), they're still fast enough to cause trouble for photographers trying to get some shots of them!

Thursday, July 10, 2014

FAQ/Rant: Learning your way around a new codebase

From time to time, we get emails and forum postings asking about how to get started developing Blender. These almost always follow a similar predictable pattern (no offense to any individuals whose posts actually resembled this almost to the letter):

1) Blender is cool. I want to write some cool new big feature (*A) or fix some bugs (*B).
2) I've experience in C/C++/Python/Java/OpenGL and/or have taken classes in C/C++/OpenGL/matrix math (*D)
3) I'm trying to understand Blender's source code. The source code is so large that I don't know where to start (*A+E) / the "learning curve is too steep" (*A+D+E) / I tried stepping through the code in a debugger and it's too complex/hard to follow (*D+F) / it's weird/confusing (*D+F+G)
4) HEELLLLPPP MEEEEEEEEE!!!!!!!!!!!!!!!!!  PLZ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Violin Improv Recordings

This afternoon, I took some time off from hacking like a madman on some projects I've got going on at the moment to play around with my violin for the first time in several months. Another disclaimer is that these little recordings were practically made up on the fly vs being anything "formal" - TBH, I no longer have any appetite for playing "formal + serious" western music in concert settings. Anyways, disclaimers aside, here's some music that I had fun bashing out!














PS: Why I never thought of recording myself playing/practicing back in the days when I was still obliged to play this still baffles me. Having done it a few times in the past few years, I've been starting to pick up on things I never did before; certainly, if I were to pick up teaching now, this is something I'd recommend my students to do!

Tuesday, July 8, 2014

More from Friday's Sunset (and a Recap of the Past Week)

Here's a followup post with some more shots from Friday evening's sunset.





Saturday, July 5, 2014

Turbulent Times


A teaser of the sunset this evening... I've got a whole lot of other equally nice shots from this evening that I haven't uploaded yet, along with many other backlogged posts + photosets.

It was quite chilly out there at the time, given that, after all we'd just had 2 days of a bitter southerly change which has dropped temperatures from balmy and spring-like "17-degrees and not a cloud in the sky" of June to deep winter conditions.

Friday, June 27, 2014

Glen Keane's Duet

You may or may not have already come across Glen Keane's latest short, Duet, which has been doing the rounds since its reveal at Google's I/O conference earlier today. This was produced as part of the ATAP shorts series - a collaboration between Google engineers and animators, who work together to produce a new type of interactive short film (I guess you could call it that) where viewers use their phones as interactive windows into the world of the story.



Wow, I really love this. It's a really captivating and beautiful piece. There's just something really soothing about the smooth flowing shapes, and that unmistakable pencil-on-paper "Glen Keane" look. It's often when looking at hand drawn animation like this, that, as a CG animator + developer of software for doing so, that I get inspired to think again about the tools we have at our disposal, and specifically how we could wring more expressive flexibility out of them.


The full presentation, including background info about how they did it: http://youtu.be/cV8JDSO1NS8?t=39m50s