Plasma Active – A Desirable User Experience Encompassing the Device Spectrum

Plasma Active on a tabletToday, I’d like to announce to a wider audience a project we have been working on in and beyond the Plasma team. Its goal is to “Create a desirable user experience encompassing a spectrum of devices“, and it is called Plasma Active. A couple of things make Plasma Active special. First, the driver is the desirable user experience. That means that we want to create something, people want, and people want to use. It means we are less technology-focused, but are taken a user-centered approach. Second, we are not targeting a single device, or a narrowly-defined class of devices. Plasma Active is made to run on a spectrum of devices that make up the user experience together. Devices change, and so does the way the user interacts with them. By strongly separating data and visualisation / interaction, we do not re-invent the wheel but adapt to the requirements and expectations of a device, and about how devices work together for the user.

Running Plasma Active

We have a basic, Plasma-based shell right now, which runs on three target devices — and probably some more, but that’s what we’ve tested so far. It performs well, runs stable and is usable with a touch-screen. While Plasma Tablet is quite fun already, do not expect release quality yet, as it is a snapshot of our efforts. Find the download location for the Balsam Professional live image on the wiki.

open-slx has created a Balsam Professional live image based on openSUSE 11.4 running Plasma Active. open-slx (my employer) are developing Plasma Active for openSUSE in the openSUSE Build Service. We’ve also created packages which can be installed online on top of openSUSE 11.4. You can find installation instructions in our Wiki, also for Meego.

Of course you want to run Plasma Active on a ‘real’ device, we currently recommend either the ExoPC (WeTab), the Lenovo Ideapad, or a Viewsonic Viewpad 10. You can find instructions for devices in the Wiki


The demo video shows Plasma Active in action on a Viewsonic Viewpad 10.

Status

There is still a long way to go. We’re missing key functionality, default applications, optimizations all over the place, and more. There is nothing fundamental that holds us back to bringing the full experience users expect to tablet devices, based on our well-known, beloved, proven software stack. We are focusing our first release, which is planned for September already, on tablet computers.
Since fixing a bunch of showstoppers over the past two weeks, I’ve actually started using Plasma Active for some light reading tasks (mostly web and RSS), and I’ve got to say: It rocks your socks. Being able to use a tablet computer which is based on Free software that you created yourself, is real fun. I’ve also handed it to friends who came by, and while they understood it’s an early prototype, I had a really hard time getting my gadget back. And that is only just the beginning. We have an excellent base to build a complete experience upon. In other words, it’s the perfect time to jump in and become part of something great and to help it also making it something really big.

Different goals need different processes

Widgets on Plasma ActiveWhen we put the pieces for Active together, it quickly became clear that if we want to succeed, we also have to rethink some of our collaboration processes. One of my pet peeves has always been that different essential parts of what the user gets in her hands come from different teams. If we want to put something desirable into the hands of our users we need to pull in the same direction. While we needed different skills, these skills have to align in how they’re applied. This makes communication more natural, leads to a more focused process, and ultimately a better result. It’s clear that such an endeavour will only work if enough people in our communities, and the communities around it think that this is a worthwhile thing to spend their time on, and that we can get the people that do to pull in the same direction. The good news, however is that we’ve been able to create a stable platform to do this, in terms of tools, processes, collaboration models and not at least software. That platform is Plasma Active.

Sounds interesting?

If you want to help us shape Plasma Active, and bring its vision to reality, we would like to invite you. Start with having a look at our list of tasks, and if you find something you can help with, tell us, subscribe to the Plasma Active mailing list, or join #active on Freenode’s IRC network. We have documented our ideas, concepts and processes in the wiki.

In the coming weeks, we will keep you updated about Plasma Active’s progress, and we will be able to reveal more of our vision as we give Plasma Active shape by making it become reality.

of rockstars, unicorns and Isaac Newton

A question that has bugged me for some time, is “how we can bring our creations into the hands of more users?”, and how we can show the world that a truely open and community developed system can bring great value to more people. How can we overcome the technical barriers that hold back so many people from benefitting from our hard work, all the genius, love and creativity we put into software. Since my first contact with Free software, Linux openSUSE and KDE, we have done some very solid work. We have technically caught up with Microsoft, and are delivering a product that is up to par in many aspects, and better in many more ways. While we have booked immense successes, we have not reached the goal of making the Linux desktop ubiquitous in the desktop market. In a world of iPhones and Android, we even see closed development models based on similar technology as ours being a big success, market-wise, but failing to deliver the full Freedom of a community-driven development model to end users.

Stormy weather on a calm sea

The past years’ development has completely changed how users interact with their digital environment. Where we used one desktop computer for all of our digital needs only a few years ago, there is a wide range of devices for specific use-cases now. This (I think very positive) development has widened the spectrum of devices our software can be used on. It has also effectively broken Microsoft’s monopoly in the market, which is now much more open: concurrent products such as Windows, iOs and Android. Looking at both options, many users experience a gap, however. With the market especially for tablet computers being brand-new, there is very little choice for users. If you want to have a tablet computer today, you can get an iPad in return for your soul or get a blown-up phone built to add your most personal data to The Big Index. If you’re of a more patient nature, you can cross fingers while waiting for an evidently upcoming surge of new tablet devices. If you’re interested in both, control over your data and control over what you run on your machine, bad luck.

