A first maintenance release of RcppQuantuccia got to CRAN earlier today.
RcppQuantuccia brings the Quantuccia header-only subset / variant of QuantLib to R. At present it mostly offers calendaring, but Quantuccia just got a decent amount of new functions so hopefully we can offer more here too.
This release was motivated by the upcoming Rcpp release which will deprecate the okd Date and Datetime vectors in favours of newer ones. So this release of RcppQuantuccia switches to the newer ones.
Other changes are below:
Courtesy of CRANberries, there is also a diffstat report relative to the previous release. More information is on the RcppQuantuccia page. Issues and bugreports should go to the GitHub issue tracker.Changes in version 0.0.2 (2017-11-06)
- Added calendars for Canada, China, Germany, Japan and United Kingdom.
- Added bespoke and joint calendars.
- Using new date(time) vectors (#6).
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Peter Christopherson and Jhonn Balance, from Santa Sangre
Pretty soon we both started having ideas. I set up extension 777, where he could call for the time. Then he wanted a way to get the weather forecast. Well, weather-util generates a text-based report. With it, a little sed and grep tweaking, the espeak TTS engine, and a little help from sox, I had a shell script worked up that would read back a forecast whenever he called a certain extension. He was super excited! That s great, dad! Can it also read weather alerts too? Sure! weather-util has a nice option just for that. Both boys cackled as the system tried to read out the NWS header (their timestamps like 201711031258 started with two hundred one billion )
Then I found an online source for streaming NOAA Weather Radio feeds Jacob enjoys listening to weather radio and I set up another extension he could call to listen to that. More delight!
But it really took off when I asked him, Would you like to record your own menu? You mean those things where it says press 1 or 2 for this or that? Yes. WE CAN DO THAT? Oh yes! YES, LET S DO IT RIGHT NOW!
So he recorded a menu, then came and hovered by me while I hacked up extensions.conf, then eagerly went back to the phone to try it. Oh the excitement of hearing hisown voice, and finding that it worked! Pretty soon he was designing sub-menus ( OK Dad, so we ll set it up so people can press 2 for the weather, and then choose if they want weather radio or the weather report. I m recording that now. Got it? )
He has informed me that next Saturday we will build an intercom system like we have at school. I m going to have to have some ideas on how to tie Squeezebox in with Asterisk to make that happen, I think. Maybe this will do.
domain_host variation.--print-sudoers feature.
My monthly report covers a large part of what I have been doing in the free software world. I write it for my donors (thanks to them!) but also for the wider Debian community because it can give ideas to newcomers and it s one of the best ways to find volunteers to work with me on projects that matter to me.
Debian LTS
This month I was allocated 12h but I had 1.5h left from September too. During this time, I finally finished my work on exiv2: I completed the triage of all CVE, backported 3 patches to the version in wheezy and released DLA-1147-1.
I also did some review of the oldest entries in dla-needed. I reclassified a bunch of CVE on zoneminder and released DLA-1145-1 for the most problematic issue on that package. Many other packages got their CVE reclassified as not worth an update: xbmc, check-mk, rbenv, phamm, yaml-cpp. For mosquitto, I released DLA-1146-1.
I filed #879001 (security issue) and #879002 (removal suggestion) on libpam4j. This library is no longer used by any other package in Debian, so it could be removed instead of costing us time in support.
Misc Debian work
After multiple months of wait, I was allowed to upload my schroot stable update (#864297).
After ack from the d-i release manager, I pushed my pkgsel changes and uploaded version 0.46 of the package: this brings unattended-upgrades support in the installer. It s now installed by default.
I nudged the upstream developer of gnome-shell-timer to get a new release for GNOME 3.26 compatibility and packaged it.
Finally, I was pleased to merge multiple patches from Ville Skytt on Distro Tracker (the software powering tracker.debian.org). It looks like Ville will continue to contribute on a regular basis, yay. \o/ He already helped me to fix the remaining blockers for the switch to Python 3.
Not really Debian related, but I also filed a bug against Tryton that I discovered after upgrading to the latest version.
Thanks
See you next month for a new summary of my activities.
No comment Liked this article? Click here. My blog is Flattr-enabled.
Debian bug #846500 requests that the Bug Tracking System moves the canonical URL for a given bug from:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=846500 to the shorter, cleaner and generally less ugly:
https://bugs.debian.org/846500 (The latter currently redirects to the former.)
var m = window.location.href .match(/https:\/\/bugs.debian.org\/cgi-bin\/bugreport.cgi\?bug=(\d+)(#.*)?$/); if (!m) return; for (var x of document.getElementsByTagName("a")) var href = x.getAttribute("href"); if (href && href.match(/^[^:]+\.cgi/)) // Mangle relative URIs; <base> tag does not DTRT x.setAttribute('href', "/cgi-bin/" + href); history.replaceState( , "", "/" + m[1] + window.location.hash);
#!/bin/bash
# (Some) docs at
# https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/
IFACE=$ 1:-"none"
ACTION=$ 2:-"up"
TMPDIR=$ TMPDIR:-"/tmp"
WGET="/usr/bin/wget"
TIMEOUT="/usr/bin/timeout -k 20 15"
case $ ACTION in
up)
CONID=$ CONNECTION_ID:-$(iwconfig $IFACE grep ESSID cut -d":" -f2 sed 's/^[^"]*"\ "[^"]*$//g')
if [[ $ CONID == WIFIonICE ]]; then
REFERER="http://www.wifionice.de/de/"
LOGIN="http://www.wifionice.de/de/"
COOKIETMP=$(mktemp -p $ TMPDIR nmwifionice.XXXXXXXXX)
trap "rm -f $ COOKIETMP " EXIT TERM HUP INT QUIT
csrftoken=$($ TIMEOUT $ WGET -q -O - --keep-session-cookies --save-cookies=$ COOKIETMP --referer $ REFERER $ LOGIN grep -oP 'CSRFToken"\ value="\K[0-9a-z]+')
if [[ -z $ csrftoken ]]; then
echo "CSRFToken is empty"
exit 0
fi
sleep 1
$ TIMEOUT $ WGET -q -O - --load-cookies=$ COOKIETMP --post-data="login=true&connect=connect&CSRFToken=$ csrftoken " --referer $ REFERER $ LOGIN >/dev/null
fi
;;
*)
# We are not interested in this
:
;;
esac
The sole purpose of this post is to check my new hackergotchi looks ok on Debian Planet. As I've lost a lot of weight and this is the second Diwali I've managed to survive without regaining, I thought I should update it to a more accurate depiction.
Today I spent some time in the morning seeing how one would install the JDK
on Linux distributions. This is to create a little comparative tutorial to
teach introductory Java.
Installing the JDK is, thanks to the OpenJDK developers in Debian and Ubuntu
(Matthias Klose and helpers), a very easy task. You simply type something
like:
apt-get install openjdk-8-jdk
Since for a student it is better to have everything for experiments, I
install the full version, not only the
-headless version. Given my familiarity with
Debian/Ubuntu, I didn't have to think about the way of installing it, of
course.
But as this is a tutorial meant to be as general as I can, I tried also to
include instructions on how to install Java on other distributions. The
first two that came to my mind were openSUSE and Fedora.
Both use the RPM package format for their "native" packages (in the same
sense that Debian uses DEB packages for "native" packages). But they use
different higher-level tools to install such packages: Fedora uses a tool
called dnf, while openSUSE uses zypper.
To try these distributions, I got their netinstall ISOs and used
qemu/kvm to install on a virtual machine. I used the following to
install/run the virtual machines (the example below, is, of course, for openSUSE):
qemu-system-x86_64 -enable-kvm -m 4096 -smp 2 -net nic,model=e1000 -net user -drive index=0,media=disk,cache=unsafe,file=suse.qcow2 -cdrom openSUSE-Leap-42.3-NET-x86_64.iso
The names of the packages also change from one distribution to another. On
Fedora, I had to use:
dnf install java-1.8.0-openjdk-devel
On openSUSE, I had to use:
zypper install java-1_8_0-openjdk-devel
Note that one distribution uses dots in the names of the packages while the
other uses underscores.
One interesting thing that I noticed with dnf was that, when I used it, it
automatically refreshed the package lists from the network, something which
I forgot, and it was a pleasant surprise. I don't know about zypper, but I
guess that it probably had fresh indices when the installation finished.
Both installations were effortless after I knew the names of the packages to
install.
Oh, BTW, in my 5 minute exploration with these distributions, I noticed that
if you don't want the JDK, but only the JRE, then you omit the -devel
suffix. It makes sense when you think about it, for consistency with other
packages, but Debian's conventions also make sense (JRE with -jre suffix,
JDK with -jdk suffix).
I failed miserably to use Fedora's prebaked, vanilla
cloud image, as I couldn't login on this image and I decided
to just install the whole OS on a fresh virtual machine.
I don't have instructions on how to install on Gentoo nor on
Arch, though.
I now see how hard it is to cover instructions/provide software for as many
distributions as you wish, given the multitude of package managers,
conventions etc.
wpa_supplicant release. I
first published a patchset based on the patches shipped after the
embargo for the oldstable/jessie release. After feedback from the
list, I also built packages for i386 and ARM.
I have also reviewed the WPA protocol to make sure I understood
the implications of the changes required to backport the patches. For
example, I removed the patches touching the WNM sleep mode code as
that was introduced only in the 2.0 release. Chunks of code regarding
state tracking were also not backported as they are part of the state
tracking code introduced later, in 3ff3323. Finally, I still have
concerns about the nonce setup in patch #5. In the last chunk, you'll
notice peer->tk is reset, to_set to negotiate a new TK. The other
approach I considered was to backport 1380fcbd9f ("TDLS: Do not
modify RNonce for an TPK M1 frame with same INonce") but I figured I
would play it safe and not introduce further variations.
I should note that I share Matthew Green's observations regarding
the opacity of the protocol. Normally, network protocols are freely
available and security researchers like me can easily review them. In
this case, I would have needed to read the
opaque 802.11i-2004 pdf which is behind a TOS wall at
the IEEE. I ended up reading up on the IEEE_802.11i-2004
Wikipedia article which gives a simpler view of the protocol. But it's
a real problem to see such critical protocols developed behind closed
doors like this.
At Guido's suggestion, I sent the final patch upstream
explaining the concerns I had with the patch. I have not, at the time
of writing, received any response from upstream about this,
unfortunately. I uploaded the fixed packages as DLA 1150-1 on
October 31st.
dch --lts flag in Debian bug #762715
which is currently pending reviewWe build our computers the way we build our cities--over time, without a plan, on top of ruins. - Ellen Ullman
wayback plugin that saves pages on the Wayback machine for
eternal archival. The archive plugin can also similarly save pages
to the local filesystem. I also added bash completion, expanded unit
tests and documentation, fixed default file paths and a bunch of bugs,
and refactored the code. Finally, I also started using two external
Python libraries instead of rolling my own code: the pyxdg
and requests-file libraries, the latter which
I packaged in Debian (and fixed a bug in their test suite).
The program is working pretty well for me. The only thing I feel is
really missing now is a retry/fail mechanism. Right now, it's a little
brittle: any network hiccup will yield an error email, which are
readable to me but could be confusing to a new user. Strangely enough,
I am particularly having trouble with (local!) DNS resolution that I
need to look into, but that is probably unrelated with the software
itself. Thankfully, the user can disable those with --loglevel=ERROR
to silence WARNINGs.
Furthermore, some plugins still have some rough edges. For example,
The Transmission integration would probably work better as a
distinct plugin instead of a simple exec call, because when it adds
new torrents, the output is totally cryptic. That plugin could also
leverage more feed parameters to save different files in different
locations depending on the feed titles, something would be hard to do
safely with the exec plugin now.
I am keeping a steady flow of releases. I wish there was a way to see
how effective I am at reaching out with this project, but
unfortunately GitLab doesn't provide usage statistics... And I
have received only a few comments on IRC about the project, so maybe I
need to reach out more like it says in
the fine manual. Always feels strange to have to promote your
project like it's some new bubbly soap...
Next steps for the project is a final review of the API and release
production-ready 1.0.0. I am also thinking of making a small
screencast to show the basic capabilities of the software, maybe
with asciinema's upcoming audio support?
-- remove needless blockquote wrapper around some tables
--
-- haskell newbie tips:
--
-- @ is the "at-pattern", allows us to define both a name for the
-- construct and inspect the contents as once
--
-- is the "empty record pattern": it basically means "match the
-- arguments but ignore the args"
cleanBlock (BlockQuote t@[Table ]) = t
<blockquote> elements needlessly wrapping
a <table>. I can't specify the Table type on its own, because then
I couldn't address the table as a whole, only its parts. I could
reconstruct the whole table bits by bits, but it wasn't as clean.
The other pattern was how to, at last, address multiple string
elements, which was difficult because Pandoc treats spaces specially:
cleanBlock (Plain (Strong (Str "Notifications":Space:Str "for":Space:Str "all":Space:Str "responses":_):_)) = []
-- the "GAByline" div has a date, use it to generate the ikiwiki dates
--
-- this is distinct from cleanBlock because we do not want to have to
-- deal with time there: it is only here we need it, and we need to
-- pass it in here because we do not want to mess with IO (time is I/O
-- in haskell) all across the function hierarchy
cleanDates :: ZonedTime -> Block -> [Block]
-- this mouthful is just the way the data comes in from
-- LWN/Pandoc. there could be a cleaner way to represent this,
-- possibly with a record, but this is complicated and obscure enough.
cleanDates time (Div (_, [cls], _)
[Para [Str month, Space, Str day, Space, Str year], Para _])
cls == "GAByline" = ikiwikiRawInline (ikiwikiMetaField "date"
(iso8601Format (parseTimeOrError True defaultTimeLocale "%Y-%B-%e,"
(year ++ "-" ++ month ++ "-" ++ day) :: ZonedTime)))
++ ikiwikiRawInline (ikiwikiMetaField "updated"
(iso8601Format time))
++ [Para []]
-- other elements just pass through
cleanDates time x = [x]
IO in this case. Turns out that getting the current time is IO in
Haskell: indeed, it's not a "pure" function that will always return
the same thing. But this means that I would have had to change the
signature of all the functions that touched time to include IO. I
eventually moved the time initialization up into main so that I had
only one IO function and moved that timestamp downwards as simple
argument. That way I could keep the rest of the code clean, which
seems to be an acceptable pattern.
I would of course be happy to get feedback from my Haskell readers (if
any) to see how to improve that code. I am always eager to learn.
There is no [web extension] only XUL! - Inside joke
And that's the second one. It simply occurred. No real issue with NFS though.
kernel: [ ... ] cgroup: cgroup2: unknown option "nsdelegate"
Any explanation is appreciated.
kernel: [ ... ] nfs: RPC call returned error 22
kernel: [ ... ] NFS: state manager: check lease failed on NFSv4 server XXX.XXX.XXX.XXX with error 5
Here is my monthly update covering what I have been doing in the free software world in October 2017 (previous month):
diffoscope is our in-depth and content-aware diff utility that can locate and diagnose reproducibility issues.
strip-nondeterminism is our tool to remove specific non-deterministic results from a completed build.
buildinfo.debian.net is my experiment into how to process, store and distribute .buildinfo files after the Debian archive software has processed them.
| Publisher: | Scribner |
| Copyright: | October 2017 |
| ISBN: | 1-5011-4433-2 |
| Format: | Kindle |
| Pages: | 341 |
| Publisher: | Orbit |
| Copyright: | September 2017 |
| ISBN: | 0-316-38863-7 |
| Format: | Kindle |
| Pages: | 448 |
| Series: | Kangaroo #1 |
| Publisher: | Thomas Dunne |
| Copyright: | June 2016 |
| ISBN: | 1-250-08179-3 |
| Format: | Kindle |
| Pages: | 312 |
Next.