Monday, 10 March 2025

pissfrastructure

Piss!

Basically it's best taken apart by a hungry root system asap, before more ammonia forms.

I've been cranking out mint all summer with mine, stealthy sportswater bottle in the coat style. San Pedro can also drink it straight but not infinite amounts because wet. Here's a tuned up genAI report:

Urine as a Sustainable Plant Fertilizer

Basic Principles

Human urine is a nutrient-rich resource containing nitrogen (primarily as urea), phosphorus, potassium, calcium, magnesium, and various trace minerals essential for plant growth. When properly processed and applied, it represents a valuable circular fertiliser solution that can reduce dependency on synthetic inputs.

Fresh Application Considerations

  • Fresh urine is most beneficial when rapidly incorporated into the soil ecosystem where microorganisms can process it efficiently
  • Nitrogen in urine quickly converts to ammonia when exposed to air, leading to nutrient loss and potential plant damage
  • Plants with extensive root systems like mint, comfrey, and grasses can effectively utilise fresh, diluted applications
  • Succulent plants like San Pedro cacti can tolerate direct applications but require monitoring to prevent oversaturation and root rot

Pathogen Control Methods

EM (Effective Microorganisms) Fermentation

  • Combine fresh urine with EM solution at a 20:1 ratio (urine:EM)
  • Add 2-5% molasses or sugar by volume to feed beneficial microorganisms
  • Store in an airtight container for 10-14 days at 65-75°F (18-24°C)
  • The resulting liquid should develop a sweet-sour fermented aroma rather than ammonia smell
  • Beneficial microbes create lactic acid and other compounds that suppress pathogens through competitive exclusion
  • pH typically drops to 3.8-4.5, creating unfavourable conditions for harmful bacteria

Traditional Ageing Method

  • Store urine in sealed containers for 1-3 months
  • Higher temperatures accelerate the natural sterilisation process
  • The high pH (typically 9-9.5) that develops eliminates most pathogens over time
  • This method is simpler but takes longer than EM fermentation

Application Refinements

Humic Acid Integration

  • Adding 5-10% humic acid solution to processed urine creates chelated nutrients
  • Humic compounds buffer nitrogen release, significantly reducing leaf burn risk
  • They improve nutrient bioavailability by forming organo-mineral complexes
  • Sources include worm castings tea, mature compost extract, or commercial humic products

Carbon-Based Amendments

  • Biochar can be added at 5-15% by volume to adsorb excess nutrients and reduce volatilization
  • Biochar's micro-porosity provides habitat for beneficial soil microbes
  • Pre-charging biochar with processed urine creates a slow-release fertiliser material
  • Wood vinegar (pyroligneous acid) at 0.5-1% can enhance microbial activity and nutrient uptake

Dilution Guidelines

  • For seedlings and sensitive plants: 1:15-1:20 (processed urine:water)
  • For established plants: 1:5-1:10 (processed urine:water)
  • For heavy feeders like corn, brassicas: 1:3-1:5 (processed urine:water)
  • Apply to soil rather than foliage to prevent leaf burn and maximise root uptake

Advanced Applications

  • Combine with compost tea for enhanced microbial diversity and plant health benefits
  • Integrate into drip irrigation systems with proper filtration (minimum 200 mesh)
  • Create urine-based foliar feeds by further diluting (1:20) and adding 0.1% natural surfactant like yucca extract

Storage and Collection Methods

  • Discrete collection using sports bottles or dedicated containers is practical for ongoing collection
  • Store in UV-resistant containers to prevent photodegradation of nutrients
  • Labelled amber or opaque containers are ideal for longer-term storage

This expanded information provides a more complete framework for safely and effectively utilising urine as a sustainable fertiliser while addressing pathogen concerns and optimising plant nutrient delivery.

Wednesday, 5 March 2025

ocean buoys gravity battery

It starts as a buoy, then tethers to the ocean floor and pulls itself under.

It can go down and up to store and release energy, since it wants to float.

The Shell

Could recycle out of two scrap ships, decks facing each other.

Needs to be some size and thickness, and shape.

a diving bell?