While moving away some of their Internet use to other devices with more a more clearly defined purpose, and starting to use the Internet in completely new ways, many users have also found out that computers != Windows ™. New methods of input, and graphical effects allow for a more ergonomic use of all that’s out there. Dramatically increased user expectations demand more intuitive, beautiful and elegant user interfaces and ways for interacting with contacts, content and the web. This demand is I think very positive, for two reasons: users are much more willing to try new UI concepts, which leaves more room for innovation to creative people who really want to do something better. One positive aspect is that the demand for an awesome user experience makes the software running on the device, and the services it is offering more critical the desirability than the hardware, comparatively. Interpreting this as “the power to shape the product is now in the hands of the software developers” is unfortunately (I am a hacker) also very wrong. Let’s get back to that later.

Back to our question (remember, that was: “how can we bring our creations into the hands of more users?”), this leads me to believe that a locked-down market for end-user software is a thing of the past. To no surprise, increased competition comes with more pressure to deliver something really great.

Genetic advantage

Having studied, participated and helped shape Open Source development processes for a few years now, I’ve come to conclusion that the Free software community has three strengths that are critical to its success:

  • Economic force: We share resources. While we spent much of the past ten years to catch up with Microsoft on the technical side, the Free software development and licensing model simply obsoletes many closed source options. This basically means that you need a really large internal workforce and a lot of appeal to make your product competitive, or that you have to plug into the resources of the Free Software community.
  • A different agenda,: we are not primarily driven by monetary aspects, unlike our competitors, so we can for example license our software in a way that might not be economically effective at first, but provides much more long-term value. Not being limited by return of investment type obligations, our different agenda often shows that we can address a class of problems where “what is good for the user?” differs from “how do we make money out of that?” completely much better than our competition.
  • The Magic Spark: Open communities are much more receptive to healthy diversity. We’re many, and we all bring different things to the table. The chances of something genius happening are simply much better in an open and friendly environment, than behind closed doors.

Our chronic fragmentation issue

One of the really hard problems we have to solve though, is the fragmentation. Due to the diversity, we don’t work enough as a team, and while often share the same values, our vision of how our creations end up in the hands of end-users differ wildly. To solve the fragmentation, we have to have not only shared values, but also a development process supporting our vision, and we have to have a shared product vision. Yes, product vision. As bullshit-bingoesque as that sounds, the simple truth is that we have to use our strenghts to create something desirable, we probably won’t enlighten many people with the great value Free software can bring to the table with religion. On the positive side, desirability works very well for me personally. Much of what I do is driven by a sense of creation, and if the output is something that others want, it gives me the accomplishment of having created something of value. Desirability is the primary driver for this, it’s both an excellent product vision, and a fine goal to strive for personally.
There is one conceptual mistake about the fragmentation issue. The problem is not that the Linux community as a whole doesn’t work together, the problem is much more that not the right people are working closely together. The real problem isn’t fragmentation, it is the lack of full-product-thinking.

There is much more to the fragmentation issue, though. We’re trying to analyze this problem not from our own view, but from what is necessary to achieve our goal. While we have had limited success to attract UI and interaction designers, that excel as much as many of us do in our own fields, we have yet to shape the process in a way that is both attractive to people who can contribute design expertise, and helps them put their energy to good use. If you have ever seen a graphical artist cringe, when you showed him your finished application and asked him to now make it beautiful, that was a symptom for this brokenness in the process. So in those fields where you’re honestly lacking manpower, you need to work twice as hard to attract new blood. You need to cover the whole process, so this is one of the problems that need solving. Recognising that you lack this expertise (by asking yourself all those hard questions) is the first step. Communicating that you are open to such participation is an obvious second one. Proving that you actually are, and making that visible helps you get further. Defining yourself in terms of a common denominator helps. If you want to reach non-developing contributors, you might want to stress the free culture aspects of your project, if you want to attract designers, make sure people see that design plays an important role in your project. Offer and prepare the tools designers need to do their work well. Paraphrasing, if you ever had to ask a graphical designer to use a compiler, you’re doing it wrong, and you need to fix that.

Natural selection

