Aseigo

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Wednesday, 12 May 2010

Javascript animations

Posted on 14:33 by Unknown
We're now into the complete-and-stabilize phase of the 4.5 development cycle, so things are settling in a bit more and blogging about some of the features becomes easier. I'm writing an article for publication on TheDot about the new activities features that we're working on, but I also wanted to say something about another feature set that's not quite so user-visible: using Javascript for animations.

A set of animations is provided in the Plasma library which build on top of the Qt Kinetic animation system. Qt Kinetic is really a fairly "low-level" set of classes for defining animation timelines and having them push and pull various values around on a curve. To avoid a lot of duplication of implementation for things like "an animation that fades an item on the canvas out" as well as to provide some more semantics based options such as "make something appear", libplasma provides a way to access such animations as well as some additional curves via the Animator class. In previous releases, prior to Qt Kinetic, Animator was the animation engine. Now it's essentially a factory for animations.

When I first decided, pre-KDE SC 4.0, that libplasma should provide a way to animate things one of the things I wanted to do was to allow different Plasma applications, plugins and themes to either add new animations or define and alter existing ones. Zack may even remember that conversation from my living room a few years back. :)

We ended up delaying work on that when we found out that Qt Kinetic was in development. Now that we have both Qt Kinetic and good support for it in libplasma, we could move on to realizing that part of the vision.

At Tokamak 4, we decided to try out the concept of driving animations with Javascript. Why? Well, here were our use cases that we needed to fulfill:


  • Desktop themes may want different animations; for instance, one theme may wish for a Plasmoid to spin and grow when it appears instead of grow and pulse.

  • Different Plasma Workspace shells may have different needs: Plasma Desktop may want something more eye catchy and can afford to spend more CPU cycles, while Plasma Mobile may not.

  • A scripted Plasmoid may wish to provide additional animations for its own use and distribute them as part of the package.



To avoid coming up with three different solutions or tying the platform-neutral themes and scripted Plasmoids to C++ plugins, Javascript via QtScript seemed like a good option to explore. After an afternoon design session at Tokamak 4 between myself, Marco, Adenilson and Igor, Adenilson started in on an implementation. I helped out with some of the scripting approach and integration with libplasma while Adenilson kept an eye on performance issues, as he documented on his blog here and here. Our biggest concern was: would it be performant enough, would the overhead be low enough? Turns out that it was, and we now have a solution that covers all our cases elegantly.

In KDE SC 4.5, both Plasma applications as well as desktop themes can define animations using Javascript. With a bit more internal work in libplasma, Plasmoids will also be able to do the same. This is a really interesting alternative to lightweight plugins that extend core functionality in an platform-independent way. To date, we've been using QtScript mostly for adding features on top of Plasma applications, but now we're harnessing it to provide feature sets within libplasma itself.
Read More
Posted in | No comments

FLOSS Weekly

Posted on 14:27 by Unknown
This morning I had the opportunity to play co-host on the FLOSS Weekly show with Randal Schwartz. We had a really nice discussion with two of the Haiku project team members and despite a couple fairly minor hiccups (I rather forgot FLOSS Weekly includes a video component!) it was really a enjoyable experience. We talked about the recent alpha release of Haiku, what their goals are, the design concepts of Haiku and even touched a bit on the availability of Qt as well as Webkit on their operating system.

The show will be up on the FLOSS Weekly site tomorrow morning at 09:30 PST, which is sometime in the mid-afternoon in Europe, so be sure to check it out then!

It also looks like I'll be a semi-regular co-host on the show going forward. I'm looking forward to the next episode that I'll be joining, and will post a heads up in my blog here when that happens so those who wish to watch the pre-production recording live and a day early can do so.
Read More
Posted in | No comments

Tuesday, 4 May 2010

i don't need no stinking nepomuk .. right?

