Image of Beginning Google Maps API 3
Image of Modern Operating Systems (3rd Edition)
Image of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)
Image of Android Wireless Application Development

Building Old Chromium Releases Often Fails

It should be easy to build older Chromium (the browser upon which Google Chrome is based) releases but in fact it is not. More often than not, at least on Linux which is where I build Chromium, the build fails in multiple places. For example, try building the 13.0.782.218 release which is a fairly recent release. It falls over in several places, the first being in the source for the OTS tool. This simply should not occur in any major software project and particularly projects such as Chromium. You should be able to build an exact copy of a particular

rm -rf /

Solaris has prevented you from shooting yourself in the foot by doing an rm -rf / for a number of years. However, I only noticed recently that the GNU rm utility in Linux now also prevents you from accidentally deleting your root filesystem and more. # rm -rf / rm: is is dangerous to operate recursively on ‘/’ rm: use –no-preserve-root to override this failsafe #

New Shell-like Greeter for GNOME

There are plans to replace the greeter in GNOME 3.2 which is due out in a couple on months. Here is what is is the login experience is planned to look like: The GNOME sheep seem to be following Bill the Microsoft shepherd. Maybe I do not understand security but surely it would be better not to expose usernames. In the days of yore, you had to remember both a username and a password. Nowadays the trend seems to be to expose the usernames and simply rely on the strength of a password for security. If I recall correctly, this

Introduction to Udisks

Udisks (formerly called DeviceKit-disks) is a replacement for part of the functionality which used be provided by the now deprecated HAL (Hardware Abstraction Layer). Essentially it is an abstraction for enumerating disk and storage devices and performing operations on them. Udisks provides: A daemon (udisks-daemon) that implements well-defined D-Bus interfaces that can be used to query and manipulate disk and storage devices. A command-line tool (udisks), that can be used to query and use the daemon. Actions that a user can perform using udisks can be restricted using PolicyKit. Udisks relies on the kernel and udev where possible but does

Programmatically List Installed .deb Packages

While RPM packages have a robust ecosystem around them for programmatically retrieving information about package metadata, the Debian package management system is sorely lacking in this respect. Here is a simple C example which demonstrates how to programmatically list all installed Debian packages. #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <dpkg/dpkg.h> #include <dpkg/dpkg-db.h> #include <dpkg/pkg-array.h> #include "filesdb.h" const char thisname[] = "example1"; int main(int argc, const char *const *argv) { struct pkg_array array; struct pkginfo *pkg; int i; enum modstatdb_rw msdb_status; standard_startup(); filesdbinit(); msdb_status = modstatdb_open(msdbrw_readonly); pkg_infodb_init(msdb_status); pkg_array_init_from_db(&array); pkg_array_sort(&array, pkg_sorter_by_name); for (i = 0; i <