I happily run my own OpenSim server that is hooked onto OSGrig.org. My account there dates from 2007 and it got broken after the big crash in 2010.
It took quite a long time for them to restore the data and after a few years I decided to go back and see if i could revive my sims from the backups. And in 2013, I did so, successfully. You have no idea how great it is to see a backup rise from the dust and see, live, a sim being rebuilt. Since then, another 9 sims have been added and more landscaping has been done. Go have a look!
Sometimes though, my server crashes and I think I have now fixed it. Perhaps things got a bit too busy on a few cores, so I reserved 4 specifically for this server. Let’s see how that works! ^^
If the link to the grid does not work then open your viewer, log into the OSGrid and look for one of the following sims:
RynFox HQ1
RynFox HQ2
Himalchuli
Cho Oyu
Pumori
Saipal
Nuptse
Annapurna
Makalu
Yangra
Shishapangma
Lhotse
Jannu
Kangchenjunga
Dhaulagiri
Manaslu
If you detect a recurring theme in this list, then you are absolutely right 😉
It is the second time that I have to fix this issue where the trigger fails to release the hammer.
Symptom: The lever is not closing completely and then you cannot pull the trigger.
Cause: There is a small piece of steel in the “roof” of the action that has come loose and slides forward.
Fix: Fix the steel insert in its place, now with a much stronger adhesive. I used Loctite 648 this time.
Okay, first you need to make everything super clean and free of grease. Then you sand the slot with some fine sanding paper first as another cleaning step and then you use a coarser sanding paper to roughen up the surface.
Next, clean the insert thoroughly and use fine sanding paper first, then coarser paper.
I chose for a stronger loctite this time, because I want to wait with more intrusive ways to affix this part. Have I noted that this part should never have come out in the first place? It’s not even noted in any parts list…
There, all fitted together and now I will give it plenty time to dry and cure. Was briefly pondering about heating it up, but that’s a bit of a weird thing to do with glue as you can also often use heat to undo glued together parts.
I’ll go try it out tomorrow with some beefy ammo. I bought CCI EX Stingers that will yeet the nope with 1640 feet per second. If that breaks the glue bond, I’ll have to figure out another way to affix the insert.
Something I need to test still, but adding it here for later use, maybe. If you find a bug, please let me know! And I’m halfways sure that the author shown in this link does it less complicated, but it’s fun to learn and play around with code. https://github.com/kleampa/not-paid
GOAL: Let the website fade away, one step per day.
Modify the function to decrement the opacity by a step (e.g., 0.1).
<script>
function decreaseOpacity() {
let body = document.body;
let currentOpacity = parseFloat(window.getComputedStyle(body).opacity);
if (currentOpacity > 0) {
body.style.opacity = (currentOpacity - 0.1).toFixed(1);
}
}
</script>
Adjust the local storage logic accordingly.
<script>
document.addEventListener("DOMContentLoaded", function() {
let storedOpacity = localStorage.getItem('bodyOpacity');
if (storedOpacity) {
document.body.style.opacity = storedOpacity;
} else {
localStorage.setItem('bodyOpacity', '1');
}
});
function decreaseOpacity() {
let body = document.body;
let currentOpacity = parseFloat(window.getComputedStyle(body).opacity);
if (currentOpacity > 0) {
let newOpacity = (currentOpacity - 0.1).toFixed(1);
body.style.opacity = newOpacity;
localStorage.setItem('bodyOpacity', newOpacity);
}
}
</script>
Modify the date-checking logic to call the decreaseOpacity function.
<script>
document.addEventListener("DOMContentLoaded", function() {
let storedOpacity = localStorage.getItem('bodyOpacity');
let lastIncrementDate = localStorage.getItem('lastIncrementDate');
let today = new Date().toDateString();
if (storedOpacity) {
document.body.style.opacity = storedOpacity;
} else {
localStorage.setItem('bodyOpacity', '1');
localStorage.setItem('lastIncrementDate', today);
}
if (lastIncrementDate !== today) {
decreaseOpacity();
localStorage.setItem('lastIncrementDate', today);
}
});
function decreaseOpacity() {
let body = document.body;
let currentOpacity = parseFloat(window.getComputedStyle(body).opacity);
if (currentOpacity > 0) {
let newOpacity = (currentOpacity - 0.1).toFixed(1);
body.style.opacity = newOpacity;
localStorage.setItem('bodyOpacity', newOpacity);
}
}
</script>
Here is how the complete HTML file might look for the fading away effect:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Decrease Opacity</title>
<style>
body {
opacity: 1; /* Initial opacity */
transition: opacity 1s ease; /* Smooth transition */
}
</style>
</head>
<body>
<h1>Hello, World!</h1>
<script>
document.addEventListener("DOMContentLoaded", function() {
let storedOpacity = localStorage.getItem('bodyOpacity');
let lastIncrementDate = localStorage.getItem('lastIncrementDate');
let today = new Date().toDateString();
if (storedOpacity) {
document.body.style.opacity = storedOpacity;
} else {
localStorage.setItem('bodyOpacity', '1');
localStorage.setItem('lastIncrementDate', today);
}
if (lastIncrementDate !== today) {
decreaseOpacity();
localStorage.setItem('lastIncrementDate', today);
}
});
function decreaseOpacity() {
let body = document.body;
let currentOpacity = parseFloat(window.getComputedStyle(body).opacity);
if (currentOpacity > 0) {
let newOpacity = (currentOpacity - 0.1).toFixed(1);
body.style.opacity = newOpacity;
localStorage.setItem('bodyOpacity', newOpacity);
}
}
</script>
</body>
</html>
So with this setup, the opacity of the body tag will start at 1 (fully opaque) and decrease by 0.1 each day until it reaches 0 (fully transparent). The localStorage ensures that the opacity persists across browser sessions and days.
In order to get a clear image, rotate the lens 0.625 turns left, presuming that the white line that has been drawn on the lens case starts at the bottom.
Today I learned that the following command creates a test capture with the raspberry pi camera:
libcamera-still -o test.jpg
And by golly, it works! So yet again some progress has been made. Somewhat worry that it is blurred, so let me make another one with the lights on:
Well heck. That’s not good. I have still not been ably to install python3-picamera3. Would that be the issue? Weird though. Let’s do another test with a mug at 10 cm distance:
One more test then at 20 cm:
Sooo. Not sure what’s going on here, but at least the camera works. 😀