This works way better than I expected. This is a static image test for a HUD on my home cockpit using a dead cheap beamsplitter made of plexiglass and a smartphone o0
Week: 36
It has been a while that I tried #StarCitizen. With the new #Neuralnet Tracker plugin (AI haha) for #OpenTrack we get head tracking without annoying IR LEDs or reflecting stripes just by reading the webcam video feed. This is apparently fast enough to try #headTracking without a dedicated #headTracker nowadays. And all that on a #Linux PC. Took some fiddling but the concept still works. What a time to be alive.
Demo: https://makertube.net/w/groS1wpAhP8XYE75vJwX32
I got my hands on a 2nd hand #PinePhone and I’m really impressed so far. Still checking out it’s features using #postmarketOS. Came with a dongle so when connected to a display (and _some_ sort of keyboard) it basically turns into a complete workstation. How awesome is that?
Already sorry that I can’t keep it for myself since it’s a birthday present but I definitely tasted b… err… I want one too. Mebbe for my own birthday? Pretty please?
Prepping the winter office. This time in another room, that is not prepared for tech yet, so I have to install a bunch of cables first.
Another flawless #Fedora upgrade today. Laptop from my mother in law was still on Fedora 33 and the upgrade moved it straight to Fedora 35. Even the Nvidia driver just works. Boooring 🤪
Battlestar Galactica Deadlock
Playing #BSG Deadlock on Linux PC. Got it dead cheap on GOG during a sale and had no idea if it would work with Wine. Works like a charm and I really enjoy this so far – back in one of my favourite verses out there.



And I’ll keep doing it – out of spite: https://beko.famkos.net/2020/02/02/reclaim-your-mailbox/ Alas that’s my personal stuff. I understand your move for business mails. Anyway, where I come from I can always use FAX and that will never die 🤪
Good morning with Konqi, mascot of #KDE
Mrgn.
Exporting timewarrior summary with duration and quarter hours

I track my working hours with timewarrior
. That’s a CLI program that has a lot of nifty features and can also be hobbled together with taskwarrior
to automated time tracking when a task is started. The taskwarrior
on the other hand gets my todo list from various bugtrackers as sources, like Redmine and Jira, using bugwarrior-pull
.
With this set-up I’ve my to-dos and my tracked hours available on the terminal, where I spend most of the day anyway. This is more or less comfortable for me but there is a huge drawback.
At the end of the months I’ll need some numbers and as it goes each company or customer has it’s own time tracking system (or even wants a csv export!) so I’ve to backfill the real systems each month. That’s a very tedious work especially if time has to be logged on specific tickets or customers and booking is done with quarter hours so I’ve to do some quick math in my head all the time.
In theory timewarrior
has me covered on this because it has a summary view that is basically fine but this can not be used to grepped or sorted for certain tickets because it displays the date for each day only once.
Another nifty feature is the timewarrior
export function that results in a JSON. The result is somewhat limited though since it will for example not display and durations and there is as far as I know no way to change this.

This is where jq
(a lightweight and flexible command-line JSON processor) comes in. This little tool is seriously underrated and it allows me to change the format and the values of the JSON export on the fly by calculating for example time durations on the fly, reformats start and end dates so import functions of table calculation programs, like LibreCalc, can read the values as date (we all know that Excel reads anything as date already) and displays me the tracked time in quarter hours for each entry so it’s for most cases a no brainer now to backfill another time tracking system with this. The result can also be easily sorted now to find for example times for a specific ticket by grepping for it’s id.
timew export :week | jq -r '["id", "start", "end", "duration", "quarter_hours", "description"],
(.[] |
# make sure .end is set (may be empty for currently active tracked time)
.end = (.end // (now | strftime("%Y%m%dT%H%M%SZ"))) |
.duration = ( (.end | strptime("%Y%m%dT%H%M%SZ") | mktime) - (.start | strptime("%Y%m%dT%H%M%SZ") | mktime) ) |
# round duration to quarter hours
.quarter_hours = (.duration / 3600 / 0.25 | ceil*0.25) |
[
.id,
# urks, localtimes are a mess in jq, ymmv - as long as it is consistent off I do not care tho
(.start | strptime("%Y%m%dT%H%M%SZ") | mktime | todateiso8601),
(.end | strptime("%Y%m%dT%H%M%SZ") | mktime | todateiso8601),
(.duration | strftime("%T")),
.quarter_hours,
(.tags | join(", "))
]
) |
@csv'
The resulting csv file can be imported into most table calculation software now or read manually in a more comfortable way.

Ymmv, as usual 🙂