# aptitude update
[...pain...]
Get:431 http://ftp5.gwdg.de testing/main 2013-11-27-1437.17.pdiff [46 B]
Fetched 2.445 kB in 9min 15s (4.401 B/s)
# aptitude -o Acquire::Pdiffs=false
[...joy...]
Get:17 http://ftp5.gwdg.de testing/non-free Translation-en [69,4 kB]
Fetched 616 kB in 7s (85,7 kB/s)
The open-source chess program Stockfish recently
climbed to the top of the TCEC rating lists.
Even though it does not seem likely to win the actual TCEC tournament
(it is 15.5 11.5 down in the 48-game superfinal against Komodo,
a closed-source commercial program, after winning 4, losing 8 and
drawing 15), this is a tremendeous achievement.
This is not only because it is highly unusual that the strongest chess
program is open-source (it's naturally hard to keep a competitive edge
when everybody can see your secrets!), but also because it is a mere 9000
lines of C++ code. (This is without a GUI; it interfaces through a standardized
protocol known as UCI.) In comparison, Crafty, a far weaker open-source
program, is about four times that, GNU Chess is above 40000, and I seem to
recall that the Deep Blue program was something like 65000 lines (in addition
to, of course, all the code for the ASIC chess chips it contained, and
stood for the majority of its chess strength!). So, the development team is
really to be commended.
It should also be said that TCEC is testing the latest beta versions of most
of these engines and while Stockfish is developed in the open, on
GitHub, the latest versions of e.g. Komodo and Houdini are private.
(This is probably one of the reasons why Stockfish is slightly lower on
e.g. the CCRL list,
which also computes chess program rating lists by playing games between them.)
Now, why does anyone care? Only a very small handful of players would be
able to score even a draw against any of these programs in a 10-game match,
so does it really matter which one we choose? Or is this some obscure pissing
contest?
The answer, of course, is that these engines are not primarily useful for
competitive play; they are useful for analysis. Almost any player,
right down from beginners to the very top players, can benefit from having
someone stronger than them look at their games (or others' games!) and say
where things went wrong. (Somehow analyzing losses always seem more
instructive than analyzing wins. Nobody ever got better by winning, as the
saying goes.) And the better a program is at playing chess, the more likely
is its analysis to be correct.
Of course, for the weaker players, a chess
coach is likely to produce much more understandable guidance ( this creates
a weak square on c7 is much more palatable than after these 18 moves here,
white is 0.48 pawns stronger than you, so this was a bad move , and engines
produce the latter sort of output), but they are always available, incredibly
strong, and cost much less than a coach. :-) They also add a lot to the
otherwise quite hard-to-comprehend activity of watching high-level human
players; while the computers do not understand every kind of position
equally well, they at least provide some sort of objective verdict on which
player has the upper hand, something which can be really hard to discern
unless you have very strong players around for commentary.
So, in trying to improve my skills a bit, I've been analyzing my games with
engines for a while, and recently I've switched from Rybka to Stockfish.
(Rybka, a closed-source program, used to be the clear leader of the pack,
but after a huge amount of drama involving accusations of who has copied
code from who, it seems no longer to be actively developed, and Stockfish
is now somewhat stronger.)
This, unfortunately, brings me to the things I don't like too much about
Stockfish; it seems to behave more erratically than Rybka did in interactive
analysis mode. Its score jumps a lot more around when I move something (worse
at remember the analysis from the previous position?), and sometimes, it
changes its mind a lot when I move back and forth between moves maybe
the huge selectivity that makes chess engines so strong these days also make
them behave less usefully when only looking at a move for a few seconds.
So, even though Stockfish is a fantastic chess engine, and will only get
better in the future, maybe I'll go back to Rybka at some point. But then
again, maybe I should then check out Komodo or any of the other engines
out there or maybe talk to someone who actually knows chess,
that would help a lot, too =)
Background I upgraded from Linux 3.8 to 3.11 among with newer Mesa, X.Org and Intel driver recently and I found a small workaround was needed because of upstream changes.And since I'm using lightdm, adding the following to /etc/lightdm/lightdm.conf means the flicker only happens once during bootup:if [ "$(/usr/bin/xrandr -q --prop grep 'Broadcast RGB: Full' wc -l)" = "0" ] ; then
/usr/bin/xrandr --output HDMI3 --set "Broadcast RGB" "Full"
fi
display-setup-script=/etc/X11/Xsession.d/95fullrgb
My UPS has decided that every two weeks when it performs a self-test that my 116V mains power isn t good enough, so it drains the battery and shuts down my home network. Only took a month and a half for me to see on the network graphs that my outages were, to the minute, 2 weeks apart. :)
In theory, reducing the sensitivity will fix this
2013, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.
All these components may be running on a single host or they may be distributed across different servers and workstations in a LAN. The OpenMAMA market data bus ties them together.
External data sources
These are external sources of data. These could be currency trading firms, stock brokers, bullion dealers or even Bitcoin exchanges. Some exchanges don't provide data services directly to the general public and they distribute their price data through third-party data vendors such as Reuters and Bloomberg.
Feed handlers
The feed handlers manage the connections to external data sources. These are typically daemon processes that implement the wire protocols used by the external vendors for transmitting data over the public internet or a leased line. They typically use a point-to-point topology such as TCP connections.
The feed handlers publish the data into the market data bus.
In practice, the feed handler may be a proprietary application provided by the data vendor or it may simply be a Python script that fetches exchange rates from a URL every five minutes.
OpenMAMA
The market data bus is a distributed framework that is accessible to all of the local servers and workstations in the LAN.
At the lowest level a messaging middleware solution is used to transport the data. The Avis Event Router is a free middleware. There is upcoming support for Apache QPID as well. Some commcercial middleware is supported too - here is the full list
OpenMAMA does not provide a daemon or server process of its own. It is a set of libraries that operate on top of the middleware transport.
In very general terms, the OpenMAMA libraries let applications publish messages (such as price ticks) or subscribe to receive the messages published by other applications.
Spreadsheet application (for example, LibreOffice)
LibreOffice is introducing a new data import feature for streaming time series data. This appears to provide a useful integration point for OpenMAMA and discussion is taking place in the development community.
The spreadsheet can operate in various ways. A simple application may simply poll the currency prices when the spreadsheet is opened or refreshed. A more demanding application may see the spreadsheet come alive, recalculating all cells on every tick from the data vendor (several times per second). This latter scenario is more common in dealing rooms and hedge funds.
Accounting/billing software
There are many free accounting applications today, including PostBooks and GnuCash and some more heavyweight solutions like Adempiere and OpenERP. In a world where credit cards and the world wide web have made international trade an everyday activity, many people are using this software to track expenses and accounts in more than one currency. For example, a British business may be paying some suppliers in Euros and a Canadian may be charging some customers in US dollars. A Swiss person may be keeping some of their savings in gold bullion in the vault of one of their world reknowned Swiss banks.
A common requirement for all of these users is the balance sheet. Using real-time market data sources, the balance sheet can be refreshed at any time from the live market prices. A home user may just find it convenient that they can open the balance sheet and always see their net worth immediately without having to manually cut and paste the currency prices from a web page. A business user operating in a competitive industry with low margins may be checking the balance sheet several times per day to ensure they remain solvent and profitable.
Web shops
Many web shops now offer the customers the convenience of viewing prices in their own currency. It is important to make sure these prices are accurate, especially when dealing with volatile currencies or when the products have a low profit margin.
The web application server can receive the market data price ticks just like any other application in the network. Using this data, it can insert live prices into the pages as they are generated. If the currencies are particularly volatile, the web application could stream the prices to the browser using WebSockets and a JavaScript client embedded in the page would update the price field in real time.
In fact, this web-based streaming price update mechanism is exactly how many online financial trading services offer live market prices to their customers.
Real-time valuation server
In a large organisation there may be many users looking at the same values. For example, in a trading desk, many users may need to see the desk's overall position in each market. In a busy web shop, many concurrent users may need to see the prices of common products.
Rather than recalculating these values for each user in parallel, a common solution involves setting up a server to receive raw values (such as currency prices) from the data feed, calculate values needed by local users and then broadcast those values over the market data bus.
How applications can integrate with real-time market data
Here are some steps for getting started:
All these components may be running on a single host or they may be distributed across different servers and workstations in a LAN. The OpenMAMA market data bus ties them together.
External data sources
These are external sources of data. These could be currency trading firms, stock brokers, bullion dealers or even Bitcoin exchanges. Some exchanges don't provide data services directly to the general public and they distribute their price data through third-party data vendors such as Reuters and Bloomberg.
Feed handlers
The feed handlers manage the connections to external data sources. These are typically daemon processes that implement the wire protocols used by the external vendors for transmitting data over the public internet or a leased line. They typically use a point-to-point topology such as TCP connections.
The feed handlers publish the data into the market data bus.
In practice, the feed handler may be a proprietary application provided by the data vendor or it may simply be a Python script that fetches exchange rates from a URL every five minutes.
OpenMAMA
The market data bus is a distributed framework that is accessible to all of the local servers and workstations in the LAN.
At the lowest level a messaging middleware solution is used to transport the data. The Avis Event Router is a free middleware. There is upcoming support for Apache QPID as well. Some commcercial middleware is supported too - here is the full list
OpenMAMA does not provide a daemon or server process of its own. It is a set of libraries that operate on top of the middleware transport.
In very general terms, the OpenMAMA libraries let applications publish messages (such as price ticks) or subscribe to receive the messages published by other applications.
Spreadsheet application (for example, LibreOffice)
LibreOffice is introducing a new data import feature for streaming time series data. This appears to provide a useful integration point for OpenMAMA and discussion is taking place in the development community.
The spreadsheet can operate in various ways. A simple application may simply poll the currency prices when the spreadsheet is opened or refreshed. A more demanding application may see the spreadsheet come alive, recalculating all cells on every tick from the data vendor (several times per second). This latter scenario is more common in dealing rooms and hedge funds.
Accounting/billing software
There are many free accounting applications today, including PostBooks and GnuCash and some more heavyweight solutions like Adempiere and OpenERP. In a world where credit cards and the world wide web have made international trade an everyday activity, many people are using this software to track expenses and accounts in more than one currency. For example, a British business may be paying some suppliers in Euros and a Canadian may be charging some customers in US dollars. A Swiss person may be keeping some of their savings in gold bullion in the vault of one of their world reknowned Swiss banks.
A common requirement for all of these users is the balance sheet. Using real-time market data sources, the balance sheet can be refreshed at any time from the live market prices. A home user may just find it convenient that they can open the balance sheet and always see their net worth immediately without having to manually cut and paste the currency prices from a web page. A business user operating in a competitive industry with low margins may be checking the balance sheet several times per day to ensure they remain solvent and profitable.
Web shops
Many web shops now offer the customers the convenience of viewing prices in their own currency. It is important to make sure these prices are accurate, especially when dealing with volatile currencies or when the products have a low profit margin.
The web application server can receive the market data price ticks just like any other application in the network. Using this data, it can insert live prices into the pages as they are generated. If the currencies are particularly volatile, the web application could stream the prices to the browser using WebSockets and a JavaScript client embedded in the page would update the price field in real time.
In fact, this web-based streaming price update mechanism is exactly how many online financial trading services offer live market prices to their customers.
Real-time valuation server
In a large organisation there may be many users looking at the same values. For example, in a trading desk, many users may need to see the desk's overall position in each market. In a busy web shop, many concurrent users may need to see the prices of common products.
Rather than recalculating these values for each user in parallel, a common solution involves setting up a server to receive raw values (such as currency prices) from the data feed, calculate values needed by local users and then broadcast those values over the market data bus.
How applications can integrate with real-time market data
Here are some steps for getting started:
I happens quite often that I install a manually built, newer version of
some package on a machine. Occassionally I forget to remove it or to
downgrade it to the version in the APT repo.
$ apt-show-versions fgrep newereasily finds those packages. But usually when doing such a check, I want this list of packages in my aptitude TUI to have a look at the other versions of that package and to take actions. And I don t want to manually search for each of the package manually. This can be done with the following one-liner :
# aptitude -o "Aptitude::Pkg-Display-Limit=( apt-show-versions fgrep newer awk -F '[ :]' ' printf "~n ^"$1"$ " ' sed -e 's/ *$//' )"It uses
apt-show-version s output, searches for the right
packages, takes the first column and transforms it into an aptitude
search pattern matching all packages whose name is exactly one of the
listed packages.
But this solution is quite ugly and slow. So I wondered if this is
also doable with pure
aptitude search patterns which likely would also be faster.
And after some playing around I found the following working aptitude
search term:
~i ?any-version(!~O.) !~U !~oThis matches all packages which which are installed and which have a version which has no origin, i.e. no associated APT repository. Since this also matches all hold packages as well as all packages not available in any archive, I use
!~U !~o to exclude those
packages from that list again.
Since nobody can remember that nor wants to type that everytime
needed, I added the following alias to my setup:
alias aptitude-newer-than-in-archive='aptitude -o "Aptitude::Pkg-Display-Limit=~i ?any-version(!~O.) !~U !~o"'Only caveat so far: It seems to also match packages from APT repos which haven t set an Origin . This should not happen with any Debian or Ubuntu APT repository, but seems to happen occasionally with privately run APT repositories. And using
~A instead of ~O, i.e. ~i
?any-version(!~A.), does not work for this case either, despite
it matches installed packages of which versions not in any available
archive exist. But unfortunately aptitude seems to remember in some
way if a package was in some archive in the past, so this only shows
packages installed with dpkg -i, but not packages removed
from e.g. unstable but with older versions still being available in
stable.
The first Debian meetup in Zurich last month was quite a success and
I look forward to further Debian meetups
in Zurich every first Tuesday of the month.
The next meetup will be
on Tuesday, 2013-Dec-03 starting at 18:30 CET
at St. Gallerhof,
Konradstrasse 2, 8005 Zurich
Please note that this is a different location than last month.
Everybody who is interested in Debian is welcome to join us.
Registering is not necessary.
There was also some interest in Debian meetups in other Swiss cities,
namely Bern and somewhere around Lac Leman. In case you want a Debian
meetup elsewhere in Switzerland, too, or if you re interested in any
Debian meetup in Switzerland, feel free to join the Swiss
Debian Community Mailing List and help organising other Swiss
Debian meetups.
after reading waja's description on Crossbuilding
Debian Packages With Sbuild (for Raspbian), I thought I'd share what I
did for using cowbuilder for the same purpose.
I stumbled about these instructions
for pbuilder on github recently which taught me about the nice
qemu-debootstrap tool. as I didn't want a specific config file
& I prefer cowbuilder over pbuilder, I
"translated" the instructions to the following command:
cowbuilder --create --basepath /var/cache/pbuilder/armhf/raspbian-wheezy-base.cow \ --distribution wheezy --mirror http://mirrordirector.raspbian.org/raspbian/ \ --components "main contrib non-free rpi" --extrapackages eatmydata \ --architecture armhf \ --debootstrap qemu-debootstrap --debootstrapopts --variant=buildd \ --debootstrapopts --keyring=/usr/share/keyrings/raspbian-archive-keyring.gpg(after installing the
raspbian-archive-keyring before)
There is big news in Europe right now, especially the UK, about the Scottish nation's manifesto for independence.
I thought this was really amazing, a country that is going to move to free software and protect its citizens from horrors like DRM. I couldn't wait to find out more, for example, will they use Linux or *BSD?
After all, how many nations today can really consider themselves independent when they are trapped in the use of complex and opaque systems that require ongoing royalty payments to a foreign corporation, much like ancient villages paying their tithes to Rome? Today it is actually worse: these independent nations are not just sacrificing their cash - the new Rome is also using those same secret, proprietary systems to raid their subjects' privacy.
So I went to the manifesto's web site to get the details. I couldn't even find the words "software" or "technology" listed in the policy index on the front page - and software doesn't even appear in the search results. A section on Culture, Communications and Digital only really looks at the issues for the media (BBC after independence). They don't even make any comment about the British Telecom (BT) pension crisis and whether Scotland will abandon BT's services, leaving only those customers south of the border to continue subsidising the deficit through higher phone bills.
There is some hope, with the dot scot (.scot) top level domain coming in 2015 regardless of the referendum outcome.
Does this mean an independent Scotland is going to be run without technology at all then? That could be an interesting way to avoid the type of infiltration of communications technology that has been taking place in Brussels. Or do the people calling the shots simply fail to realise the impact of software and communications technology on a modern day concept of independence?
Party date set
For those who just care about gatecrashing the post-independence party, start booking your leave for March 2016.
The output of some commands explains it all.$ ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 32768 max total shared memory (kbytes) = 8388608 min seg size (bytes) = 1
# sysctl kernel.shmmax=1073741824 kernel.shmall=1073741824 kernel.shmmax = 1073741824 kernel.shmall = 1073741824
$ ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 1048576 max total shared memory (kbytes) = 4294967296 min seg size (bytes) = 1
I suppose nobody at Microsoft remembers what it was like when everyone was
taking potshots at them, so they ve decided it s fair game to take a
cheap
shot
at the new Evil Empire. That being said, I wouldn t say no to one of those
Keep Calm coffee mugs
Yesterday I asked myself, how to setup a crossbuild environment on a Debian wheezy/amd64 to build binary packages compatible for Raspbian.
After digging around it seemed to be the easiest way to use mk-sbuild to setup such a build environment.Some more packages are needed for crossbuilding:aptitude install sbuild ubuntu-dev-tools
Setting up the chroot is quite easy with:aptitude install qemu-user-static binfmt-support linux-image-amd64
Unfortunately you get thrown an error about bad signing key:mk-sbuild --arch=armhf --debootstrap-mirror=http://archive.raspbian.org/raspbian jessie
Release signed by unknown key (key id 9165938D90FDDD2E)
This happens cause debootstrap is using per default /usr/share/keyrings/$ DISTRO -archive-keyring.gpg, which doesn't ship the Raspbian signing key indeed. After looking how to solve that problem, I decided to use a quik&dirty fix:
echo 'DEBOOTSTRAP_KEYRING="--keyring=/usr/share/keyrings/raspbian-archive-keyring.gpg"' >> \ /root/.mk-sbuild.rc cp -a /usr/bin/mk-sbuild /tmp/mk-sbuild patch -p0<./mk-sbuild_raspbian.diff /tmp/mk-sbuild
/tmp/mk-sbuild --arch=armhf --debootstrap-mirror=http://archive.raspbian.org/raspbian wheezy
We successfuly ran our mini-conf last weekend. We welcomed roughly
60 people to the ARM offices in
Cambridge over the 4 days.
We started off with two days of sprint time, set aside for focussed
hacking. We had a selection of ARM development boards on hand that
people were playing with, plus a number of other people working on
various other projects. The sprint sessions also saw some lively
discussions on a couple of topics: the status of the ARM ports in
Debian and automated system testing.
Saturday and Sunday saw us move over to the more traditional style
of conference session. Two full days of talks covered a wide range of
topics: system testing to git tools, Debian ftp team work to
bootstrapping the new arm64 port, improving ways of tracking and
crediting Debian contributions to dealing with the new world of
UEFI. Several volunteers from the DebConf video team were on hand too,
so our talks were streamed live and recorded too - look out for them
online soon!
The mini-conf went well and feedback from attendees was universally
positive, so we're already planning to run another similar event next
year and maybe even apply to host a full DebConf in Cambridge soon
too. :-)
Many more details about the conference are in the debconf wiki at
https://wiki.debconf.org/wiki/Miniconf-UK/2013
. Thanks to the sponsors who helped to make it all
happen: ARM, Boston,
Open@Citrix/Xen and Codethink/Baserock.
2013-11-25 UPDATE: Videos are now online
at http://meetings-archive.debian.net/pub/debian-meetings/2013/mini-debconf-cambridge/
in various formats.
no exciting achievements but I still try to keep an eye on RC bugs:
Earlier this year the blog had its tenth anniversary. I had meant to
celebrate the occassion by revamping the site and blog a little.
Having set up the
updated R/Finance site,
the Rcpp Gallery and
Rcpp sites as well as the much-needed overhaul
of the html side of the
CRANberries RSS feed (which
also integrates it with the static blog compiler I use),
I figured I just needed a little time to get this done. Well, eight months
later we're there. It still uses
Twitter Bootstrap for layout, and
a slightly modified Bootswatch theme.
Comments welcome, and please let me know if links are missing or going
nowhere in places.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Over last months, I notice I'm not that active on IRC. Still, my
always connected IRSSI client was constantly connected to 12+ channels.
I just decided to reduce this to channels where I'm still (loosely)
active and maybe less likely to miss highlights (or answer then 3 days
later).
So, I'll stick to the following:
Next.