About Me

Michael Zucchi

 B.E. (Comp. Sys. Eng.)

  also known as Zed
  to his mates & enemies!

notzed at gmail >
fosstodon.org/@notzed >

Tags

android (44)
beagle (63)
biographical (104)
blogz (9)
business (1)
code (77)
compilerz (1)
cooking (31)
dez (7)
dusk (31)
esp32 (4)
extensionz (1)
ffts (3)
forth (3)
free software (4)
games (32)
gloat (2)
globalisation (1)
gnu (4)
graphics (16)
gsoc (4)
hacking (459)
haiku (2)
horticulture (10)
house (23)
hsa (6)
humour (7)
imagez (28)
java (231)
java ee (3)
javafx (49)
jjmpeg (81)
junk (3)
kobo (15)
libeze (7)
linux (5)
mediaz (27)
ml (15)
nativez (10)
opencl (120)
os (17)
panamaz (5)
parallella (97)
pdfz (8)
philosophy (26)
picfx (2)
players (1)
playerz (2)
politics (7)
ps3 (12)
puppybits (17)
rants (137)
readerz (8)
rez (1)
socles (36)
termz (3)
videoz (6)
vulkan (3)
wanki (3)
workshop (3)
zcl (4)
zedzone (26)
Saturday, 07 December 2019, 00:11

More Computer Shit

Given I don't have anything else to do i've spent a lot of time playing with the new machine.

Oh and the monitors came today. A couple of phillips 25" 16:10 screens.. They seem ok - not perfect but I think i'm just nit-picking, especially given my less-than-perfect eyesight.

*shrug* it's a monitor.

Running through the calibration images on www.lagom.ml it's mostly pretty good. The main failings are slightly dark on the blue line in the contrast test (2 isn't really visible, but it was a fairly bright day when i checked it), and a little bit of pixel-flicker with a couple of the patterns in the inversion test. I suppose it's pretty minor and you need to be unnaturally close. I tried downloading some landscape pictures to check the colour reproduction and was pretty dissapointed in some of the vertical banding I was seeing, but then I downloaded some others and I think it was just a poor image.

The 'presence' detector seems to detect my chair when i'm not in it so i'm not sure if that's more than just a gimmick, and I guess when i'm at my PC i'm at it all day anyway. The "reader" mode makes the whole screen greyscale - which is actually quite nice to be honest but i'll probably just forget to use it. It would be nice if it was combined with 'economy' mode which is easier on the eyes, but alas it is not.

I'm glad I just went with 2x25" at least, the pair pretty much completely fills my field of view and the 16:10 gives me another 8 lines of text to think with.

Guix again

Normally I just dump tars into /usr/local or /opt for various packages like netbeans but I decided to try using slackbuilds (or creating my own). That worked ok for netbeans and openjdk, octave was more work but not too much, but it fell down when I tried to get blender installed.

So I had the bright idea of trying to get guix going as an application-level package manager on the system. So I spent way too long turning all of it's dependencies into slackware packages using slackbuilds - far too late into the night - only to end up with a guix which crashed repeatedly. And guile errors are about as useful as python ones.

So I fucked that all off and just installed from the binary distribution.

Which works, but i'm still not sure i'm convinced yet.

Everytime i run an update or install it seems to want to download everything, and the packages seem to be built with every conceivable option enabled so they drag in enourmous amounts of software (the 'graph' of octave is undecipherable). Add to that that every operation is SLOW AS FUCK. Although it turns out savannah.gnu.org is being DDOS'd ad the moment so that might be part of the reason. guix is a fuck-ton of code though so it's not a simple system in the least.

Everything and the kitchen sink - what installing octave drags in.

But it does have way more (and way more relevant!) packages than slackware, and is much easier to use than slackbuild. The cost is a few GB of duplicated libraries and utilities I suppose. Eh, I dunno, i'll see how it goes I suppose, for now i've got most of what I need to code away. I mean, slackware still packages xeyes ...

JavaFX

