
I've recently done a couple of updates to my SELinux backports for Debian stable.
The backports are mostly "No changes" backports; recent improvements include (finally) a SELinux enabled shadow package. Approximately tomorrow I'll also have a new sysvinit package which makes my modifications hopefully obsolete thanks to the maintainers fixing my reported bugs. ;-)
The packages are largely untested, though. I havn't rolled them out on my main SELinux enabled boxes yet. There also is no SeRefPolicy package yet.
My father asked me how to setup an alert to remind him of the evening news. (The serious ones in the public channel, not the sensational in the private channels...)
My first suggestion was to use evolution, but it cluttered his calendar view. I guess you could avoid that by using a separate calendar file, though.
Still, these alerts are of very low priority, so I considered that the new notifications should actually suit better.
Sending notifications from the command line is supposedly easy - if you're in the same session. Otherwise, you have to find out which socket to send it to. (Btw: what happens when the dbus daemon is restarted ungracefully? will notifications be broken until the session is restarted, too?)
Anyway, here's the solution I came up with:
#!/bin/sh user=`whoami` pids=`pgrep -u whoami gnome-session` title="$1" text="$2"for pid in $pids; do # find DBUS session bus for this session DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS \ /proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'` # use it DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS \ notify-send -u low -t 30000 "$title" "$text" done
This will send a notification with a lifetime of 3 minutes to all running gnome-sessions of the current user. Supposedly works fine from cron (not yet tested, though). Error handling isn't perfect yet, either (but again, this is a very low priority notification).
P.S. hint of the day: use a line like
apt-get install libnotify-bin && notify-send 'Yay! Completed!'To get a fancy notification when your long-running process of the day is completed. Sweet.
Wer bei GMail seine Sprache auf Englisch stellt, hat jetzt Instant Messaging via Web und EMail integriert. Die Oberfläche schaut auf den ersten Blick ganz "benutzbar" aus, und prinzipiell finde ich das ganz cool: IM anywhere... und man braucht nichtmal extra Software starten, insbesondere kein Java.
Oh, als kleinen Bonus gibts auch einen direkt erreichbaren "Löschen"-Knopf.
P.S. Sorry, wem die ganzen Blog-Einträge heute etwas viel werden...
Simple answer: because RSS and Atom are XML formats. So please generate valid output. Adhere to the standards! The RSS feeds of Planet Gnome and Planet Ubuntu, for example, are currently broken. (Planet Gnome due to a bug in Planetplanet AFAICT, Planet Ubuntu due to a broken RSS feed from Wordpress... Yes, you must escape single < characters in XML...)
Templating systems such as the default templating of the Django Framework, or the popular Clearsilver templating engine are unfortunately not suited for XML output. Oh, and please never ever write XML using 'print' commands either. Use a proper XML writer, which can handle charset issues and escaping properly.
Good examples for XML-enabled templating engines include TAL and METAL used by Zope (but available for a variety of languages), and KID (again python, used by the Turbogears Framework).
Closely related is the "HTML fragments" issue, which basically is why I want XML to be used internally, too (you could also store StructuredText only, and convert it to XML just for transformation to the output):
HTML fragments in my blog should be valid slices of an XHTML file, to avoid issues when generating both the web pages as well as when integrating the feed into other pages. With RSS, the HTML code is AFAICT escaped in one big data chunk, so it doesn't matter there. It probably does for Atom.
So what a good blog tool (including a rewrite of planetplanet which has way too many bugs) needs to do is to parse it's input data (plain text, HTML provided by a web browsers WYSIWYG edit component, mail, structured text, XML, ...) and either reject broken entries or try to guess whats intended, but guarantee that the output is valid XML. Then generate proper feeds and output from that.
Thanks to all those who already replied to my previous posting. One thing I was pointed at, and I'll probably look into is Apache Forrest. Although I likely will use KID instead, if I happen to write my own tool after or despite my upcoming final exams.