Gas filled chamber open to the water at the bottom.

The tether winding onto a drum above the water, fairly high, because:

The air in the chamber compresses by 20x over the first 200m.

At 10m depth pressure is ~2 atm, volume halves.

At 50m is 6atm, 100m is 11atm, 200m is 21atm. 

It will need charging with air as it descends to 100m, then should handle the volume halving by design.

This means no pressure differential on the shell - it simply weighs less than the surrounding fluid.

There is negligible extra buoyant force when deeper.

Electrics

Could recycle out of elevator machinery, arrayed.

Inside each buoy

Generator/motor (probably permanent magnet)
Brake control solenoids
Pawl control motors/solenoids
Sensors for speed/position/tension
Control computer
DC-DC converters for control voltages
Probably around 1000V DC for main power to minimize cable losses

Along the seabed

DC cables linking multiple units

Shore

DC to AC inverters
Grid synchronisation equipment
Control system to coordinate multiple units

Control

The Drum

How to clutch it? To walk a large ratchet wheel? Generating while walking downstairs, etc. A little vague on how to make this efficient and reliable but someone has surely solved it.

Centrifugal brake or something to stop an uncontrolled ascent suddenly tugging on the end of the tether.

Scale

8-12m shells look quite manageable:

Forces: 200-650 tons
Cable: 155-285mm diameter
Hydraulic cylinders: 22-40cm diameter
Power: 200-640kW

15-20m getting challenging but possible:

Forces: 1,300-3,000 tons
Cable: 400-600mm diameter
Hydraulic cylinders: 56-87cm diameter
Power: 1.2-3MW


Thursday, 20 February 2025

social media, situation

Please get me on Signal. It is WhatsApp but lighter and not Meta.

Let us use this US situation. I'm keen on self-hosting alternatives. And generally lets siphon some talent! Unfortunate timing with the right wing here too - but it could end sooner. It might end later! Hah. We should affirm various good beliefs, like trans people, who tend to be STEM as. The HEAL people seem to like the environs or something, but we let them down with pay and access to those environs. See NZ working longer for less than most countries.

