Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/tchibo-linux.html
I finally found the time to write up my experiences running Linux on my new shiny laptop. Read it here.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/tchibo-linux.html
I finally found the time to write up my experiences running Linux on my new shiny laptop. Read it here.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/avahi-kde.html
Jakub Stachowski completed support for using Avahi as backend for KDE’s KDNSSD subsystem. This means that you can use any Zeroconf-enabled KDE application (including Konqueror) with Avahi as mDNS stack. You can find more information in the KDNSSD Wiki.
The list of software supporting Avahi grows longer and longer. There are some patches for vino and GnomeMeeting floating around, Rhythmbox already merged DAAP support based on Avahi, KDE is now fully compatible with Avahi. Shall your project be the next in this list? To get started with Avahi, read the developer’s documentation.
Oh, yes, we released Avahi 0.3 and 0.4 recently. Get it while it’s hot. No major changes, just bugfixes an Qt main loop support.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/avahi-0.2-release.html
Yesterday we released Avahi 0.2. Get it while it is hot! Full announcement here.
In related news: Jakub Stachowski is working on a kdnssd-to-Avahi bridge. Soon KDE applications will be able to make use of Avahi without even knowing.
Sebastien’s Zeroconf Gnome Applet now has an SVN repository: svn checkout svn://svn.0pointer.de/service-discovery-applet/trunk service-discovery-applet.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/avahi-sebest.html
Sebastien successfully completed porting GnomeMeeting to Avahi. Therefore I declare him the first one to port a “real world” application to Avahi. Hurrah! Screenshot here.
Shortly after, Sebestien – not lazy – announced his new Zeroconf service browser applet based on Avahi. It contains a drop down menu with all Zeroconf services found on your LAN. If you select a menu item the applet will execute the application that has been defined as Gnome URL handler for the specific protocol.

Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/avahi-lwn.html
Seems today’s edition of LWN features a front page story about Avahi. It’s actually quite nice, even though I missed an emphasis on the fact that Avahi’s mDNS stack itself is embeddable into applications via a shared library.
I guess you’ll have to wait a week if you want to read the article without subscription.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/google-talk.html
I am on Google Talk now: poettering (at) googlemail.com
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/avahi-0.1-release.html
We finally released Avahi 0.1. Full release announcement here. Avahi comes with a powerful DBUS API. Just two show off the coolnes of that interface a Python example:
import avahi, dbus, gobject
bus = dbus.SystemBus()
server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)
def new_service(interface, protocol, name, type, domain):
print "Found service '%s' of type '%s' in domain '%s'" % (name, type, domain)
def remove_service(interface, protocol, name, type, domain):
print "Service '%s' of type '%s' in domain '%s' disappeared." % (name, type, domain)
path = server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, "_http._tcp", "")
b = dbus.Interface(bus.get_object(avahi.DBUS_NAME, path), avahi.DBUS_INTERFACE_SERVICE_BROWSER)
b.connect_to_signal('ItemNew', new_service)
b.connect_to_signal('ItemRemove', remove_service)
gobject.MainLoop().run()
This short program will connect to running avahi-daemon and browse for web services.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/photos/biene.html
A bee on a thistle in the wheat field behind our house:
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/pyblosxom-ignore.html
The pyblosxom plugin registry links a plugin which allows hiding “draft” stories before publishing them, so that only you can see them. Unfortunately the link to this plugin is broken. So here’s my (simplified) reimplementation:
def cb_prepare(args):
request = args["request"]
query = request.getHttp().get('QUERY_STRING', '')
if not query.endswith("&ignore") and not query == "ignore":
data = request.getData()
data["entry_list"] = filter(lambda e: not e.has_key('ignore'), data["entry_list"])
To mark a story as “draft” simply insert this at line #2:
#ignore yes
To browse unpublished stories simply append ?ignore (or &ignore) to your blog URL.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/pyblosxom-svn.html
If you run a pyblosxom blog with auto-copied stories from SVN you are
probably interested in getting stable story dates that don’t change every time
you update a story. The date of the initial SVN log entry of a story is
something like the “day of birth” of a story, so it’s a good value to use.
Christopher Baus implemented a plugin for pyblosxom, which looks
overly complicated to me: it depends on memcached and comes in two large python
scripts.
To simplify things I wrote this minimal replacement:
import pysvn, os, sys, anydbm
from config import py
def get_mtime(fname):
cache_fname = os.path.join(py['datadir'], 'SVNDATES')
cache = anydbm.open(cache_fname, "c")
if cache.has_key(fname):
d = float(cache[fname])
else:
client = pysvn.Client(fname)
l = client.log(fname)
if len(l) > 0:
d = l[0]['date']
cache[fname] = str(d)
else:
d = -1
del client
del cache
return d
def cb_filestat(args):
args["mtime"] = list(args["mtime"])
d = get_mtime(args["filename"])
if d >= 0:
args["mtime"][8] = d
return args
Since accessing SVN logs is quite slow the script caches the “date of birth”
in a dbm file. Make sure that your web server has enough priviliges to access
that database file which is stored in $datadir/SVNDATES by
default.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/projects/avahi-0.1.html
Avahi 0.1 is due in
the next few days. The last missing piece is a simplifying C wrapper around the
DBUS API. Though Avahi is currently pre-0.1 it is already quite complete and
mature. To put it with Ross Burton: “… this doesnt count as 0.1 because it
has docs, man pages *and* works“
Unfortunately python-dbus has quite a few bugs which make it very difficult
to code with. e.g. it doesn’t handle sending empty arrays, fails to send byte
values and so on. It is difficult to work around all these issues, therefore
the Avahi client tools will not work with an unpatched python-dbus. You need to
apply this
patch (applying to 0.35.2) to fix at least the byte value bug to get
them working.
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/photos/tiger-lilies.html
In the garden:
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/photos/wheat.html
The wheat field behind our house:
Post Syndicated from Lennart Poettering original https://0pointer.net/blog/photos/elbtunnel.html
I really like this photo I made in the St.-Pauli-Elbtunnel in Hamburg: