Archive for July, 2013

Bugzilla Tips (VII): Simpler searching for open tickets only

Friday, July 26th, 2013

This posting is part of a series on small and sometimes not-so-easy-to-discover functionality in Bugzilla that makes developers’ and users’ lifes more comfortable. It’s based on conversations with users and developers in the last months.

If you go to Bugzilla’s advanced search and would like to see only those tickets in your search results which are still open, I have seen users selecting all non-closed statuses (like “UNCONFIRMED”, “NEW”, “ASSIGNED”, “REOPENED” etc. – the exact statuses depend on the configuration of your Bugzilla) either with several mouse clicks while holding down the Ctrl key, or by using arrow keys and Shift on the keyboard.
But you can have the same results with one click in the “Resolution” field: Choose “– – –”.

This is how it looks in Wikimedia Bugzilla:

Screenshot from Wikimedia Bugzilla

Only when a bug report gets resolved (e.g. by fixing it, or marking it as a duplicate) it receives a resolution like FIXED or DUPLICATE. Before it does not have any resolution (hence the “– – –”). This resolution is kept for the follow-up VERIFIED status, but if the report gets reopened it is removed again.

And this is how it looks in upstream Bugzilla:

Screenshot from upstream Bugzilla

Fedora 19.

Wednesday, July 24th, 2013

Two weeks ago I erased the harddisk on my Fedora machine and installed Fedora 19 from scratch. I was tempted to give Mageia a try instead, but as it’s my main machine which I also use for work I tried to minimize disruption by not trying out new stuff.

My work (bug management) can be described as constant switching between browser (Firefox) with some custom Greasemonkey scripts for triaging bug reports, email application (Evolution) with many filters sorting mail into folders and tagging it, IRC (xchat), text files (gedit) and some gnome-terminal windows. Hence that’s my main focus of interest.

All in all GNOME 3.8 is really fast (considering this laptop is more than five years old) and looks great even in its details. Compared to the “classic” GNOME2/Windows95 user interface and workflow I don’t face any big differences that would require much relearning (but I’ve ran gnome-shell on my other machines before).
With gnome-panel I had application launchers in the top panel that I clicked with a mouse, now I have them in the dock in gnome-shell and start them once at the beginning of the session. For the rest I prefer using the keyboard: For applications that I don’t have running all of the time it’s faster now to start them, by pressing the Super key to get to the overview, typing the first letters, and pressing the Enter key (in gnome-panel this required cumbersome pressing of Alt+F2 plus additional pressing of Tab for autocompletion). I like gedit’s “Quick Open” a lot which allows typing a filename to open that file, without the need to know its location.

The rest of this blogpost only lists those small problems I encountered.

Evolution‘s connection to GMail is way more stable than it was in 3.2, and local filtering works more reliably and does not accidentially sometimes reset mail status to read anymore. Unfortunately importing my large Evolution backup file repeatedly ignored my account settings so I had to set them up manually.
Evolution’s constant freezing when filtering mail triggering gnome-shell’s “not responsive” dialog was quickly worked around by the developers for upcoming version 3.8.4, together with an ical invitation rendering crash fixed. However, even after setting physical folders for Junk and Trash for my GMail account (and filing a ticket to cover this recommendation in the Evolution user documentation), the IMAP+ account implementation sometimes manages to completely reindex a mail folder from scratch which can take a few minutes when you have 85000 messages in that folder. It also seems like I have lost the ability to close Evolution’s error messages by keyboard. WebKit now renders mail instead of ancient GtkHtml which makes everything feel way faster.

gnome-shell freezing and some graphical artefacts (which implies that it’s not gnome-shell itself to blame) have gone after cleaning my fan, now this only happens after a few days due to high memory usage which means I should identify which gnome-shell extension(s) to blame, and uninstall them.

Still no idea how to stop the computer from suspending when the lid is closed nowadays – user documentation needs an update and probably requires some logind magic.

The idea to have modal password dialogs feels pretty stupid when you might have that password saved in some textfile that you now cannot access (terminals to the rescue!) but some developers disagree. Same for missing IRC notifications in the message tray as nothing is blinking anywhere anymore – I’m forced to press Super+M from time to time to realize that colleagues wanted to chat with me a while ago, on the other hand I get less distracted which is very nice when you actually want to get work done.

