~derf
dark mode

You have reached the personal homepage of an on-line entity known as derf / derfnull. Hi! đź‘‹

About

I enjoy doing things and post some of them on this website. Things may include taking photos, poking at public transit APIs, or putting caffeine into chocolate. Blinkenlights and embedded development are nice, too, though I don't really get around to that anymore.

When it comes to (paid) work, peers usually know me as Birte Friesel. In case you are looking to offer paid work, I also have a small work homepage on this site with a minimal CV and some more details about what I can (and am willing to) do.

Resources

Contact

You can reach me by E-Mail (d​erf@fina​lr​ewind.org) and on IRC (derf0 @ oftc, hackint). My PGP key for E-Mail encryption is 64FE6EC0 55560F9E F13A3044 19E6E524 EBB177BA. I occasionally post stuff on the Fediverse (@derf@social.skyshaper.org).

The remainder of this page duplicates a curated sub-set of projects and the latest blog entries.

Projects

> hafas 'Eichlinghofen H-Bahn, Dortmund' 'Dortmund Hbf'

00:15        Schw-B HB5  (0:03)  S 1

Schw-B HB5 → Universität S-Bahnhof, Dortmund
21:51  ab  Eichlinghofen H-Bahn, Dortmund
21:55  an  Universität S-Bahnhof, Dortmund

Walk 37m  (approx. 3 minutes)
S 1 → Dortmund Hbf
21:58  ab  Dortmund Universität: 2
22:06  an  Dortmund Hbf: 4
> 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
> hafas-m 'Hamburg Dammtor'
14:43  +45  ICE 2922  Hamburg-Altona
15:10       U 1       Ohlstedt, Hamburg
15:10  +4   Bus 112   Osterbrookplatz, Hamburg
15:10       NBE RB61  Itzehoe
> 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

News

Travel-Routing-DE-HAFAS-0.07.tar.gz (signature)

  • Replace built-in HAFAS service list with the one provided by Travel::Status::DE::HAFAS
  • Convert non-local time stamps to backend-specific time zone
  • hafas: Add -x / --exclude-infeasible and -j / --with-jid options
  • HAFAS::Connection::Section: Support unspecified local transit (TRSF)

Travel-Status-DE-DeutscheBahn-6.02.tar.gz (signature)

  • hafas-m: Add -j / --with-jid option
  • $hafas->station: Correctly determine "name" and "eva" for stations that have multiple EVA IDs and names.

Travel-Status-DE-DeutscheBahn-6.01.tar.gz (signature)

  • Journey: Add operators accessor
  • Add CMTA (Capital Metropolitan Transportation Authority) and BLS (BLS AG) services

Travel-Status-DE-DeutscheBahn-6.00.tar.gz (signature)

  • Add AVV (Aachener Verkehrsverbund), BART (Bay Area Rapid Transit), and IE (IarnrĂłd Éireann / Irish Rail) backends
  • Support backend-specific time zones; add time_zone to service description
  • Handle cross-timezone journeys and stops whose time zone differs from the backend's default time zone. As of this release, all input and output datetimes refer to the backend's default time zone rather than local time (Stop and Journey accessors) / whatever (hafas-m and HAFAS arguments). Use the new tz_offset accessor to determine local time. This is a breaking change.
  • Journey, Stop: Add tz_offset accessor

Travel-Routing-DE-HAFAS-0.06.tar.gz (signature)

  • hafas: Add -C / --change-time option
  • HAFAS: Add min_change_time option

Travel-Status-DE-DeutscheBahn-5.06.tar.gz (signature)

  • Add Travel::Status::DE::HAFAS::Product module to handle line numbers, operators, and similar. This enables proper support for journeys with multiple operators and possibly multiple train/line numbers along the route. It also exposes the line ID.
  • Journey: Add product accessor
  • Stop: Add prod_arr, prod_dep accessors
  • hafas-m: Improve stop list display in journey mode
  • Fix polyline and platform number support in Ă–BB backend (and possibly other non-DB backends)
  • Ă–BB backend: correctly handle polylines and platform numbers
  • Ă–BB backend: Remove redundant train numbers from $journey->name / $journey->line / $product->name
  • Ă–BB backend: update productbits (thanks to Cassidy Dingenskirchen)

Travel-Routing-DE-HAFAS-0.05.tar.gz (signature)

  • hafas: Add -c / --max-change option
  • hafas: Add optional via arguments
  • HAFAS: Add max_change option
  • HAFAS: Add via_stops option

Travel-Status-DE-DBWagenreihung-0.11.tar.gz (signature)

  • Add another regional train model
  • Wagon: Add group_index accessor

Travel-Status-DE-DBWagenreihung-0.09.tar.gz (signature)

  • Add various regional train models
  • wagongroup_description, train_descriptions: Add short variants

Travel-Routing-DE-HAFAS-0.04.tar.gz (signature)

  • hafas: Add --raw-json option
  • Handle undefined occupancy and partial cancellations
  • Update Ă–BB modes of transport (mot list)

Travel-Status-DE-IRIS-1.96.tar.gz (signature)

  • Re-add Wipperliese stations (service resumes on March 29th, 2024)
  • IRIS->new / get_station: correctly handle non-EVA station identifiers in with_related mode. Previously, these caused (harmless, but annoying) "isn't numeric in numeric eq (==)" warnings.

Travel-Status-DE-IRIS-1.95.tar.gz (signature)

  • Update qos/delay message texts