Michael Zucchi

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

  also known as zed
  & handle of notzed


android (44)
beagle (63)
biographical (93)
blogz (9)
business (1)
code (72)
cooking (31)
dez (7)
dusk (30)
extensionz (1)
ffts (3)
forth (3)
free software (4)
games (32)
gloat (2)
globalisation (1)
gnu (4)
graphics (16)
gsoc (4)
hacking (449)
haiku (2)
horticulture (10)
house (23)
hsa (6)
humour (7)
imagez (28)
java (229)
java ee (3)
javafx (49)
jjmpeg (80)
junk (3)
kobo (15)
libeze (7)
linux (5)
mediaz (27)
ml (15)
nativez (9)
opencl (120)
os (17)
panamaz (3)
parallella (97)
pdfz (8)
philosophy (26)
picfx (2)
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 (3)
zedzone (23)
Friday, 13 December 2019, 20:21

Zed's Bread Baby, ...

So I haven't been spending all my time just on the new computer, I've also been doing some cooking. It's quite a laborious process and the crutches keep getting in the way but most things only require short stints standing while the oven or mixer or some natural process takes it's course. Reminder: I'm on crutches until after xmas due to a broken hip. I can't go anywhere or do much or carry anything and even beer makes my foot swell up so I can't even bloody well get drunk.

Yesterday I made a pretty good approximation of a baguette - perhaps a bit too soft but it made a great chicken sandwich for dinner. And today I made a '(kneaded) no-knead' bread, and a couple of ciabatta.

A dutch-oven bread and a couple of ciabatta.

I sort of fucked up the latter because the starter was too cold in the fridge so the final dough was far too wet, but perhaps it turned out OK. I made some last week and didn't cook it long enough but otherwise it was an interesting bread with an almost rubbery texture quite unlike the standard recipe.

I'm going to write down the recipes I used here in part so I don't forget them. One might notice a lot of similarities in the steps - well that's just how you make bread I guess.

I don't normally bother adding salt but most bread recipes include it, perhaps 0.5 tsp. I notice the yanks put sugar in their recipes - sometimes alarming amounts - so maybe they just need the salt to make it palatable!

The bread improver could just be more flour. I use general purpose flour which is a bit too weak (low protein) to make good bread, and this helps make up for it a little bit. Adding an egg works really well but then you need to adjust the dry/wet ratio to account for it (just add a bit more flour usually).

Another trick which works on any of them is to spray water lightly a few times while it's baking. This will create a shiny hard crust by simulating a steam oven. I usually do it if i remember to as it doesn't take much work and is a nice touch.

I use a standard-sized kenwood chef mixer, and I have a new Bosch oven that has an almost moisture proof seal (nearly steamed my face off a couple of times opening it). I highly recommend a scraper (aka "baker's helper"). Finally the cooking times are a bit arbitrary and you can always go longer if you want more crust.


Recipe for Baguettes
390gplain flour
10gbread improver
1 tspyeast
10mlolive oil
  1. Put the flour and yeast in the mixing bowl and add the water.
  2. Start the mixer with the dough hook on low until they combine then run at speed 1 for about 15 minutes.
  3. Set the machine on low and add some olive oil, then turn the machine off. Remove from the dough hook and turn until an oil-coated ball is formed. It makes it easier to work with and stops it drying out.
  4. Either leave it in the mixing bowl or transfer to another and cover with a plate. Leave somewhere warm to double in size.
  5. Punch down and turn out onto a liberally floured surface and roll out the bubbles. Cut in halves and fold over thirds several times until a rough log is formed. A bakers scraper helps a lot here.
  6. I have a funky 80s baguette form that I then place them in.
  7. I let them rise in my oven set to 30C, and spray some water on them to stop them drying out. I then remove the tray from the oven and set the baking temperature.
  8. Cook at 220C for about 25 minutes or until they look done.
  9. Remove onto a wire rack immediately once done.

Up to about 100g of the flour can be replaced by other flours like semolina (more moist) or bulgar wheat (whole-meal like). This is probably a bit wet for a true baguette but it makes great rolls and buns as well.