My (some techie rando's) Fediverse instance is in AU. It's good for blog spam and nerd sniping. It does what you tell it to do. It's a very global network if you Follow your way out there, but instances can be "about" a locality and mostly contain stuff from approximately there... It could work as the very-open layer of social networking, for promo etc. It's early days.
Any enthusiasm for Session or Matrix about? A distributed model where one client has a lot of ways to get connected is ideal. It also needs to replace calling and texting.

What are your thoughts?

What about all the gay bashing?

Well I haven't seen any but I get that people are able to be confronted badly about it.
Republicans do it...
Generally, cos they super gay. Super as in superficial, and maladjusted. Want it more taboo than it is, to be more edgy or diminish the need for quality.

Could, also, be this modern Russian-business-network paradigm of espionage by mediating reality for self-saboteurs. Very real.

Sunday, 12 January 2025

svelte HMR

https://github.com/sveltejs/svelte-hmr/tree/master/packages/svelte-hmr#preservation-of-local-state says:

On the contrary, if you keep the default preserveLocalState to false, you can enable preservation of all the local state of a given component by adding the following comment: // @hmr:keep-all. You can also preserve only the state of some specific variables, by annotating them with: // @hmr:keep.

How to decide which systems to reboot when code changes? Developing gets waitsy when everything has to complicatedly clunk.

If I change code in audio.svelte.ts,

The reload happens to Call.svelte, which includes it via Peering via Party.


The later "hot updated" messages are for the nearest Component, though nothing seems to mention the test.js location of the change...

That first one though we have hooked in before with the following code, as vite suggested, but it doesn't seem to all be there:

// < HMR can sort-of be listened for
$effect(() => {
if (import.meta.hot) {
import.meta.hot.accept((mod) => {
let of = {
// always rather opaque
mod,
// always Call.svelte?t=...
url:import.meta.url,
// empty, guesses from AI at what it would expect to be here?
hot:import.meta.hot,
id:import.meta.hot.id,
}
console.log("Codechange!", of)
})
// if you write these as import.meta.hot.accept(
// it compiles in a ['default'] as a first argument
// and an error about our strings being a callback occurs elsewhere
// so svelte must be obscuring vite's advertised feature of thus:
let imh = import.meta.hot
// none of these work?
imh.accept('/src/lib/kolektiva/Party.svelte', (newFoo) => {
console.log("Party Codechange!", {url:import.meta.url,newFoo})
})
imh.accept('kolektiva/Party.svelte', (newFoo) => {
console.log("Party short Codechange!", {url:import.meta.url,newFoo})
})
imh.accept('./kolektiva/Party.svelte', (newFoo) => {
console.log("Party ./short Codechange!", {url:import.meta.url,newFoo})
})
}
else {
throw "never here"
}
})

Probably because svelte is between us and vite, doing something I can't find info about - the discord wants me to click squirrels.

And so,

Just separate what should reload into a component! Yay.

I guess this means my UI, which is a list of participants (Y axis) and their features (X axis), may want to be a multi-table join sort of thing.

Which means I'm writing a table class with synthesized absolute positioning! It also seems like the Basket grouper|compressor I built before...

Monday, 6 January 2025

On Trans

Trans people are great and you totally want to be in a world that is safe for them. That's my main angle. And I must reiterate that they are awesome, uncompromising and so forth. It's a messy universe and people have feelings. Lots of people get thrown across the gender divide for various reasons, eg Bob from Fight Club had some med shit and somehow a rather gender-definitive body panel of his popped up... The less uptight cultures have had them for ages, eg that ladyman in Little Big Man. Heaps of spectrums of stuff going on.

Believe it or not, a woman is something people want to be. Etc.
It's just weird that teens are ideally supposed to deeply figure out who they are before their natural hormones drag them one way or the other from the undifferentiated pudge that kids are made of. I think that's a source of tension. We don't do great with most people's development so it's weird having such an early deadline emerge.

I think most of its exposure is due to being interesting to write about. I mean would you look at all this...

Most of what people buy into is trash, is being trans the same? Probably not.
Another thing, men think like dicks and women think like vaginas. So there's a clue. Here's a fairly female sentence: Let us not scrutinise everyone to smithereens tho, for we are humans.

Sunday, 5 January 2025

linux high resolution audio

So, you can use all 24 bits and 96kHz of your soundcard, if you want:

 vi ~/.config/pipewire/pipewire.conf.d/99-sample-rate.conf

And specify:

context.properties = {
    default.clock.rate = 96000
    default.clock.allowed-rates = [ 44100 48000 88200 96000 ]
    default.clock.quantum = 1024
    default.clock.min-quantum = 32
    default.clock.max-quantum = 8192
}

Then:

pactl info

Should say:

Default Sample Specification: float32le 2ch 96000Hz

And yay, it sounds great, just look at all this music: 
There must be some upscaling going on somewhere...
I've seen easyeffects using 60% cpu, but restarting sound calmed it right down. On ubuntu 24:

systemctl --user restart pipewire pipewire-pulse

It seems like 16bit samples could become 24bit just by adding zeroes at the little end, and 48kHz can simply repeat each sample... What do we do when it's 44100 Hz? Hmmm

Claude AI

Let me help clarify how audio sample rate and bit depth conversion actually works:

  1. Bit Depth Conversion (16-bit to 24/32-bit):
  • It's not just adding zeros at the end
  • The conversion involves scaling the values to maintain the same relative amplitude
  • 16-bit values (-32,768 to +32,767) are scaled to fit the 24-bit range (-8,388,608 to +8,388,607)
  • This preserves the original signal's dynamic range while providing headroom for processing
  1. Sample Rate Conversion (44.1kHz to 96kHz):
  • It doesn't simply repeat samples - that would create artifacts
  • Instead, it uses interpolation algorithms to calculate new samples between the existing ones
  • Common methods include:
    • Linear interpolation (basic, can cause artifacts)
    • Sinc interpolation (more accurate but CPU intensive)
    • Polynomial interpolation (good balance of quality and performance)

The tricky part with 44.1kHz to 96kHz conversion is that it's not a simple multiple (like 48kHz to 96kHz). The resampler needs to generate roughly 2.18 new samples for each original sample (96000/44100 ≈ 2.18). This requires more complex mathematics to maintain audio quality and prevent artifacts.

What's interesting though is that 44.1kHz was chosen as the CD standard because it's just over twice the human hearing range (roughly 20kHz), allowing for the Nyquist frequency to capture all audible frequencies. The 96kHz sampling rate is just over twice 44.1kHz, giving us another doubling that provides even more headroom for audio processing and ultrasonic frequencies.

Let me clarify these audio fundamentals:

Sample Rate determines the highest frequency that can be captured/reproduced (Nyquist frequency = sample rate/2). So:

  • 44.1kHz can theoretically capture up to 22.05kHz
  • 96kHz can theoretically capture up to 48kHz

Ultrasonic frequencies (>20kHz):

  1. Are often filtered out, yes, because:
    • Most people can't hear them
    • They can cause intermodulation distortion
    • They can waste amplifier power
  2. Arguments for keeping them:
    • Some argue they affect the audible frequencies' timing/phase relationships
    • Could affect perception of transients (very fast changes in sound)
    • May preserve more natural decay characteristics of instruments
    • Some claim they have subtle psychoacoustic effects

Bit depth is actually about dynamic range and noise floor, not wave location precision:

  • Each bit represents 6dB of dynamic range
  • 16-bit = ~96dB range
  • 24-bit = ~144dB range
  • Allows for quieter sounds to be captured without noise
  • Gives more headroom for audio processing
Sound-space is logarithmic:

  1. We perceive volume logarithmically, not linearly:

  • Each doubling of sound pressure (6dB) feels like a similar step in loudness
  • That's why each bit in digital audio represents 6dB
  • Going from 1 to 2 bits feels like the same increase as 15 to 16 bits
  1. So the bits aren't about "resolution" in the visual sense:
  • They're not like pixels that divide the wave into finer slices
  • Instead, they give us more "floors" in the dynamic range "building"
  • Each additional bit doubles the number of possible volume levels
  • But these levels are spaced logarithmically to match how we hear
  1. Sample rate, on the other hand, IS more like visual resolution:
  • Higher sample rates let us capture higher frequencies
  • It's about how finely we can slice time
  • This directly affects the highest frequency we can represent

It's a common misconception about bit depth because we tend to think in visual/linear terms, but our ears work differently from our eyes! Audio processing has to account for this logarithmic nature of human hearing.

Conclusion

It doesn't use much CPU to do this, might as well switch it on.

Especially for capturing high quality audio you intend to work on, you want all that sound-space to avoid squishing your delicious waves before you can get your compressor etc on it.

If you want to burn CPU and|or decrease latency, pipewire apparently calls that option the quantum.

Have fun!


Thursday, 2 January 2025

recipe for making PCM-15, a phase change material with a melting point of approximately 18°C

Just jotting this down for later. Is AI writing up this rad video:

https://youtu.be/Nqxjfp4Gi0k




The recipe for making PCM-15, a phase change material with a melting point of approximately 18°C (65°F), is as follows:

  1. Ingredients:
    • 5 cups (1.2 L) of water
    • 1 cup (240 mL) of sodium sulfate
    • 1/4 cup (60 mL) of table salt (sodium chloride)
    • 4 teaspoons (20 mL) of xanthan gum (optional, for thickening)
  2. Instructions:
    • Add 5 cups of water to a pot and heat it on the stove
    • Add 1 cup of sodium sulfate and 1/4 cup of table salt to the water
    • Stir the mixture until it begins to slightly boil
    • Continue stirring until the salts are mostly dissolved. It's okay if some remain undissolved
    • If desired, add 4 teaspoons of xanthan gum and simmer for a few more minutes to thicken the mixture.
    • For a more gel-like consistency, continue boiling for about 30 minutes
This PCM mixture will have a melting point of about 18°C (65°F) and can provide significant cooling effects. The recipe does not require precise measurements, making it easy to prepare with basic kitchen tools