Furthermore, something in latexmk seems to be broken so I fall back to compiling bibtex and latex documents a few times by hand to link against each other. And Rhythmbox seems to not play my manually added streams for some reason, but it does not crash anymore when starting it for the first time like in Fedora 16.

All in all pretty happy with GNOME 3.8. From past experience of installing a Linux distribution I expected bigger problems – I guess I need to accept how good and nearly flawless everything has become through all those years.

Same procedure as lastevery year, this time even in the center of Europe:

GUADEC

See you there?

Bugzilla Tips (VI): Creating reports and tables

Friday, July 19th, 2013

This posting is part of a series on small and sometimes not-so-easy-to-discover functionality in Bugzilla that makes developers’ and users’ lifes more comfortable. It’s based on conversations with users and developers in the last months.

Quite often I want to quickly check how things are going for specific projects, teams and individuals. Bugzilla’s reporting functionality provides some basic functionality for that. Go to Reports (a link in the sidebar on Wikimedia Bugzilla, and in the footer at the bottom of other standard Bugzillas):

bugzilla-tips-reports1

Click on Tabular Reports:

bugzilla-tips-reports2

You will get the usual advanced query interface, with additional settings at the top:

bugzilla-tips-reports3

One common usecase for me are tables displaying the severity × priority numbers for bug reports of a specific product or component. For this, I set the “Vertical Axis” field to “Priority” and the “Horizontal Axis” field to “Severity”, and in the interface below I choose one Product (in this example: “Datasets”) and set the Resolution field to “—” as I am only interested in unresolved reports. After clicking the “Generate Report” button I get this table:

bugzilla-tips-reports5

Of course you can also select several products by setting “Multiple Tables” to “Product”.

Another usecase is to check which individuals are set as assignees for how many bug reports whenever I wonder if things scale. For this I set “Vertical Axis” to “Assignee”, leave “Horizontal Axis” blank, leave “Product” blank (so the results are global) and set “Resolution” again to “—” (as I am only interested in unresolved, open reports):

bugzilla-tips-reports-assignees

Click on the table headers to sort the columns.

Or if you have Voting enabled in your Bugzilla, you can get a list how many reports have which number of votes by following the steps above by setting “Vertical Axis” to “Votes” instead of “Assignee”.

Note: Saved reports, similar to saved searches, are available from Bugzilla 4.4 on.

Bugzilla Tips (V): Saved and shared searches

Friday, July 12th, 2013

This posting is part of a series on small and sometimes not-so-easy-to-discover functionality in Bugzilla that makes developers’ and users’ lifes more comfortable. It’s based on conversations with users and developers in the last months.

If you find yourself running the same (or very similar) searches in Bugzilla from time to time, you might want Bugzilla to remember your search at the bottom of the list of search results:

bugzilla-tips-columns-saved

Enter a descriptive name in the text field behind “Remember search as” and click the “Remember search” button:

bugzilla-tips-saved-searches2

Bugzilla will confirm the successful creation:

bugzilla-tips-saved-searches3

Your search will now be available as a link in the sidebar of Wikimedia Bugzilla, or in footer at the bottom of other (standard) Bugzillas:

bugzilla-tips-saved-searches5

If your query could also be useful for other Bugzilla users (e.g. members of your development team), you can share your saved search. Go to your preferences (a link in the sidebar on Wikimedia Bugzilla, and in the footer at the bottom of other standard Bugzillas):

bugzilla-tips-user-watching1

Click “Saved Searches”:

bugzilla-tips-saved-searches4

Here you can share your search by enabling the “Share With a Group” checkbox, or also display saved searches that other users have shared:

bugzilla-tips-saved-searches4

Bugzilla Tips (IV): Searching for empty fields

Friday, July 5th, 2013

This posting is part of a series on small and sometimes not-so-easy-to-discover functionality in Bugzilla that makes developers’ and users’ lifes more comfortable. It’s based on conversations with users and developers in the last months.