Recipe for Ciabatta
200g + 240gplain flour
200g + 200gplain flour
10gbread improver
1 tspyeast
240ml + 240mlwater
200ml + 200mlwater
10mlolive oil
  1. Take 200g of the flour, the yeast, and 200ml of the water and mix in a bowl until a slurry is formed. Cover and leave for 12-24 hours somewhere at a cool room temperature. It should rise and puff up and go stringy.
  2. Put the remaining (200g) flour(s) in a mixing bowl. Add the rest of the water (200ml) to the starter to help remove it and pour that into the mixing bowl.
  3. Set the mixer running and let it go for about 15 minutes. Put in the oil and try to form a (wet) ball using a scraper.
  4. Either leave it in the mixing bowl or transfer it to another and cover with a plate. Leave somewhere warm to double in size.
  5. This is likely going to be messy. Pour from the bowl onto a very floured surface and use the scraper and adequate flour to form two soft logs of dough.
  6. I then transfer the logs to a deep baking dish with a piece of baking paper folded in the middle to form a barrier.
  7. I cover that with another tray and let them rise.
  8. Cook at 220C for about 25 minutes or until they look well done.
  9. Remove onto a wire rack immediately once done.

This is a simplified version of a stupidly complex multi-stage recipe I found on the internet. I've only made it a couple of times so I might need to make some changes.

Update: So this just isn't working right, yet. I tried a bit last night and it's texture is more like a crumpet than anything else! I'm not sure if I'm just not letting it rise enough before baking it, or the mix is a bit too wet, although I suspect it's a bit of both. Yesterday I ran out of hours in the day and cooked it because the oven was hot but I probably should've left it (much) longer. I will need to experiment more, but will try with a reduced recipe as this makes a lot of bread!

Update: Take 2. I reduced the water and flour a bit and let the formed loaves rise for much longer. The bread itself is soft and 'bready' with a slight sourdough taste. The crust is OK but not thick enough, it probably needs more time in the oven. The dough is still so wet that it 'runs' as it proves to fill the available space, I'm not sure how I could get around that other than less water again. It's nice bread however.

Dutch Oven Bread

Recipe for Dutch-Oven Bread
390gplain flour
10gbread improver
1 tspyeast
10mlolive oil
  1. Put the flour and yeast in the mixing bowl and add the water.
  2. Start the mixer with the dough hook on low until they combine then run at speed 1 for about 15 minutes.
  3. Set the machine on low and add some olive oil, then turn the machine off. Remove from the dough hook and turn until an oil-coated ball is formed. It makes it easier to work with and stops it drying out.
  4. Either leave it in the mixing bowl or transfer to another and cover with a plate. Leave somewhere warm to double in size.
  5. Carefully turn out onto a liberally floured surface and use a scraper to fold a few times and form into a ball. Do not punch down.
  6. Line a bowl with baking paper and place the ball into the middle. Cover them with a plate and let it rise.
  7. When it is nearly done rising put an enameled dutch oven with it's cover on into the oven and pre-heat to 220C.
  8. Using the paper, carefully transfer the risen dough into the put and put the lid back on.
  9. Bake for about 20 minutes, remove the lid, and bake for about 10 minutes more or until done. If you're keen you can remove the paper at this point but it doesn't make a lot of difference.
  10. Remove onto a wire rack immediately once done.

This was based on a '2 hour' 'no-knead' bread recipe but then I realised I was using the mixer anyway so why not just let it do it's thing. The original made more of a bread-cake, and this makes proper bread but with a 'rustic' look and a great crust. I just had a piece and it's really very good.

This one can likewise have some of the flour replaced.

Tagged biographical, cooking.
Friday, 13 December 2019, 14:55

Workbench 2.0 Theme Updated!

So I finally gave up on KDE and went back to xfce4. The way I had things seutp there wasn't a lot of difference but there wasn't anything to be gained either. Login was stupendously slow but the showstopper was not being able to drag windows to another virtual desktop - possibly you can do it but I don't care now.

Of course xfce4 is also borked because it uses gtk3 now ... so I wanted to fix the scrollbars. And then I wanted to have grey backgrounds on windows ... so I ended up creating a new AmigaOS theme for xfce4 that merges my window manager theme with a couple of separate gtk themes I found on www.xfce-look.org.

T'is a bit rough but it works!

Go to the Workbench 2.0 project page for further details and how to get hold of it!

X Windows System

