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.
At work, I research performance modeling and performance-aware configuration methods for software and hardware product lines, currently with a focus on disruptive memory technologies. Please refer to my professional website for details.
Resources
- Photography
- Projects
- Publications (see also: ESS, ORCID, DBLP, Google Scholar)
- Repositories (partial mirrors: GitHub, Chaosdorf)
- Weblog
Contact
You can reach me by E-Mail (derf@finalrewind.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).
Outside of the internet, there is a good chance of finding me at the Chaosdorf Häkelspace hackspace.
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 v0.03
Travel-Routing-DE-HAFAS-0.03.tar.gz (signature)
- hafas: Add
--depart
and-a
/--arrive
options HAFAS->new
: Addarrival
option
Travel::Status::DE::IRIS v1.91
Travel-Status-DE-IRIS-1.91.tar.gz (signature)
- Update stations list. Frohes neues Fahrplanjahr.
Travel::Status::DE::VRR v2.00
Travel-Status-DE-VRR-2.00.tar.gz (signature)
- New dependency: DateTime
- Result: Add
datetime
,sched_datetime
,rt_datetime
accessors. - Result: Remove
date
,time
,sched_date
,sched_time
accessors. Usedatetime->strftime('%H:%M')
etc. instead. (BREAKING CHANGE) - Stop: Add arr, dep accessors.
- Stop: Remove
arr_date
,arr_time
,dep_date
,dep_time
accessors. Usearr->strftime('%d.%m.%Y')
etc. instead. (BREAKING CHANGE) - efa-m: Remove
--track-via
option, its behaviour is now included in--via
(BREAKING CHANGE)
Travel::Status::DE::VRR v1.24
Travel-Status-DE-VRR-1.24.tar.gz (signature)
- EFA: Fix
full_route
creating route elements with invalid data - efa-m: Fix
-v
/-V
(as a consequence of the fix above)
Travel::Routing::DE::HAFAS v0.02
Travel-Routing-DE-HAFAS-0.02.tar.gz (signature)
- hafas: Add
-f
/--full-route
option - hafas: Fix
-vv
/-vvv
support - Use
Travel::Status::DE::HAFAS::Location
for location data - Remove
Travel::Routing::DE::HAFAS::Location
- Use
Travel::Status::DE::HAFAS::Journey
for journey data - Section: add
load
accessor - Section: add
journey
accessor - Section: remove
operator
,id
,name
,category
,category_long
,class
,number
,line
,line_no
,delay
,direction
accessors. Usejourney->operator
,journey->id
, etc. instead.
Travel::Status::DE::DeutscheBahn v5.01
Travel-Status-DE-DeutscheBahn-5.01.tar.gz (signature)
- Fix incorrect handling of HIM messages (introduced in 4.19)
- hafas-m: Declutter station board output: sort by real-time data and show all messages at the end
- Journey: Support construction from JSON that does not provide a date
attribute (i.e., add
date
parameter to constructor) - Stop: Add
messages
accessor
Travel::Status::DE::VRR v1.23
Travel-Status-DE-VRR-1.23.tar.gz (signature)
- efa-m: Do not show free-text messages by default. Use the newly introduced -Om option to show them
- efa-m: Show real-time departure rather than scheduled time + delay
- Result: Add
train_type
andtrain_name
accessors
Travel::Routing::DE::VRR v2.24
Travel-Routing-DE-VRR-2.24.tar.gz (signature)
- efa: Make output less horizontally dense; show arrival and departure delays in-line
EFA::Route::Part
: Addarrival_delay
anddeparture_delay
accessorsEFA::Route::Part
: via: Add delay field to returned list refs
Travel::Status::DE::DeutscheBahn v5.00
Travel-Status-DE-DeutscheBahn-5.00.tar.gz (signature)
hafas-m
: Add--raw-json
option (useful for HAFAS client development)hafas-m
: Add train search support, e.g. "hafas-m '!EC 6'"HAFAS->new
,HAFAS->new_p
: AddjourneyMatch
flag- Add
Travel::Status::DE::HAFAS::Location
module HAFAS::Stop
: Fix some documented accessors not being provided by the moduleHAFAS::Stop
: Add "loc" accessor that returns the corresponding Location instanceHAFAS::Stop
: Breaking change: The "eva", "name", "lat", "lon", "distance_m", and "weight" accessors are no longer supported. Use the (identically named) Location accessors instead, i.e.,$stop->loc->name
instead of$stop->name
, etc.
Travel::Routing::DE::HAFAS v0.01
Travel-Routing-DE-HAFAS-0.01.tar.gz (signature)
- Initial release
- Supports itinerary queries using Deutschen Bahn's mgate.exe interface
- No stable API yet
Travel::Status::DE::DeutscheBahn v4.19
Travel-Status-DE-DeutscheBahn-4.19.tar.gz (signature)
- hafas-m: Fall back to locationSearch if StopFinder is unavailable
- Message: Expose message type; document
->code
and->type
accessors
Travel::Status::DE::DeutscheBahn v4.18
Travel-Status-DE-DeutscheBahn-4.18.tar.gz (signature)
- Allow HAFAS and hafas-m users to specify the backend language
- Update services list to include known language specifiers
hafas-m
: Add-l
/--language
optionHAFAS->new
,->new_p
: Add language option
Travel::Routing::DE::VRR v2.23
Travel-Routing-DE-VRR-2.23.tar.gz (signature)
- Update default API endpoint as the previously used efa.vrr.de/vrr seems to be gone for good
- Rename VRR2 API to VRR and VRR3 to VRR2
Travel::Status::DE::IRIS v1.90
Travel-Status-DE-IRIS-1.90.tar.gz (signature)
- Update stations list
- Result: weaken (circular) wing references
- Result: include
arrival_wings
departure_wings
replaced_by
replacement_for
inTO_JSON
Travel::Status::DE::DeutscheBahn v4.16
Travel-Status-DE-DeutscheBahn-4.16.tar.gz (signature)
- Journey: Fix date parser for cross-midnight journeys that start on the 1st through 9th day of a month.