~derf
dark mode

You have reached the personal homepage of an entity commonly known as derf / derfnull / Birte Friesel. Hi! 👋

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'
13:49  ( +1)  RE 7     Flensburg                  3
13:49  ( +1)  RE 7     Kiel Hbf                   3
13:49         S 5      Buxtehude                  2
13:50  ( +4)  Bus 5    Nedderfeld, Hamburg
13:50         U 1      Ohlstedt, Hamburg
> efa-m -s VVO Dresden Hbf
13:40 ( -2)  5      66           Lockwitz
13:41        3      3         .  Wilder Mann
13:44        4      3         .  Coschütz
13:44        6      66           Freital-Deuben
13:46 ( +4)  6      360          Kurort Altenberg Bahnhof
13:46        5      360          Dresden Ammonstraße / Budapester Straße
13:48 ( +1)  1      7         *  Weixdorf
13:51        1      10        .  Tolkewitz
13:52        Gl.10  RE3          Hof Hbf

News

Travel-Status-DE-VRR-3.02.tar.gz (signature)

  • Stop: Add ar_delay, dep_delay, delay, stop_id accessos
  • EFA: Fix place_candidates
  • EFA: Add stop and stops functions
  • EFA: Add static get_servicesmethod
  • efa-m: Add -j/ --with-jidoption
  • efa-m -Oa, -Ob, -Of: Show delays
  • EFA, efa-m: Add stopfinder ("?foo") and stop search ("lat:lon") modes
  • Add ...::Trip and ...::Info modules
  • Info, Stop, Trip: Note that the API of these modules is not yet final and may change between minor versions

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

  • HAFAS: Add mobiliteit service definition

Travel-Status-DE-VRR-3.01.tar.gz (signature)

  • Fix Departure->route_interesting
  • efa-m: Add --json option

Travel-Status-DE-VRR-3.00.tar.gz (signature)

  • Drop XML::LibXML dependency
  • New dependencies: DateTime::Format::Strptime, JSON
  • Switch API language from XML to JSON
  • Rename Travel::Status::DE::EFA::Result to Travel::Status::DE::EFA::Departure
  • EFA: Add static get_service_ids function
  • EFA: Add bwegt backend service
  • EFA: Remove identified_data accessor (not supported by JSON backends)
  • EFA: Remove static get_efa_urls function; use get_service_ids instead
  • EFA->new, EFA->new_p: Add optional cache key
  • Result/Departure: Add hints accessor
  • Result/Departure: Remove info accessor; use hints instead
  • Stop: Add place, full_name and occupancy accessors
  • Line: Add number accessor
  • Stop: Remove name_suf accessor; use name instead
  • efa-m: -Oa, -Ob, -Of: show per-stop occupancy, if available

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

  • HAFAS: Hardcode request seconds to 00 to improve caching
  • hafas-m: Cache backend replies by default (if Cache::File is available)

I usually carry a PowerCore 5000 powerbank with an attached USB-A to USB-C cable in my purse. In hindsight, always having the cable attached to it (rather than just when using it) is not the best idea, as it exercises quite some leverage forces on the USB port. So, to little surprise, at some point the output port stopped working unless the cable connected to it was pressed into the right direction.

Luckily, the powerbank is quite easy to open up, repair, and re-assemble.

Caution: This powerbank contains a 18.5 Wh LiIon cell. In normal operation, the (dis)charge PCB is in charge of battery management tasks like short circuit protection. Disassembly exposes the raw 26650 LiIon cell, which likely does not contain a built-in protection circuit. Puncturing, shorting, heating, or otherwise mishandling it can lead to fire and/or explosion. Don't disassemble a powerbank unless you know what you are doing. Don't work with soldering irons close to LiIon cells unless you really know what you are doing.

Teardown

The connector side of the power bank features a glued-on plastic cover on top of a screwed-on plastic cover.

The glued-on cover can be pried open with moderate effort by placing a suitable object between the two plastic covers, revealing the screwed-on second plastic cover.

With the powerbank placed on a table (not held in your hands), you can now take a PH00 screwdriver to release the three screws that hold it in place. Once that is done, simply lift the case up, revealing the actual circuitry (LiIon cell and PCB). If you were holding the powerbank in your hands while removing the screws, the circuitry likely fell out instead.

The innards are quite simple: A single 26650 LiIon cell; a single PCB; and a two-part plastic assembly featuring a button and LED diffusors.

Repair

In my case, the culprit was a loose solder connection between the USB-A output port and the PCB. Nudging the capacitor out of the way and carefully applying some additional solder to its GND and VCC pins solved the issue. Just be wary of the fact that you're operating a soldering iron next to a LiIon cell that does not like triple-digit temperatures…

Re-Assembly

  • Slide the button assembly and diffusor back into the case until it locks into place.
  • Slide the LiIon cell and PCB assembly back into the case.
  • Place the powerbank on its bottom (i.e., so that the USB ports face up).
  • Place the plastic cover on top of the PCB assembly and tighten its three screws.
  • Put the glued-on top cover back on. It comes with alignment pins; in my case I did not have to apply new glue.

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

  • Improve handling of services which do not provide intermediate stops
  • HAFAS: Add Resrobot service definition
  • HAFAS: get_service et al.: return coverage data provided by transport-apis, if available

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

  • HAFAS: Add DSB (Rejseplanen), TPG and ZVV service definitions
  • HAFAS: Update endpoint URL for BLS service

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

  • Group: IC2 trains have designations as well
  • Group: Add static name_to_designation accessor

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

  • HAFAS: Fix enum error in ÖBB service
  • HAFAS: Add RSAG service definition

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

  • HAFAS: Add KVB service definition
  • Use mode of transport definitions provided by https://github.com/public-transport/transport-apis

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

  • HAFAS: Remove undocumented Math::Polygon dependency that was accidentally added in 6.05
  • HAFAS: Add STV, RMV, VMT, VRN service definitions

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

  • Group: Fix ->name accessor (thanks to Caß Dingenskirchen)
  • Group: Add ->designation accessor (data courtesy of bahn.expert)

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

  • hafas-m: Add -n / --num-results option
  • HAFAS: Add BVG and VOS service definitions

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

  • Carriage: (re-)add amenity and first/second class accessors