Sometimes you want to search for a specific field being empty, e.g. bug reports without anybody on the CC list.
If you go to Bugzilla’s advanced search and scroll down to the “Custom Search” (called “Boolean Search” in older Bugzilla versions), you can use “matches regular expression” and respectively “does not match regular expression”. Regular expressions (regexes) are powerful patterns to match a certain string (the corresponding Wikipedia article provides more information).

To find all bug reports that have no keywords, enter this:

Keywords | matches regular expression | ^$

^$ is the regular expression for an empty string.

As written before, regexes are very powerful. For example, you could also search for comments in Bugzilla that contain inline Git-formatted patches by using Comment | matches regular expression | —[[:space:]].+[[:space:]]\+\+\+[[:space:]].+[[:space:]]@@[[:space:]].+@@[[:space:]]

Comment | matches regular expression | ---[[:space:]].+[[:space:]]\+\+\+[[:space:]].+[[:space:]]@@[[:space:]].+@@[[:space:]]

As can be seen, the MySQL database requires using [[:space:]] instead of \s for a whitespace character, see its documentation.

Überwachung

Monday, July 1st, 2013

(Übersetzung und Aktualisierung des englischen Textes. Verweise zu Quellen in englischer Sprache sind als solche gekennzeichnet.)

Wer des Englischen mächtig ist, der möge das Interview mit Edward Snowden (englischsprachiger Link) schauen, um seine Beweggründe zu verstehen sowie die Ironie, daß er fragwürdige Regierungen benötigt zum Schutz gegen all die “Demokratien”, die Verbündete genau der Regierung sind die ihn verfolgt. Zudem wissen die PR-Berater, wie man den Fokus der Debatte auf Snowden selbst schiebt (“Ist er ein Verräter?”) anstelle die Ausmaße der Überwachungsprogramme der USA und des Vereinigten Königreiches so diskutieren.

Technologie und Gesellschaft. Wo wir gescheitert sind.

Es ist zu kompliziert verschlüsselte Kommunikation zu benutzen, wenn doch Skype, WhatsApp und Facebook so komfortabel (und unsicher und zentralisiert) zu nutzen sind. Der technischen Avantgarde gelang es nicht, integrierte E-Mail-Verschlüsselung in den gängigen E-Mail-Programmen von Haus aus verfügbar zu machen (via GPG/PGP). Dies kann zwar keine Verbindungsdaten (wer mit wem kommuniziert) verbergen, aber doch die Inhalte der Kommunkation. Kennt Ihr irgendwelche Nicht-Computergeeks, die Tor oder CryptoCat benutzen? Ich nicht. Das Bewerben und Bekanntmachen freier (englischsprachiger Link) und dezentraler Dienste (also Dienste, welche nicht zentral auf einem Computer im Internet [zusammen]laufen, der von einer Firma kontrolliert wird) ist hart, da keine finanzstarke Marketingabteilung hinter ihnen steht, und wir wissen alle, daß die beste Technologie sich aus verschiedensten Gründen oftmals nicht durchsetzt.

