A new version of any of these packages can potentially break some functionality in the ruby package.
And that dependency graph is very small. Looking at the dependency graph for,
say, the rails package will make your eyes bleed. I tried it here, and
GraphViz needed a PNG image with 7653 10003 pixels to draw it. It ain t pretty.
Installing rails on a clean Debian system will pull in another 109 packages as
part of the dependency chain. Again, as new versions of those packages are
uploaded the archive, there is a probability that a backwards-incompatible
change, or even a bug fix which was being worked around, might make some
funcionality in rails stop working. Even if that probability is low for each
package in the dependency chain, with enough packages the probability of any
of them causing problems for rails is quite high.
And still the rails dependency chain is not that big. libreoffice will pull
in another 264 packages. gnome will pull in 1311 dependencies, and kde-full
1320 (!).
With a system this big, problems will arrive, and that s a fact of life. As
developers, what we can do is try to spot these problems as early as possible,
and fixing them in time to make a solid release with the high quality Debian is
known for.
While automated testing is not the proverbial Silver Bullet of Software
Engineering, it is an effective way of finding regressions.
Back in 2006, Ian Jackson started the development of
autopkgtest as a tool to test Debian
packages in their installed form (as opposed to testing packages using their
source tree).
In 2011, the autopkgtest test suite format was proposed as a standard for the
Debian project, in what we now know as the
DEP-8 specification.
Since then, some maintainers such as myself started experimenting with DEP-8
tests in their packages. There was an expectation in the air that someday,
someone would run those tests for the entire archive, and that would be a
precious source of QA information.
Durign the holiday break last year, I decided to give it a shot. I initially
called the codebase dep8. Later I renamed it to debci, since it could
potentially also run other other types of test suites in the future. Since
early January, ci.debian.net run an instance of debci
for the Debian Project.
The Debian continuous Integration will trigger tests at most 4 times a day, 3
hours after each dinstall run. It will update a local APT cache and look for
packages that declare a DEP-8 test suite. Each package with a test suite will
then have its test suite executed if there was any change in its dependency chain
since the last test run. Existing test results are published at
ci.debian.net every hour, and at the end of each batch
a global status is updated.
Maintainers can subscribe to a per package Atom feed to keep up with their
package test results. People interested in the overall status can subscribe to
a global Atom feed of events.
Since the introduction of Debian CI in mid-January 2014, we have seen an amazing increase in
the number of packages with test suites. We had little less than 200 packages
with test suites back then, against around 350 now (early June 2014). The ratio
of packages passing passing their test suite has also improved a lot, going
from less than 50% to more than 75%.
There is documentation available, including a FAQ
for package maintainers with further information about how the system works, how to declare test suites in their packages and
how to reproduce test runs locally. Also available is development information
about debci itself, to those inclined to help improve the system.
This is just the beginning. debci is under a good rate of development, and
you can expect to see a constant flux of improvements. In special, I would like
to mention a few people who are giving amazing contributions to the project:
Zoe slept pretty well last night. She only woke up briefly at 4am because
Cowie had fallen out of bed and she couldn't find her.
Today was the last Playgroup of the term. Megan, her little sister and her Dad
came as well to check it out, which was nice, because Zoe then had someone to
actively play with in addition to me.
After Playgroup, we went to the adjacent Bulimba Memorial Park with Megan, and
then had some lunch at Grill'd. Megan's Dad wanted to do some work on their
house while Megan's little sister napped, so I offered to give Megan a play
date at our place.
The plan was to watch a movie and chill out. The girls picked
Ratatouille and I made a batch of popcorn for them. Unfortunately
Megan seemed to be less of a square eyes than Zoe, and she lost interest after
a bit, so we stopped watching the movie and moved out to the balcony to do some
craft.
Zoe had been wanting to make a crown for Mummy's boss for a while, so we made a
couple of crowns with the hot glue gun. I had bought this bag of mixed craft
"jewels" and it's probably the best single craft thing I've bought. Zoe
loves gluing them onto everything.
After that, Zoe pulled out the bag of coloured foil confetti. If the gems were
the best thing I've bought, this would have to be the worst. So far, all it's
done is leak in the drawer it's been stored in, and I've been avoiding using it
because it was going to be messy.
Today, Zoe wanted to glue it onto the outside of her cardboard box, so I
decided to give in and embrace the mess, and boy, did we make a mess.
It probably ended up being the longest bit of cooperative play the girls did.
They'd alternate between handing each other a fistful of confetti while I
applied globs of glue where directed. Probably about 10 percent of each handful
ended up stuck to the rocket, so the balcony looked like quite a mess by the
end of it all, but at least it was a dry mess, so I could just vacuum it all
up. I suspect I'll be encountering dregs for quite a while, because I doubt
it's stuck to the cardboard particularly well.
After that, the girls played indoors for a bit, and watched a bit more of the
movie, but Megan seemed to be scared of Anton Ego, so I think that was why
it wasn't holding her attention.
The other activity that the girls seemed to thoroughly enjoy was tearing around
the living room squealing while they took turns at throwing a grapefruit-sized
beach ball at me, and I threw it back at them.
Jason came back to pick up Megan, and I started dinner. Not that long after
Megan left, Sarah arrived to watch Zoe for me so I could go visit my cousin in
hospital. I had dinner on the table pretty much as soon as she walked in the
door, and headed out.
More and more packages are getting
autopkgtest aka
DEP-8 testsuites these days.
Thanks to Antonio Terceiro, there is ci.debian.net"
running the tests.
Last weekend, I've added a "CI" column on DDPO
that shows the current test results for your packages. Enjoy, and add tests to your packages!
The GUI is written using the PyQT Toolkit and the options in the GUI are generated at runtime, based on the list of available power saving modules.
Apart from the GUI configuration tool, this release also includes some bug fixes:
So... Well, contrary to the popular sentiment in Planet Debian, this year I'm very sorry to inform that...
This is the first DebConf I miss in ten years, so... Yes, it's a big bummer for me. I'm not attending because this year, DebC(amp onf) coincide with the two first weeks of classes at my university And as a new teacher, I cannot afford to miss it!
Anyway, but that should not stand in the way to attend a nice Debian 20th anniversary party!
Parties will be held around the world. (Didn't find your city? Plan something and add it *now!*). In Mexico City, the nice guys at the very interesting Rancho Electr nico hackerspace took the lead, and organized the following activities:
Don't you yet know the hackerspace? You should go there! It's in a very centric location, just two blocks West from Metro San Antonio Abad (Juan Lucas Lassaga 114, col. Obrera). And the only two times I have been there, it has been good fun. Surely this Saturday we can have a nice party as well!
The planned activities are from 13:30 to 20:30. See you there!
While everybody was slapping themselves on the back about our officially confirmed contentment, the politicians tried to slip something under the radar. With elections expected in September, the press exposed a secret deal between the two biggest political parties, raiding the public piggy bank for $60 million to prop up their campaign accounts. There is even a leaked copy of a letter confirming the deal. It was to be voted through parliament in a stitch-up within 48 hours after the happiness' announcement.
Why would these two big political parties engage in a such a gross conspiracy? Weren't they already content with their whopping big pay increases that put our Prime Minister on a bigger salary than the US president or the UK Prime Minister?
Well, you don't have to look hard to find out what this special funding was all about:
Not long ago, the post office at the University of Melbourne where Wikileaks operates a post-office box was mysteriously shut down. While that may seem like it could just be a co-incidence on it's own, it's worth considering in the wider context: the Wikileaks party is one of the most widely recognised names in Australian politics right now. The party's leader, like the new pope, is seen as somebody who puts his principles ahead of his own comfort, living a humble life in exile while our politicians romp around with prostitutes paid for with stolen money.
Whatever you think of Wikileaks or Mr Assange's private life, they are not the only example here. There are other democratic movements in our country that are equally frightening for those who are currently drunk on power.
One of the independent MPs holding the balance of power is a former Lieutenant Colonel in Australia's spy agency who was ridiculed by a prior Government and forced out of his job when he exposed the sham of the Iraq war. Neither of the major political parties wants to continue being held accountable by someone who has shown such strong principles against their campaign of death and deception. That $60 million welfare payment to big political parties was intended to be something akin to a weapon of mass destruction, obliterating independent representatives out of the parliament. More recently, the same independent MP has been equally vigorous in his campagin to break the scourge of our mafia-style gambling industry with it's cosy links to Australian politicians.
Now it is starting to become obvious just how scary democracy can be. Motivated by the spectacle of a few independents holding our incumbent politicians to account, other Australians have also volunteered to get in on the act and try their hand at running the country.
One of Australia's richest men, Clive Palmer has found that even with his enormous wealth (and having started planning more than a year before the election), his plans to form a political party are dampened by the fact that it can't be registered with a proper name to be listed on the ballot paper and all the candidates have to be listed under his name, Palmer, or their own names, barely distinguishable from the independent candidates. This discriminatory approach to the creation of political parties clearly favours the two big incumbent groups.
Now it is a lot clearer why existing politicians needed an extra $60 million war chest: like Lance Armstrong's illegal doping program, it was intended to keep themselves ahead of the pack.
It all goes to show that people should not take democracy for granted: constant vigilence and involvement is needed to hold leaders to account or replace them when they deviate.
| Attachment | Size |
|---|---|
| 32.83 KB |
nocache that was packaged
by Dmitry Smirnov (and just approved by the FTP masters!) whose packaging I
briefly reviewed per Dmitry's request and this is an amazing utility whose
purpose is to bypass/minimize file system caching for a program.
This is especially useful when you are making backups (reading lots of files
that would, otherwise, fill the filesystem cache, even if they are not used
frequently) or if you are just streaming one file (possibly larger than the
system's RAM) to another computer and you have no need to use the file
immediately after that.
It performs its job by using the LD_PRELOAD mechanism and using
posix_fadvise's flag POSIX_FADV_DONTNEED for the files that will be
touched.
Post note
Oh, just one aside: for the readers of Debian Planet and other aggregation
services which are not Debian Developers/Maintainers, I contributed to these
packages without being the maintainer of them, just scratching some itches
and contributing back what I produced.
Antonia came into the room. Where's Alieta? she asked.
We don't know, replied Luda. It was true; we hadn't seen Alieta
in quite some time, and we had no idea where she was.
Antonia left. Varvara eyed me mischievously and said, You could
call her.
How? I asked.
Touch the grandmother clock and you will figure it out.
I touched the clock trepidly. Nothing happened. I opened my mouth
to speak, but the word I had been about to say resonated in my mind
as if spoken through a comb filter. I concentrated. Alieta,
dozens of human-like voices sang over and over in different
harmonies. I let go.
What was that? I demanded.
Clock, Varvara said dismissively.
Come on, let's do laundry, Luda grunted.
We carried our laundry out to the garage, which is where the washer
and dryer lived. Alieta slipped in through one of the open garage
doors, and surreptitiously pulled Varvara over for a whispered
conversation.
Antonia wandered in and squinted in Alieta's general direction.
Luda quickly pulled Varvara in front of her. It's just Varvara,
she announced.
Antonia's eyes glazed over and she went back into the house.
Alieta pursed her lips and studied the wall as if there
might be some reflective object that had alerted her mother
to her presence. Then she grabbed Varvara by the hand, pulled
her over to push the buttons that closed the garage doors,
and dragged her into the house.
I watched the garage doors close. Then I watched the one on
the left reverse direction. I opened my mouth to notify someone
of this, but the doors reversed direction again, and proceeded
to partially open and close as if possessed. I tried to hide
behind Luda, without success.
Now she was watching as well, as reality seemed to to shimmer
and bend. The roof became arched, and there were loud mechanical
noises as our environs transformed. When it finished, the
place where the garage doors had been was now a wall of screens
displaying video as you might encounter in a television store.
More disconcertingly, we were in front of a railing which
overlooked what appeared to be a car dealership showroom.
Luda sucked in her breath. Benjamin Snow, you were into
some serious shit, she muttered.
I've just pushed out the release files for Obnam version
1.3, my backup application, as well as Larch,
my B-tree library, and cliapp, my Python
framework for command line applications. They
are available via my home page (http://liw.fi/). Since Debian is
frozen, I am not uploading packages to Debian, but .deb files are
available from my personal apt repository
for the intrepid. (I will be uploading to Debian again after the
freeze. I am afraid I'm too lazy to upload to experimental, or do
backports. Help is welcome!)
From the Obnam NEWS file:
open(2) system call with
the O_EXCL flag to create the target file. This should allow things
to work with both NFS and VFAT.--log=syslog message format improvement by Daniel Silverstone.
No longer includes a timestamp, since syslog adds it anyway. Also,
the process name is now set on Linux.help,
unless one already exists.master:/srv/leader/news/bits-from-the-DPL.txt.201208
Scratch has finally reached Debian repositories. Scratch is a programming learning environment created by the Lifelong Kindergarten Group at the MIT Media Lab designed to be accessible by young learners (over 8 years old). Scratch makes it easy to create your own interactive stories, animations, games, music, and art through a visual interface based on blocks. Thus, beginners can get results without having to learn to write syntactically correct code first. It is powerful enough to have even been adopted as an entry-level computer language in computer science programs at different universities.
Scratch makes use of pieces of code embedded in different blocks that are shaped like puzzle pieces. That way, programming consists on putting different blocks together, which gives immediate visual feedback to the programmer about the correctness of the syntax: If the pieces fit together, then the expression is valid. Scratch programming system is so nice and easy that has been the inspiration of other systems such as MIT App Inventor or Google Blocky.
Scratch animations consist of sprites that are animated by dragging the corresponent blocks into the Scripts area of the Scratch interface. Multiple sprites can be created and interact with one another. Each of the sprites can have different looks (called costumes in Scratch). You can use built-in sprites, load them from files, or draw your own using a drawing tool integrated in the environment.
Scratch itself is coded in Squeak, a Smalltalk implementation derived from Smalltalk-80.
The Scratch 1.4 source went GPLv2 on March, but there were some incompatibilites with the Squeak Virtual Machine currently in Wheezy that had to be resolved first. Luckily we were able to solve them, with the help of the Scratch and the Squeak guys, so I m happy to say that Scrach is finally available from Debian repositories.
Note: If any Scratch derivatives (such as BYOB or Panther) also need to be ported to the current version of Squeak, they should have a look at the comments in the Scratch ITP, and especially to the script uploaded by Bert Freudenberg, that replaces 90 indexed primitive declarations (removed in later versions of Squeak VM) with their named counterpart.
Note 2: This wouldn t have been possible without all the great work and effort made by Amos Blanton and many others. Lots of thanks!
The original image (in wallpaper resolution) was made^Whacked by my friend Aur lio .
Some networks have no connection to the outside except that they allow
surfing through an HTTP(S) proxy. Sometimes you are happy and the
HTTPS port (443) is unrestricted. The following server-side tools
allow you to exploit these weaknesses and get you a shell on your
server.
sslh
sslh is an SSH/SSL multiplexor. If a client connects to sslh, it
checks if the clients speaks the SSH or the SSL protocol and then
passes the connection to the according real port of SSL or some SSL
enabled service, e.g. an HTTPS, OpenVPN, Tinc or XMPP server. That way
it s possible to connect to one of these services and SSH on
the same port.
The usual scenario where this daemon is useful are firewalls which
block SSH, force HTTP to go through a proxy, but allow HTTPS
connections without restriction. In that case you let sslh listen on
the HTTPS port (443) and to move the real HTTPS server (e.g. Apache)
to listen on either a different port number (e.g. 442, 444 or 8443) or
on another IP address, e.g. on localhost, port 443.
On an Debian or Ubuntu based Apache HTTPS server, you just have to do
the following to run Apache on port 442 and sslh on port 443 instead:
apt-get install sslh as root./etc/default/sslh, change
RUN=no to RUN=yes and --ssl
127.0.0.1:443 to --ssl 127.0.0.1:442./etc/apache2/ports.conf and all
files in /etc/apache2/sites-available/ which
contain a reference to port 443 (which is only /etc/apache2/sites-available/default-ssl.conf in
the default configuration) and change all occurrences of
443 to 442.service apache2 restartservice sslh startssh -p 443 your.server.example.org) while
still being able to surf to
https://your.server.example.org/.
sslh works as threaded or as preforking daemon, or via inetd. It also
honors tcpwrapper configurations for sshd in /etc/hosts.allow and /etc/hosts.deny.
sslh is available as port or package at least in Gentoo, in FreeBSD,
in Debian and in Ubuntu.
AjaxTerm
A completely different approach takes AjaxTerm. It
provides a terminal inside a web browser with login and ssh being its
server-side backend.
Properly safe-guarded by HTTPS plus maybe HTTP based authentication
this can be an interesting emergency alternative to the more common
but also more often blocked remote login mechanisms.
AjaxTerm is available as package at least in Debian
and in
Ubuntu.
Happily I never were forced to use either of them myself. :-)
This thesis proposes a theory to characterize structural complexity in software systems. This theory aims to identify (i) the contribution of several factors to the structural complexity variation and (ii) the effects of structural complexity in software projects. Possible factors in the structural complexity variation include: human factors, such as general experience of the developers and their familiarity with the different parts of the system; factors related to the changes performed on the system, such as size variation and change diffusion; and organizational factors, such as the maturity of the software development process and the communication structure of the project. Effects of structural complexity include higher effort, and consequently higher cost, in software comprehension and maintenance activities. To test the validity of the proposed theory, four empirical studies were performed, mining data from free software project repositories. We analyzed historical data from changes performed in 13 systems from different application domains and written in different programming languages. The results of these studies indicated that all the factors studied influenced the structural complexity variation significantly in at least one of the projects, but different projects were influenced by different sets of factors. The models obtained were capable of describing up to 93% of the structural complexity variation in the projects analyzed. Keywords: Structural Complexity, Software Maintainance, Human factors in Software Engineering, Mining Software Repositories, Theories in Software Engineering, Empirical Software Engineering, Free/Open Source Software Projects.Those who read Portuguese can check out the actual thesis text as a PDF file. Most of the studies discussed in the thesis are presented in English in papers I have published during the last years. My defense is going to be on March 23rd. If you happen to be at Salvador at that day, please feel cordially invited.
The code for now is very simple:
#!/bin/sh -e
for attr in $(seq 0 1); do
for fg in $(seq 30 37); do
for bg in $(seq 40 47); do
printf "\033[$attr;$ bg ;$ fg m$attr;$fg;$bg\033[m "
done
echo
done
done
Is there a package in Debian that already does that? Would people find it useful to have this packaged?
update: it turns out you can find some similar stuff on google images. It was a quick and fun hack, though.
update 2: Replacing echo -n with printf makes the script work independently if /bin/sh is bash or dash. Thanks to cocci for pointing that out.
Next.