Posted on 10:28 by Unknown
Every so often (this is today's theme ;) I hear someone say something along the lines of, "I don't need Nepomuk Desktop Search. All my files are properly arranged in a neat folder hierarchy. I am not in need of any help with that, so Nepomuk is a waste of resources and I don't care to have it installed."

I am sure that such people are right about one thing: they have their files highly organized in a great filing system that they use with a great degree efficiency, and as such don't need something to index those files for them.

Nepomuk, however, is not about indexing files, at least not exclusively. It is one things Nepomuk can help you with, but they call it a "social-semantic desktop project" and not a "index your files project" for a reason.

Nepomuk is being used more and more to track, coordinate / orchestrate and index non-"files on my disk" data. Let's take two examples: Akonadi and the Plasma Desktop.

Akonadi is using it to provide search for email, contacts, events, etc. which is one step away from the "file indexing" idea. Instead of building its own search database (and all the overhead that implies), Akonadi is able to lean on Nepomuk for that and, as a bonus, be able to not only index but map the correlations between those sets of data which, as a human being, we'd expect to be there and have at our fingertips.

The Plasma Desktop is going even further with Activities. We now have the ability to store, retrieve and mark as "active" which desktop activity you are working on. There is no file anywhere that maps to this. KWin will be gaining the ability to map windows to these activities, and any other application (KDE or not!) can also choose to map internal data and settings to activities and take appropriate action when the Activity context changes. The mechanism that ties this together? Nepomuk. Since we're using Nepomuk, we get the ability to tie documents and other URL based locations together with Activities as well .. for free.

For me, Nepouk's ability to index my files is a nice feature. It's also one I currently have turned off due to personal preference. Nepomuk's real feature comes in the form of all the indexing and, more importantly, correlation services it provides for all the more ephemeral data and workflow that happens on my computer. Right now Nepomuk is using less than 2MB of unshared memory on my laptop (yes, including the Akonadi bits). That's a fair price in my eyes for that functionality.

Critiquing Nepomuk as a file indexer is therefore selling it short and missing out on the real opportunities it represents. Those opportunities only grow as we exercise one of the attributes that KDE has long been known for: our ability to integrate technologies horizontally across our applications and libraries. The more we use Nepomuk for the things it was truly designed to make possible, the more we'll see the benefits beyond it being a file indexer.
Read More
Posted in | No comments

priorities

Posted on 09:48 by Unknown
Every so often I hear someone assert something along the lines of: "Distro X doesn't customize KDE's look and feel and instead sticks mostly to the defaults, which shows distro X doesn't really care / isn't competent / isn't doing enough to differentiate itself." At that moment the person has betrayed an interesting bias they have: they perceive the F/OSS space as the arena for competition, where Distro X is supposed to win over Distro Y and that's what really matters.

But is it?

When trying to build recognizable brand, consistency is important. Microsoft does it with Windows and their IHV ecosystem, Google with their Android handset manufacturers and Coca-Cola with their global distributors, to name but three in a see of thousands. In each case there are many companies at the "leaf nodes" of the distribution network which create products that contain Microsoft's, Google's, Coca-Cola's, etc. special sauce. The products, while differentiated, are also recognizable as being part of Microsoft's, Google's and Coca-Cola's brand all the same. This is critical for building an effective, recognizable brand which average people can and do build a relationship with. It is what people make decisions based on.

What about us? Well, we have a handful of "top tier" F/OSS end-user distributions, several dozen lesser known groups (who actually out-sell and out-ship the top tier distros for desktops, interestingly enough) and hundreds of "C listers". They all share the relatively small "F/OSS desktop" ecosystem.

This puts a choice before us: to aggregate brand or create distinct brands.

The aggregation choice goes something like this: we can aggregate the brand power of all of these groups together to create a brand that is unique and recognizable and which people can, and will, build a relationship with. Such a brand is much more resilient to one distribution or another jumping the shark (which happens from time to time in F/OSS). It also leads to the creation of common goals for us all to work towards and makes it easier, as a result, to work together; this is a bonus in addition to the chance for a larger and more effective brand footprint.

The distinct brands choice goes something like this: each distribution can attempt to build their own brand, hoping to achieve enough consistency, enough market share and enough of a compelling story over time on their own to create significant value. This has the side effect of increasing the tension between distributions since it puts them in direct competition over our own "heartland": the minds and loyalty of people already using F/OSS as well as those who might in the future choose to do so. So not only does it mean a smaller, more confusing and ultimately innefectual brand footprint in the general market, it also means higher tension between those who would benefit most by cooperating to grow the overall shared market position of F/OSS.

It comes down to a choice between competing with each other as strongly as we can or competing together for the vote of those who may use F/OSS. It means choosing whether our loyalty is primarily with F/OSS or primarily with Distro X. It means choosing whether we want a distinguished brand we all share or a hundred distinct brands each with little if any value.

At the end of the day, competing successfully with Apple or Microsoft has as much to do with the form and functionality of the software we ship as it does with our attitude towards each other and how we present ourselves as a whole to the world at large.

Which is why I feel that those who push for and praise distribution differentiation through distinct visual branding are engaged in an act of sabotage against F/OSS. What makes this tragic is that this is not their intention in the least and the act is, in that sense, completely innocent. The effect, however, is no less for that innocence. The question is: can our eyes be opened?

I don't think the distributions that engage in this kind of behavior will ever see the light on their own unless we, their supporters and users, speak clearly to them. This is not because these distributions are "evil" or any such thing: no, they are simply driven by natural incentives which push them naturally towards this end. Those of us not in the vocation (or avocation) of building distributions are the check and the balance to that result. Instead of damning a distributor for working together with others and building common brand value, praise them. Instead of praising the short sighted efforts of distributors who erode the common brand value in preference to their own interests at cost to all (including themselves!), provide (constructive) feedback that opposes such attitudes and, if need be, vote with your feet.
Read More
Posted in | No comments

Monday, 3 May 2010

supernatural

Posted on 10:54 by Unknown
We've gotten into a bit of rut over the last few months here, though it's the good kind of rut: we've been going on hikes most weekends, exploring the outdoors. The southwest coast of Canada is just perfect for it: mountains, oceans, forests and relatively temperate weather. I bought some new hiking boots last week in recognition that we were going out more often and onto more difficult terrain. While the shoes I had had done me well in past hikes, it was time to move on up. This weekend we went out to the Sigurd Creek trail to break them in.

(Note: I've borrowed a few pics shameless from the Club Tread website from their page on the Sigurd Creek trail. It's a pretty good resource, check them out! :)

Swirling around in the back of my mind was my presentation for Akademy. Such presentations are kind of like wild animals roaming through my mind: the trick is less to author them than it is to grab them by the tail as they wander past. Which is to say, my best presentations are more a product of a creative process that happens beneath the conscious surface. I get to discover them already shaped and demonstrating what I want to communicate and how I might be able to do so. Allowing opportunity for the creative mechanisms to go to work is key: while happening "behind the scenes", it still takes effort, energy and time until it is ready for the conscious mind to stitch it together with the final phrasing and imagery. This may sound a bit odd, but I've found it's a more common creative process than one might think. :)

