Show newer
mc ☕ boosted

@HannahHowe
IMO you don't mention the most iconic of them all, Pink Floyd/Roger Waters. 😉

Learn TRIGONOMETRY with Julia - Math for entry-level IT professionals, vol. 2, 💥 🆕 is available here:
leanpub.com/learntrigonometryw

> "Trigonometry is one of those topics that keep appearing again and again, even in very simple gamedev projects. ..."
– Fundamental Math for Game Developers, by Gustavo Pezzi on pikuma.com

> Nowadays trigonometry is used in countless work and scientific activities.
– from the Intro of the book

> "CSS, the language that helps websites become so cumbersome (...), is learning some new tricks. Soon, web developers will be able to use it to perform simple math functions. ... The trigonometry functions were approved in a late February meeting of the World Wide Web Consortium (W3C) CSS Working Group. ..."
– CSS is Getting Trigonometry Functions to Help Web Devs Avoid JavaScript, by Nate Swanner on dice.com

Learn Algebra with Julia - Math for entry-level IT professionals, vol. 1, 🆕 is available here:
leanpub.com/learnalgebrawithju

> As W. W. Saywer writes in his Mathematicians Delight, “The main object of this book is to dispel the fear of mathematics.”

> “It’s no secret that knowing advanced mathematical concepts and being comfortable with learning will open up more avenues for you as a software . …"

> The very nature of programming is mathematical.

-- from the Intro

Newer fluids and now allow to be better at some applications than their electromagnetic peers.

> The main advantage of electrostatic motors is their reduced critical materials use. In particular, electrostatic motors don’t require copper windings or any rare earth magnets which are getting more expensive as demand grows for electrically-powered machines.

Electrostatic Motors Are Making A Comeback
hackaday.com/2024/10/29/electr

mc ☕ boosted

I just muted and then blocked this dude @jbwharris because it's the only thing I see when scrolling down, and it didn't disappear.
Is being ?

"...
How a healthy federated network can look like

To me, this leaves a final idea of how federated systems should be designed. The key points:

Monopolies must be under control. Large instances have a great power and responsibility. If a large provider decides to cut the connection, it will be the smaller party to be blamed. This has been the case with E-Mail, where all small providers need to comply with the rules of Google, Microsoft etc. Users expect third-parties to successfully deliver the messages into their inbox and do not question if their provider plays a fair role in the game. We believe that community-managed structures like Codeberg also play an important role. The decision is in the hand of the public and does not depend on the arbitrary decisions of a company or small admin team.

Moderation must federate well. Instead of relying on only two sides of the connection to process reports, it might be beneficial if abuse reports are also shared to other instances. An instance could automatically hide posts if they have been blocked by numerous remote servers. This prevents malicious instances from generating duplicate work on all receiving servers.

Responsible maintenance. It is good to allow anyone to selfhost software. However, putting up something on the Internet comes with some responsibilities. Unmaintained systems can cause harm, unpatched software or insecure configurations can be the entrypoint for spam or can be combined to botnets with huge impact. Please consider twice before offering a service with open registrations. If you want, we recommend forming a group of like-minded admins and taking care together. This is more efficient – and more fun!

Build a network of trust. I believe that downloading blocklists from third-parties is not the ultimate answer, but knowledge sharing is. You almost always have some remote instances which you trust. I imagine Codeberg trusting instances maintained by team members, Forgejo developers and other like-minded communities (e.g. disroot). And we trust their trusted instances, too. This repeats until a certain configurable threshold. Everyone else needs to be approved by moderators first, before the spam can reach our users. This keeps a balance between protection and manual effort.

What we can learn from the Fediverse spam for Codeberg
blog.codeberg.org/what-we-can-

mc ☕ boosted

Gotten to wondering what's going on in the world of #Mensago to work toward replacing email with something safer? Wonder no more. Connect Continues On. 😄

mensago.org/connect-continues-

#programming #encryption #email

@freemo I signed out and signd in again back and loaded normally. Weird.

@freemo It's back to the same. Meanwhile have you found any explanation for this behavior? Does this happen to others or is it only me?

@freemo
Nope. Today loaded on the fly. Thanks.

"Loading…
Your home feed is being prepared!"

This is the message I get when I come here now. I waited 5 minutes until 'home feed' was finally 'prepared'.
Is this normal @freemo ?

mc ☕ boosted

