| Editor: | Sheila Williams |
| Issue: | Volume 35, No. 7 |
| ISSN: | 1065-2698 |
| Pages: | 112 |
# apt-get update # apt-get install -t experimental repro resiprocate-turn-server # apt-get install -t unstable chromium sipml5-web-phone # cd /var/www && mkdir jssip && cd jssip # wget -r -nH http://tryit.jssip.net # vi /etc/repro/repro.config # vi /etc/reTurnServer.config # vi /var/www/jssip/js/custom.REMOVE_THIS.jsand then try browsing to /jssip or /sipml5-web-phone Start with a SIP proxy As explained in the RTC Quick Start guide for regular RTC, a SIP proxy is a clean and simple component to start with. The same is true for WebRTC: start with a proxy. There are two I'll emphasize here:
PackageKit is an incredibly successful project. With the 0.8.x series, it received many performance improvements, and has now the same speed on my computer than the distribution s native tools. PackageKit is used in almost all major Linux distributions, except for Ubuntu[1]. But even Ubuntu has written some compatibility layer, so most calls to PackageKit will work.
The only major distro where PackageKit is currently not available, seems to be Gentoo (and I am not sure about the shape of the Gentoo PackageKit backend too).
Debian Wheezy includes PackageKit by default, and in Jessy we are going to replace some distribution-specific tools with PackageKit frontends (mostly the old and unmaintained update-notifier and Software-Updater no worries, we are not going for a Synaptic replacement
applications. It contains stuff like a screenshot-service, ratings&reviews etc. The most important component is a Xapian database, storing information about all available applications in the distribution s repositories. The Xapian DB is distro-agnostik, but distributors need to provide data to fill it. AppStream offers an application-centric way to look at a package database)
The AppStream side doesn t look incredibly great, but the situation is improving. As far as I know, OpenSUSE is shipping AppStream XML to generate the database. Ubuntu ships the desktop-files, and I am working on AppStream support in Debian s Archive Kit. On the Fedora side, negotiations with the infrastructure-team are still going on. I haven t heard anything from Mageia and other AppStream participants yet.
Unfortunately, at least for OpenSUSE, the AppStream efforts seem to be stalled, due to people having moved to different tasks. But efforts to add the remaining missing things exist.
On the software side, Apper (KDE PackageKit frontend) has full support for AppStream. Apper just needs to be compiled with some extra flags to make it use the AppStream database.
On the GNOME-side, GNOME-Software is being developed. The tool will make use of the AppStream database, on distributions where it is available.
Also, a Software-Center for Elementary and other GTK+-based desktops is being developed, which is based on AppStream (already quite usable!).
Using the Ubuntu Software Center on not-Ubuntu-based distributions ist still not much fun, but with the AppStream database available and a working PackageKit 0.8.x with a backend which supports parallel transactions, it is possible to use it.
On the infrastructure side: I recently landed some patches in AppStream-Core, which will improve the search function a lot. AppStream-Core contains all tools necessary to generate the AppStream database. It also contains libappstream, a GObject-based library which can be used to access the AppStream database.
Also, we discuss dropping PackageKit s internal desktop-file-cache in favour of using the AppStream database. If we do that, we will also add software descriptions to the AppStream db, to improve search results and to speed up search for applications. Because we have to deprecate API for that, I expect this change to happen with PackageKit 0.9.x.
As soon as the Freedesktop-Wiki is alive again and my account is re-enabled, I will create compatibility-list, showing which distribution implements what of the PK/AS/LI stuff, especially focusing on components needed for AppStream.
Only a few distributions package AppStream-Core so far. Although it is beta-software, creating packages for it and shipping the required data to generate the AppStream database would be a very huge step forward.
Listaller
(Listaller is a cross-distro 3rd-party software installer, which integrates into
PackageKit and AppStream. It allows installing 3rd-party applications, which are not part of the distributor s repositories, using standard tools used also for native-package handling. Everything which uses PackageKit can make use of Listaller packages too. Listaller also allows sandboxing of new applications, and uses an AppDir-like approach for installing software.)
Listaller is currently undergoing it s last transition before a release with stable API and specifications can be made. Dependency solving will be improved a lot during the current release-cycle, making it less powerful, but working on all distributions instead. (Fedora always had an advantage in dependency-solving, due to RPM providing more package metadata for Listaller to use) This change was delayed due to discussing a possible use of ZeroInstall-feeds to provide missing dependencies with the ZeroInstall team. We did not come to a conclusion about extending the XML, so Listaller will contain an own format to define a dependency, which can reference a ZeroInstall feed. That should be a good solution for everyone.
All these changes will result in IPK1.2, a new version of the IPK spec with small changes in the pkoptions file syntax and huge changes in dependency-handling. The new code is slowly stabilizing in a separate branch, and will soon be merged into master.
The next Listaller release will be the last one of the 0.5.x series, we will start 0.6.x then. KDE currently has support for Listaller through Apper, which is enabled on a few distributions. In GNOME, optional Listaller support is being developed and will be available in one of the upcoming releases.
Currently, to my knowledge, only a few distributions package Listaller. This should improve, so it is easier for application developers to deploy IPK packages.
The upcoming changes in KDE and GNOME to build stable developer platforms will help Listaller a lot in finding matching dependencies, and for stuff which only depends on one software frameworks, installations should be a matter of seconds.
As you can see, lots of things are happening, and there is improvement in all components related to installing and presenting software on Linux machines. However, all these projects have a severe lack of manpower, especially AppStream and Listaller have the lowest number of developers working on the tools (at time, only two active developers). This is the main reason for the slow development. But I am confident that we will have something shipped in the next distribution releases. At least AppStream should be ready then.
[1]: I don t blame Ubuntu for that during the time they wrote an own solution, PackageKit did not have all the required features. (This situation has changed now, fortunately.)
NOTE: I might extend this post with feedback from the different distributions, as soon as I get it.
| brickos | alternative OS for LEGO Mindstorms RCX. Supports development in C/C++ |
| leocad | virtual brick CAD software |
| libnxt | utility library for talking to the LEGO Mindstorms NX |
| lnpd | daemon for LNP communication with BrickOS |
| nbc | compiler for LEGO Mindstorms NXT bricks |
| nqc | Not Quite C compiler for LEGO Mindstorms RCX |
| python-nxt | python driver/interface/wrapper for the Lego Mindstorms NXT robot |
| python-nxt-filer | simple GUI to manage files on a LEGO Mindstorms NXT |
| scratch | easy to use programming environment for ages 8 and up |
| t2n | simple command-line tool for Lego NXT |
This post was written with Andr s Monroy-Hern ndez. It is a summary of a paper just published in American Behavioral Scientist. You can also read the full paper: The remixing dilemma: The trade-off between generativity and originality. It is part of a series of papers I have written with Monroy-Hern ndez using data from Scratch. You can find the others on my academic website.Remixing the reworking and recombination of existing creative artifacts represents a widespread, important, and controversial form of social creativity online. Proponents of remix culture often speak of remixing in terms of rich ecosystems where creative works are novel and highly generative. However, examples like this can be difficult to find. Although there is a steady stream of media being shared freely on the web, only a tiny fraction of these projects are remixed even once. On top of this, many remixes are not very different from the works they are built upon. Why is some content more attractive to remixers? Why are some projects remixed in deeper and more transformative ways?