I decided to try building javafx from source to find out why the gluon packages don't work with netbeans - it doesn't read the src.zip, nor does it understand the javadoc. This is a surprisingly easy process, basically just run gradlew and off it goes, and it doesn't even take very long to compile (at least on this machine!).

The only thing I had to fix is the idiocy of using '-Werror', on C++ of all fucking things. Just sneeze and the standard 'library' or the language changes and suddenly what-was-once-pristing code spews dozens of worthless warnings everywhere.

Anyway after that netbeans still didn't work with the build I made ... it turns out it doesn't handle java9's javadoc format, and there's some bug reading the source (or maybe it doesn't handle modular sources?). I just pointed it at the source-code directories directly and that works well enough and I've finally got on-line documentation back again - yay!

Compiling Shit

Speaking of building, I created a custom linux kernel. Cut down a bit and only the modules I need. Well it doesn't really cut all that much out but it does save 6MB at runtime.

But it compiles the whole thing in under 90 seconds!

I experimented a bit with the cpu goveror as well, ondemand/performance doesn't really make much of a difference but setting the maximum frequency does. You can only set 3 values, 2200000, 2800000, and 3800000. The first two seem to set an upper limit and the top value lets the CPU boost if it can, perhaps they equate to 45W, 65W anbd unlimited CPU settings - I can't seem to find any such in my BIOS.

The main point is that using 2800000 or lower the cpu fan doesn't ramp up so it must be using much less power. In blender, 2.8Ghz delivers 70% of the performance and 2.2Ghz about 55%. I don't have the numbers but compilation was a bit better than from memory. My SFX 450W PSU has been running with no fan most of the time as well, despite changing over to a monster 3-slot HD7970 for the time being (not that i have anything opengl to tax it, and there's no OpenCL drivers for any modern kernel). I also tweaked the cpu fan curve in the bios so it doesn't ramp and and down constantly - a higher base speed and a wider first step. This makes it much quieter in general use.

Anyway, the machine fucking flies, as you should bloody well expect for $1800 of computer bits (just the cpu/mobo/ram/nvme ssd). And that doesn't include gpu, screens, keyboard, mouse, psu or case, so it is by far the most expensive computer i've ever bought.

KDE

I'm still using KDE, and actually I don't mind the window manager for the most part (be nice to be able to drag windows between desktops though). But there's some weird shit in there i've slowly been pruning out like the oddly named PIM and search stuff which brings in a lot of junk like mariadb and so on. I can still log on so it can't have been too vital. The panel is mostly ok but boy does it have a dumb way of configuring itself. A tiny menu across the bottom of the screen, shitty animations (here's a hint: ease in and out!), and strange things that move while you're trying to get the mouse ontop of them. IT's like it's a half-arsed attempt at a touch-screen interface but it's too small even for that.

I'll give it a bit more of a go but I imagine that xfce4 is in my not-too-distant future, and perhaps i'll give some of the others a go.

Tagged biographical.
Wednesday, 04 December 2019, 06:04

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.

It's got a lot of LEDs ...

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.

Tagged hacking.
Sunday, 01 December 2019, 00:32

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.

Tagged biographical.
Tuesday, 19 November 2019, 03:14

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.

Tagged biographical.
Monday, 28 October 2019, 05:54

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'.

Tagged java, javafx, jjmpeg, nativez, zcl.
Wednesday, 23 October 2019, 07:58

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.

Tagged biographical.
Saturday, 19 October 2019, 22:59

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

Tagged hacking, jjmpeg.
Thursday, 03 October 2019, 02:36

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.

Looking south from a lookout at Pai during sunrise. We hired a scooter and rode the 4 hours from Chaing Mai. The roads were very good.

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.

Made and installed these steps this week. Apart from the woodwork I had to clean away a big pile of bricks my brother left in that corner and extend the paving.

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.

Tagged biographical.
Newer Posts | Older Posts
Copyright (C) 2019 Michael Zucchi, All Rights Reserved. Powered by gcc & me!