For about a year now, I've been somewhat baffled about a some annoying differences between the way sub-pixel line strokes with < 100% alpha assigned and drawn using QPainter differed between Windows and Linux (i.e. "cross platform" software in my books :P)
A few minutes ago, I finally stumbled across the answer ([1], [2]), while checking out a solution to another problem (namely, how to replace the scrollbars - or better still, access their internals to figure out the position of the trough and thumb in a cross-platform way, and use that info to figure out how to map a indicators/target locations to that - in QAbstractScrollAreas/QScrollAreas and their subclasses such as all the Item-View classes). Apparently on Windows, they use a custom rasterer on Windows, while directly using X11 on Linux. No wonder just changing flags had little to no overall effect on fixing the problems I was having!
Links
[1] http://www.zestymeta.com/2013/03/qt-and-peril-of-multi-platform.html <- the post which alerted me to this problem in the first place
[2] http://blog.qt.digia.com/blog/2009/12/16/qt-graphics-and-performance-an-overview/ <- confirmation from the source...
Aligorith's Lair
Ramblings, rattlings, and ranting...
Wednesday, June 19, 2013
The Depsgraph Refactor Project
It's official, the great depsgraph refactor is under way at last!
This diagram shows some of the key components or classes of issues that we'll need to be tackling with this system to get it in shape for the types of things we need from it. Orange are for issues that will have direct impact on users (i.e. stuff will now work better and faster), Grey is stuff that is mainly useful for BlenderDevs when writing tools and other stuff.
The Bluish box (i.e. looping over objects-datablocks, and evaluating updates by going downwards from there is a slightly contentious point. IMO we need to do this or else we can't really achieve the generality and granularity objectives - we'd effectively still be stuck in the stone age (where we still end up keeping some ever-bizzare restrictions). The full details of what exactly should replace it though is something that's still heavily WIP, but I do have some preliminary ideas I'm currently toying with.
This diagram shows some of the key components or classes of issues that we'll need to be tackling with this system to get it in shape for the types of things we need from it. Orange are for issues that will have direct impact on users (i.e. stuff will now work better and faster), Grey is stuff that is mainly useful for BlenderDevs when writing tools and other stuff.
The Bluish box (i.e. looping over objects-datablocks, and evaluating updates by going downwards from there is a slightly contentious point. IMO we need to do this or else we can't really achieve the generality and granularity objectives - we'd effectively still be stuck in the stone age (where we still end up keeping some ever-bizzare restrictions). The full details of what exactly should replace it though is something that's still heavily WIP, but I do have some preliminary ideas I'm currently toying with.
Tuesday, June 18, 2013
HKTrip12 - The Full Series
So, some 6 months (due to various delays and things which got in the way) after I first started writing a series of posts about my trip to Hong Kong in November 2012, I've finally completed this writeup project!
Monday, June 17, 2013
HKTrip12: Day 6.1 - Walkabout in Sydney
This twelfth episode covers a daytrip walkabout in Sydney on a stopover between an overnight flight from Hong Kong early in the morning, to a flight home in the evening.
HKTrip12: Day 6 - Arrival in Sydney
It's been a while since the last installment (with various hiccups along the way), but I just wanted to finish this series before starting the next one. So hopefully, this time we'll get all the way to the end at last :)
This eleventh episode covers the second part of the overnight flight from Hong Kong to Sydney and a spot of aerial photography.
This eleventh episode covers the second part of the overnight flight from Hong Kong to Sydney and a spot of aerial photography.
Tuesday, June 11, 2013
Risk Scores - Alternative Blender Security Approach
Over on the blender-developers mailing list these past few days, there has been a lively discussion about the state of security in Blender. Of particular concern is the potential for malevolently-minded individals to create malware laden .blend files which then get distributed far and wide to unsuspecting users who were none the wiser about these problems. Particularly troubling too is that many virus scanners would probably not be able to detect these problems as they currently stand.
Perhaps I'm taking a much too simplistic view of these issues, but it seems that while we may never be able to achieve full bulletproof fortress status, there are a number of feasible steps which can certainly help to identify a large number of these types of attacks to allow users to make more informed decisions about their own safety and security. The following proposal is a just a random idea I had yesterday afternoon of an alternative solution that (at least given the facts I'm aware of now) sounds entirely feasible.
Thursday, May 30, 2013
The Widgetmakers' Frankenwidgets
Partly out of necessity, partly out of interest and habit, and partly in the name of science, I've spent a considerable part of the past two or so years building widgets. Examples of applications containing a plethora of such widgets are shown below:
FileShell - An experimental, (attempted) cross-platform file browser, built as a test bed for a number of things I've been developing for my research work (and also to host a few features I've personally wanted to see in a file browser). Nearly every single widget shown here has had some amount of bashing applied to it. Toolkit: Qt / PyQt.
G6 Feedback - There are number of widgets on display here, notably the "EditableLabel" (when you hover over a textual label that is currently acting as a placeholder, a box will be drawn around it while you hover, and it will be replaced with a textbox where you can actually change the text when you click on it - e.g. "Click to set question"), and time-selector combobox (for either selecting a preset time, or manually specifying in terms of the units you care about). Plus, the fact that all of this was done in an antiquated toolkit meant that everything needed an extra level of polish on it. Toolkit: Java Swing (Nimbus theme)
FileShell - An experimental, (attempted) cross-platform file browser, built as a test bed for a number of things I've been developing for my research work (and also to host a few features I've personally wanted to see in a file browser). Nearly every single widget shown here has had some amount of bashing applied to it. Toolkit: Qt / PyQt.
G6 Feedback - There are number of widgets on display here, notably the "EditableLabel" (when you hover over a textual label that is currently acting as a placeholder, a box will be drawn around it while you hover, and it will be replaced with a textbox where you can actually change the text when you click on it - e.g. "Click to set question"), and time-selector combobox (for either selecting a preset time, or manually specifying in terms of the units you care about). Plus, the fact that all of this was done in an antiquated toolkit meant that everything needed an extra level of polish on it. Toolkit: Java Swing (Nimbus theme)
Labels:
coding,
filebrowsers,
g6-feedback,
linkdump,
pyqt,
ramblings,
software-dev,
UI
Tuesday, May 28, 2013
Bret Victor's Work
I've been a huge fan of Bret Victor ever since I came across his work in the middle of last year. It's always quite inspiring watching his talks or reading the essays he puts up on his site. In case you haven't done so already, go check out his stuff over on http://worrydream.com/, and also some of the videos below:
Inventing on Principle from Bret Victor on Vimeo.
Stop Drawing Dead Fish from Bret Victor on Vimeo.
Stop Drawing Dead Fish from Bret Victor on Vimeo.
Thursday, May 16, 2013
Getting Git + SSH to play nice with the COSC Servers...
This post is more of a little reminder-to-self should I forget how to get this working again in future. The intro below gives a bit of background info about the situation of how I came to be using Git, but also the troubles trying to get it to work with the SSH/Remote access to my department's Linux servers.
Subscribe to:
Posts (Atom)