Once all of the above is realised, the really hard part is of course to find this shared vision of something desirable. There are a couple of interesting aspects around this, many of them have to do with creative and outside of the box thinking, and about creating an environment that supports the growth of these ideas.
Let’s look at the process-side of things, however. Statistics tell us that it’s much simpler to find a shared vision among a bigger group of self-selecting individuals than among a smaller one. This means that we have to look across project borders, across comfort zones that have come natural to us — from both sides.
From another point of view, to create something desirable, we have to apply the same vision across all aspects of the software stack. This means we have to work from top to bottom. We need to build applications that users want, user interfaces that are beautiful, modern and adaptive, we need to get the technology underneath right, and we need to find suitable (by many measures) devices to run our software on, and it it also encompasses thinking about our collaboration models, taking the good parts and combining them with new insights, tools and processes. It means we need to think in creating a complete process that covers all these aspects from creation into the hands of more people.
A self-selecting group has one nasty, but natural attribute: it also means that some people do not take part. This is of course fine, if something is not your cup of tea, that doesn’t have to keep others from drinking it with great pleasure. Support can in some cases be as easy as letting go, and at least not providing pushback to something that might — or might not, this is not a no-risk game — create something truly great in the end, at least for some. Different priorities, agendas or simply envy can cause unproductive friction.

On the more cheerful side, such a group is absolutely killer to work in, being able to work towards your goal among a group that is heterogenous in skill and origin, but homogenous in the direction to take, you can pull amazing amounts of weight. This makes it (relatively) easier to make a difference, and your work is more likely to produce something that makes you happy. A friendly environment and good communication that costs little but gives back much energy is critical factor to create a positive feedback loop, a critical mass to get off the ground, momentum to move and keep moving your dream to completion. While participating early requires recognizing such a vision, and probably a certain willingness to take a risk, to endure uncomfiness in the beginning, it allows you to shape important aspects of that vision. A vision only goes so deep, making it come to life reveals all its facets, to you, but much more to those that hold your creation in their hands and recognise its value.

Unicorn or horse?

