Is the locked books room at McMahon Hall at UW a metaphor for DRM in the academy? Could it be, like so many things in Seattle, sponsored by Amazon?
Mika noticed the room several weeks ago but felt that today s International Day Against DRM was a opportune time to raise the questions in front of a wider audience.
Mail configuration.
Sometimes I send mail to root@some-domain-I-don't-own from cron or sudo or whatever system and wonder why that happened.
I approached the SuperTuxKart community fearing some backslash due to last week s discussion about their release 0.9, to find instead a nice, friendly and welcoming community. I have already had some very nice talks with them since then, and they have patiently explained to me the sequence of events that led to the situation that I mentioned and that, for the sake of fairness, I consider that I have to share here too. You can read the log of the first conversation I had with them (the log has been edited and cleared up for clarity and readability). I seriously recommend reading it, it s a honest friendly conversation, and it s first hand.
For those who don t already know the game:
All this story seems to start with the complain of a 6 yo girl, close relative of one of the developers and STK user, who explained that she always felt that Mario Kart was better because there was a princess in it. I m not particularly happy with princesses as role models for girls, but one thing I have always said is that we have to listen to kids and take their opinions into accounts, and I know that if I had such a request from one of the kids closer to me, I probably would have fulfilled it too. In any case, Free Software projects based on volunteer work are essentially a do-ocracy and it is assumed that whoever does the work, gets to decide about it.
So that is how Princess Sara was added to the game. While developing it, I was assured that they took extra care that her proportions were somehow realistic, and not as distorted as we re used to see in Barbie or many Disney films. Sara is inspired on an OpenGameArt s wizard and is not supposed to be a weak damsel in distress, but in fact a powerful character in the world s universe.
Sara is not the only female character playable. There are a few others: Suzanne (a monkey, Blender s mascot), Xue (XFCE s mouse) and Amanda (a panda, the mascot of windows maker). Sara happens to be the only human character playable, male or female. While it has been argued that by adding that character, a player might have the impression that the rest of the characters would be male by default, I have been told that the intention is exactly the opposite,and that the fact that the only human playable character in the game is female should make it more attractive to girls. To some, at least.
Here are some images of Sara:
So the fact is that they have invested a lot of time in developing Sara s model. I m not an artist myself, so I don t know first hand how much time and effort it takes to make such a model, but in any case it seems that quite a lot. When they designed the beach track Gran Paradiso, they wanted to add people to the beach. That track is, in fact, inspired on a real existing place: Princess Juliana Airport. Time was over and they wanted to publish a version with what they already had, so they used Sara s model in a bikini on the beach, with the intention of adding more people, male and female, later. The overall view of the beach would be:
This is how that track shows when the players are driving in it:
Now, about the poster of version 0.9, it is supposed to be inspired in the previous poster of version 0.8.1, only this time inspired in Carnival (which is, in fact, a celebration in which sexualization of both genders is a core part). I know that there are accusations of cultural apropriation, but I couldn t know, as my white privilege probably shields me from seeing that. Up to now, no one has said anything about that, only Gunnar explaining his point of view as a non-native mexican: While the poster does not strike as the most cautious possible, I do not see it as culturally offensive. It does not attempt to set a scene portraiting what were the cultures really like; the portrait it paints is similar to so many fantasy recreations . In my opinion, even when the model is done in good taste, with no superbig breasts and no unrealistic waist, it s still depicting a girl without much clothes as the main element of the scene, with an attire, a posture and an attitude that clearly resembles carnival and, thus, inevitably conveys a message of sexualization. Even though I can t deny that it s a cute poster, it s one I wouldn t be happy to see for example in a school, if someone wanted to promote the game there. The author of the poster, anyway, tells me that he had a totally different intention when doing it, and he wanted to depict a powerful princess, in the center of SuperTuxKart s universe, celebrating the new engine.
About the panties showing every now and then, I ve been told that it s something so hard to see that in fact you would really have to open the model itself to view them. I m not saying that I like them though, I think it would have been better if Sara would have had short pants under the skirt, if she was going to drive the snowmobile with a dress, but I m not sure if that s something important enough to condemn the game. The original girl mentioned at the beginning of this post seems to have found the animation funny, started laughing, and said that Sara is very silly, and that was all. It s probably something more silly than naughty, I guess. Even though, as I said, it s something I don t like too much. I don t have to agree with STK developers in everything. I guess.
There s one thing I would like to highlight about my conversations with the developers of SuperTuxKart, though. I like them. They seem to be as concerned about the wellbeing of kids as I am, they have their own ethic norms of what s acceptable and what s not, and they want to do something to be proud of. Sometimes, many of these conflicts arise from a lack of trust. When I first saw the screenshots with the girl in bikini and the panties showing, I was honestly concerned about the direction the project was taking. After having talked with the developers, I am more calmed about it, because they seem to have their heart in the right place, they care, they are motivated and they work hard. I don t know if a princess would be my first choice for a main female character, but at least their intention seems to be to give some girls a sensible role model in the game with who they can identify.
Debian Jessie has been released on April 25th, 2015. This has opened the
Stretch development cycle. Reactions to the idea of making Debian
build reproducibly have
been pretty enthusiastic. As the pace is now likely to be even faster,
let's see if we can keep everyone up-to-date on the developments.
Before the release of Jessie
The story goes back a long
way
but a formal announcement to the
project
has only been sent in February 2015.
Since then, too much work has happened to make a complete report, but
to give some highlights:
unstable are tested but also those in testing
and experimental.--enable-deterministic-archives flag. Making ar, strip and
others create deterministic static
libraries.dh_makeshlibs
(#774100), dh_icons
(#774102), dh_usrlocal
(#775020). Patches written
by Lunar.--no-include-build-time option.
Patch by Jelmer
Vernooij.pidl
(from libparse-pidl-perl) reproducible.-creation-date to genisoimage.
Reiner Herrmann opened #783938 to
request making -notimestamp the default behavior for javadoc.
Juan Picca submitted a patch to add a
--use-date flag to texi2html.
Packages fixed
The following packages became reproducible due to changes of their
build dependencies:
apport,
batctl,
cil,
commons-math3,
devscripts,
disruptor,
ehcache,
ftphs,
gtk2hs-buildtools,
haskell-abstract-deque,
haskell-abstract-par,
haskell-acid-state,
haskell-adjunctions,
haskell-aeson,
haskell-aeson-pretty,
haskell-alut,
haskell-ansi-terminal,
haskell-async,
haskell-attoparsec,
haskell-augeas,
haskell-auto-update,
haskell-binary-conduit,
haskell-hscurses,
jsch,
ledgersmb,
libapache2-mod-auth-mellon,
libarchive-tar-wrapper-perl,
libbusiness-onlinepayment-payflowpro-perl,
libcapture-tiny-perl,
libchi-perl,
libcommons-codec-java,
libconfig-model-itself-perl,
libconfig-model-tester-perl,
libcpan-perl-releases-perl,
libcrypt-unixcrypt-perl,
libdatetime-timezone-perl,
libdbd-firebird-perl,
libdbix-class-resultset-recursiveupdate-perl,
libdbix-profile-perl,
libdevel-cover-perl,
libdevel-ptkdb-perl,
libfile-tail-perl,
libfinance-quote-perl,
libformat-human-bytes-perl,
libgtk2-perl,
libhibernate-validator-java,
libimage-exiftool-perl,
libjson-perl,
liblinux-prctl-perl,
liblog-any-perl,
libmail-imapclient-perl,
libmocked-perl,
libmodule-build-xsutil-perl,
libmodule-extractuse-perl,
libmodule-signature-perl,
libmoosex-simpleconfig-perl,
libmoox-handlesvia-perl,
libnet-frame-layer-ipv6-perl,
libnet-openssh-perl,
libnumber-format-perl,
libobject-id-perl,
libpackage-pkg-perl,
libpdf-fdf-simple-perl,
libpod-webserver-perl,
libpoe-component-pubsub-perl,
libregexp-grammars-perl,
libreply-perl,
libscalar-defer-perl,
libsereal-encoder-perl,
libspreadsheet-read-perl,
libspring-java,
libsql-abstract-more-perl,
libsvn-class-perl,
libtemplate-plugin-gravatar-perl,
libterm-progressbar-perl,
libterm-shellui-perl,
libtest-dir-perl,
libtest-log4perl-perl,
libtext-context-eitherside-perl,
libtime-warp-perl,
libtree-simple-perl,
libwww-shorten-simple-perl,
libwx-perl-processstream-perl,
libxml-filter-xslt-perl,
libxml-writer-string-perl,
libyaml-tiny-perl,
mupen64plus-core,
nmap,
openssl,
pkg-perl-tools,
quodlibet,
r-cran-rjags,
r-cran-rjson,
r-cran-sn,
r-cran-statmod,
ruby-nokogiri,
sezpoz,
skksearch,
slurm-llnl,
stellarium.
The following packages became reproducible after getting fixed:
-DNO_VERSION_DATE to build system.--use-date to texi2html.-creation-date to
genisoimage.debbindiff output, missing build logs, unavailable build
dependencies.
Holger Levsen added a new execution environment to run debbindiff using
dependencies from testing. This is required for packages built with
GHC as the compiler only understands interfaces built by the same
version.
debbindiff development
Version 17 has been uploaded to unstable. It now supports comparing
ISO9660 images, dictzip files and should compare identical files much
faster.
Documentation update
Various small updates and fixes to the pages about
PDF produced by LaTeX,
DVI produced by
LaTeX,
static
libraries,
Javadoc,
PE
binaries,
and Epydoc.
Package reviews
Known issues have been tagged when known to be deterministic as some
might unfortunately not show up on every single build.
For example, two new issues have been identified by building with one
timezone in April and one in May. RD
and help2man add current month and
year to the documentation they are producing.
1162 packages have been removed and 774 have been added in
the past week. Most of them are the work of proper automated
investigation done by Chris West.
Summer of code
Finally, we learned that both akira and Dhole were accepted for
this Google Summer of
Code.
Let's welcome them!
They have until May 25th before coding officialy begins. Now is the good time
to help them feel more comfortable by sharing all these little bits of
knowledge on how Debian works.
ui subdirectory.ui directory, create a environment.js file, with the following contents:const Shell = imports.gi.Shell; function init() window.global = Shell.Global.get();
main.js file, with the following contents:const St = imports.gi.St; function start() let text = new St.Label( text: "Hello, world!" ); global.stage.add_actor(text); global.stage.show();
You may want to run this in a separate X server (I use Xephyr)$ GNOME_SHELL_JS=/path/to/parent/of/ui gnome-shell
global.stage.show() is removed, and 3.8 doesn t display anything no matter what.
I guess the next step is to go through some Clutter tutorials and transpose them to Javascript.
Update: On the other hand, a lot of the window managing is still done by mutter under the hood, which doesn t leave a lot of space for something really different.
[INFO] +- org.apache.hadoop:hadoop-hdfs:jar:2.6.0:compile [INFO] +- com.google.guava:guava:jar:11.0.2:compile [INFO] +- org.mortbay.jetty:jetty:jar:6.1.26:compile [INFO] +- org.mortbay.jetty:jetty-util:jar:6.1.26:compile [INFO] +- com.sun.jersey:jersey-core:jar:1.9:compile [INFO] +- com.sun.jersey:jersey-server:jar:1.9:compile [INFO] \- asm:asm:jar:3.1:compile [INFO] +- commons-cli:commons-cli:jar:1.2:compile [INFO] +- commons-codec:commons-codec:jar:1.4:compile [INFO] +- commons-io:commons-io:jar:2.4:compile [INFO] +- commons-lang:commons-lang:jar:2.6:compile [INFO] +- commons-logging:commons-logging:jar:1.1.3:compile [INFO] +- commons-daemon:commons-daemon:jar:1.0.13:compile [INFO] +- javax.servlet.jsp:jsp-api:jar:2.1:compile [INFO] +- log4j:log4j:jar:1.2.17:compile [INFO] +- com.google.protobuf:protobuf-java:jar:2.5.0:compile [INFO] +- javax.servlet:servlet-api:jar:2.5:compile [INFO] +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile [INFO] +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile [INFO] +- tomcat:jasper-runtime:jar:5.5.23:compile [INFO] +- xmlenc:xmlenc:jar:0.52:compile [INFO] +- io.netty:netty:jar:3.6.2.Final:compile [INFO] +- xerces:xercesImpl:jar:2.9.1:compile [INFO] \- xml-apis:xml-apis:jar:1.3.04:compile [INFO] \- org.htrace:htrace-core:jar:3.0.4:compile [INFO] +- org.apache.hadoop:hadoop-auth:jar:2.6.0:compile [INFO] +- org.slf4j:slf4j-api:jar:1.7.5:compile [INFO] +- org.apache.httpcomponents:httpclient:jar:4.2.5:compile [INFO] \- org.apache.httpcomponents:httpcore:jar:4.2.4:compile [INFO] +- org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15:compile [INFO] +- org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15:compile [INFO] +- org.apache.directory.api:api-asn1-api:jar:1.0.0-M20:compile [INFO] \- org.apache.directory.api:api-util:jar:1.0.0-M20:compile [INFO] +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile [INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.5:compile [INFO] \- jline:jline:jar:0.9.94:compile [INFO] \- org.apache.curator:curator-framework:jar:2.6.0:compile [INFO] +- org.apache.hadoop:hadoop-common:jar:2.6.0:compile [INFO] +- org.apache.hadoop:hadoop-annotations:jar:2.6.0:compile [INFO] \- jdk.tools:jdk.tools:jar:1.6:system [INFO] +- org.apache.commons:commons-math3:jar:3.1.1:compile [INFO] +- commons-httpclient:commons-httpclient:jar:3.1:compile [INFO] +- commons-net:commons-net:jar:3.1:compile [INFO] +- commons-collections:commons-collections:jar:3.2.1:compile [INFO] +- com.sun.jersey:jersey-json:jar:1.9:compile [INFO] +- org.codehaus.jettison:jettison:jar:1.1:compile [INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:compile [INFO] \- javax.xml.bind:jaxb-api:jar:2.2.2:compile [INFO] +- javax.xml.stream:stax-api:jar:1.0-2:compile [INFO] \- javax.activation:activation:jar:1.1:compile [INFO] +- org.codehaus.jackson:jackson-jaxrs:jar:1.8.3:compile [INFO] \- org.codehaus.jackson:jackson-xc:jar:1.8.3:compile [INFO] +- net.java.dev.jets3t:jets3t:jar:0.9.0:compile [INFO] \- com.jamesmurty.utils:java-xmlbuilder:jar:0.4:compile [INFO] +- commons-configuration:commons-configuration:jar:1.6:compile [INFO] +- commons-digester:commons-digester:jar:1.8:compile [INFO] \- commons-beanutils:commons-beanutils:jar:1.7.0:compile [INFO] \- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile [INFO] +- org.apache.avro:avro:jar:1.7.4:compile [INFO] +- com.thoughtworks.paranamer:paranamer:jar:2.3:compile [INFO] \- org.xerial.snappy:snappy-java:jar:1.0.4.1:compile [INFO] +- com.google.code.gson:gson:jar:2.2.4:compile [INFO] +- com.jcraft:jsch:jar:0.1.42:compile [INFO] +- org.apache.curator:curator-client:jar:2.6.0:compile [INFO] +- org.apache.curator:curator-recipes:jar:2.6.0:compile [INFO] +- com.google.code.findbugs:jsr305:jar:1.3.9:compile [INFO] \- org.apache.commons:commons-compress:jar:1.4.1:compile [INFO] \- org.tukaani:xz:jar:1.0:compile [INFO] +- org.apache.hadoop:hadoop-core:jar:1.2.1:compile [INFO] +- org.apache.commons:commons-math:jar:2.1:compile [INFO] +- tomcat:jasper-compiler:jar:5.5.23:compile [INFO] +- org.mortbay.jetty:jsp-api-2.1:jar:6.1.14:compile [INFO] \- org.mortbay.jetty:servlet-api-2.5:jar:6.1.14:compile [INFO] +- org.mortbay.jetty:jsp-2.1:jar:6.1.14:compile [INFO] \- ant:ant:jar:1.6.5:compile [INFO] +- commons-el:commons-el:jar:1.0:compile [INFO] +- hsqldb:hsqldb:jar:1.8.0.10:compile [INFO] +- oro:oro:jar:2.0.8:compile [INFO] \- org.eclipse.jdt:core:jar:3.1.1:compile
Example: command1 = as_sudo(["cat,"/etc/passwd"]) + " grep user"(from the Ambari python documentation)
Common Lisp users are very happy to use
Quicklisp when it comes to
downloading and maintaining dependencies between their own code and the
librairies it is using.
Sometimes I am pointed that when compared to other programming languages
Common Lisp is lacking a lot in the
batteries included area. After having
had to
package about 50 common lisp librairies for debian I can tell you
that I politely disagree with that.
And this post is about the tool and process I use to maintain all those librairies.
Quicklisp is good at ensuring a proper distribution of all those libs it
supports and actually tests that they all compile and load together, so I've
been using it as my upstream for debian packaging purposes. Using Quicklisp
here makes my life much simpler as I can grovel through its metadata and
automate most of the maintenance of my cl related packages.
It's all automated in the
ql-to-deb software which, unsurprisingly, has been
written in Common Lisp itself. It's a kind of a Quicklisp client that will
fetch Quicklisp current list of
releases with version numbers and compare to
the list of managed
packages for debian in order to then
build new version
automatically.
The current workflow I'm using begins with using ql-to-deb is to check
for the work to be done today:
$ /vagrant/build/bin/ql-to-deb check
Fetching "http://beta.quicklisp.org/dist/quicklisp.txt"
Fetching "http://beta.quicklisp.org/dist/quicklisp/2015-04-07/releases.txt"
update: cl+ssl cl-csv cl-db3 drakma esrap graph hunchentoot local-time lparallel nibbles qmynd trivial-backtrace
upload: hunchentoot
After careful manual review of the automatic decision, let's just update
all what check decided would have to be:
$ /vagrant/build/bin/ql-to-deb update
Fetching "http://beta.quicklisp.org/dist/quicklisp.txt"
Fetching "http://beta.quicklisp.org/dist/quicklisp/2015-04-07/releases.txt"
Updating package cl-plus-ssl from 20140826 to 20150302.
see logs in "//tmp/ql-to-deb/logs//cl-plus-ssl.log"
Fetching "http://beta.quicklisp.org/archive/cl+ssl/2015-03-02/cl+ssl-20150302-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/cl+ssl-20150302-git.tgz"
md5: 61d9d164d37ab5c91048827dfccd6835
Building package cl-plus-ssl
Updating package cl-csv from 20140826 to 20150302.
see logs in "//tmp/ql-to-deb/logs//cl-csv.log"
Fetching "http://beta.quicklisp.org/archive/cl-csv/2015-03-02/cl-csv-20150302-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/cl-csv-20150302-git.tgz"
md5: 32f6484a899fdc5b690f01c244cd9f55
Building package cl-csv
Updating package cl-db3 from 20131111 to 20150302.
see logs in "//tmp/ql-to-deb/logs//cl-db3.log"
Fetching "http://beta.quicklisp.org/archive/cl-db3/2015-03-02/cl-db3-20150302-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/cl-db3-20150302-git.tgz"
md5: 578896a3f60f474742f240b703f8c5f5
Building package cl-db3
Updating package cl-drakma from 1.3.11 to 1.3.13.
see logs in "//tmp/ql-to-deb/logs//cl-drakma.log"
Fetching "http://beta.quicklisp.org/archive/drakma/2015-04-07/drakma-1.3.13.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/drakma-1.3.13.tgz"
md5: 3b548bce10728c7a058f19444c8477c3
Building package cl-drakma
Updating package cl-esrap from 20150113 to 20150302.
see logs in "//tmp/ql-to-deb/logs//cl-esrap.log"
Fetching "http://beta.quicklisp.org/archive/esrap/2015-03-02/esrap-20150302-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/esrap-20150302-git.tgz"
md5: 8b198d26c27afcd1e9ce320820b0e569
Building package cl-esrap
Updating package cl-graph from 20141106 to 20150407.
see logs in "//tmp/ql-to-deb/logs//cl-graph.log"
Fetching "http://beta.quicklisp.org/archive/graph/2015-04-07/graph-20150407-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/graph-20150407-git.tgz"
md5: 3894ef9262c0912378aa3b6e8861de79
Building package cl-graph
Updating package hunchentoot from 1.2.29 to 1.2.31.
see logs in "//tmp/ql-to-deb/logs//hunchentoot.log"
Fetching "http://beta.quicklisp.org/archive/hunchentoot/2015-04-07/hunchentoot-1.2.31.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/hunchentoot-1.2.31.tgz"
md5: 973eccfef87e81f1922424cb19884d63
Building package hunchentoot
Updating package cl-local-time from 20150113 to 20150407.
see logs in "//tmp/ql-to-deb/logs//cl-local-time.log"
Fetching "http://beta.quicklisp.org/archive/local-time/2015-04-07/local-time-20150407-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/local-time-20150407-git.tgz"
md5: 7be4a31d692f5862014426a53eb1e48e
Building package cl-local-time
Updating package cl-lparallel from 20141106 to 20150302.
see logs in "//tmp/ql-to-deb/logs//cl-lparallel.log"
Fetching "http://beta.quicklisp.org/archive/lparallel/2015-03-02/lparallel-20150302-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/lparallel-20150302-git.tgz"
md5: dbda879d0e3abb02a09b326e14fa665d
Building package cl-lparallel
Updating package cl-nibbles from 20141106 to 20150407.
see logs in "//tmp/ql-to-deb/logs//cl-nibbles.log"
Fetching "http://beta.quicklisp.org/archive/nibbles/2015-04-07/nibbles-20150407-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/nibbles-20150407-git.tgz"
md5: 2ffb26241a1b3f49d48d28e7a61b1ab1
Building package cl-nibbles
Updating package cl-qmynd from 20141217 to 20150302.
see logs in "//tmp/ql-to-deb/logs//cl-qmynd.log"
Fetching "http://beta.quicklisp.org/archive/qmynd/2015-03-02/qmynd-20150302-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/qmynd-20150302-git.tgz"
md5: b1cc35f90b0daeb9ba507fd4e1518882
Building package cl-qmynd
Updating package cl-trivial-backtrace from 20120909 to 20150407.
see logs in "//tmp/ql-to-deb/logs//cl-trivial-backtrace.log"
Fetching "http://beta.quicklisp.org/archive/trivial-backtrace/2015-04-07/trivial-backtrace-20150407-git.tgz"
Checksum test passed.
File: "/tmp/ql-to-deb/archives/trivial-backtrace-20150407-git.tgz"
md5: 762b0acf757dc8a2a6812d2f0f2614d9
Building package cl-trivial-backtrace
Quite simple.
To be totally honnest, I first had a problem with the parser generator
library
esrap wherein the
README documentation changed to be a
README.org
file, and I had to tell my debian packaging about that. See the
0ef669579cf7c07280eae7fe6f61f1bd664d337e commit to
ql-to-deb for details.
What about trying to install those packages locally? That's usually a very
good test. Sometimes some dependencies are missing at the
dpkg command line,
so another
apt-get install -f is needed:
$ /vagrant/build/bin/ql-to-deb install
sudo dpkg -i /tmp/ql-to-deb/cl-plus-ssl_20150302-1_all.deb /tmp/ql-to-deb/cl-csv_20150302-1_all.deb /tmp/ql-to-deb/cl-csv-clsql_20150302-1_all.deb /tmp/ql-to-deb/cl-csv-data-table_20150302-1_all.deb /tmp/ql-to-deb/cl-db3_20150302-1_all.deb /tmp/ql-to-deb/cl-drakma_1.3.13-1_all.deb /tmp/ql-to-deb/cl-esrap_20150302-1_all.deb /tmp/ql-to-deb/cl-graph_20150407-1_all.deb /tmp/ql-to-deb/cl-hunchentoot_1.2.31-1_all.deb /tmp/ql-to-deb/cl-local-time_20150407-1_all.deb /tmp/ql-to-deb/cl-lparallel_20150302-1_all.deb /tmp/ql-to-deb/cl-nibbles_20150407-1_all.deb /tmp/ql-to-deb/cl-qmynd_20150302-1_all.deb /tmp/ql-to-deb/cl-trivial-backtrace_20150407-1_all.deb
(Reading database ... 79689 files and directories currently installed.)
Preparing to unpack .../cl-plus-ssl_20150302-1_all.deb ...
Unpacking cl-plus-ssl (20150302-1) over (20140826-1) ...
Selecting previously unselected package cl-csv.
Preparing to unpack .../cl-csv_20150302-1_all.deb ...
Unpacking cl-csv (20150302-1) ...
Selecting previously unselected package cl-csv-clsql.
Preparing to unpack .../cl-csv-clsql_20150302-1_all.deb ...
Unpacking cl-csv-clsql (20150302-1) ...
Selecting previously unselected package cl-csv-data-table.
Preparing to unpack .../cl-csv-data-table_20150302-1_all.deb ...
Unpacking cl-csv-data-table (20150302-1) ...
Selecting previously unselected package cl-db3.
Preparing to unpack .../cl-db3_20150302-1_all.deb ...
Unpacking cl-db3 (20150302-1) ...
Preparing to unpack .../cl-drakma_1.3.13-1_all.deb ...
Unpacking cl-drakma (1.3.13-1) over (1.3.11-1) ...
Preparing to unpack .../cl-esrap_20150302-1_all.deb ...
Unpacking cl-esrap (20150302-1) over (20150113-1) ...
Preparing to unpack .../cl-graph_20150407-1_all.deb ...
Unpacking cl-graph (20150407-1) over (20141106-1) ...
Preparing to unpack .../cl-hunchentoot_1.2.31-1_all.deb ...
Unpacking cl-hunchentoot (1.2.31-1) over (1.2.29-1) ...
Preparing to unpack .../cl-local-time_20150407-1_all.deb ...
Unpacking cl-local-time (20150407-1) over (20150113-1) ...
Preparing to unpack .../cl-lparallel_20150302-1_all.deb ...
Unpacking cl-lparallel (20150302-1) over (20141106-1) ...
Preparing to unpack .../cl-nibbles_20150407-1_all.deb ...
Unpacking cl-nibbles (20150407-1) over (20141106-1) ...
Preparing to unpack .../cl-qmynd_20150302-1_all.deb ...
Unpacking cl-qmynd (20150302-1) over (20141217-1) ...
Preparing to unpack .../cl-trivial-backtrace_20150407-1_all.deb ...
Unpacking cl-trivial-backtrace (20150407-1) over (20120909-2) ...
Setting up cl-plus-ssl (20150302-1) ...
dpkg: dependency problems prevent configuration of cl-csv:
cl-csv depends on cl-interpol; however:
Package cl-interpol is not installed.
dpkg: error processing package cl-csv (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of cl-csv-clsql:
cl-csv-clsql depends on cl-csv; however:
Package cl-csv is not configured yet.
dpkg: error processing package cl-csv-clsql (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of cl-csv-data-table:
cl-csv-data-table depends on cl-csv; however:
Package cl-csv is not configured yet.
dpkg: error processing package cl-csv-data-table (--install):
dependency problems - leaving unconfigured
Setting up cl-db3 (20150302-1) ...
Setting up cl-drakma (1.3.13-1) ...
Setting up cl-esrap (20150302-1) ...
Setting up cl-graph (20150407-1) ...
Setting up cl-local-time (20150407-1) ...
Setting up cl-lparallel (20150302-1) ...
Setting up cl-nibbles (20150407-1) ...
Setting up cl-qmynd (20150302-1) ...
Setting up cl-trivial-backtrace (20150407-1) ...
Setting up cl-hunchentoot (1.2.31-1) ...
Errors were encountered while processing:
cl-csv
cl-csv-clsql
cl-csv-data-table
Let's make sure that our sid users will be happy with the update here:
$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
g++-4.7 git git-man html2text libaugeas-ruby1.8 libbind9-80
libclass-isa-perl libcurl3-gnutls libdns88 libdrm-nouveau1a
libegl1-mesa-drivers libffi5 libgraphite3 libgssglue1 libisc84 libisccc80
libisccfg82 liblcms1 liblwres80 libmpc2 libopenjpeg2 libopenvg1-mesa
libpoppler19 librtmp0 libswitch-perl libtiff4 libwayland-egl1-mesa luatex
openssh-blacklist openssh-blacklist-extra python-chardet python-debian
python-magic python-pkg-resources python-six ttf-dejavu-core ttf-marvosym
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
cl-interpol
The following NEW packages will be installed:
cl-interpol
0 upgraded, 1 newly installed, 0 to remove and 51 not upgraded.
3 not fully installed or removed.
Need to get 20.7 kB of archives.
After this operation, 135 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ftp.fr.debian.org/debian/ sid/main cl-interpol all 0.2.1-2 [20.7 kB]
Fetched 20.7 kB in 0s (84.5 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
Selecting previously unselected package cl-interpol.
(Reading database ... 79725 files and directories currently installed.)
Preparing to unpack .../cl-interpol_0.2.1-2_all.deb ...
Unpacking cl-interpol (0.2.1-2) ...
Setting up cl-interpol (0.2.1-2) ...
Setting up cl-csv (20150302-1) ...
Setting up cl-csv-clsql (20150302-1) ...
Setting up cl-csv-data-table (20150302-1) ...
All looks fine, time to
sign those packages. There's a trick here, where you
want to be sure you're using a GnuPG setup that allows you to enter your
passphrase only once, see
ql-to-deb vm setup for details, and the usual
documentations about all that if you're interested into the details.
$ /vagrant/build/bin/ql-to-deb sign
signfile /tmp/ql-to-deb/cl-plus-ssl_20150302-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-plus-ssl_20150302-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-csv_20150302-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-csv_20150302-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-db3_20150302-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-db3_20150302-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-drakma_1.3.13-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-drakma_1.3.13-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-esrap_20150302-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-esrap_20150302-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-graph_20150407-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-graph_20150407-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/hunchentoot_1.2.31-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/hunchentoot_1.2.31-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-local-time_20150407-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-local-time_20150407-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-lparallel_20150302-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-lparallel_20150302-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-nibbles_20150407-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-nibbles_20150407-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-qmynd_20150302-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-qmynd_20150302-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
signfile /tmp/ql-to-deb/cl-trivial-backtrace_20150407-1.dsc 60B1CB4E
signfile /tmp/ql-to-deb/cl-trivial-backtrace_20150407-1_amd64.changes 60B1CB4E
Successfully signed dsc and changes files
Ok, with all tested and signed, it's time we
upload our packages on debian
servers for our dear debian users to be able to use newer and better
versions of their beloved Common Lisp librairies:
$ /vagrant/build/bin/ql-to-deb upload
Trying to upload package to ftp-master (ftp.upload.debian.org)
Checking signature on .changes
gpg: Signature made Sat 02 May 2015 05:06:48 PM MSK using RSA key ID 60B1CB4E
gpg: Good signature from "Dimitri Fontaine <dim@tapoueh.org>"
Good signature on /tmp/ql-to-deb/cl-plus-ssl_20150302-1_amd64.changes.
Checking signature on .dsc
gpg: Signature made Sat 02 May 2015 05:06:46 PM MSK using RSA key ID 60B1CB4E
gpg: Good signature from "Dimitri Fontaine <dim@tapoueh.org>"
Good signature on /tmp/ql-to-deb/cl-plus-ssl_20150302-1.dsc.
Uploading to ftp-master (via ftp to ftp.upload.debian.org):
Uploading cl-plus-ssl_20150302-1.dsc: done.
Uploading cl-plus-ssl_20150302.orig.tar.gz: done.
Uploading cl-plus-ssl_20150302-1.debian.tar.xz: done.
Uploading cl-plus-ssl_20150302-1_all.deb: done.
Uploading cl-plus-ssl_20150302-1_amd64.changes: done.
Successfully uploaded packages.
Of course the same text or abouts is then repeated for all the other packages.
Enjoy using Common Lisp in debian!
Oh and remember, the only reason I've written
ql-to-deb and signed myself up
to maintain those upteens Common Lisp librairies as debian package is to be
able to properly package
pgloader in debian, as you can see at
https://packages.debian.org/sid/pgloader and in particular in the
Other
Packages Related to pgloader section of the debian source package for
pgloader at
https://packages.debian.org/source/sid/pgloader.
That level of effort is done to ensure that we respect the
Debian Social Contract wherein debian ensures its users that it's possible
to rebuild anything from sources as found in the debian repositories.
It has been recently discussed in Debian-Women and Debian-Games mailing lists, but for all of you who don t read those mailing lists and might have kids or use free games with kids in the classroom, or stuff like that, I thought it might be good to talk about it here.
SuperTuxKart is a free 3D kart racing game, similar to Mario Kart, with a focus on having fun over realism. The characters in the game are the mascots of free and open source projects, except for Nolok, who does not represent a particular open source project, but was created by the SuperTux Game Team as the enemy of Tux.
On April 21, 2015, version 0.9 (not yet in Debian) was released which used the Antarctica graphics engine (a derivative of Irrlicht) and enabled better graphics appearance and features such as dynamic lighting, ambient occlusion, depth of field, and global illumination.
Along with this new engine comes a poster with a sexualized white woman is wearing an outfit that can be depicted as a mix of Native american clothes from different nation and a halo of feathers, as well as many models of her in a bikini swim suit, all along the game, even in the hall of the airport.
They say an image is worth more than a thousand words, don t they?
DIST=wheezy git-pbuilder createYou will find all the files in /var/cache/pbuilder/base-wheezy.cow/ which is then ready to do be used. For more information about this useful tool, look at the git-builder entry on the Debian wiki. Creating the branch The master branch is generally where sid will located. For the other distributions, I use branches. For the initial setup you will need to create the branch and start it off from the right point. For example, the last non-security update for wordpress in jessie was version 4.1+dfsg-1. We then want the jessie branch to start from this point.
git branch jessie debian/4.1+dfsg-1 git checkout jessieThis will then create and put you on the jessie branch. You only need the first line once. You can switch between sid (master branch) and jessie (jessie branch). At this point you have a working place to make all the updates you need to do. Nothing is terribly different from the usual workflow. Building the package Make sure you have checked in all your changes and now it is time to build your package!
git-buildpackage --git-pbuilder --git-dist=jessie --git-debian-branch=jessieYou may need two additional flags:
-v option, or the C_TAP_VERBOSE
environment variable is set, the full output of each test case will be
printed. The output is currently pretty messy, and I hope to improve it
in the future, but it's a start.
This release also supports compilation with Clang with all warnings
enabled, and resolves all warnings shown by -Weverything (except
the ones about padding, because that's not actually a useful warning). It
includes new machinery to detect the compiler and switch warning flags. I
will hopefully get a chance to go through my other projects and make them
build cleanly with Clang, but it requires adding casts for any conversion
from unsigned to signed or vice versa, so that may take a while.
You can get the latest version from the
C TAP Harness distribution page.
the Debian Edu / Skolelinux project is pleased to announce the first
*beta* release of Debian Edu "Jessie" 8.0+edu0~b1, which for the first
time is composed entirely of packages from the current Debian stable
release, Debian 8 "Jessie".
(As most reading this will know, Debian "Jessie" hasn't actually been
released by now. The release is still in progress but should finish
later today ;)
We expect to make a final release of Debian Edu "Jessie" in the coming
weeks, timed with the first point release of Debian Jessie. Upgrades
from this beta release of Debian Edu Jessie to the final release will
be possible and encouraged!
Please report feedback to debian-edu@lists.debian.org and/or submit
bugs: http://wiki.debian.org/DebianEdu/HowTo/ReportBugs
Debian Edu - sometimes also known as "Skolelinux" - is a complete
operating system for schools, universities and other
organisations. Through its pre- prepared installation profiles
administrators can install servers, workstations and laptops which
will work in harmony on the school network. With Debian Edu, the
teachers themselves or their technical support staff can roll out a
complete multi-user, multi-machine study environment within hours or
days.
Debian Edu is already in use at several hundred schools all over the
world, particularly in Germany, Spain and Norway. Installations come
with hundreds of applications pre-installed, plus the whole Debian
archive of thousands of compatible packages within easy reach.
For those who want to give Debian Edu Jessie a try, download and
installation instructions are available, including detailed
instructions in the manual explaining the first steps, such as setting
up a network or adding users. Please note that the password for the
user your prompted for during installation must have a length of at
least 5 characters!
== Where to download ==
A multi-architecture CD / usbstick image (649 MiB) for network booting
can be downloaded at the following locations:
http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~b1-CD.iso
rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~b1-CD.iso .
The SHA1SUM of this image is: 54a524d16246cddd8d2cfd6ea52f2dd78c47ee0a
Alternatively an extended DVD / usbstick image (4.9 GiB) is also
available, with more software included (saving additional download
time):
http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~b1-USB.iso
rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~b1-USB.iso
The SHA1SUM of this image is: fb1f1504a490c077a48653898f9d6a461cb3c636
Sources are available from the Debian archive, see
http://ftp.debian.org/debian-cd/8.0.0/source/ for some download
options.
== Debian Edu Jessie manual in seven languages ==
Please see https://wiki.debian.org/DebianEdu/Documentation/Jessie/ for
the English version of the Debian Edu jessie manual.
This manual has been fully translated to German, French, Italian,
Danish, Dutch and Norwegian Bokm l. A partly translated version exists
for Spanish. See http://maintainer.skolelinux.org/debian-edu-doc/ for
online version of the translated manual.
More information about Debian 8 "Jessie" itself is provided in the
release notes and the installation manual:
- http://www.debian.org/releases/jessie/releasenotes
- http://www.debian.org/releases/jessie/installmanual
== Errata / known problems ==
It takes up to 15 minutes for a changed hostname to be updated via
DHCP (#780461).
The hostname script fails to update LTSP server hostname (#783087).
Workaround: run update-hostname-from-ip on the client to update the
hostname immediately.
Check https://wiki.debian.org/DebianEdu/Status/Jessie for a possibly
more current and complete list.
== Some more details about Debian Edu 8.0+edu0~b1 Codename Jessie released 2015-04-25 ==
=== Software updates ===
Everything which is new in Debian 8 Jessie, e.g.:
* Linux kernel 3.16.7-ctk9; for the i386 architecture, support for
i486 processors has been dropped; oldest supported ones: i586 (like
Intel Pentium and AMD K5).
* Desktop environments KDE Plasma Workspaces 4.11.13, GNOME 3.14,
Xfce 4.12, LXDE 0.5.6
* new optional desktop environment: MATE 1.8
* KDE Plasma Workspaces is installed by default; to choose one of
the others see the manual.
* the browsers Iceweasel 31 ESR and Chromium 41
* LibreOffice 4.3.3
* GOsa 2.7.4
* LTSP 5.5.4
* CUPS print system 1.7.5
* new boot framework: systemd
* Educational toolbox GCompris 14.12
* Music creator Rosegarden 14.02
* Image editor Gimp 2.8.14
* Virtual stargazer Stellarium 0.13.1
* golearn 0.9
* tuxpaint 0.9.22
* New version of debian-installer from Debian Jessie.
* Debian Jessie includes about 43000 packages available for installation.
* More information about Debian 8 Jessie is provided in its release
notes and the installation manual, see the link above.
=== Installation changes ===
Installations done via PXE now also install firmware automatically
for the hardware present.
=== Fixed bugs ===
A number of bugs have been fixed in this release; the most noticeable
from a user perspective:
* Inserting incorrect DNS information in Gosa will no longer break
DNS completely, but instead stop DNS updates until the incorrect
information is corrected (710362)
* shutdown-at-night now shuts the system down if gdm3 is used (775608).
=== Sugar desktop removed ===
As the Sugar desktop was removed from Debian Jessie, it is also not
available in Debian Edu jessie.
== About Debian Edu / Skolelinux ==
Debian Edu, also known as Skolelinux, is a Linux distribution based on
Debian providing an out-of-the box environment of a completely
configured school network. Directly after installation a school server
running all services needed for a school network is set up just
waiting for users and machines being added via GOsa , a comfortable
Web-UI. A netbooting environment is prepared using PXE, so after
initial installation of the main server from CD or USB stick all other
machines can be installed via the network. The provided school server
provides LDAP database and Kerberos authentication service,
centralized home directories, DHCP server, web proxy and many other
services. The desktop contains more than 60 educational software
packages and more are available from the Debian archive, and schools
can choose between KDE, GNOME, LXDE, Xfce and MATE desktop
environment.
== About Debian ==
The Debian Project was founded in 1993 by Ian Murdock to be a truly
free community project. Since then the project has grown to be one of
the largest and most influential open source projects. Thousands of
volunteers from all over the world work together to create and
maintain Debian software. Available in 70 languages, and supporting a
huge range of computer types, Debian calls itself the universal
operating system.
== Thanks ==
Thanks to everyone making Debian and Debian Edu / Skolelinux happen!
You rock.
What happens if you remove randomness from Doom?
For some reason, recently I have been thinking about Doom. This
evening I was wanting to explore some behaviour in an old version of
Doom and to do so, I hex-edited the binary and replaced the random
number lookup table with static values.
Rather than consume system randomness, Doom has a fixed 256-value
random number table from which numbers are pulled by aspects of the
game logic. By replacing the whole table with a constant value, you
essentially make the game entirely deterministic.
What does it play like? I tried two values, 0x00 and 0xFF. With
either value, the screen "melt" effect that is used at the end of
levels is replaced with a level vertical wipe: the randomness was
used to offset each column. Monsters do not make different death
noises at different times; only one is played for each category of
monster. The bullet-based (hitscan) weapons have no spread at all:
the shotgun becomes like a sniper rifle, and the chain-gun is
likewise always true. You'd think this would make the super-shotgun
a pretty lethal weapon, but it seems to have been nerfed: the
spread pattern is integral to its function.
With 0x00, monsters never make their idle noises (breathing etc.)
On the other hand, with 0xFF, they always do: so often, that each
sample collides with the previous one, and you just get a sort-of
monster drone. This is quite overwhelming with even a small pack of
monsters.
With 0xFF, any strobing sectors (flickering lights etc.), are
static. However, with 0x00, they strobe like crazy.
With 0x00, monsters seem to choose to attack much more frequently than
usual. Damage seems to be worst-case. The most damaging floor type
("super hellslime"/20%) can hurt you even if you are wearing a radiation
suit: There was a very low chance of it hurting whilst wearing the
suit (~2.6%)
each time the game checked; this is rounded up to 100%.
Various other aspects of the game become weird. A monster may always
choose to use a ranged attack, regardless of how close you are. They
might give up pursuing you. I've seen them walk aimlessly in circles
if they are obstructed by another thing. The chance of monster
in-fighting is never, or a certainty. The player is either mute, or
cries in pain whenever he's hurt.
If you want to try this yourself, the easiest way is to hack the m_random.c
file in the source, but you can hex-edit a binary. Look for a 256-byte sequence
beginning beginning ['0x0', '0x8', '0x6d', '0xdc', '0xde', '0xf1'] and ending
['0x78', '0xa3', '0xec', '0xf9'].
POST /v1/metric HTTP/1.1
Content-Type: application/json
"archive_policy_name": "low"
HTTP/1.1 201 Created
Location: http://localhost/v1/metric/387101dc-e4b1-4602-8f40-e7be9f0ed46a
Content-Type: application/json; charset=UTF-8
"archive_policy":
"aggregation_methods": [
"std",
"sum",
"mean",
"count",
"max",
"median",
"min",
"95pct"
],
"back_window": 0,
"definition": [
"granularity": "0:00:01",
"points": 3600,
"timespan": "1:00:00"
,
"granularity": "0:30:00",
"points": 48,
"timespan": "1 day, 0:00:00"
],
"name": "low"
,
"created_by_project_id": "e8afeeb3-4ae6-4888-96f8-2fae69d24c01",
"created_by_user_id": "c10829c6-48e2-4d14-ac2b-bfba3b17216a",
"id": "387101dc-e4b1-4602-8f40-e7be9f0ed46a",
"name": null,
"resource_id": null
archive_policy_name parameter defines how the measures that are being
sent are going to be aggregated. You can also define archive policies using the
API and specify what kind of aggregation period and granularity you want. In
that case , the low archive policy keeps 1 hour of data aggregated over 1
second and 1 day of data aggregated to 30 minutes. The functions used for
aggregations are the mathematical functions standard deviation, minimum,
maximum, and even 95th percentile. All of that is obviously customizable and
you can create your own archive policies.
If you don't want to specify the archive policy manually for each metric, you
can also create archive policy rule, that will apply a specific archive
policy based on the metric name, e.g. metrics matching disk.* will be high
resolution metrics so they will use the high archive policy.
It's also worth noting Gnocchi is precise up to the nanosecond and is not tied
to the current time. You can manipulate and inject measures that are years old
and precise to the nanosecond. You can also inject points with old timestamps
(i.e. old compared to the most recent one in the timeseries) with an archive
policy allowing it (see back_window parameter).
It's then possible to send measures to this metric:
POST /v1/metric/387101dc-e4b1-4602-8f40-e7be9f0ed46a/measures HTTP/1.1
Content-Type: application/json
[
"timestamp": "2014-10-06T14:33:57",
"value": 43.1
,
"timestamp": "2014-10-06T14:34:12",
"value": 12
,
"timestamp": "2014-10-06T14:34:20",
"value": 2
]
HTTP/1.1 204 No Content
GET /v1/metric/387101dc-e4b1-4602-8f40-e7be9f0ed46a/measures HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
[
"2014-10-06T14:30:00.000000Z",
1800.0,
19.033333333333335
],
[
"2014-10-06T14:33:57.000000Z",
1.0,
43.1
],
[
"2014-10-06T14:34:12.000000Z",
1.0,
12.0
],
[
"2014-10-06T14:34:20.000000Z",
1.0,
2.0
]
]
aggregation, start and stop query
parameter.
Gnocchi also supports doing aggregation across aggregated metrics:
GET /v1/aggregation/metric?metric=65071775-52a8-4d2e-abb3-1377c2fe5c55&metric=9ccdd0d6-f56a-4bba-93dc-154980b6e69a&start=2014-10-06T14:34&aggregation=mean HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
[
"2014-10-06T14:34:12.000000Z",
1.0,
12.25
],
[
"2014-10-06T14:34:20.000000Z",
1.0,
11.6
]
]
65071775-52a8-4d2e-abb3-1377c2fe5c55 and
9ccdd0d6-f56a-4bba-93dc-154980b6e69a starting on 6th October 2014 at 14:34
UTC.
Indexing your resources
POST /v1/resource/generic HTTP/1.1
Content-Type: application/json
"id": "75C44741-CC60-4033-804E-2D3098C7D2E9",
"project_id": "BD3A1E52-1C62-44CB-BF04-660BD88CD74D",
"user_id": "BD3A1E52-1C62-44CB-BF04-660BD88CD74D"
HTTP/1.1 201 Created
Location: http://localhost/v1/resource/generic/75c44741-cc60-4033-804e-2d3098c7d2e9
ETag: "e3acd0681d73d85bfb8d180a7ecac75fce45a0dd"
Last-Modified: Fri, 17 Apr 2015 11:18:48 GMT
Content-Type: application/json; charset=UTF-8
"created_by_project_id": "ec181da1-25dd-4a55-aa18-109b19e7df3a",
"created_by_user_id": "4543aa2a-6ebf-4edd-9ee0-f81abe6bb742",
"ended_at": null,
"id": "75c44741-cc60-4033-804e-2d3098c7d2e9",
"metrics": ,
"project_id": "bd3a1e52-1c62-44cb-bf04-660bd88cd74d",
"revision_end": null,
"revision_start": "2015-04-17T11:18:48.696288Z",
"started_at": "2015-04-17T11:18:48.696275Z",
"type": "generic",
"user_id": "bd3a1e52-1c62-44cb-bf04-660bd88cd74d"
revision_start and
revision_end fields are for. They indicates the lifetime of this revision of
the resource. The ETag and Last-Modified headers are also unique to this
resource revision and can be used in a subsequent request using If-Match or
If-Not-Match header, for example:
GET /v1/resource/generic/75c44741-cc60-4033-804e-2d3098c7d2e9 HTTP/1.1
If-Not-Match: "e3acd0681d73d85bfb8d180a7ecac75fce45a0dd"
HTTP/1.1 304 Not Modified
PATCH HTTP method to modify properties of the resource, which
will create a new revision of the resource. The history of the resources are
available via the REST API obviously.
The metrics properties of the resource allow you to link metrics to a
resource. You can link existing metrics or create new ones dynamically:
POST /v1/resource/generic HTTP/1.1
Content-Type: application/json
"id": "AB68DA77-FA82-4E67-ABA9-270C5A98CBCB",
"metrics":
"temperature":
"archive_policy_name": "low"
,
"project_id": "BD3A1E52-1C62-44CB-BF04-660BD88CD74D",
"user_id": "BD3A1E52-1C62-44CB-BF04-660BD88CD74D"
HTTP/1.1 201 Created
Location: http://localhost/v1/resource/generic/ab68da77-fa82-4e67-aba9-270c5a98cbcb
ETag: "9f64c8890989565514eb50c5517ff01816d12ff6"
Last-Modified: Fri, 17 Apr 2015 14:39:22 GMT
Content-Type: application/json; charset=UTF-8
"created_by_project_id": "cfa2ebb5-bbf9-448f-8b65-2087fbecf6ad",
"created_by_user_id": "6aadfc0a-da22-4e69-b614-4e1699d9e8eb",
"ended_at": null,
"id": "ab68da77-fa82-4e67-aba9-270c5a98cbcb",
"metrics":
"temperature": "ad53cf29-6d23-48c5-87c1-f3bf5e8bb4a0"
,
"project_id": "bd3a1e52-1c62-44cb-bf04-660bd88cd74d",
"revision_end": null,
"revision_start": "2015-04-17T14:39:22.181615Z",
"started_at": "2015-04-17T14:39:22.181601Z",
"type": "generic",
"user_id": "bd3a1e52-1c62-44cb-bf04-660bd88cd74d"
POST /v1/search/resource/instance HTTP/1.1
Content-Type: application/json
"=":
"user_id": "bd3a1e52-1c62-44cb-bf04-660bd88cd74d"
user_id
bd3a1e52-1c62-44cb-bf04-660bd88cd74d.
You can do fancier queries such as retrieving all the instances started by a
user this month:
POST /v1/search/resource/instance HTTP/1.1
Content-Type: application/json
Content-Length: 113
"and": [
"=":
"user_id": "bd3a1e52-1c62-44cb-bf04-660bd88cd74d"
,
">=":
"started_at": "2015-04-01"
]
foobar the
15th April and who had already 30 minutes of uptime? Let's ask Gnocchi to look
in the history!
POST /v1/search/resource/instance?history=true HTTP/1.1
Content-Type: application/json
Content-Length: 113
"and": [
"=":
"host": "foobar"
,
">=":
"lifespan": "1 hour"
,
"<=":
"revision_start": "2015-04-15"
]
Next.