Two plots of estimated values for prototypical projects. Panel 1 (left) displays predicted probabilities of being remixed. Panel 2 (right) displays predicted edit distances. Both panels show predicted values for both remixes and de novo projects from 0 to 1,204 blocks (99th percentile).
Some weeks ago, I contacted Rosa Mart nez, a tech journalist with some questions regarding what I regarded as a trick interview with an e-voting salesman. Well, not only she offered me to publish an answer to that interview, but she also offered me to write another article on a second site she also works with.
So, I accepted. Being quite time-deprived, although I managed to send her the first answer quickly, by April 22, I only sent the second article yesterday night.
Anyway, the links. The texts are published in Spanish:
Congrats to the Debian release team on the
new release
of Debian 7.0 (wheezy)!
Leading up to the release, a meme making the rounds on Planet Debian has
been to play a #newinwheezy game,
calling out some of the many new packages in 7.0 that may be interesting
to users. While upstart as a package is
nothing new in wheezy, the jump to upstart 1.6.1 from 0.6.6 is quite a
substantial change. It does bring with it a new package,
mountall, which by itself
isn't terribly interesting because it just provides an upstart-ish
replacement for some core scripts from the initscripts package
(essentially, /etc/rcS.d/*mount*). Where things get interesting (and,
typically, controversial) is the way in which mountall leverages
plymouth to achieve this.
What is plymouth?
There is a great deal of misunderstanding around plymouth, a fact I was
reminded of again while working to get a modern version of upstart into
wheezy. When Ubuntu first started requiring plymouth as an essential
component of the boot infrastructure, there was a lot of outrage from users,
particularly from Ubuntu Server users, who believed this was an attempt to
force pretty splash screen graphics down their throats. Nothing could be
further from the truth.
Plymouth provides a splash screen, but that's not what plymouth is. What
plymouth is, is a boot-time I/O multiplexer. And why, you ask, would
upstart - or mountall, whose job is just to get the filesystem mounted at
boot - need a boot-time I/O multiplexer?
Why use plymouth?
The simple answer is that, like everything else in a truly event-driven
boot system, filesystem mounting is handled in parallel - with no defined
order. If a filesystem is missing or fails an fsck, mountall may need to
interact with the user to decide how to handle it. And if there's more than
one missing or broken filesystem, and these are all being found in parallel,
there needs to be a way to associate each answer from the user to the
corresponding question from mountall, to avoid crossed signals... and lost
data.
One possible way to handle this would be for mountall to serialize the
fsck's / mounts. But this is a pretty unsatisfactory answer; all other
things (that is, boot reliability) being equal, admins would prefer
their systems to boot as fast as possible, so that they can get back to
being useful to users. So we reject the idea of solving the problem of
serializing prompts by making mountall serialize all its filesystem
checks.
Another option would be to have mountall prompt directly on the console,
doing its own serialization of the prompts (even though successful mounts /
fscks continue to be run in parallel). This, too, is not desirable in the
general case, both because some users actually would like to have pretty
splash screens at boot time, and this would be incompatible with direct
console prompting; and because mountall is not the only piece of software
that need to prompt at boot time (see also: cryptsetup).
Plymouth: not just a pretty face
Enter plymouth, which provides the framework for serializing requests to the
user while booting. It can provide a graphical boot splash, yes; ironically,
even its own homepage
suggests that this is its purpose. But it can also provide a text-only
console interface, which is what you get automatically when booting without a
splash boot argument, or even handle I/O over a serial console.
Which is why, contrary to the initial intuitions of the s390 porters upon
seeing this package, plymouth is available for all of Debian's Linux
architectures in wheezy, s390 and s390x included, providing a consistent
architecture for boot-time I/O for systems that need it - which is any
machine using a modern boot system, such as upstart or systemd.
Room for improvement
Now, having a coherent architecture for your boot I/O is one thing; having
a bug-free splash screen is another. The experience of plymouth in Ubuntu
has certainly not been bug-free, with plymouth making significant demands of
the kernel video layer. Recently, the binary video driver packages in Ubuntu
have started to blacklist the framebuffer kernel driver entirely due to
stability concerns, making plymouth splash screens a non-starter for users of
these drivers and regressing the boot experience.
One solution for this would be to have plymouth offload the video handling
complexity to something more reliable and better tested. Plymouth does
already have an X backend, but we don't use that in Ubuntu because even if
we do have an X server, it normally starts much later than when we would want
to display the splash screen. With Mir on the
horizon for Ubuntu, however, and its clean separation between system and
session compositors, it's possible that using a Mir backend - that can
continue running even after the greeter has started, unlike the current
situation where plymouth has to cede the console to the display manager when
it starts - will become an appealing option.
This, too, is not without its downsides. Needing to load plymouth when using
crypted root filesystems already makes for a bloated initramfs; adding a
system compositor to the initramfs won't make it any better, and introduces
further questions about how to hand off between initramfs and root fs.
Keeping your system compositor running from the initramfs post-boot isn't
really ideal, particularly for low-memory systems; whereas killing the system
compositor and restarting it will make it harder to provide a flicker-free
experience. But for all that, it does have its architectural appeal, as it
lets us use plymouth as long as we need to after boot. As the concept of
static runlevels becomes increasingly obsolete in the face of dynamic
systems, we need to design for the world where the distinction between
"booting" and "booted" doesn't mean what it once did.
I've been working on TPMs lately. It turns out that they're moderately awful, but what's significantly more awful is basically all the existing documentation. So here's some of what I've learned, presented in the hope that it saves someone else some amount of misery.
Last Saturday, I was invited to talk about Debian to Hackerspace DF, a group that is starting to work at a very nice place together with other collectives, in a quite centric place (Colonia Obrera). I know several of the people in the group (visited them a couple of times in the space's previous incarnation), and wish them great luck in this new hackerspace!
Anyway I was invited to give an informal talk about Debian. And of course, I was there. And so was Alfredo, who recorded (most of) it.
So, in case you want to see me talking about how Debian works, mostly on a social organization level (but also regarding some technical details). Of course, given the talk was completely informal (it started by me standing there, asking, "OK, any questions?"), I managed to mix up some names and stuff... But I hope that, in the end, the participants understood better what Debian means than when we started.
Oh, and by the end of the talk, we were all much happier. Not only because I was about to shut up, but because during my talk, we got notice that Debian 7.0 "Wheezy" was released.
Anyway If you want to see me talking for ~1hr, you can download the video or watch it on YouTube.
Ordinarily, I m a big believer that it is important to keep up to date with what every piece of software which competes with yours is doing, to remain educated on the latest concepts. Sometimes, there are concepts that get added which are definitely worth ripping off. We ve ripped off plenty of the better design choices from Windows or Mac OS, over the years, for use in the Free Desktop.
So, what about Windows 8, the hip new OS on everyone s lips?
Well, here s the thing I ve been using it on and off for a few months now for running legacy apps, and I can t for the life of me find anything worth stealing.
Let s take the key change Windows 8 has apps built with a new design paradigm which definitely isn t called Metro. Metro apps don t really have windows in the traditional sense they re more modeled on full-screen apps from smartphones or tablets than on Windows 1.0 -> 7. Which is fine, really, if you re running Windows 8 on a tablet or touchscreen device. But what if you re not? What about the normal PC user?
As Microsoft themselves ask:
The answer to that is, well, you sorta don t.
Metro apps can exist in three states fullscreen, almost fullscreen, or vertical stripe. You re allowed to have two apps at most at the same time one mostly full screen, and one vertical stripe. So what happens if you try to *use* that? Let s take a fairly common thing I do watch a video and play Minesweeper. In this example, the video player is the current replacement for Windows Media Player, and ships by default. The Minesweeper game isn t installed by default, but is the only Minesweeper game in the Windows 8 app store which is gratis and by Microsoft Game Studios.
Here s option A:
And for contrast, here s option B:
Which of these does a better job of letting me play Minesweeper and watch a video at the same time?
Oh, here s option C, dumping Microsoft s own software, and using a third-party video player and third party Minesweeper implementation:
It s magical almost as if picking my own window sizes makes the experience better.
So, as you can see above, the old OS is still hiding there, in the form of a Windows 8 app called Desktop . Oh, sorry, didn t I say? Metro apps, and non-Metro apps, are segregated. You can run both (the Desktop app can also be almost-fullscreen or a vertical strip), but they get their own lists of apps when multitasking. Compare the list on the left with the list at the bottom:
And it s even more fun for apps like Internet Explorer, which can be started in both modes (and you often need both modes). Oh, and notice how the Ribbon interface from Office 2007 has invaded Explorer, filling the view with large buttons to do things you never want to do under normal circumstances.
So, that s a short primer on why Windows 8 is terrible.
Is there really nothing here worth stealing? Actually, yes, there is! After much research, I have discovered Windows 8 s shining jewel:
The new Task Manager is lovely. I want it on my Linux systems. But that s it.
Ana blogged a similar graph last year
if you want to compare. It looks like the total is down a little (though
I'm not sure if the figure of 81 from the text, or ~68 read from the graph
is correct for last year) - this is likely at least partly due to the number of
proposals each student can send having been reduced from 20 last year to 5
this year, which should have reduced the number of low quality proposals.
The timeline this year is later, which may have also had an effect.
If you're an admin or a mentor, you can produce a similar graph for your
own org(s) - just download this OpenDocument spreadsheet and follow the
instructions inside.
Debian 7.0 "wheezy" has been released this weekend!
(It took me a while to come up with new CDBS packaging series post not
because I stopped using CDBS just because I was procrastinating myself
as busy)
This is the second post in the CDBS packaging series. In this series
I'm going to talk about package relationship management.
The better example where this feature is useful is packages where
build-depends and run-time dependencies overlap. Most of the Perl
modules which have test suites have build-depend and run-time
dependency intersection. So let me take example of a Perl module.
First lets see control file of a Perl package which is not using CDBS
and then let me explain how CDBS can help you improve the situation. I
choose libxml-libxml-perl lets see part of control file which includes
Build-Depends Depends Suggests Recommends.
Source: libxml-libxml-perl
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Uploaders: Jonathan Yu <jawnsy@cpan.org>,
gregor herrmann <gregoa@debian.org>,
Chris Butler <chrisb@debian.org>
Section: perl
Priority: optional
Build-Depends: perl (>= 5.12),
debhelper (>= 9.20120312),
libtest-pod-perl,
libxml2-dev,
libxml-namespacesupport-perl,
libxml-sax-perl,
zlib1g-dev
Standards-Version: 3.9.4
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libxml-libxml-perl.git
Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libxml-libxml-perl.git
Homepage: https://metacpan.org/release/XML-LibXML/
Package: libxml-libxml-perl
Architecture: any
Depends: $ shlibs:Depends , $ misc:Depends , $ perl:Depends ,
libxml-namespacesupport-perl,
libxml-sax-perl
Breaks: libxml-libxml-common-perl
Replaces: libxml-libxml-common-perl
Description: Perl interface to the libxml2 library
XML::LibXML is a Perl interface to the GNOME libxml2 library, which provides
interfaces for parsing and manipulating XML files. This module allows Perl
programmers to make use of the highly capable validating XML parser and the
high performance Document Object Model (DOM) implementation. Additionally, it
supports using the XML Path Language (XPath) to find and extract information.
--- debian/control 2013-04-28 23:08:11.930082600 +0530
+++ debian/control.in 2013-05-04 20:51:18.849680419 +0530
@@ -5,13 +5,7 @@
Chris Butler <chrisb@debian.org>
Section: perl
Priority: optional
-Build-Depends: perl (>= 5.12),
- debhelper (>= 9.20120312),
- libtest-pod-perl,
- libxml2-dev,
- libxml-namespacesupport-perl,
- libxml-sax-perl,
- zlib1g-dev
+Build-Depends: @cdbs@
Standards-Version: 3.9.4
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libxml-libxml-perl.git
Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libxml-libxml-perl.git
@@ -20,8 +14,7 @@
Package: libxml-libxml-perl
Architecture: any
Depends: $ shlibs:Depends , $ misc:Depends , $ perl:Depends ,
- libxml-namespacesupport-perl,
- libxml-sax-perl
+ $ cdbs:Depends
Breaks: libxml-libxml-common-perl
Replaces: libxml-libxml-common-perl
Description: Perl interface to the libxml2 library
@@ -30,4 +23,3 @@
programmers to make use of the highly capable validating XML parser and the
high performance Document Object Model (DOM) implementation. Additionally, it
supports using the XML Path Language (XPath) to find and extract information.
-
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/rules/upstream-tarball.mk
include /usr/share/cdbs/1/class/perl-makemaker.mk
pkg = $(DEB_SOURCE_PACKAGE)
deps = libxml-libxml-perl libxml-sax-perl
deps-test = libtest-pod-perl
CDBS_BUILD_DEPENDS +=, $(deps), $(deps-test)
CDBS_BUILD_DEPENDS +=, zlib1g-dev, libxml2-dev, perl (>= 5.12)
CDBS_DEPENDS_$(pkg) = , $(deps)
DEB_MAINTAINER_MODE=1 fakeroot debian/rules debian/control
NMUs need not (but are encouraged to) make special use of these tools. In particular, the debian/control.in file can be completely ignored.Before closing down the post, If you find some mistake in the post please let me know either through comments or through the email. Soon I will be back with new CDBS recipes till then cya.
| Publisher: | Haymarket |
| Copyright: | 2012 |
| ISBN: | 1-60846-247-1 |
| Format: | Kindle |
| Pages: | 220 |
For (at least) the third time, I managed to register for debconf before registration was
actually open. Oops.
I found out that unfortunately, it's not quite certain yet that there
will actually be a debcamp this year and if there is going to be a
debcamp, it won't be a full week. Pity. At any rate, I'll be there the
whole time, whatever the duration of debcamp.
Since Vaumarcus is closer to Mechelen than Edinburgh (by about
250km), this is going to be the closest debconf for me, ever. And if I
could go to Banja Luka by car, I can certainly go to Vaumarcus by
car.
Anyone care to join me?
There were two competing free software projects, doing more or less
the same thing. Project B was in active development 3 years before
Project R showed up, and then the two competed for quite some time.
While Project B seemed to operate as part of the gift economy,
Project R was developed by folks who had received some monetary
funding, and once their funding began to wane, they began to
complain. Eventually fundraising campaigns were held.
The community was happy to participate in polite fictions:
Project B didn't really exist; the only people who could possibly
fix the bugs in Project R were the people demanding money;
there would be no conflict of interest between the gatekeepers
of Project R.
Gradually, all development ceased on Project B and never resumed.
The leader of Project R kept jumping up and down and demanding
more money, until finally he declared it insufficient.
Then there were two dead codebases.
Next.