The Sigurd Creek trail seemed like a perfect opportunity to discover my Akademy presentation. Drenched in rain forest along a trail that would test my fitness and engage (and therefore distract) my physicality, what better time for the sub-conscious to throw out a leader line for me to grab onto. Off we went.

It was a three hour trek up through forests dripping with wet and greenery. Much of the hike was steep with an average grade of 18.5%. We clambered over a trail whose most clear markings were little bits of orange tape tacked to trees along the way. The trail on the ground was not immediately evident along the entire trek; in some places it was completely obscured by the usual forest debris and less usual windfall from recent storms. Given that the trail was not very wide or groomed to start with, this really added to the sense of being in the wilderness and therefore the overall experience.

Our group of eight trudged upwards, taking a short detour and subsequent snack break to enjoy Crooked Falls. We stood on a bluff of rock covered in mosses and lichens that, due to being opposite to and about a third of the way up the falls, are continuously bathed in the moisture of the crashing waters. As I stood in the endless wind pushed forward by the falls and feeling my hair grow wet in a mist of pure waters, I was reminded that nature does not try to be beautiful, it just is.

We continued up the trail towards our goal some 825 meters above where we started: the second peak. We passed great walls of rock with sheets of water running down in gentle showers along their length, feeding great vertical beds of moss and fern. Skunk cabbages were blooming everywhere in the marshy ground and giving off their distinctive scent. Even where the ground wasn't overtly wet, it gave slightly under each footstep, telling of the layers of leaves and other vegetation that were decomposing quietly and giving cushion between our boots and the soil. Flowers and mushrooms were scattered everywhere between and on the trees. A healthy, thriving forest is, and must be, also constantly full of decay; it supports the abundance of life.