Astronomers from the University of Helsinki have found that the rotational profile of a nearby #star, V889 Herculis, differs considerably from that of the Sun.

The star rotates the fastest at a latitude of about 40 degrees, while both the equator and polar regions rotate more slowly.

The observation provides insights into the fundamental stellar #astrophysics and helps understanding the activity of the Sun, its spot structures and eruptions.

#astronomy
helsinki.fi/en/news/space/rota

@katfriedrich
Depending on what you mean by "explanatory book" perhaps you would like to peep Advanced Engineering Mathematics by Erwin Kreysig.
If you search carefully you may find the 9th edition for free. If you have trouble and are willing to share an email address I will send it to you in pdf.

mc ☕ boosted

When discovering the ins and outs of Amiga hardware during late 80s I learnt about the custom co-processors inside the Amiga:
• The Blitter – A coprocessor having ability to copy rectangular blocks of memory around while applying bit-logic operations on them and to draw lines.
• The Copper – A general purpose coprocessor synchronized to display beam position, able to control most of the other custom hardware, such as sprites, color palette, display properties and control the Blitter.

Even though the Blitter can perform only a limited set of logical operations on bit-level, the operations can be combined to perform more complicated logic. Tomas Rokicki demonstrated Conway’s Game Of Life by employing the Blitter already back in 1986.

Since Game of Life is Turing complete, if I could make it run without any CPU control it’d also mean that the amiga chipset itself would be (granted this has been known to be the case for a long time already). This required controlling the necessary blit operations entirely from the Copper alone, something I already knew was feasible: I would only need to build a Copper program that would trigger the necessary blit operations in sequence. If the setup was done correctly, I could just let the copper list run while the CPU would be idling. Eventually I managed to get this working after dealing with all kinds of Blitter programming woes, such as coming up with the correct barrel shift register values for -1 and +1 cell fetch operations. This is a limited case of Turing Completeness as the total memory size is limited, also limiting the complexity of the system that could be emulated.

Having a Game Of Life running entirely with the Copper and the Blitter alone was all nice as such, but I could make it even more fancy by entirely wiping all CPU instructions from the memory after the setup had been done and stopping the CPU execution. I implemented this by copying section of the code inside one of the temporary buffers used by the Game Of Life blits and jumping to this code. The code would wipe all other system memory to zero, enable the DMA to start up the Copper, and finally execute “stop #$2000” instruction to indefinitely stop the CPU. The first iteration the Game Of Life would then wipe the remaining CPU instructions, entirely erasing last remnants of the 68000 code from RAM. I believe this method was used by some of the copy protections in some #Amiga games (Dragon's Lair is often mentioned).

Having successfully implemented the Game of Life I was already quite pleased with myself. Yet, I felt that there was more that could be done to spice things up. The copper list was static and only repeating the same program indefinitely after all. But what if I would use the Blitter to rewrite part of the copper program itself? That is: Maybe I could build a feedback loop where the Blitter would modify the Copper programming, building more complicated self-contained dynamic programs?

After tinkering around for few hours I came up with basic control blocks that are necessary to implement self-modifying Copper programs in practice. The minimal primitive consists of:
• Setting up the Blitter copy operation of 2+n*4 bytes
• Set the blit target address to the position where the lower 16-bits of the source address for this blit are set, and then n*4 bytes of arbitrary Copper instruction payload
• Execute the blit operation and wait for it to complete
This will update the Copper code in a way that on next display update the n payload Copper instructions piggybacked by the blit operation will get executed. The source address is used to chain together sequence of payloads with the last one of them pointing back to the beginning of the chain. In short, rather than actually diverging the path of execution of the Copper it dynamically modifies fixed section(s) of the Copper instruction flow for each screen refresh effectively resulting in different Copper instructions getting executed on each iteration. While it would also be possible to modify the “program counter” address of the Copper itself but this requires more code, and is less flexible.

I used this construct to create two separate repeating loops:
• Background color cycle of 24 different colors in an RYB color wheel.
• Displaying animated sprite with 8 different frames.

This is rather naïve use case for the capability however. Since the Blitter can do logic operations you could easily store higher level logic and conditional execution controlled by the Blitter source. In effect this demonstrates second means of achieving Turing Completeness.

I had always wondered if something like this could be pulled off. Now I know for sure.

#retrocomputing #programming #hack

Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.