Computerbenutzer mögen keine Entscheidungen treffen, wenn sich irgendein Fragefenster in ihren Internetbrowsern öffnet (“aufpoppt”). Stattdessen willst Du den Dialog einfach nur loswerden (englischsprachiger Link). Also besitzen die meisten Internetbrowser von Werk aus eher schwache Privatsphäre-Einstellungen, um uns bloß nicht mit verwirrenden Fragen zu konfrontieren (obgleich einige Browser nun bessere Vorgabeeinstellungen zur Benutzerverfolgung (“Do not track”) besitzen oder von Werk aus keine Drittanbieter-Cookies mehr zulassen).
Daher ist das Akzeptieren von Cookies und Drittanbieter-Cookies ohne Nachfrage von Werk aus im Internetbrowser für alle Internetseiten aktiviert. Wir melden uns fröhlich jedesmal ab von Facebook, Google+, Twitter, Foursquare und all diesen anderen Diensten die kostenlos (englischsprachiger Link) sind, falls es überhaupt noch einen Abmeldeknopf gibt — mobile Versionen scheinen diesen unnötigen Killefit fallengelassen zu haben. All die eingebetteten “Gefällt mir!”-Knöpfe auf anderen Internetseiten teilen den Konzernen immer noch mit welche Seiten wir besuchen, bis wir Werbungsblocker installieren und diese richtig konfigurieren (obgleich auch da inzwischen Bedenken vorhanden sind). Und HTTP Referer teilen dem Betreiber einer Webseite mit, von welcher Website aus wir sie besuchen. Flash-Cookies sind ein Gebiet, das sich außerhalb der Cookie-Einstellungen des Browser-Einstellungsdialoges gewegt. Wir können einige Dinge unternehmen, aber dies erfordert Anstrengungen (englischsprachiger Link). Und ich will das Internet ja gar nicht verstehen, ich will doch nur Email machen!!!! Aber selbst wenn wir Privatsphäere wichtig nähmen: Die Informationen die der Internetbrowser automatisch ausgibt (Größe des Bildschirms, verwendetes Betriebssystem, bevorzugte Sprachen, installierte Erweiterungen (Plugins), Zeitzone, installierte Schriftarten) können unser Gerät immer noch einzigartig und damit identifizierbar machen.
Also nutzen wir jeden Tag die selbe Suchmaschine, da dies bequem ist und die besten Ergebnisse liefert, bald sogar personalisiert und auf den Interessen unserer Freunde basierend und nicht mehr “objektiv”! Wir melden uns bei Onlinediensten an ohne uns die Allgemeinen Geschäftsbedingungen durchzulesen (englischsprachiger Link). Wir reichern unsere digitalen Photos mit GPS-Koordinaten an und laden diese auf zentrale Internetserver hoch (Facebook, Google Picasa, Yahoo Flickr), da es so bequem ist diese mit Freunden zu teilen und automatisch anzuzeigen, wo die Fotos gemacht wurden. Soziale Netzwerke können unsere Benutzerdaten an die Polizei weitergeben, falls wir auf Photos Drogen nehmen sollten, aber wer würde schon Drogen nehmen (in Verbindung mit der automatischen Gesichtserkennung die diese Onlinedienste bereitstellen), oder auf einem Photo sein von einer Protestdemonstration gegen eine Regierung.
Anwendungen auf unseren Mobiltelefonen greifen auf die Adreßbücher auf unseren Mobiltelefonen zu und nehmen sich all die Kontaktdaten von unseren Freunden, ohne uns dies wissen zu lassen (es stand ja irgendwo weiter unten in den Allgemeinen Geschäftsbedingungen, die wir beim Installieren schnell weggeklickt haben), da wir bequemerweise alle unsere Adreßbücher zwischen all unseren technischen Geräten abgleichen. Dank den “App Stores”, in denen wir uns Anwendungen für unserer Geräte zentral an einem Platz herunterladen können, wissen unsere Telefonanbieter genau welche Anwendungen wir installiert haben und in welche Anwendungen wir interessiert sind. Und vielleicht auch, welche Anwendungen wir wie oft benutzen. Dank Online-Musikläden wissen Konzerne wie Amazon oder Apple ganz genau, welche Musik wir mögen und können uns weitere Künstler empfehlen – komfortabel, da wir nicht mehr selber suchen müssen. Aus unserem sozialen Netzwerk herausgeworfen zu werden (englischsprachiger Link) und damit aus unserer Online-Identität, oder das eigene Amazon-Konto deaktiviert zu bekommen und alle Bücher auf dem Lesegerät zu verlieren von denen wir dachten daß wir sie “gekauft” hätten (englischsprachiger Link) ohne auch nur einen Anspruch auf Entschädigung zu haben ist soviel einfacher geworden mit zentralisierten Diensten.
Wir haben Mikrofone in unseren Telefonen die durch Softwareprogramme eingeschaltet werden können, unsere Telefone melden sich in einer Funkzelle an die in größeren Städten nur einen kleinen Bereich abdeckt, wodurch es immer ziemlich klar ist wo wir uns befinden. Mit wem wir am meisten Kontakt haben durch Telefonate oder Kurznachrichten ist sowieso klar.
Wir nutzen digitale, nicht-anonyme Rabattkarten um ein paar lächerliche Cents im Supermarkt zu sparen, damit Konzerne wissen was wir kaufen. Aber es ist so komfortabel nur Angebote für die Dinge zu erhalten, an denen wir auch interessiert sind. Und Firmen, die Angaben zu unserer Kreditwürdigkeit (Bonität) verkaufen müssen nicht mehr unser Einkommen raten basierend auf der Gegend, in der wir leben – wir teilen ihnen unsere Kaufkraft und Vorlieben umsonst mit.
Wir haben öffentliche und private Überwachungskameras in unseren Städten, auf Bürgersteigen und Straßen, in öffentlichen Verkehrsmitteln. Das läßt uns sicher fühlen, auch wenn die Kameras keinerlei Straftaten verhindern, ähnlich der Androhung von Todesstrafe. Die Polizei (zumindest im Land in dem ich lebe) besitzt eine Karte aller (registrierten) Überwachungskameras um schnell Straftaten aufzuklären und unsere Welt zu einem sichereren Ort zu machen, aber der Diebstahl bei meinen Hausnachbarn vor vier Wochen ist nicht aufgeklärt da nichts auf Band war. Es scheint als ob der Dieb einfach nicht den Haupteingang des Hauses benutzt hat, wahrscheinlich brauchen wir einfach mehr Kameras an mehr Ecken! Aber niemals die Polizei filmen (englischsprachiger Link) – man möchte ja nicht deren Sicherheit aufs Spiel setzen, sie sind hier um uns zu beschützen (englischsprachiger Link)!
Unsere Reiseausweise und unsere Plastikkarten um das Bürogebäude zu betreten oder um uns Essen zu kaufen oder ein Buch in der Universitätsbücherei auszuleihen haben kleine RFID-Chips integriert, oftmals stark genug um auch noch in einigen Metern Entfernung ausgelesen zu werden ohne daß wir mitkriegen würden, daß wir uns gerade ausgewiesen haben. Und all diese lästigen einzelnen Karten zu kombinieren ist viel bequemer, und nebenbei weiß unsere Universität daß wir als Studenten des Flugzeugbaus kein Fleisch essen und religiöse Bücher lesen. Und das versteckt eingebaute RFID-Lesegerät im Türrahmen teilt der Uni mit, ob wir die Pflichtvorlesung wirklich besucht haben oder ob wir nur faule Studenten sind, die rausgeschmissen werden sollten. Die Anwesenheitslisten auf Papier waren viel zu fehleranfällig.
Der anonyme (und übertragbare) Jahresfahrschein für den öffentlichen Personennahverkehr kostet mehr als die persönliche Variante mit Chipkarte, und das Buchen einer Bahnfahrkarte im Internet über mein persönliches Kundenkonto und meine Kreditkartendaten ist so viel praktischer als zum Laden zu gehen und in bar zu bezahlen. Warum den Fakt verbergen wollen, daß wir sehr oft von A nach B reisen (ob es sich um den Arbeitsplatz, Freunde, Partner, oder Geliebte handelt läßt sich anhand der Tageszeiten erraten), wenn wir doch Spezialangebote für Reisen von A nach B verpassen könnten?

Ich könnte wohl Stunden fortfahren.

Es ist egal welche Regierung als nächstes gewählt wird. Sie wird das selbe tun, weil wir das Problem der Überwachung nicht ernst nehmen. (Zudem wissen Regierungen ja was ihre Geheimdienste tun, und Geheimdienste würden niemals aus Eigeninteresse lügen.)

Technologie hat das Leben komfortabel gemacht. Es ist einfach, Antworten wie “Dies ist nur eine zeitlich begrenzte Maßnahme” oder “Dies geschieht nur zu Ihrer eigenen Sicherheit” zu akzeptieren, und nicht zu fragen warum der Herr an der Kasse uns nach unserer Postleitzahl fragt.
Ältere! Hört auf Briefe in Umschlägen zu senden, schreibt Postkarten! Denn wir haben nichts mehr zu verbergen.