Hi!
This is the personal homepage of Daniel Friesel / derf / derfnull (depending on context and nickname availability). Every now and then, I write software and take pictures, which you can find here. There's also some hosted services.
Services
Projects
Software
> efa Essen Martinstr Düsseldorf Hbf 14:34 ab Essen Martinstr.: Bstg. 1 Straßenbahn 108 Essen Altenessen Bf Schleife 14:38 an Essen Hauptbahnhof: Bstg. 1 14:47 ab Essen Hauptbahnhof: 2 R-Bahn RE11 (RRX) Düsseldorf Hbf 15:24 an Düsseldorf Hbf: 10
> db-wagenreihung 'Essen Hbf' 723 ▏ G ▕▏ F ▕▏ E ▕▏ D ▕▏ C ▕▏ B ▕▏ A ▕ > 39 38 37 36 35 33 32 31 29 28 27 26 25 23 22 21 >
> hafas-m 'Messegelände, Leipzig' 14:32 STR 16 Lößnig, Leipzig 14:40 STR 16 Sportforum Süd, Leipzig 14:43 ALT 86 S-Bahnhof Messe, Leipzig 14:47 STR 16 Lößnig, Leipzig
> db-iris 'Dortmund Hbf' 14:38 +16 IC 2027 Passau Hbf 11 14:39 ABR RE11 Kassel-Wilhelmshöhe 8 14:41 RE 57 Winterberg(Westf) 2 └──── RE 57 Brilon Wald 2 14:41 S 5 Hagen Hbf 5 14:42 S 2 Dortmund Hbf 6 14:45 +1 RE 1 Aachen Hbf 16
> ura-m Talbot 14:49:41 52 Aachen Bushof 15:04:47 11 Lichtenbusch 15:05:00 52 Eschweiler Bushof 15:18:00 1 Aachen Bushof 15:19:56 11 Hoengen Markt 15:35:00 1 Schevenhütte
> efa-m Dortmund 'Universität S' 08:32 +1 02 445 Dortmund Am Kai 08:35 3 HB1 Dortmund Technologiezentrum 08:36 3 HB1 Dortmund Eichlinghofen H-Bahn 08:38 02 447 Dortmund Bandelstraße 08:39 2 S1 Dortmund Hbf 08:40 01 447 Dortmund Hacheney
> ct a mutt mutt: retrieving package Cloning into 'mutt'... [..] created .muttrc -> /home/derf/packages/mutt/etc/muttrc
> ekgping ccc.de __________^________^__________^________^______
Firmware and Hardware
Obsolete
These projects are neither developed nor maintained any more. Some do offer basic functionality, though.
News
Travel::Status::DE::DBWagenreihung v0.06
Travel-Status-DE-DBWagenreihung-0.06.tar.gz (signature)
- DBWagenreihung: Add
train_descriptions
accessor - Wagon: Add
train_subtype
accessor
Travel::Status::DE::IRIS v1.54
Travel-Status-DE-IRIS-1.54.tar.gz (signature)
- Add stations DKP, DRBS, DSBG, KWHD, NCBD, TENS, XLHW
Travel::Status::DE::DBWagenreihung v0.04
Travel-Status-DE-DBWagenreihung-0.04.tar.gz (signature)
- Distinguish between IC2 KISS / IC2 Twindexx and ICE T 411 / ICE T 415
Travel::Status::DE::DBWagenreihung v0.05
Travel-Status-DE-DBWagenreihung-0.05.tar.gz (signature)
- Distinguish between ICE 3 403 series 1/2 and ICE T 411 series 1/2
Travel::Status::DE::IRIS v1.53
Travel-Status-DE-IRIS-1.53.tar.gz (signature)
- import station name changes and station removals from Winterfahrplan 2021
Travel::Status::DE::IRIS v1.52
Travel-Status-DE-IRIS-1.52.tar.gz (signature)
get_station_by_name
: Fix crash (unhandled exception) when the station name is an invalid regular expression
Travel::Status::DE::IRIS v1.51
Travel-Status-DE-IRIS-1.51.tar.gz (signature)
- Add BER airport stations
- Rename Schönefeld airport to BER Terminal 5
Travel::Status::DE::IRIS v1.50
Travel-Status-DE-IRIS-1.50.tar.gz (signature)
- Add station Brunnen(Oberbay)
- Incorporate station name and eva number changes from DB IRIS (affects nine stations)
- Add geocoordinates to 17 stations previously lacking those
Travel::Status::DE::IRIS v1.49
Travel-Status-DE-IRIS-1.49.tar.gz (signature)
- Add station Jaderberg
Travel::Status::DE::IRIS v1.48
Travel-Status-DE-IRIS-1.48.tar.gz (signature)
- Add stations Neuruppin Seedamm (temporary, teardown expected Dec 2020), Amriswil, and Baar(CH)
Travel::Status::DE::IRIS v1.47
Travel-Status-DE-IRIS-1.47.tar.gz (signature)
- Work around (probably incorrect) IRIS coupling of Norddeich and Norddeich Mole stations
Travel::Status::DE::DeutscheBahn v3.01
Travel-Status-DE-DeutscheBahn-3.01.tar.gz (signature)
- Fix support for ÖBB and other backends which recently switched from two- to four-digit years
Building Python3 Bindings for libsigrok
The build instructions on the sigrok
Wiki only work for Python2, which
is past its end of life date. To build libsigrok with Python bindings for
Python3, you need to set PYTHON=python3
when running configure.
The dependency list is also slightly different:
sudo apt-get install git-core gcc g++ make autoconf autoconf-archive \
automake libtool pkg-config libglib2.0-dev libglibmm-2.4-dev libzip-dev \
libusb-1.0-0-dev libftdi1-dev check doxygen python3-numpy \
python3-dev python-gi-dev python3-setuptools swig default-jdk
"python-gi-dev" is not a typo -- the package covers both Python2 and Python3.
Side note: Installing libserialport-dev instead of building your own version as documented on the Wiki seems to work fine.
Travel::Status::DE::DeutscheBahn v3.00
Travel-Status-DE-DeutscheBahn-3.00.tar.gz (signature)
- Result: The
date
,datetime
, andtime
accessors now report realtime data if available - Result: Add
sched_date
,sched_datetime
, andsched_time
accessors for schedule data
Travel::Status::DE::IRIS v1.46
Travel-Status-DE-IRIS-1.46.tar.gz (signature)
- Document LWP::Protocol::https dependency
- Discourage building with Geo::Distance 0.21.
Geo::Distance 0.21, released on 7 Mar 2019, is the only release using
GIS::Distance's
distance_km
method -- which was removed on 9 Mar 2019 in GIS::Distance 0.14
Travel::Status::DE::DeutscheBahn v2.05
Travel-Status-DE-DeutscheBahn-2.05.tar.gz (signature)
- Document LWP::Protocol::https dependency
- Remove BVG (Berliner Verkehrsgesellschaft) and SBB (Schweizerische Bundesbahnen) services
Travel::Status::DE::VRR v1.17
Travel-Status-DE-VRR-1.17.tar.gz (signature)
- Add MVV (Münchner Verkehrs- und Tarifverbund) and VAG (Freiburger Verkehrs AG) services
- Fix encoding when using VOR or LinzAG services
Travel::Routing::DE::VRR v2.19
Travel-Routing-DE-VRR-2.19.tar.gz (signature)
- Switch from WTFPL to Perl license (GPL 1+ or Artistic)
- Update VVO (Verkehrsverbund Oberelbe), VMV (Verkehrsgesellschaft Mecklenburg-Vorpommern) and VGN (Verkehrsverbund Grossraum Nürnberg) EFA urls
- Add VAG (Freiburger Verkehrs AG), MVV (Münchner Verkehrs- und Tarifverbund), NVBW (Nahverkehrsgesellschaft Baden-Württemberg) services
- Re-add Verbundlinie (Verkehrsverbund Steiermark) service
- Remove IVB (Innsbrucker Verkehrsbetriebe) and VRNdelfi services as they are no longer available
Travel::Status::DE::VRR v1.16
Travel-Status-DE-VRR-1.16.tar.gz (signature)
- Use HTTPS for DING, VOR, LinzAG, VGN, VRR, VRR2, VVS, NVBW, KVV and BSVG services
- Update VGN, VVO, VMV and KVV service URLs
- Remove IVB, VVV and VRNdelfi services
- Re-add Verbundlinie service
Packaging Perl Modules for Debian in Docker
A .deb
package is an easy solution for distributing Perl modules to
Debian-based systems. Unlike manual installation using Module::Build
, it does
not require re-installation whenever the perl minor version changes. Unlike
project-specific cpanm
or carton
setups, the module is available
system-wide and can easily be used in random Perl scripts which are not bound
to a project repository.
The Debian package dh-make-perl
(also known as cpan2deb
) does a good job
here. In many cases, creating a personal package for a Perl module is as easy
as cpan2deb Acme::Octarine
. Delegating the build process to Docker may be
useful if you do not have a Debian build host available and would rather avoid
having the build process depend on the (probably not well-defined) state of
your dev machine.
For CPAN modules, all you need is a Debian container with dh-make-perl. Using
this container, run cpan2deb and extract the resulting .deb. You can find a
Dockerfile and some scripts for this task in my
docker-dh-make-perl
repository. The Dockerfile is used to create a dh-make-perl image (so you don't
need to install dh-make-perl in a fresh Debian image whenever you build a
module). scripts/makedeb-docker-helper
builds the package inside the
container and copies it to the out/
directory, and scripts/makedeb-docker
orchestrates the process.
Note: A package generated this way is suitable for personal use. It is not fit for inclusion in the Debian package repository. As all Debian packages must have an author, you need to set the DEBEMAIL and DEBFULLNAME environment variables to appropriate values. Feel free to extend the Dockerfile and scripts as you see fit – the repository is meant to provide a starting point only.
For non-CPAN content (e.g. if you are a module author and do not want to wait for your freshly uploaded release to appear on CPAN, or if you need to build a patched version of a CPAN module), the process is slightly more involvevd. It requires
- additional bind mounts (
docker run -v "${PWD}:/orig:ro"
) to copy the module content into the container, - a manually provided version (in my case via
git describe --dirty
), and - disabling module signing (unless you pass your GPG keyring to the container).
I also manually specify the packages needed for building and testing. I assume
that this is not needed and can be performed automatically by dh-make-perl
--install-deps --install-build-deps
.
Module content and versioning depends on your setup, so I will not provide a
git repository for this case. Please refer to the makedeb-docker
and
makedeb-docker-helper
scripts in
Travel::Routing::DE::VRR,
Travel::Status::DE::IRIS
and
Travel::Status::DE::VRR
for examples.