About Me
Michael Zucchi
B.E. (Comp. Sys. Eng.)
also known as Zed
to his mates & enemies!
< notzed at gmail >
< fosstodon.org/@notzed >
New PC / GNU / Linux / ?
So I got my new pc bits yesterday and put them together. It's
just sitting 'open bench' at the moment with an old HD5770 as the
gpu.
I thought I might try a different GNU distribution, i'm pretty
sick of ubuntu and well systemd is a load of shit so I wanted to
try others. Last time I got a new machine i set it up with the
same config as my work machines (ubuntu 16.04), but I don't want
this to have anything to do with work.
I also ordered a couple of 24" 16:10 1920x1200 monitors. I don't
really like monitors bigger than that and one just isn't enough.
Maybe I should've gone for 4K monitors but I didn't. They haven't
shipped yet but fingers crossed I get them by the end of the week.
Artix
Artix is a systemd-less arch. I managed to get it up and going
but it just didn't feel great. It asks too many questions about
what to install (e.g. xfce4 has about 20 sub-packages, I have no
idea what i need) and the defaults are really pants. xterm is
almost unusable. The install documentation misses a few steps
which result in broken systems. And actually I forgot to install
jfs-utils so it broke after a power cycle anyway. Sigh. Well
it's not like I don't forget to install jfs-utils on other
distributions as well, but I just couldn't be fucked fixin it this
time.
gentoo
A bunch of stuff in artix is from gentoo so i gave that a good
look, it's got some interesting features. But I dunno, I didn't
even try to install this one after further thought it just seemed
like too much hassle - I don't really want to maintain my own
distro which is basically what it amounts to.
The gentoo documentation is pretty odd, it obviously originated
many years ago but is also written from the perspective of someone
who has never used linux at all.
guix
I tried installing guix. I actually managed to find a way to
create a bootable image with a standard kernel (that linux-libre
thing just wont cut it), and got it booting. And then it all fell
down - it has zero support for jfs, which is the only filesystem i
will use after being burnt by others. Given it took most of a day
to find that out i'm pretty pissed off, and would probably be more
pissed off it i literally had anything better to do while my hip
heals.
I find the guix documentation ... poor as it effectively assumes
you already know how to use it. It's also hard as fuck to explore
anything due to the long paths and the inability to just edit
things like syslog.conf.
It's also almost impossible to find anything about guix on the
internet - using duckduckgo it basically ignores "guix" if it's
supplied (even in quotes), and google is barely any better. Makes
them both useless.
I was hoping for more, but maybe i'll try it in virtualbox later
on.
For anyone interested, to get a standard kernel installer I
started
here: Installing
GUIX on a NUC but the boot image config.scm shown didn't work.
Instead I found (using find???) an install.scm I presume from the
nonguix channel. On my system it was in
/gnu/store/pis1cw2b6zx0m5hwilq8n7bi52ackiwn-nonguix-ecf5742/nongnu/system/install.scm
slackware64-current
So now i'm downloading an install image
for slackware64-current
and will give that a go. Hopefully the kernel is new enough.
Update a little later: Well that went fairly easily. I
just installed everything and and am pruning bits and pieces away
that I don't need like bluetooth and printer applets,
networkmanager, pulseaudio and so on. I'm using wireless for the
moment but it's hardcoded in wpa_supplicant.conf easily enough.
Packages seem pretty up to date and the pure-alsa-system stuff in
extra is a nice touch.
I'm trying KDE as a desktop this time. I don't think i've ever
used it before. It's got some weird shit but i've managed to get
the window manager to be almost right, if a bit fugly.
One thing in general the 'wraith prism' heatsink which comes with
the 3900X is a little under-specced. It doesn't have enough
thermal mass so the fan ramps up rapidly all the time. Oh well so
be it. The machine certainly feels snappy but the nvme drive
probably helps a lot there.
Now I just gotta find something to do with all those threads.
New Computer
Being stuck in the house is getting boring so I finally pulled the
pin on buying a new computer. Well enough bits to build one
anyway.
I've ordered a Ryzen 3900X, 32GB/RAM, a 1TB NVME SSD, and a X570
mITX motherboard. My long-term aim is to build a case for it but
I probably wont be able to do that for a while due to the broken
hip. For now I'll use an old ATX case. I'll also use an old GPU
for now. I'll probably install Slackware.
Hopefully it doesn't take too long to arrive, the shopfront claims
everything is in stock but maybe being 'black Friday' when I
ordered it will make a difference - it was purely coincidence that
I ordered on that particular Friday (I mean we don't have
thanksgiving so it's nonsense here anyway).
I don't really know what i'll do with all those threads - compling
Java or C is quick enough for my projects and I have barely been
doing any programming anyway. Shrug.
My bung leg is proving to be very frustrating. I can't really go
anywhere or do anything, I can't carry anything. It still hurts
when sitting or lying down or pretty much anything else. The
crutches get in the way all the time and to move you need clean
hands so cooking is a pain - i've been baking bread regularly.
I'll have to have them until after xmas so it's going to be a long
slow month. They're also precarious and just take a lot of effort
and concentration to use.
Broke my hip
Well that was fun.
I hadn't been out for a recreational ride on my road bike for a
long time - probably over a year - and thought i'd go for an easy
warm up ride down to the beach, drop by the city for a beer and
then home again.
15 mintues into the journey i took a slow corner off a main road
onto a side road, the front wheel started skidding and i landed on
my hip - breaking it. I wasn't breaking, I was maybe going
15km/hr, the road surface was decent. I think maybe I hit a small
round twig that rolled - I saw something like that afterwards
although it wasn't quite where I thought i'd ridden.
Fortunately I didn't need a hip replacement (at my age) but I had
an operation to screw the fermal neck together to hold it while
the bone heals. I'm on crutches for 6 weeks and then
physiotherapy for a while before I can walk proper distances and
more before i'm on a bike again. This is pretty inconvenient
given it's my only form of transport.
Fell off Thursday morning about 1045, operated on at 1930, and on
crutches alone going to the toilet by Friday 1900. So I was home
from the hospital by Saturday night and a friend help me setup the
house so I don't have to nagivate a few steps that split part of
the house.
Mentally i'm going ok enough for now, newphew is coming to stay
with me to help around the house, and maybe this will get some
friends to visit me for once. On the other hand the pain is
making sleep a bit difficult so I don't think it would take much
for the facade to wear away.
Sitting, lying, standing, pretty much anything gets painful fairly
quickly so I can't really do much and i'm off work for a while.
The client has run low on money so i'm only doing a couple of days
a week now - my contract boss wants me to get involved in other
projects ... but i'm not too keen at the moment (actually it was
part of the reason I went for the ride in the first place).
I guess it'll give me plenty of time to think, maybe i need to
change my life.
This is about all the typing i can manage in a session so ta ta.
Java 13 Upgrade
I upgraded a bunch of projects from Java 11 to Java 13 over the
weekend. It was just a drop in replacement and all I had to do
was change some paths.
Unfortunately gluon
are still not distributing the GPL-covered JavaFX properly. They
only have downloads for the binaries. I made a mention of this
for JavaFX 11 the only way I could find at the time - via their
'support system' i.e. stack overflow - but they just said to get
it from maven central. There's a pretty big problem with that:
for starters they don't link to maven central and there are
multiple javafx artifacts present. The other problem is maven
central just doesn't work with my browser (firefox) it just comes
back with some obtuse error. And finally ... the source archive
on maven is the IDE "java sources" archive and NOT the
machine-readable corresponding source-code to their release. That
means it's basically just contains some of the sources that match
the class files which lets you browse or get the documentation
from NetBeans, but it doesn't contain any of the platform specific
code or native code, build system and so forth. They don't even
link to the mercurial (or is it git now?) source coded repository
and tag.
I've made a few changes to nativez/jjmpeg/zcl since the last
release of each but i'm not sure when i'll do another set.
On Java 13, netbeans 11 doesn't support the new features so it's
pretty inconvenient to get to them but i'm not terribly interested
in most of them anyway. I've been reading reddit of late (way too
much) but one thing i've discovered via a regular poster pron98 is
there are no longer 'major releases' of Java. And the "LTS"
releases are only "long term support" for paying customers - and
aren't stable platforms like one would expect from the name. So
it's easier just to upgrade when a new one comes out. I don't
work on anything mission critical so I don't have much to test
other than 'yep, it works'.
Fuck Adelaide, Fuck South Australia
So last night I was chatting to some younger people about what
used to be at Glenelg near the Patawalonga. It was just a big
umaintained carpark that on a Friday/Saturday night used be filled
with bikies ('bikers' in USA talk), kids doing burnouts, booze,
grass and other drugs, and generally a good time had by all (sans
the 1984 riots, but oh well, these things happen - it was probably
the lead in everyone's blood as children).
That's all gone now.
In it's place is an ugly shitty miserable development called
Holdfast Shores. That land was donated to the people of South
Australia and the corrupt councilers just sold it off to the
highest bidder - illegaly as it was bequethed on the condition
that it was never commericlaised. It was a relative of one of my
aunties and she was very upset about it.
Anyway ... point is, there is just nothing like that any more.
Can you imagine a place where people just hang out, have fun,
booze and drugs IN PUBLIC ... and entirely for free?
FUCK NO! Everything is now commercialised. You pay to get in,
you pay too much for your watered down booze, and everything is
controlled by someone. If you congrate in that volume now the
filth come in and arrest everyone for having too
much unpaid fun. Unless it's inside a gated 'festival'
with private security and plenty of nods and winks.
And for all that all the drink and drugs happens anyway.
This is really sad and quite upsetting now I think about how much
we've lost.
Fuck this town. Fuck Adelaide, fuck South Australia. What a
shithole. Beer's good but.
Frame Accurate Seeking in H.264 streams with libavformat, FFmpeg
I had the need for accurate seeking in H.264 streams using jjmpeg
(FFmpeg/libavformat) and spent some time over the last few days
trying to work it out. JJMediaReader has a seek that works quite
well but I knew it wasn't correct as it was offsetting the read
timestamp by the stream start - I can't exactly remember why I did
this but I think its because it didn't work very well otherwise.
Anyway ... I finally found out why. Depending on the container,
when seeking it will go to the next or equal keyframe
rather than the previous or equal. Sigh. So that offset I was
using just happened to be enough to work most of the time and as
it reported the same start-relative time it appeared to work
properly.
So I changed the seek code to use a reverse offset for the seek
point, and then it will run forward to get to the correct frame.
This is based on the framerate rather than a fixed time offset
because some of the video I have uses low framerates. This works
but can be a bit slow as it might seek back too far.
To reduce some of the redundant work I thought of using the packet
byte position to read the exact packet of the closest previous
keyframe. Unfortunately it seems the container formats i'm using
don't support AVSEEK_FLAG_BYTE
so that idea went
nowhere. Fuck.
The best solution so far has been to implement a two-value seek
function. The first argument is the keyframe timestamp and the
second argument is the desired frame timestamp. Thus it seeks to
the keyframe first and then advances by single frames until the
desired frame is decoded. Short forward seeks bypass the seek
step This requires an external index but the application in
question needed it anyway as it requires a wall-clock-time to
frame-time mapping as well.
Summary
- If you know the timestamp is a keyframe,
use
av_seek_file()
.
- Otherwise, seek to a timestamp which is at least a few
frames before the desired timestamp and then step forwards.
Spring
I went to Thailand for a couple of weeks in September with a mate
from the pub. We ate too much good food and drank too much warm
beer. The food was fantastic and the place was interesting
although after a couple of weeks I needed a break. I've got a ton
of photos and if i ever sort them out i'll put up a post. We were
up north and only spent a night in Bangkok on the way home, and
avoided the seedy strips. He grew up in Thailand so did all the
talking and we visited some relatives so it was a nice mix of
touristy and local action.
I haven't travelled anywhere for nearly 15 years and while it was
fun it hasn't sparked any desire to travel again anytime soon.
The flying is to physically tortuous and the constant action is
pretty exhausting.
It's also made me hate Adelaide even more! This town is starting
to suck a lot. Thr urban development is turning it into a shitty
overdeveloped town but without any of the benefits of becoming a
real city - it's not dense enough and the road design is from the
50s where cars are absolute king. Makes it pretty
human-unfriendly. And the people can suck. Somehow i've seemed
to basically run out of friends. I just don't fit in with anyone
and when I reach out and try I just get spat in the face in one
way or another. I guess I must just suck or something. I don't
really feel like i have anything to do with my copious spare time
apart from go to the pub and i'm pretty sick of that. Lately i've
only been going to try to get out of the house but it's just made
things worse and I think i'll stay in for a while.
Work is pretty dull too. I'm doing some machine learning stuff so
that's a lot of data preparation and then waiting for shit to run.
It's not very interesting and it's not fun at all, and the
application itself eats away at my soul. I sometimes think of
getting another job but I don't want to have to apply for one and
I don't have enough money to retire yet (depending on how long I
might live).
Apart from all that I've not been doing a lot apart from wasting
my life away reading reddit. As i've been using it for work there
are some small changes to jjmpeg that i've committed but not
released but otherwise I haven't been doing any coding. I've
downloaded java and javafx 13 and will migrate to that soon, it
should be a simple transition from java 11.
I've spent a good amount of time lately in the yard, from
cleaning up weeds to finishing long-outstanding projects like
installing the set of steps above. The two big things left are
what to do under the verndah and some sort of shed floor.
Either paving under the verandah and cement shed floor or
decking under the verndah and paving in the shed. Might be a
while yet on those.
It's a nice warm day today and I haven't decided what to do.
Probably not the pub, or at least only one or two if i do. I
should probably go for a ride but I don't really feel like it, i
haven't had a decent ride in a long time. I'm taking a half break
off work because I'm ahead of where I need to be and I don't feel
like working. Next week the weather is turning to shit so I'll
get back to it then.
Not quite a new computer!
Well I decided I'm sick of piss farting about thinking about a new
computer so I would just go and buy the bits to build one. And I
was looking forward to having something to do on the weekend.
But for various reasons I wanted to pay cash and of course an
online shop-front doesn't have that option, so I email the
retailer regarding the list of items i'd arrived at. Do they have
them on hand, are they compatible, that sort of thing.
But alas, still no reply two days later.
So that bummed me out.
Then I looked at another retailer in another state, but they don't
sell a single 32GB memory kit that's present in tested memory list
for the only suitable motherboard they have. I'm after an itx
board so that severely limits the options.
So that bummed me out further and I decided I'd just walk in to
the first shop I tried and just go buy it in person.
Unfortunately I ran into a mate who I haven't seen in yonks so I
just ended up catching up with him all afternoon and never made
it.
And now i've got a hangover and what was really just an impulse
buy has turned into a hassle and so I guess it's off the table for
this weekend at least. Maybe next week.
I'll probably still just end up going to them if i've still got a
pocket full of cash because the retailer options are so limited in
this tiny city. If they're still in business anyway, they don't
seem to be too keen on making money. The chips will only get
better althgough RAM is volatile so who knows there.
For what it's worth this is what I came up with:
- AMD Ryzen 3700X
- 32GB 3200C16 RAM 2x16GB
- 1TB Samsung 970 EVO NVMe SSD
- MSI B450I Gaming Plus AC.
The motherboard is the only ITX available that I can find here (or
really, anywhere in the whole country in ready supply), but at
least this shop says the BIOS is already upgraded. I've already
got a power supply. The aim would be to build a case ... but it's
a bit involved so I may never get around to it and i've got some
old shit lying around I can use in the mean time. GPU is a bit of
a pain, really I just want a short 1 or 2 slot AMD card (for the
proper free software linux drivers). Rare as fucking hens teeth
here though, the shop I was going to has had no AMD graphics cards
at all for months until the 5700 came out and now that's all they
have. No one else local has anything below RX 580 nor any of the
workstation line which would do, if a little pricey. I have an
old HD 5770 that i'll use to start with. It's a double pain if i
build my own case as I need to make sure whatever i end up with
will fit. And if i get a new one it may as well be the latest
design. I'll probably have to order online, whatever I decide.
Copyright (C) 2019 Michael Zucchi, All Rights Reserved.
Powered by gcc & me!