I also had an ugly fight with .Xdefaults and xterm settings along the way. Slackware's xterm uses some really shitty colours and disables things like 'bold' (which i particularly like in my man-pages, thank-you-very-much). The magic line required to get anything to even work is:

XTerm*customization: -color

I haven't gone through and fixed the colours yet, or worked on emacs with a grey background but I guess I will do that eventually as well.

It still works!

And finally, I switched to xdm as my login manager. It's ugly but it's fast as fuck and simple to use. The kde one kept wanting to default to kde and I like the simplicity of xdm anyway.

Tagged code, hacking.
Thursday, 12 December 2019, 09:45

Firefox Web Extensions

I decided to publish a couple of trivial web extensions for firefox that I use. They just toggle preferences settings so the extensions themselves are completely trivial.

Unfortunately you need to use a fucking web service to make them installable in the browser, but at least you can then install them later using the "anus menu" in about:addons. Due to this i've included the signed .xpi files in the repository.

Tagged extensionz, hacking.
Wednesday, 11 December 2019, 20:04

blogz mobile

Another small update to the site that should improve the display on mobile phones or other very narrow browsers.

Firstly it switches to mobile mode earlier at 640 pixels width rather than 480. Images are now resized to fit when in this mode. And I changed the tag menu to be a compact version - this required a small change to the generator but is implemented in the css.

No idea on browser compatability but it WORKSFORME on my desktop machine.

Tagged blogz, hacking, zedzone.
Wednesday, 11 December 2019, 18:51

blogz update

Today I checked in some small changes to blogz (the software which runs this blog).

Primarily they move the blog index and 'etag' value from include files to a .c file so a new post doesn't trigger an almost complete rebuild of the application. It only takes a fraction of a second but it was bothering me!

I also removed some over-indulgent use of meta-make.

I mentioned this on the ZedZone host page but I've also added git-over-http checkout for all my repositorities. The checkout url's are listed on https://code.zedzone.space/.

Tagged blogz, hacking, zedzone.
Wednesday, 11 December 2019, 18:48

Prototyping - Vulkan

I've started a new project to track my prototying and expriments with programming Vulkan in C - zproto-vulkan.

No promises on this one but i'll see how I go. I might also do something simialr with some Java(FX) toys i've been playing with.

Tagged code, hacking, vulkan.
Wednesday, 11 December 2019, 11:01

HD7970/GCN1 + Vulkan

I have an old discarded GCN1 card from work that I'm using in my new machine - that's the HD7970. Apart from being a 3-slot power-hungry monster plugged into an itty bitty little ITX board it's still a great graphics card for a workstation.

Unfortunately for me though, it doesn't have any OpenCL support in any current Linux drivers. You have to go back to the catalyst driver, but that doesn't work on any modern distribution or kernel (it last supported Ubuntu 14.04). It's unlikely AMD will ever get the ROCm code to support it, and it's unclear if there's even enough public documentation for any outsider to be able to get the necessary kfd driver working.

But I did find out it can at least support vulkan! Until this new machine I've just been using Ubuntu 16.04 so never had new enough anything to get vulkan running anywhere. You have to change from the radeon to the amdgpu driver but everything works well. On the internets people seem upset that you either get vulkan or video-decode but my experience with the video decode has been very poor so I don't think I'm missing much. I don't really watch videos anyway.

So I've switched over to amdgpu and I've finally had a chance to play with vulkan. I've gone through the lunarg sdk tutorial and 'minimal' compute example, but converting the c++ to plain c. The compute-only path is definitely not as convenient to use as OpenCL (this is something of an understatement!) but I suppose it's something and I wanted to learn about it anyway.

I've also started playing a little with clspv to try compiling some OpenCL to vulkan SPIR, but there are some fairly major limitations. And just invoking kernels is messy.

A bit of fun using genetic algorithms. It's a bit of a one-trick-pony but can look interesting with the right parameters. This took about 1M generations.

I don't really have a goal in mind for now although I was looking at some very basic 'genetic' art (my implementation isn't really genetic, it's just a random search with one prior generation) a couple of weeks ago, so maybe that. It's a lot of work compared to using JavaFX though.

Tagged hacking, vulkan.
Saturday, 07 December 2019, 10:41

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


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.


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.
Newer Posts | Older Posts
Copyright (C) 2019 Michael Zucchi, All Rights Reserved. Powered by gcc & me!