It is a common myth that great ideas just spring into existance. While there surely needs to be a spark, turning great ideas into a success is also very much hard work. Without checking my facts, I’d say it’s a reasonable assumption that all the years of hard studies, and understanding many things new and old, crediting the apple for hitting Isaac Newton is probably wildly irrational. Conversely, you might study all your life, and never get hit by the proverbial apple.
There is a way to make this apple more likely to hit you, however. Obviously, being well prepared, with all the tools and knowledge needed is a first. But you also need to answer all the hard questions. You need to look at the complete spectrum of aspects of your potentially genius idea. It means leaving your comfort zones, talking with others, being receptive to their ideas and incorporating them into your vision. That sometimes means that you have to take a step back from that concrete picture in your mind, and rethink what you are really looking for. This can be very hard, but doing this in a team of people with different background can help a lot (note that not everybody in this team of domain experts needs to take part of your group, you’re after the input they provide. You don’t have to convince them, you have to find the right answers to the questions they pose. Spotting a unicorn among a large herd of horses is much more a self-reflection game than a convince-and-defend battle.

At the same time, you have to recognize when people give you input without actually wanting to help you understand all the details, sometimes you get advice, even pushback because someone does not think it is good to drive attention away from something that is more important to them. The truth lies in the middle, of course. While you have the right to enthuse people about your ideas, you also have to play nicely. Notwithstanding altruism and the general rule of “don’t be an asshole”, being too aggressive about your own project will drive others nuts. The more success you have, this worsens. Higher trees catch more wind. In a way the amount of shit you see flying in your direction can be seen as a matter of success. It’s generally not productive for your own goals though to actually engage in this way, unless absolutely necessary. Check twice to be sure. Negative energy can have a desastrous effect on your productivity and on the joy and direct motivation you get out of your work, and that is in fact true for everybody directly involved. Ignoring the naysayers for naysaying is often a much better way to keep sane, than constantly paying close attention to it, trying to find the one good point they might have out of a stream of dung coming your way. It helps a lot when you recognize these patterns, learn how to mitigate communication going awry, and deal calmly and cool with potential real issues at hand. Do not forget to put mechanisms to shield yourself in place, in case it runs out of control. Do not underestimate that creating and maintaining a playing field that is fun for all to use is critical. Try to not make the neighbours angry, either.

Communication and scalability

Now let’s imagine you have this great idea. You know that you’ve something big in your hands, and for the sake of simplicity, it’s a truely genius idea by all reasonable and objective measures. In other words it truely kicks ass. Moreover, you have figured out most of the technicalities, so we even can be sure it’ll actually work. This just has to become a success. But how?

I’ve seen some really great ideas not coming to fruition because a key person ran out of breath. Imagine being a 17 year old kid, becoming a rock star overnight. Suddenly, playing the guitar exceptionally well is not enough anymore. You have to make sure that all the interest doesn’t fire back on your ability to ‘to your thing’, you need to think about how to deal with all the sudden interest. It’s a good idea to prepare that early on, so that you don’t have to explain everything to everybody in great detail. Writing down all the answers to the little questions you answered is a very much needed thing. If you want to convince people of a great idea, you have to give them the chance to understand these answers. If you can’t keep up with answering people’s questions, and you answer the same question in great detail over and over, that might be a sign that you should have put together an FAQ, or something that presents your idea in a more comprehensive way, and in a way that is easy to understand from the point of view of someone who might only spend a short amount of time seeing your idea. Clear, targeted documentation helps to mitigate the ‘running out of breath’-problem.

… aaaaand?

Now you expect a real conclusion? I certainly have something on my mind already. (What would your own little private view of the world be without the Answer to the Ultimate Question of Life, the Universe, and Everything, after all?) But let’s leave that for another day, maybe a Thursday.

Bretzn vorgestellt

Der Bretzn Qt Creator PluginSoftwareentwicklung ist eine nicht ganz triviale Sache. Erstmal muss man natürlich programmieren können — das ist der spassige Teil. Hat man dann allerdings etwas Cooles geschrieben, muss man noch dafür sorgen, dass es irgendwie zum Anwender kommt, und dort in’s System integriert wird. Dass heisst für Linux, dass man Pakete braucht, und ein Repositorium um diese bereit zu stellen. In Zukunft kann man hier auch an Appstores denken, hierzu allerdings später mehr. Um also einerseits dafür zu sorgen, dass die Software installiert werden kann, andererseits aber auch dass die Entwicklung und Bereitstellung für Entwickler attraktiv ist — und damit das Angebot an Software vergrössert — sollte der Prozess so einfach wie möglich sein.

Vom Code zum Paket

In den letzten Monaten haben wir bei open-slx daran gearbeitet, den Prozess vom funktionierenden Code zu installierbaren Paketen zu vereinfachen. Wir haben uns also mit Nokia und h i v e 01 zusammengesetzt, und einen Plugin für Qt Creator entwickelt, der es einfach, fast trivial, macht, Code zum openSUSE (oder MeeGo) Buildservice hochzuladen, dort zu übersetzen, und als Paket bereitzustellen. Hierzu haben wir libattica erweitert, eine Bibliothek, die die Open Collaboration Services in einer API in Qt Stil anbietet. Auf diesen API Erweiterungen baut ein Plugin auf, der es möglich macht, mit ein paar Mausklicks Software zu paketieren, und dann über die Repos die am OBS hängen anzubieten. (Dies hat zwei Vorteile: RPM Spec-Dateien werden automatisch erstellt (das passiert auf dem OCS Server, der die Kommunikation mit dem OBS relayt), und die Software kann vom OBS für verschiedene CPU Architekturen und Betriebssysteme paketiert werden, was die ganze Arbeit erspart, Entwicklungsumgebungen für allerlei unterstützte Systeme vorzuhalten.

Im Video kann man sehen, wie das funktioniert. Es werden einige Metadaten eingegeben, Accounts eingestellt, und der Code wird hochgeladen. Danach kann man einfach den Buildjobs für verschiedene "Targets" anstossen, sodass das Paket dann z.B. für openSUSE 11.3 auf einem 64 Bit Intel System läuft. Der Prozess verläuft dann grösstenteils in der "Cloud", d.h. auf dem OCS und OBS Servern. Auf dem Client braucht man ausser der eigenen "normalen" Entwicklungsumgebung nur den Qt Creator Plugin zu installieren, d.h. keine chroot oder virtuelle Maschinenen aufzusetzen, oder ähnlich arbeitsaufwändige Dinge.

Im Laden

Prototype AppstoreEs stellt sich die Frage, warum dies über OCS passieren muss, und warum man nicht direkt mit dem Buildservice über die REST API oder Werkzeuge wie "osc" kommuniziert. Die OCS Schnittstelle bringt einerseits Appstore Integration, andererseits auch soziale Features, und in Zukunft vermutlich auch ein Abrechnungssystem (die Plattform soll ja auch attraktiv für solche sein, die für ihre Programme Geld verlangen möchten). Im Appstore Sprint, der kürzlich in Nürnberg stattfand, wurden einige Fragen zur Clientseite besprochen, und ein erster Prototyp entwickelt. Der Ansatz hier ist deutlich: Im Gegensatz zu ‘traditionellen Paketmanagern’ gibt’s hier auch eine soziale Komponente: Benutzer können Software kommentieren und bewerten. Ausserdem ist die Benutzeroberfläche ansprechender gestaltet und bietet Screenshots und möglicherweise Screencasts. Benutzer können Benachrichtigungen bei neuen Veröffentlichungen oder Updates abonnieren.

Mehr Informationen hierzu könnt ihr auf den folgenden Seiten finden:

Das Web, scheibchenweise

Das Web-Scheibchen Widget ist in Plasma (in kdeplasma-addons, noch bis zum Git-Umzug am Wochenende) seit 4.4 enthalten. Ein Web-Scheibchen ist ein Teil einer Website auf dem Desktop. Das kann hilfreich sein, wenn man einen Ausschnitt einer Website im Auge behalten will, allerdings dafür aber keinen kompletten Browser starten will.

Richard Moore und ich haben das Webslice Applet auf der Akademy 2009 in Akademy geplant, richmoore hat dann einen Prototypen geschrieben, den ich in ein einfaches Plasma Widget umgesetzt habe. Seit dem ersten Release zusammen mit 4.4 hat sich allerdings wenig dran getan. Es funktioniert im Prinzip recht einfach: Wir laden eine Website in einem Webkit Widget (auf der Plasma Canvas), blenden die Scrollbalken aus, scrollen an die richtige Stelle (zur Geometrie einzelner Element kann man Webkit befragen) und zoomen soweit ein oder aus, dass der Ausschnitt in’s Widget passt. Das funktionierte so recht gut, allerdings blieben zwei Probleme: Das Vergrössern bzw. Verkleinern des Widgets war viel zu langsam, und dadurch nicht flüssig genug, und die Auswahl des Ausschnitts war alles andere als intuitiv — man musste den richtigen CSS2 Selector eingeben, diesen also erst aus dem Quellcode der Website puhlen.

Gestern abend habe ich eine Reihe Änderungen eingepflegt, die hier deutliche Verbesserung bringen. Nach Review auf der plasma-devel Mailingliste habe ich diese Änderungen auch in den 4.6 Zweig committet, d.h. dass sie mit 4.6.1 in ca. einem Monat zur Verfügung stehen werden. (Oder ihr besorgt euch den Code aus KDE’s SVN bzw. Git, unter kdeplasma-addons/applets/webslice.) Schau’n wir mal, was ich so geändert habe…

Performance

3 Web-Scheibchen mit verschiedenen Ausschnitten von mehreren Seiten Vor allem das Vergrössern und Verkleinern des Widgets machte eigentlich kaum Spass. Das Web-Scheibchen Widget benutzt eine Webkit View, und zeigt die Seite an einer bestimmten Position an, mit einem zur Plasmoidgrösse passendem Zoomfaktor. Soweit, so gut. Dem Performanceproblem lag zugrunde, dass das Widget während dem Andern seiner Grösse so viele Resize Events abfing, dass es mit dem Zoomen und Positionieren nicht nachkam, und diese sich aufstauten. Dem habe ich Abhilfe verschafft erstmal die Codepfade, die zum diesen “resize events” führen aufgeräumt habe, sodass dieser Vorgang nur stattfindet, wenn es wirklich nötig ist. Dann habe ich mittels eines QTimers verschiedene, schnell aufeinanderfolgende Events zusammengefasst. Beim Zoomen des Widgets war auch noch so Einiges drin, wenn man die Backingstore zeitweise einfriert, und das komplette Neurendern der Seite dann um einige Millisekunden verzögert. Zusammen damit habe ich auch die Seitenverhältnisse flexibler gemacht, diese waren vorher fest eingestellt. (Man kann in Plasma immmer noch unabhängig von den Seitenverhältnissen verkleinern/vergrössern, indem man die CTRL Taste gedrückt hält.) Das erste Problem ist also gründlich gefixt.

Verbesserte Anwenderfreundlichkeit

Während der Konfiguration schaltet das Web-Scheibchen Widget in den Übersichtsmodus Nächster Punkt: Ergonomie. Wie schon erwähnt, schränkt das notwendige extrahieren von CSS2 Selektoren aus Webseiten-Quellcode die Zielgruppe des Widgets gelinde gesagt etwas ein. (Eigentlich sind die recht einfach, was aber nicht heisst, dass ich es auch meinem “Resident non-Geek” zumuten würde — ich hab’s probiert und empfing einen recht leeren Blick als Dank). Ich habe einige Zeit drüber nachgedacht, wie man sowas elegant umsetzen kann. Erstmal wollen wir Quellcode-lesen während des Setup vermeiden, es sollte einfach sein, den gewünschten Ausschnitt auszuwählen, und das Feedback für den Anwender sollte so direkt wie möglich sein. Erster Streich: Die Eingabezeile für das CSS Element hat sich verwandelt in eine editierbare Combobox, über deren Dropdown-Menü man jetzt Elemente auswählen kann. Zweiter Streich: Die URL Eingabezeile hat einen Reload-Knopf zum Nachbarn bekommen, mit dem man eine neue Seite in die Voransicht laden kann (damit werden auch die Elemente in der Combobox erneuert). Dritter Streich: Das Widget zeigt jetzt während der Konfiguration eine Übersicht der ganzen Seite an, und markiert das gerade ausgewählte Element. (Mann kan, wie in allen Comboboxen dann auch mit Maus bzw. Pfeiltasten durch die Liste navigieren, gleichzeitig sieht man im Widget welcher Ausschnitt sich hinter dem kryptischen Namen des Elements (#myid, zum Beispiel) verbirgt. Sobald man bestätigt, zeigt das Widget dann den Ausschnitt passend gezoomt an.

Alles in allem nicht ganz so triviale Änderungen. Da das Widget allerdings bisher kaum benutzbar war, die Änderungen sich recht einfach ohne Änderungen an den Übersetzungen vornehmen liessen, und das Risiko auf Regressions in anderen Teilen sehr gering war, habe ich die Änderungen auch in den 4.6 Zweig eingepflegt. Damit werden sie mit 4.6.1 nächten Monat, und mit openSUSE im März mitgeliefert, und wir somit vielleicht dem ein oder anderen Anwender eine Freude bereiten können.

Hier und da gibt’s natürlich noch Verbesserungsmöglichkeiten. So kann ein erklärender Tooltip hier und da sicherlich nicht schaden, flexiblere Grössenoptionen, wie Proportion, Originalgrösse der Seite (interessant für “flüssige Layouts”), zum Beispiel. Ich habe dafür erstmal sinnvolle Voreinstellungen gewählt, abhängig vom Feedback auf’s jetzige Featureset sehen wir dann mal weiter.

4 Minuten Hobbychirurgie

Abschliessend noch unsere Mitmach-Runde im Mitmach-Web 2.0! Wir haben einen netten Mechanismus, mit dem man kinderleicht eigene Web-Scheibchen-Widgets erstellen kann. Dazu kopiert ihr einfach eine bereits existierende Web-Scheibchen .desktop Datei. Dateinamen ändern (wir wollen ja nichts anderes überschreiben), Namen, Kommentar, ev. auch Übersetzungen updaten (oder einfach löschen, falls nicht nötig), Autor, etc, Einträge die man nicht versteht, einfach drin lassen, auf jeden Fall aber die Plasma Library und Mimetype Einträge. Fügt dann eine Zeile wie diese hinzu, um das Web-Scheibchen auf das Element mit id=”myid” im Tag von der Frontpage von mysite.org läd:

 X-Plasma-Args=http://mysite.org,#myid

Diese Datei muss man dann nur noch nach ~/.kde(4)/share/kde4/services/, kbuildsycoca4 ausführen, um die Plugins und Metadaten auf den neusten Stand zu bringen, und das Widget über den Widget Explorer zur Plasma Arbeitsfläche oder dem Netbook hinzufügen.

Eine mögliche Entwicklungsrichtung für die Zukunft wäre dann, diese selbsterstellten Web-Scheibchen über opendesktop.org mit anderen zu teilen, quasi “Social Desktop für Web-Metzger“…

4.6.0 ist da!

Vor ein paar Minuten habe ich die auf den grossen Releaseknopf gedrückt, und damit 4.6.0 öffentlich gemacht. Pakete für allerlei Betriebssysteme sollten recht schnell verfügbar werden, für openSUSE könnt ihr diese dann im Factory Repository finden, also wärmt schon mal Eure zypper auf.4.6.0 Released

4.6 ist ein recht dickes Release, es gibt viele neue Features, einige davon sehr sichtbar, andere weniger auffällig. Das Mobile Profile macht’s zum Beispiel einfacher, KDE Frameworks in mobiles Apps zu verwenden, die neuen Aktivitäten bringen die Möglichkeit, Programme und Fenster in Kontexte zu gruppieren und so einfacher zwischen verschiedenen Aufgaben, die man zu erledigen hat umzuschalten. Schaut doch einfach mal in die Ankündigungen für die Plasma Workspaces, die KDE Programme und die Entwicklerplattform.

4.6.0 Available

I’ve just pushed the relevant buttons to make the release of 4.6.0 a public fact. Packages should appear shortly for your favourite operating system, I know that openSUSE packages are available from Factory now, so start your zypper already.4.6.0 Released

The release is actually a pretty big thing, it adds a lot of new features, some of which very visible, others being less noticable. There’s the mobile profile for example, which makes it much easier to use KDE frameworks in your mobile application. Then we have the re-vamped activity manager, that adds a way to group applications in their context and makes it possible to manage these activities like sessions. So head over and read what’s new in the Plasma Workspaces, the applications and the KDE development platform.

open-slx end-user platform announced

A couple of months ago at open-slx, when we (like so many times before and after) talked about how we can make the lives of Linux users easier, an idea was sparked. While there’s huge amounts of content out there, it struck us that there’s still a large number of people not being too well served when searching Google to get answers to your questions. This poses some problems though: First of all, most of the information is not in English. This poses an extra barrier for some, who might not be as fluent in English as we developers usually are. Then, the content is hard to verify: How do I *know* that the information given there makes sense? Maybe it will just delete all my erotic movies? ;) So the problem is that there’s little content for the German end-user audience, which is hard to verify. So a team consisting of openSUSE community members and open-slx employees led by my colleague Rupert Horstkötter has set out to fix this problem. They looked into existing solutions to these problem, and found that what is currently running as ubuntuusers.de comes closest to the solution we have in mind. We got in contact with the team at ubuntuusers.de, and they were enthusiastic about the idea and willing to make it happen. A good start.

Then comes the real work of course. We’ve worked out a concept that allows us to provide a modern support tool for our users, which builds on two pillars: information and interaction. The concept we come up with puts this into three different tools: a wiki as knowledgebase, a forum to discuss articles, questions and to get in contact with other people, and a blog aggregation (Planet) which collects news about developments in openSUSE and howtos for specific topics. In order to accomplish this gargantuan task, we’ve asked for help in the openSUSE community. People were immediately enthusiastic about the idea, and started chipping in, helping to review and improve lots of articles.

Over the past few months, we have reviewed about 2000 articles from the existing ubuntuusers.de knowledgebase, prioritizing 500 of them, and adapted the articles to modern standards and that they apply to openSUSE. These 500 articles form the foundation for the knowledgebase we created for the open-slx community platform. We’ve also set up a webforum users can use to communicate and ask further questions, and we’ve put up a blog aggregator.

So, if you’re a German-speaking user (or future user :)) of openSUSE, hop over to community.open-slx.de and see for yourself whether this new platform fits your needs (and if it doesn’t, let us know what we can improve). You can find the official announcement here.

Solides 4.6: Neuerungen in der KDE Hardwareverwaltung

In KDE Plasma 4.6, dass im Januar erscheinen wird, sind so einige Sachen, die den Bereich Hardwaremanagement verbessern. In diesem kurzen Artikel highlighte ich zwei davon: Netzwerk und Powermanagement.

Energieverwaltung

Netzwerkkarten Details im Networkmanager PlasmoidHier haben die meisten Änderungen unter der Haube stattgefunden. KDE’s Hardware Abstraktionsschicht Solid kommt jetzt gänzlich ohne HAL aus und baut auf die U* Familie, die aus UDev, UPower und UDisks besteht. Eine Änderung in Solid ist, dass jetzt mehrere Backends gleichzeitig ihre Arbeit machen können, was auch notwendig ist, da das monolithische HAL durch die modulareren U* Komponenten ersetzt wurde. Für Applikationsentwickler ändert sich allerdings nichts, alle Solid Funktionen funktionieren nach wie vor, nur benutzen jetzt im Hintergrund einen anderen Mechanismus um ihre Arbeit zu machen.

Eine weitere Änderung hat das Solid Team in mit PowerDevil2 eingeführt. PowerDevil ist ein kleiner Daemon (eigentlich ein Plugin für den KDED) der verschiedene Energiesparfunktionen bereitstellt, wie z.B. das Suspenden der Maschine und Energiesparprofile. PowerDevil2, der in 4.6 neu ist, ist modular aufgebaut und kann mit eigenen Aktionen erweitert werden. So können Benutzer das Verhalten der Energiesparfunktionen komplett selber bestimmen, und sind nicht mehr von hardcodierten Funktionen die mitgeliefert werden abhängig. Diese Action Plugins integrieren sich nahtlos in die Profileinstellungen, wie man auf dem Screenshot sehen kann. Das Batterie Plasmoid, über das auch andere Energieverwaltungsfunktionen, wie z.B. Suspend und Hibernate verfügbar sind glänzt im 4.6 Releasezyklus vor allem durch Bugfixes. So habe ich diese Woche noch 4 Patches, die Aurelien bereits in den Trunk Zweig eingeplegt hatte auf das bereits abgezweigte 4.6 Branch zurückportiert.

Für 4.7 plane ich, erweiterte Informationen über den Energieverbrauch und Zustand der Akku(s) hinzuzufügen, ich habe mit der Entwicklung davon bereits begonnen. Dazu allerdings mehr zu einem späteren Zeitpunkt, jetzt liegt erstmal der Fokus auf Plasma 4.6, und danach darauf, das openSUSE 11.4 Release rund zu gestalten.

Netzwerkverwaltung

Energieverwaltungs EinstellungenopenSUSE liefert im 11.4 Release, das auf KDE 4.6 aufbaut das neue Netzwerk Management Widget mit, ein Plasmoid dass es erlaubt Netzwerkverbindungen aufzubauen. Im Hintergrund baut es dabei auf den bekannten NetworkManager auf. Um die Jahreswende sind hier vor allem noch VPN Funktionen hinzugekommen, dank einiger freundlicher Entwickler, die mir Patches zusandten. (Ich selber benutze kein VPN, bin daher auch auf die Mitarbeit anderer angewiesen.)
Ansonsten unterstützt das neue Applet Wifi und Ethernetverbindungen sehr gut, ist aber auch für’s mobile Internet bereits gerüstet. Die Integration des Modemmanagers ist bereits weit fortgeschritten, und sollte funktionieren. (Auch hier kann ich’s nicht selber testen, falls es hakt bitte Bugreports einstellen. Wer drahtlose Netzwerke benutzt, die ihre SSID nicht broadcasten, d.h. die "unsichtbar" sind, hat im Moment leider noch Pech, die Unterstützung für diese Netzwerke ist noch nicht komplett. Man kann sich aber behelfen, indem man (als root) "iwlist wlan0 scanning essid <MYSSID>" ausführt. Danach ist das Netzwerk in Plasma sichtbar, und man kann sich damit verbinden. (Dieser Vorgang ist nur einmal nötig, da das Netz nun in Zukunft direkt erkannt wird.) Visuell bin ich mit dem Netzwerkeinstellungsplasmoid schon recht zufrieden, d.h. im Grossen und Ganzen tut es das, was es sollte. Es gibt noch einige Sachen, die ich kurzfristig beheben möchte, so kann es vorkommen, dass die Liste auf der rechten Seite leer ist, d.h. keine vorkonfigurierten Verbindungen zur Verfügung stehen. In dem Falle sollte man drahtlose Netzwerke in der Nähe sehen. Meinerseits liegt der Fokus hier also vor allem auf Polishing und Bugfixing, sodass es nicht nur cool aussieht, sondern auch so reibungslos und unauffällig wie möglich funktioniert. Es sind allerdings auch nette Features wie Unterstützungen für "system connections", die dann auch aktiv bleiben, wenn man ausloggt.

Running for the openSUSE Board.

I’ve just sent off an email, in which I’m announcing my availability as candidate for the openSUSE board, which will be elected in early 2011. Here’s what I wrote:

Hey openSUSE community, valued election committee,

Following up on the call for candidates, I’d like to let you know that I’m intending to run for the openSUSE Board.

In my dayjob, I am responsible for user experience at open-slx, and will be able to invest time on a regular basis into participating in the openSUSE board. I have a degree in business science, which gives me some formal insight into organisational processes, this has helped my work for the KDE e.V. in the past, and it will surely be benefitial for openSUSE. I am 34 years old, and live in Nijmegen, in the east of the Netherlands.

I have more than 4 years of experience in administering a Free software project (I’m member of the KDE e.V. board since 2006), and during this period have helped turning the KDE e.V. into an effective community representation and supporting organisation, which in many ways acts as a role model to other, similar organisations. The Geeko in me is about 9 years old, it started with openSUSE 7.2, which got me hooked on Linux. After a period of trying all kinds of Linuxen, I’m firmly back to openSUSE for about two years now.

openSUSE represents to me a technically excellent product with a friendly, helpful and skilled community around it that is failing to realise its potential, and in many ways is searching for orientation and a clear mission. Aside from organisational topics, this process I’d like to facilitate.

My platform for the elections is to help set up the openSUSE e.V. (or rather a legal representation of the community, as outlined in the current plans), and to help the community through the process of becoming more independent from Novell, which in my opinion is important for the growth and sustainability of openSUSE as product and community. I’m a Free software dude by heart, and the principle and ethics of the Free software community will be what drives my decisions as executive. My experience as "cat-herder" will be beneficial in the same way.

I do realise that my involvement in the openSUSE community has been fairly transparant, following things from the sideline, stepping in actively here and there, and certainly far from taking on any role as rock-star. I am planning to further ramp up my profile, since that a) will make the members’ decision during the elections a lot easier, and b) it improves accessibility and visibility of the TOTRoS (The Organisation That Represents openSUSE).

This email is just to let you know in advance that I’m intending to run for the board. As I /also/ intend to go on vacation on Friday, I might appear unresponsive until ~christmas. Still, I opted for letting everybody know early on that I’m intending to run (rather than sending my note of intent to run after christmas), as planning will likely make the work of the election committee a bit easier.

Surely, if you’ve questions already, feel free to ask. I will, after returning from vacation be more outgoing about my involvement with openSUSE and my ideas and plans for the openSUSE board.

Thanks for your attention, and your support.

*jumps off the soapbox*

Cheers,

sebas

Schizophrenic clock effect

On the train back from the openSUSE conference, I read an article about improvements in Plasma 4.5 in the German edition of Linux Magazin. The author noticed the re-designed notification area with its more consistent and clean look, but also mentioned that the clock looks visually somewhat outdated in the panel now. Fair enough, most of the notification area has seen a bunch of iterations over their looks, but the digital clock didn’t really receive much visual love other than bugfixes in alignment and layout of the clock. I thought a bit about what would make the digital clock look better, and identified two things: the full bleed color sticks out a bit, and the clock looks flat compared to its neighbours in the panel.

Touching up Plasma's digital clockAfter a couple of iterations and with feedback from some Plasma (and non-Plasma people) I have just committed to Plasma trunk what I think is a good-looking solution, and a touch-up of the panel, making the whole look more belonging to each other. As you can see in the comparing screenshots, it also works well with a dark theme, such as Oxygen. What I did is the following: First, there’s a backdrop behind the clock’s text display now, in the background color defined in the Plasma theme. On light themes, such as the Air theme, this produced an emboss effect, making the time appear slightly sunken into the panel. On dark themes, the backdrop is dark, and hence looks like a shadow, so the time seems slightly elevated. This difference in appearance has to do with how the human brain interprets dark and light colors. Wired has an interesting article giving some background on this — it appears that schizophrenic people’s brains interpret this in a different way.

Clock with new effect on the desktopSecond, the time is now also displayed with a translucent gradient in the text and has a very subtle appearance of a lighting source, making it looks less flat and a tad more natural. The translucency gradient makes the time stick out a bit less, while still having enough contrast to be able to read it. The effect is a bit more clearly visible in a bigger clock, so here’s another screenshot of that. Thanks to Fredrik Höglund for this nice idea and the pointers how to do it. (You define a gradient a QLinearGradient, create a QBrush using this gradient, then you can instantiate a QPen using this gradient brush, and use this pen to paint the text.)

This might look like a small improvement, it’s nevertheless time well spent. The clock takes space on everybody’s screen, most of the time, so it should well be doing its job in an elegant way.