As we neared our destination, patches of snow started appearing between the trees. The last several hundred meters of the hike were mostly over these last snows of winter, with the peak itself glazed in a white cap. By the time we sat down for lunch, I had glimpsed the general shape of my Akademy presentation. It would be a series of short topical explorations linked together in the style of koans along a common thread of growth, opportunity, change, stability and a striving towards elegance. Some brush art for the title slides would be in order.

Eating bread, cheese, eggs and potatoes while our legs dangled over a rock outcrop that delivered a breathtaking view across a valley to another mountain covered in snow engaged quite busily in Spring melt, replete with multiple waterfalls cascading down the rocks and through the snow, I felt .. well .. good. The best feelings are often a bit anti-climactic that way: they are pure and simple and offer no grand words to capture them with.

The descent was, compared to the ascent, easy and quick. With thoughts of the presentation once again thrown below the surface of thought, I was carried away by the experience of wandering through an environment so rich, diverse and alive that I couldn't help but playfully imagine that I was walking through some ancient primeval environment in an era that predates our own existence. Breath in, breath out ...

Read More
Posted in | No comments
Newer Posts Older Posts Home
Subscribe to: Comments (Atom)

Popular Posts

  • more plasma workspaces 4.8 news
    In my last blog entry on Plasma Workspaces 4.8 I talked about a number of things that we've worked on in the last six months. I promise...
  • what trains are for
    Today I had to go to Milan .. and back .. by train. That's a total of eight hours planted in a moving seat. I won't explain why I ha...
  • #merweek
    Make · Play · Live' s website is counting down to ... ? As Dario Freddi  noted in his G+ stream today, the week of the 25th is shaping u...
  • Improv and KDE
    When I announced the Improv ARM computer  on Monday, I did it on my blog which is also syndicated to Planet KDE. That's because there is...
  • a network
    Before I get to the positive strides we're making forward with Spark, I want to first apologize for not having the pre-order registratio...
  • an afternoon of small things
    I spent the afternoon working with some very small computers that we picked up today from a local shop that specializes in electronic parts ...
  • Call to authors
    For the last couple months I've been quietly working on a publishing deal for KDE books. I now have a contract in hand and we're mak...
  • bodega: partners, aggregating audiences and YOU
    I did a quick screencast today showing what "partners" are in Bodega and how they work. It's one of the many ways that Bodega ...
  • Break even weeks on bugs.kde.org!
    KDE developers around the world: we're currently just 14 closed bug reports away from a break even week! As of right now 475 bugs have b...
  • quick notes on using review board effectively
    The Plasma team has been using review board for quite a while. We were the pioneering project within KDE for its use, in fact, which leads t...

Blog Archive

  • ►  2013 (56)
    • ►  December (1)
    • ►  November (9)
    • ►  October (4)
    • ►  June (3)
    • ►  May (8)
    • ►  April (3)
    • ►  March (11)
    • ►  February (11)
    • ►  January (6)
  • ►  2012 (49)
    • ►  December (1)
    • ►  November (8)
    • ►  October (5)
    • ►  September (4)
    • ►  May (7)
    • ►  April (5)
    • ►  March (2)
    • ►  February (11)
    • ►  January (6)
  • ►  2011 (93)
    • ►  December (3)
    • ►  November (4)
    • ►  October (2)
    • ►  September (7)
    • ►  August (18)
    • ►  July (11)
    • ►  June (3)
    • ►  May (10)
    • ►  April (15)
    • ►  March (7)
    • ►  February (3)
    • ►  January (10)
  • ▼  2010 (105)
    • ►  December (1)
    • ►  November (8)
    • ►  October (5)
    • ►  September (8)
    • ►  August (11)
    • ►  July (6)
    • ►  June (6)
    • ▼  May (5)
      • Javascript animations
      • FLOSS Weekly
      • i don't need no stinking nepomuk .. right?
      • priorities
      • supernatural
    • ►  April (7)
    • ►  March (10)
    • ►  February (16)
    • ►  January (22)
  • ►  2009 (167)
    • ►  December (2)
    • ►  November (8)
    • ►  October (16)
    • ►  September (10)
    • ►  August (9)
    • ►  July (9)
    • ►  June (18)
    • ►  May (10)
    • ►  April (26)
    • ►  March (12)
    • ►  February (16)
    • ►  January (31)
  • ►  2008 (30)
    • ►  December (19)
    • ►  November (11)
Powered by Blogger.

About Me

Unknown
View my complete profile