Antoine Beaupr : Bridging Ikiwiki and Twitter with Python and feed2tweet
- find new interesting software (feed2tweet)
- try it out, file two issues:
- itch enough that i need to scratch it and file 3 pull requests to ask for forgiveness:
Yesterday we have released CafeOBJ 1.5.5 with a long list of changes, and many more internal changes. Documentation pages have been updated with the latest reference manual (PDF, Html) as well as some new docs on CITP (in Japanese for now) and tutorials.
To quote from our README:
CafeOBJ is a new generation algebraic specification and programming language. As a direct successor of OBJ, it inherits all its features (flexible mix-fix syntax, powerful typing system with sub-types, and sophisticated module composition system featuring various kinds of imports, parameterised modules, views for instantiating the parameters, module expressions, etc.) but it also implements new paradigms such as rewriting logic and hidden algebra, as well as their combination.Changes
binspect [ in : <Modexpr> ] <bool-term> . converts given <bool-term> into abstracted xor-and normal formbshow [ tree grind ] shows abstracted Bool termbresolve [ <num1> [ <num2> all ] ] shows assignments which make abstracted Bool term truebguess imply and or tries with some heuristics to solve the abstracted Bool term:ctf [ <term> ] accepts constructors with arguments:imply to make instantiated lhs of existing equation of the form eq lhs = true a premise of a goal sentencerd- which is similar to rd but cancels the normalization of the goal sentence if the sentence is not satisfiedtree horizontal. if on show term tree displays the term tree structure horizontally (default off).
An USB3 device of mine stopped working one day. In Windows (its native
environment; Linux is not officially supported), there would be a device
plugged in sound and then nothing. Nothing in the event log, no indication
there was ever a device of any kind in Device Manager.
In Linux, after 20 seconds or so, this would come up:
[ 71.831659] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?I bought a new and shorter cable. The card started working again.
[twitter] consumer_key=ml9jaiBnf3pmU9uIrKNIxAr3v consumer_secret=8Cmljklzerkhfer4hlj3ljl2hfvc123rezrfsdctpokaelzerp access_token=213416590-jgJnrJG5gz132nzerl5zerwi0ahmnwkfJFN9nr3j access_token_secret=3janlPMqDKlunJ4Hnr90k2bnfk3jfnwkFjeriFZERj32Z
$ feed2tweet -c /path/to/feed2tweet.iniThe first version 0.1 is now available from Github. If it helps you, Github stars are appreciated :)
After a long contemplation about what I want to do with my life and just as long a negotiation, I have accepted a job offer at BMW and will be moving from Latvia to Ulm, Germany in January 2016.
It is going to be a big change and a big shake-up in my life, but the change should be for the better, eventually. I am going to move there using my car, loading a single car load of essential stuff and leaving the rest behind. My cat will be amond the essentials, so I have already started training him for car rides. The cat is not thrilled about it. I'll be renting out my current apartment - I wish to find someone that I know to rent to, but if noone comes up, then I'll have to give it to a renting company to rent out for me.
There should be little change for my online activities, but this means that I will be less available for parties in Riga for the forseable future. Wish me luck!
It was a shock to be back in Finland after five years. The country had
gone bad.
I was born in Finland, and lived here all my life, until
January, 2010. I then moved abroad for five years, with my
then-girlfriend, now wife. We lived in New Zealand, Scotland, and
England. In October 2014 we came back, because my next job happened to
be in Finland.
When we came back, I found that the country had changed, or I had lost
my rose-coloured glasses. The Finland I left was a place where
equality and solidarity were assumed, though not universal. The
country I came back to turned out to be racist, scared, and quickly
abandoning everything that used to be examples of why the country is a
good place to live. Some of the change has, possibly, only happened
during 2015 and the refugee crisis in Europe, but the change started
earlier.
Examples:
| Series: | Steerswomen #2 |
| Publisher: | Del Rey |
| Copyright: | 1992, 2001 |
| Printing: | 2001 |
| ISBN: | 0-345-46105-3 |
| Format: | Trade paperback |
| Pages: | 389 |
memmove() to move the remaining data to the front of the buffer.
So, I tried to use a fixed buffer size of 4096 (commit). Now memmove() would spend less time moving memory around inside the buffer. This helped a lot, bringing the run time on my example file down from 46 seconds to about 2 seconds.
Later on, I rewrote the code to not use memmove() at all opting for start and end variables instead; and increasing the start variable when reading from the buffer (commit).
This in turn further improved things, bringing it down to about 1.6 seconds. We could now increase the buffer size again, without any negative effect.
Effects on apt-get update
I measured the run-time of apt-get update, excluding appstream and apt-file files, for the update from todays 07:52 to the 13:52 dinstall run. Configured sources are unstable and experimental with amd64 and i386 architectures. appstream and apt-file indexes are disabled for testing, so only Packages and Sources indexes are fetched.
The results are impressive:
Performance for patching compressed files
Contents files are usually compressed with gzip, and kept compressed locally because they are about 500 MB uncompressed and only 30MB compressed. I profiled this, and it turns out there is not much we can do about it: The majority of the time is spent inside zlib, mostly combining CRC checksums:
Going forward, I think a reasonable option might be to recompress Contents files using lzo they will be a bit bigger (50MB instead of 30MB), but lzo is about 6 times as fast (compressing a 430MB Contents file took 1 second instead of 6).| Series: | Steerswomen #1 |
| Publisher: | Del Rey |
| Copyright: | 1989, 2003 |
| Printing: | 2003 |
| ISBN: | 0-345-46105-3 |
| Format: | Trade paperback |
| Pages: | 264 |
-i option, now keeps retrying the
authentication or renewal until it succeeds. It's retried immediately and
then with exponential backoff, starting with a delay of a second, until
intervals of one minute, and then retried at a delay of one minute until
it succeeds. Any command isn't run until the authentication works, so
(unlike previous versions) k5start won't start the command without a
Kerberos ticket. That should fix various problems people are having.
There are also some new options to tweak the renewal behavior. -H
can now be used in combination with -K to specify how long of a
minimum ticket lifetime k5start or krenew should try to maintain.
Alternately, there's now a -a flag that tells both to attempt an
authentication or renewal every time they wake up (at the interval
specified with -K). This probably should have been the default for
-K originally, but I didn't change the original behavior for
backwards compatibility.
There are also a couple of bug fixes: the temporary ticket cache created
by k5start is cleaned up properly, and the programs no longer incorrectly
reject the combination of -b and -K or a command.
You can get the latest version from the kstart distribution page.
Kurt has trouble keeping his mouth shut. This became widely apparent
when he was expelled from Catholic school for telling a visiting
dignitary to go fuck himself.
WB used to preach angrily against casual sex.
Kurt enlisted in the Army, and due to his high IQ he ended up in the
Army Security Agency. After training, he was stationed in Germany
where he performed signals intelligence functions like direction
finding and passing on information to the CIA and NSA.
One day WB shagged a boy with a leather hat.
Contrary to what one might assume, Kurt had awareness of consequences.
He refused officer training because that would have extended his
commitment from 4 to 6 years. He purposefully flunked his French
language proficiency exam. He wanted there to be no chance of him
getting transferred to Vietnam.
The following day, WB found herself confronted and asked to explain
why she had had a change of heart about casual sex. Oh, it wasn't
casual sex, she explained. He came over and said, I've been dying
to make love with you for the past three hours, so it was special,
she clarified. Thus the nature of the past communication failure
became clear to everyone but WB.
Despite all his efforts to avoid Vietnam, Kurt, of course, had trouble
keeping his mouth shut. So in 1967 he pissed off the wrong person and
found himself having to choose between Leavenworth and Saigon. He
chose life of alcoholism over prison.
After a mildly ridiculous amount of effort I made a bootable-usb key.
I then layered a bash script on top of a perl script on top of gpg. What could possibly go wrong?
#!/bin/bash
infile=$1
keys=$(gpg --with-colons $infile sed -n 's/^pub//p' cut -f5 -d: )
gpg --homedir $HOME/.caff/gnupghome --import $infile
caff -R -m no "$ keys[*] "
today=$(date +"%Y-%m-%d")
output="$(pwd)/keys-$today.tar"
for key in $ keys[*] ; do
(cd $HOME/.caff/keys/; tar rvf "$output" $today/$key.mail*)
done
The idea is that keys are exported to files on a networked host, the
files are processed on an offline host, and the resulting tarball of
mail messages sneakernetted back to the connected host.
apt-get install yum yum-utils python-lzma
git clone git://git.openstack.org/openstack/diskimage-builder
virtualenv dib_env
. dib_env/bin/activate
pip install dib-utils
git clone git://git.openstack.org/openstack-infra/project-config
break=after-error \
TMP_DIR=~/tmp \
ELEMENTS_PATH=~/project-config/nodepool/elements \
DIB_DEV_USER_PASSWORD="password" DIB_DEV_USER_PWDLESS_SUDO=1 \
DISTRO=23 \
./bin/disk-image-create -x --no-tmpfs -t vhd \
fedora-minimal vm devuser simple-init \
openstack-repos puppet nodepool-base node-devstack
pip install shade
clouds:
rax:
profile: rackspace
auth:
username: your_rax_username
password: your_rax_password
project_id: your_rax_accountnum
regions:
- IAD
import shade
shade.simple_logging(debug=True)
cloud = shade.openstack_cloud(cloud='rax')
image = cloud.create_image('image-name', filename='image.vhd', wait=True)
nova boot --flavor=2 --image=image-uuid --config-drive 1 test-image
This week I'll be mostly doing drive-by bug-reporting.
As with last year we start by using the Debian Code Search, to look
for obviously broken patterns such as "system.>./tmp/.*"
Once we find a fun match we examine the code and then report the bugs
we find. Today that was stalin
which runs some fantastic things on startup:
(system "uname -m >/tmp/QobiScheme.tmp")
(system "rm -f /tmp/QobiScheme.tmp"))
We can exploit this like so:
$ ln -s /home/steve/HACK /tmp/QobiScheme.tmp
$ ls -l /home/steve/HACK
ls: cannot access /home/steve/HACK: No such file or directory
Now we run the script:
$ cd /tmp/stalin-0.11/benchmarks
$ ./make-hello
And we see this:
$ ls -l /home/steve/HACK
-rw-r--r-- 1 steve steve 6 Dec 22 08:30 /home/steve/HACK
For future reference the lsat looks horrifically bad
- it writes multiple times to /tmp/lsat1.lsat and although it
tries to detect races I'm not convinced. Something to look at in the future.
The Software Freedom Conservancy is currently running a fundraising program in an attempt to raise enough money to continue funding GPL compliance work. If they don't gain enough supporters, the majority of their compliance work will cease. And, since SFC are one of the only groups currently actively involved in performing GPL compliance work, that basically means that there will be nobody working to ensure that users have the rights that copyright holders chose to give them.
The pressure of the post-modernism is establishing its bases on our general lack of ability to overcome a number of dualisms that have become ingrained in the modern way of thinking[1]. This is mainly due to the strong influence of past centuries scientific Reductionism , which postulated that any system to be understood had to be reduced to its minimum component elements.
However, a so defined system is a closed system, which does not interact with the surrounding environment and it can exist (not always) only in a reality-isolated laboratory. The logic of Complexity , instead, takes into account the open systems and all the interconnections and influences of the system itself with the world around it, in every physical, social, psychological and symbolic aspect
<Read more >
What happened in the reproducible
builds effort between December 13th to December 19th:
Infrastructure
Niels Thykier started implementing support for .buildinfo files in dak. A very preliminary commit was made by Ansgar Burchardt to prevent .buildinfo files from being removed from the upload queue.
Toolchain fixes
dh_installinit. Patch by Reiner Herrmann.debian/changelog entry for LXC_GENERATE_DATE.SOURCE_DATE_EPOCH.armhf. (h01ger)
Arch Linux packages in the multilib and community repositories (4,000 more source packages) are also being tested. All of these test results are better analyzed and nicely displayed together with each package. (h01ger)
For Fedora, build jobs can now run in parallel. Two are currently running, now testing reproducibility of 785 source packages from Fedora 23.
mock/1.2.3-1.1 has been uploaded to experimental to better build RPMs. (h01ger)
Work has started on having automatic build node pools to maximize use of armhf build nodes. (Vagrant Cascadian)
diffoscope development
Version 43 has been released on December 15th. It has been dubbed as epic! as it contains many contributions that were written around the summit in Athens.
Baptiste Daroussin found that running diffoscope on some Tar archives could overwrite arbitrary files. This has been fixed by using libarchive instead of Python internal Tar library and adding a sanity check for destination paths. In any cases, until proper sandboxing is implemented, don't run diffosope on unstrusted inputs outside an isolated, throw-away system.
Mike Hommey identified that the CBFS comparator would needlessly waste time scanning big files. It will now not consider any files bigger than 24 MiB 8 MiB more than the largest ROM created by coreboot at this time. An encoding issue related to Zip files has also been fixed. (Lunar)
New comparators have been added: Android dex files (Reiner Herrmann), filesystem images using libguestfs (Reiner Herrmann), icons and JPEG images using libcaca (Chris Lamb), and OS X binaries (Clemens Lang). The comparator for Free Pascal Compilation Unit will now only be used when the unit version matches the compiler one. (Levente Polyak)
A new multi-file HTML output with on-demand loading of long diffs is available through the --html-dir option. On-demand loading requires jQuery which path can be specified through the --jquery option. The diffs can also be simply browsed for non-JavaScript users or when jQuery is not available. (Joachim Breitner)
Portability toward other systems has been improved: old versions of GNU diff are now supported (Mike McQuaid), suggestion of the appropriate locale is now the more generic en_US.UTF-8 (Ed Maste), the --list-tools option can now support multiple systems (Mattia Rizzolo, Levente Polyak, Lunar).
Many internal changes and code clean-ups have been made, paving the way for parallel processing. (Lunar)
Version 44 was released on December 18th fixing an issue affecting .deb lacking a md5sums file introduced in a previous refactoring (Lunar). Support has been added for Mozilla optimized Zip files. (Mike Hommey). The HTML output has been optimized in size (Mike Hommey, Esa Peuha, Lunar), speed (Lunar), and will now properly number lines (Mike Hommey). A message will always be displayed when lines are ignored at the end of a diff (Lunar). For portability and consistency, Python os.walk() function is now used instead of find to perform directory listing. (Lunar)
Documentation update
Package reviews
143 reviews have been removed, 69 added and 22 updated in the previous week.
Chris Lamb reported 12 new FTBFS issues.
News issues identified this week: random_order_in_init_py_generated_by_python-genpy, timestamps_in_copyright_added_by_perl_dist_zilla, random_contents_in_dat_files_generated_by_chasen-dictutils_makemat, timestamps_in_documentation_generated_by_pandoc.
Chris West did some improvements on the scripts used to manage notes in the misc repository.
Misc.
Accounts of the reproducible builds summit in Athens were written by Thomas Klausner from NetBSD and Hans-Christoph Steiner from The Guardian Project.
Some openSUSE developers are working on a hackweek on reproducible builds which was discussed on the opensuse-packaging mailing-list.
Next.