diff --git a/content/blog/2016-02-05-a-badass-ethereum-mining-rig.html.md b/content/blog/2016-02-05-a-badass-ethereum-mining-rig.html.md index b182a329871d58cc89a6127cc089d50b02df4a34..cbc33383897b4d4c956fe34c2f016a312b48e9fd 100644 --- a/content/blog/2016-02-05-a-badass-ethereum-mining-rig.html.md +++ b/content/blog/2016-02-05-a-badass-ethereum-mining-rig.html.md @@ -69,4 +69,4 @@ turns out the power supply is under-powered for the system. I advice upgrading t Since I've posted this article there have been a few clones of the miner. I will add names and pictures here. The following is from Rolf Versluis <rolfv@prioritycue.org>: - \ No newline at end of file + diff --git a/content/blog/2016-03-22-apex-new-aprs-protocol-new-paradigm-new-software.html.md b/content/blog/2016-03-22-apex-new-aprs-protocol-new-paradigm-new-software.html.md index e8e3eef0959007f4c834d05fe8b46251425683e5..937d10973854031dc9344315edfd1ffd0a29a9b3 100644 --- a/content/blog/2016-03-22-apex-new-aprs-protocol-new-paradigm-new-software.html.md +++ b/content/blog/2016-03-22-apex-new-aprs-protocol-new-paradigm-new-software.html.md @@ -11,13 +11,13 @@ APEX defines both a new protocol and a new paradigm. Since much of the new proto The software for the project can currently be found at the [APEX GitHub page](https://github.com/freemo/apex). -# APEX Routing Paradigm +## APEX Routing Paradigm The APEX routing paradigm defines a few new routing identifiers in addition to the common ones such as "WIDE2-2", and a few new behaviors on how the paths are consumed. The problems with the current APRS model are numerous. One problem is that aside from the use of WIDE and GATE there isn't much flexibility on how we can route packets when we don't know the explicit digipeaters with which to specify; Using WIDEN-n is more of a sledgehammer when we need a scalpel. It is also completely ineffective at being able to route a VHF message across HF channels which may be critical during an emergency. A similar problem occurs when we consider multiple HF nets across multiple bands; as it stands right now there is no paradigm that defines cross-band digipeating paths. The closest we have is the GATE path which is generally used to only digipeat from HF into VHF. This has some limited usefulness at best. As such the initial release of the APEX reference application attempts to address these problems (though testing and feedback may change the details of the specification as described here). -## Cross-band Path Routing +### Cross-band Path Routing In order to facilitate cross-band routing the APEX protocol defines several new designators as well as includes many of the old ones. Obviously WIDEN-n, GATE, and your own callsign will behave similarly to how they behaved in the old paradigm. However the new band-specific designators will have a form of ##M### or ###M## where # represents any digit 0 to 9. The first group of numbers specifies the band ID, while the second group of numbers is the net ID and is optional. In this way the designator 30M would represent the 30 meter band as a whole (specifically any nets on that band the station is capable of). When 30M is specified in a path, a station will digipeat that packet out on any port which is tuned to the 30M band. Similarly 30M1 would specify a frequency (net) that resides within the 30M band. The list of identifiers for the various nets will be updated periodically as new nets show up. However right now 30M1 would specify the world wide FSK based APRS network residing on 10.1476 Mhz USB; similarly 30M2 would specify the world wide Robust Packet Radio based APRS network which resides on 10.1473 Mhz USB. similarly other designations would be chosen for other networks throughout the world. A complete list would have to be compiled. @@ -27,7 +27,7 @@ Using these new designators in a path would be relatively straight forward. If, Notice the last hop is just 2M with no number suffix. This is because we just want it to gate into 2M network and don't care which frequency on that band it is gating into. As a side note the GATE specifier would actually perform the same function as the 2M specifier. -## Preemptive Routing +### Preemptive Routing Preemptive routing is unique to APEX and also made it into the initial release of the APEX reference implementation. With preemptive routing a digipeater can respond to certain specifiers in the path even when they are not the next hop in the path. With the cross-band path specifier mentioned above, ###M##, an optional ssid can be added to the end. If the ssid is not 0 then it specifies that the path should be treated preemptively. Essentially what that means is if it is the next hop then treat it normally however if it is a future hop you can skip all the hops in between and go straight to the hop, assuming the station is capable of operating that band (otherwise it is ignored). @@ -63,7 +63,7 @@ In this case the preemptive path would jump to 30M1. However if instead we had t In this case the preemptive pathing would jump right to the WI2ARD-1 path. -# APEX Reference Implementation +## APEX Reference Implementation As part of the APEX initiative the project includes an APEX and APRS client that acts as the APEX reference implementation. It is extensible and anyone with python experience can write plugins to expand it and hook their own software into it. This allows for lots of opportunities from the community to get involved and contribute to the project. @@ -72,7 +72,7 @@ Currently the reference implementation implements all the features I described h Below is a screenshot showing it digipeating packets as they come in across two TNCs.  -# What's Next? +## What's Next? There are many features that have yet to be implemented and we have some pretty lofty goals in store for APEX. A lot of this is brainstorming from the team so it is subject to change as well. But here are the ideas we have so far on what needs to get implemented into APEX and defined within the protocol. diff --git a/content/blog/2016-05-30-restricted-logarithmic-growth-with-injection.html.md b/content/blog/2016-05-30-restricted-logarithmic-growth-with-injection.html.md index f61251f96cd41895bd0a00582895020a4f5c5122..09f2f60e06c9a43997b48164045e70a2fc74edc7 100644 --- a/content/blog/2016-05-30-restricted-logarithmic-growth-with-injection.html.md +++ b/content/blog/2016-05-30-restricted-logarithmic-growth-with-injection.html.md @@ -13,7 +13,7 @@ There have been many contributions that have led to numerous variations of the L Of course the Verhulst Equation isn't limited to modeling animal populations, it has also been successfully used to model diffusion of innovation. In this sense it can be used to represent how ideas spread throughout a population. It is this particular application that was most interesting to me. -# Unrestricted Exponential Growth +## Unrestricted Exponential Growth As with any complex idea we have to start with the basics. Whether we are talking about an idea or an organism, if it is capable of spreading through multiplying itself, then obviously the more it spreads, the faster it will spread. You start out with one, which turns into two, then four, then eight, in just a few iterations you will have billions; if there is nothing to impede the growth, then it will follow an exponential curve. @@ -37,7 +37,7 @@ It is immediately obvious this is an exponential function, nothing too special a  -# Restricted Logarithmic Growth +## Restricted Logarithmic Growth Of course in the real world it is rare that anything will truly grow in an unrestricted manner. Space is finite, resources are finite, eventually everything must stop growing. This brings us to the Restricted Logarithmic Growth model, also called the Verhurst Equation. @@ -67,7 +67,7 @@ Once we plug these values in and simplify we arrive at the above equation. It is In the above graph the dotted horizontal orange line represents the carrying capacity, K. This is of course a constant with a value of 100. We can see that early on the population has what appears to be an exponential growth pattern, but as it begins to approach the orange dashed line it asymptotically tappers off. Of course as time approaches infinity (the x axis) then the population approaches the carrying capacity. -## Time-varying Carrying Capacity +### Time-varying Carrying Capacity If we want to play with this equation a bit more we can make things more complex (and fun) by picking a carrying capacity that actually changes with time. If we go back to the original growth rate equation we can make k(t) a function equal to (t/10)+100, rather than a constant. If we do this, and keep the growth rate and P<sub>0</sub> constants the same as before, then we will get the following equation. @@ -83,7 +83,7 @@ In the above equation Ei is the Exponential Integral Function. If you don't know You can see the equation behaves similarly in this graph as in the last graph. The only exception is that the carrying capacity starts at 100 and slowly increases over time. As this happens the population also increases to match the carrying capacity without ever exceeding the carrying capacity. Pretty much how we would expect it to work. -# Restricted Logarithmic Growth with Injection +## Restricted Logarithmic Growth with Injection This is where the lessons of history end, and my own contribution begins. I was left considering the effects of a modern world and how they could be reflected in the Verhurst model. diff --git a/content/blog/2017-04-06-conditional-probabilities-and-bayes-theorem.html.md b/content/blog/2017-04-06-conditional-probabilities-and-bayes-theorem.html.md index 92fb97de2f139013e691e52eb12833ee6e7b2ae0..b18572a127d0cc845c318bf07cac3540881d41dc 100644 --- a/content/blog/2017-04-06-conditional-probabilities-and-bayes-theorem.html.md +++ b/content/blog/2017-04-06-conditional-probabilities-and-bayes-theorem.html.md @@ -16,7 +16,7 @@ In this article I offer a tutorial to help bring the lay person up to speed with some basic understanding on these concepts and how Bayes Theorem can be applied. -# Probability Space +## Probability Space We have to start by explaining a few terms and how they are used. @@ -143,7 +143,7 @@ that maps Events in \\(\mathcal{F}\\) to probabilities. $$ (\Omega, \mathcal{F}, P) $$ -# Unconditional Probability +## Unconditional Probability This is where things get interesting. Since we have all the important terms defined we can start talking about actual probabilities. We start with the @@ -195,7 +195,7 @@ patient that has the flu. $$ P(\mathcal{F}_{flu}) = \frac{\mid \mathcal{F}_{flu} \mid}{\mid \Omega \mid} = \frac{4}{10} = \frac{2}{5} $$ -# Conditional Probability +## Conditional Probability A **Conditional Probability** takes this idea one step further. A Conditional Probability specifies the probability of an event being satisfied if it is known @@ -253,7 +253,7 @@ equation for calculating a Conditional Probability as follows. $$ P(\mathcal{F}_{i} \mid \mathcal{F}_{j}) = \frac{\mid \mathcal{F}_{i} \cap \mathcal{F}_{j} \mid}{\mid \mathcal{F}_{j} \mid}$$ -# Bayes Theorem +## Bayes Theorem **Bayes Theorem** itself is remarkably simple on the surface yet immensely useful in practice. In its simplest form it lets us calculate a Conditional Probability diff --git a/content/blog/2017-04-13-hyperassociative-map-explanation.html.md b/content/blog/2017-04-13-hyperassociative-map-explanation.html.md index ff167821ce6207af2400f38fc7ff4f97e3290e73..14b2c2b936833ef23c538a6510a004493d6cb090 100644 --- a/content/blog/2017-04-13-hyperassociative-map-explanation.html.md +++ b/content/blog/2017-04-13-hyperassociative-map-explanation.html.md @@ -5,7 +5,7 @@ tags: [Mathematics, Programming] slug: hyperassociative-map-explanation --- -# Introduction +## Introduction Almost 8 years ago, on Aug 15, 2009, I invented a new game-changing algorithm called the Hyperassociative Map algorithm. It was released as part of the [dANN v2.x library](https://github.com/Syncleus/dANN-core/tree/v2.x). The HAM algorithm, @@ -95,7 +95,7 @@ algorithms. Despite this it is still scarcely understood by those studying graph I wanted to write this article to share some of its internal workings so others can adapt and play with the algorithm for their own projects. -# The Algorithm +## The Algorithm In this section I want to get into the internal workings of the Hyperassociative Map algorithm, HAM. Below is the pseudocode breakdown explaining the algorithm. Notice I use some math notation here for simplicity. Most notably I use @@ -174,7 +174,7 @@ end of this article for reference. Obviously the pseudocode packs a lot of information into only a few lines so I'll try to explain some of the more important parts so you have an idea at what you're looking at. -## Constants +### Constants First, lets consider the constants defined at the beginning. the variable \\(\tilde{\chi}\\) is called the Equilibrium Distance. It defines the ideal distance between two vertices connected by an edge. If a pair of vertices connected by @@ -196,7 +196,7 @@ The last constant is the Alignment threshold, \\(\beta\\), this represents the m vertices move less than this value during an alignment cycle it is presumed the graph is sufficiently aligned and the loop ends. -## Align Procedure +### Align Procedure The algorithm itself is represented such that it is broken up into three major procedures. The procedure named HAM is the entry point for the algorithm, the procedure named Align calculates the incremental alignment for a single vertex, @@ -250,7 +250,7 @@ spread apart but still allow the other influences to be the dominate influences At this point the computed change in position for the vertex is simply returned at line 33 for further processing by the AlignAll procedure. -## AlignAll Procedure +### AlignAll Procedure The AlignAll Procedure is extremely straight forward. It is passed in the set of all vertices in the graph as \\(g\\) and iterates over the set while aligning them one at a time. Each vertex will get aligned once per call to the @@ -263,7 +263,7 @@ line 15. The Maximum Vertex Movement is important for determining when the HAM a Other than that this procedure doesn't do anything special, the vertex alignment vector is calculated on line 10 and the new position for the vertex is set on line 14. -## HAM Procedure +### HAM Procedure The HAM procedure is another rather straight forward procedure to explain. It starts by assigning some initial random coordinates to each vertex in the graph. After that it continually loops calling AlignAll until the graph is @@ -279,7 +279,7 @@ around the zero vector. There is a small amount of drift as the alignment of the it ensures the graph remains in the center of the view when rendered. The drift is usually negligible however so this step is entirely optional. In the full java example below the logic for centering the graph is included. -# Appendix: Full Java Code +## Appendix: Full Java Code ~~~java public class HyperassociativeMap<G extends Graph<N, ?>, N> implements diff --git a/content/blog/2017-04-19-latex-pdf-from-markdown.html.md b/content/blog/2017-04-19-latex-pdf-from-markdown.html.md index 4a1ae1bde2d29fcc25f54558a7e5411dd309de77..59d8b52d8463bd62991bc283424142fdf27d655f 100644 --- a/content/blog/2017-04-19-latex-pdf-from-markdown.html.md +++ b/content/blog/2017-04-19-latex-pdf-from-markdown.html.md @@ -20,7 +20,7 @@ It also has one other very sweet added bonus if you don't mind coding in R-Scrip into your markdown in order to produce charts or other output programmatically. R-script is a heavily math oriented programming language so it can be extremely powerful when writing math papers. -# Getting Started +## Getting Started If you want to get started using R-flavored Markdown to compile into latex and PDF I have [provided my templates on GitHub](https://github.com/Syncleus/syncleus-white). I also have diff --git a/content/blog/2018-04-07-nodal-analysis-tutorial.html.md b/content/blog/2018-04-07-nodal-analysis-tutorial.html.md index 682f099486936e18011fdc140680844c3ca5db9b..1061d91cbb70af5488ebf170a7acc50acc59db4a 100644 --- a/content/blog/2018-04-07-nodal-analysis-tutorial.html.md +++ b/content/blog/2018-04-07-nodal-analysis-tutorial.html.md @@ -7,13 +7,13 @@ slug: nodal-analysis-tutorial Nodal Analysis is a technique for circuit analysis where each node (A point where two or more components are connected) is interpreted individually. This analysis can be used to determine the voltage, or any other variable, at any point in the circuit, sometimes as a function of time. It is based on the fact that at any node all the current that enters the node will be equal to all the current leaving that same node. By doing this we are able to reduce each node to an equation, and then, the entire circuit to a set of simultaneous equations. -# Identifying nodes +## Identifying nodes First you need to learn how to identify nodes in a circuit. A node is simply the junction where two or more components are connected by wire. The following diagram shows a circuit where the nodes are circled in red:  -# Analyzing a node +## Analyzing a node The next step is to represent each node in your circuit as an equation. If you are doing an analysis in the time domain then this is usually represented as voltage as a function of time \\(V(t)\\). This can also be done in the frequency domain using Phasors. For this example we will work in the time domain. Let's use the same circuit as the one above: @@ -94,7 +94,7 @@ For node \\(V_{4}\\) we already know its value is 0 so we can skip this node all We now have 3 simultaneous equations, one for each node of the circuit (except ground). In the next section we will use them to solve for the voltage at any point as a function of time. -# Bringing it all together +## Bringing it all together The rest of the process should be pretty apparent right now if you're familiar with solving for simultaneous equations. Since this isn't meant to be a math tutorial we won't go into the details on how to solve simultaneous equations. diff --git a/content/blog/2020-09-10-understanding-the-reflection-coefficient.html.md b/content/blog/2020-09-10-understanding-the-reflection-coefficient.html.md index bc96d457402677da89091eaa693fac09818f7c09..e86dd7adf75b1e472ad021a874730dce764bebb0 100644 --- a/content/blog/2020-09-10-understanding-the-reflection-coefficient.html.md +++ b/content/blog/2020-09-10-understanding-the-reflection-coefficient.html.md @@ -23,7 +23,7 @@ So imagining the above image is voltage we see the green wave moving in one dire Now let's talk a little about how knowing the reflection coefficient is useful and how you can calculate it. -# Calculating \\(\Gamma\\) +## Calculating \\(\Gamma\\) As was already pointed out the reflection coefficient tells you the signal that is reflected relative to the forward signal. So per the example I gave at the begining you would say: @@ -39,7 +39,7 @@ $$ \Gamma = -\frac{I_{refl}}{I_{fwd}} = \frac{V_{refl}}{V_{fwd}} $$ Where \\(I\\) and \\(V\\) are their respective current and voltage phasors. Remember a phasor represents the amplitude and phase of the signal relative to some reference point, usually whatever we consider ground. So from this it tells us that in our example the reflected current signal will have an amplitude of 0.5 relative to the forward current and a phase of 210 degrees, or -150 degrees whichever you'd like. -# Calculating SWR from \\(\Gamma\\) +## Calculating SWR from \\(\Gamma\\) The other thing we can calculate directly from the reflection coefficient is the SWR, which is no longer a complex value, it's a dimensionless ratio. We lose a bit of information (the complex part) in doing this conversion but it is often a useful number used in tuning radio systems. I will explain exactly how SWR is helpful in a minute but first let's show how to calculate it. @@ -59,7 +59,7 @@ Now its important to note it **only** tells us about what the impedance match is Typically SWR meters, and therefore indirectly the reflection coefficient, is useful if it is measured at the point where a transmitter connects to a long feedline which ultimately feeds some load (usually an antenna). A large mismatch at this point will cause any power a transmitter creates intended for the antenna to be reflected back into the transmitter at its outgoing port rather than making it onto the feedline. This causes that energy to be dissipated by the transmitter and ultimately will heat up the transmitter and in some cases can fry it. So it is important to have an SWR that is relatively low for the safety of the transmitter. -# Relationship of Load and Source Impedance +## Relationship of Load and Source Impedance From this point on I want to be clear on some terminology I am about to use. If I say "load impedance" I will be talking about the total impedance of the system from the point the reflection coefficient was measured all the way to the far end of the transmission line. This means we are talking about the impedance of that whole half of the system, usually a transmission line, antenna, and maybe even a tuner. It does not refer to just what is connected at the end of the transmission line itself (usually the antenna), we will get to that later. Similarly when I say "source impedance" I will also be talking about the whole system on the transmitting side of where the reflection coefficient was measured. @@ -85,7 +85,7 @@ $$ Z_L \approx 97.1347 + 64.5328 i\mkern1mu $$ $$ Z_L \approx 116.6174610 \angle -146.401367^{\circ} $$ -# Relationship of Feedline Length and Phase +## Relationship of Feedline Length and Phase If we know the position on the feedline that we measured the signal relative to the far end of the load, where the antenna normally is, then we can calculate a few other meaningful things. Keep in mind in the real world the speed at which an electrical signal travels through the feedline is close to the speed of light but not quite. Each feedline is a bit different and we would look at a datasheet for our particular feedline to get what is called the Velocity Factor. This is a percentage or ratio that tells us the percentage of the speed of light a wave will propagate through the feedline. So we would calculate the actual speed of our waves as follows. @@ -103,7 +103,7 @@ $$ \phi = \{ \frac{2 \cdot l_L}{\lambda} \} \cdot 360^{\circ} $$ Where \\(l_L\\) is the length from the point being measured to the far end of the load, \\(\lambda\\) is the adjusted wavelength from earlier, and \\(\phi\\) is the difference in phase shift of the reflected wave relative to the forward wave. Also the curly brackets is a mathematical notation saying to take the fractional part (drop the whole number and just keep the decimal). As you can see by varying the length of the transmission line on the far side of the load we can vary the phase as we wish and thus modify our reflection coefficient to some extent. -# Measuring \\(\Gamma\\) +## Measuring \\(\Gamma\\) One very important thing to point out here, because this is where a lot of people get things wrong. Since we are measuring a single point in the feedline we are measuring the sum of the actual forward and reverse waves at that point and we can't measure the two waves directly, all we know is how the voltage and current is changing at that one point in the line. So to say we are measuring the reflected wave at all is a bit of a lie, we are really just measuring the voltage and current values at a single point and then reconstructing the forward and reverse waves from that. While this may confuse your current understanding this is very important because this is where almost everyone goes wrong on understanding these concepts. But keep in mind just because we cant measure them directly, the two waves are still there. The following is a schematic showing a circuit called a Directional Coupler, this is how we would measure the forward and reverse waves at a point in the feedline. @@ -121,7 +121,7 @@ As we know impedance in its polar form has an amplitude and a phase component ju We just learned from the above schematic that the voltage-current relationship is in fact equivalent to the forward-reflected wave relationship. One can be used to determine the other and vice versa. Therefore we know that the impedance of the antenna can not just affect the amplitude of the wave it reflects back, but can also dictate its phase. -# Feedline as an Impedance Transformer +## Feedline as an Impedance Transformer We mentioned earlier how the reflection coefficient can be calculated by simply knowing the total impedance on one side of the point being measured vs that on the other side. I also pointed out how the load impedance in that calculation described the entire system on the load side including the feedline and wasn't necessarily the same as the load at the terminating end of the feedline, usually an antenna. Since we now know that the impedance of the antenna dictates not just the amplitude of the wave reflected, but also its phase, and we also know that the length of the feedline itself can shift the phase as well, it should be obvious that we can view a transmission line as an impedance transformer where the impedance of the antenna is transformed into a different impedance based on the length of the transmission line. diff --git a/content/blog/2020-09-28-an-indepth-look-at-duals-and-their-circuits.html.md b/content/blog/2020-09-28-an-indepth-look-at-duals-and-their-circuits.html.md index 97aae3fdb3cc0d042218f63ca7056c3c56aef808..9f48e3c619193047a6f4917588c87e84bc823a1c 100644 --- a/content/blog/2020-09-28-an-indepth-look-at-duals-and-their-circuits.html.md +++ b/content/blog/2020-09-28-an-indepth-look-at-duals-and-their-circuits.html.md @@ -3,16 +3,14 @@ title: An In-depth Look at Duals and Their Circuits date: 2020-09-28 tags: [Mathematics, Electrical Engineering] slug: an-indepth-look-at-duals-and-their-circuits +toc: true --- Duality is an approach that has been applied across countless disciplines where one takes an existing structure and transforms it into an equivalent structure, often with the intention of making it more useful for a particular context. In electronic circuits this usually means we take an existing circuit schematic and transform it in such a way that it serves a similar purpose but suited to our specific use case. One extremely trivial example of this would be converting two resistors in series, which act as a voltage divider, into two resistors in parallel producing a current divider. Another similarly trivial example would be to take a voltage divider and double the values of its resistors such that it divides the voltage by the same ratio but uses half the current to do so. In both cases the fundamental idea of dividing a value by a given ratio is the same, we just transform the circuit in different ways that are suited to our needs. One of the key advantages of duality is that it is feature-preserving, as such if the original circuit has particular desirable features but otherwise may not be well suited for our application we can transform the circuit into a dual in such a way as to preserve the desirable features but transform the undesirable features. For example a resistor based voltage divider has the advantageous feature of being relatively stable across various frequencies where other types of voltage dividers may have a very limited frequency range, so a resistor based voltage divider may be best suited for an extremely broadband application (large range of frequencies). However our application may require low-power consumption and the voltage divider may not need to drive a load and only need to be provided as an input to an IC with high impedance. As such if our reference circuit is for a voltage divider that uses relatively small values for resistors, and thus draws too much power, we can transform the voltage divider into its dual that preserves the frequency-stability of the original but reduces the current draw. This of course is a very trivial example, the concept of duality can, and often is, applied to much larger complex circuits as well. For this reason understanding circuit duality, and duality in general, specifically how to recognize it, apply it, and common circuit applications is a vital tool in anyone's mental toolbox. -* Table of Contents will go here. -{:toc} - -# What is a Dual? +## What is a Dual? Duality is the transformation of a mathematical model or structure into an equivalent mathematical model or structure such that each element of the original has a one-to-one relationship with an element in the result. The transformation between its elements usually represents an involution, which means if the same transformation is applied twice you wind up with the original; at the very least the transformation must be reversible (invertible) back to its original form. This implies that the transformation must be unique for any given input. Both the overall structure once converted is said to be the dual of the original, but so too are the individual elements of the structure considered the dual of their counterpart in the dual structure. @@ -80,7 +78,7 @@ $$ f(x) = f^{-1}(x) = \frac{1}{x} $$ In the case of the reciprocal function a value of 0 for x is undefined since you can not divide by 0, any other real value other than 0, however, is valid. Therefore we can say that under the reciprocal transformation all real number values have a dual except for 0, which does not have a dual. -# Examples of Duals +## Examples of Duals There are many common examples of duals in almost every subject from philosophy, to mechanical engineering, it is a pervasive idea that can often be useful in many fields. Here are a few example values and their duals under different inversion transformations. @@ -102,7 +100,7 @@ Similarly here are some examples of transformations and their inverse that are t * A geometric flip transformation is its own inverse, an involution * doubling a value is the inverse of halving a value -# The Dual of a function +## The Dual of a function Just as we have shown above that individual variables and values have a dual under an invertible function, likewise functions can also have duals in the same manner. Imagine we have an invertible function \\(T(x)\\) which will convert something to its dual, and we have some function \\(f(x)\\) we wish to find the dual of, then simply by passing the function into T we can produce its dual. Specifically \\(T(f(x)) = f^T(x)\\) where the functions \\(f(x)\\) and \\(f^T(x)\\) are duals of each other. It is important to note here only \\(T(x)\\) needs to be invertible; neither \\(f(x)\\) nor \\(f^T(x)\\) needs to have this property. For example; say the transformation under which we create the duals is the reciprocal function, which is invertible, but \\(f(x)\\) is the square function, which is not invertible. We know it isn't invertible because 10 squared is 100 and -10 squared is also 100. So there is no way to reverse the value of 100 and get the original value since some information was lost, we no longer know if the original value was positive or negative. @@ -114,11 +112,11 @@ $$f^T(x) = T(f(x)) = \frac{1}{x^2}$$ We can now see the function \\(f(x) = x^2\\) is the dual of \\(f^T(x) = \frac{1}{x^2}\\) under the reciprocal transformation. -# Manipulating A System of Equations +## Manipulating A System of Equations Things get slightly more complicated when we start talking about systems rather than single variables or functions. A system is a collection of variables where some or all of the variables are dependent on the others; in other words, two or more mathematical functions dictate the value of one or more variables in relationship to other variables. In fact if you're reading this blog you are already familiar with one very important type of system we all care about, an electrical circuit. In an electrical circuit, the variables are things like the *voltage*{: style="color: rgb(181, 181, 98)"} at various points in the circuit and the system of functions are the electrical components that connect these points. -## Mapping a System of Equations +### Mapping a System of Equations From this point on we need a good way to visualize systems of equations so I can do a better job talking about them. So I want to describe a graphical language for diagramming systems of equations. Let's start with a simple generic component that provides an *impedance*{: style="color: rgb(18, 110, 213)"}, doesn't matter just yet if it's a resistor or something else. The following is a simple schematic of a lone component where some of the variables we care about are labeled. @@ -212,7 +210,7 @@ $$ \color{voltage}V_{out}\color{normal} = \color{voltage}4 \frac{2}{17}V\color{n Easy right? -## Manipulating a Variable Relationship Diagram +### Manipulating a Variable Relationship Diagram One thing we also need to know how to do is manipulate the variable relationship diagram, which is exactly the same as manipulating a system of equations. Obviously if we have two equations that share a common variable we can combine them into a single equation which eliminates the common variable by simple substitution. A simple example of that is as follows. @@ -234,13 +232,13 @@ Here we can see two new shared variables are created, one called \\(\color{volta One interesting aspect of working with things visually is it gives us clues as to which equations can be combined simply due to how the diagram is laid out. For example if you start at any equation and draw a path following the connecting lines and variables to any other equation, even if you go through multiple equations in the diagram to get there, then the path you created can be combined into a single equation. For example if we create a vertical path between the pair of equations \\(\color{voltage}I \cdot Z\color{normal} - \color{voltage}V\color{normal} = 0\\) up to \\(\color{voltage}V\color{normal} + \color{voltage}V_-\color{normal} - \color{voltage}V_+\color{normal} = 0\\) then those two paths can combine the equations and we would wind back at where we started before we split the equations up. Likewise we can also create a path starting at any of the four equations creating a loop through the other three such that the path goes through all four equations and in doing so can compact all four equations into one big equation. In fact being able to combine all the equations into one big equation is always possible as long as the system of equations we are representing is solvable. -# The Dual of a Circuit +## The Dual of a Circuit Now lets reiterate what we said earlier when we defined what a dual is: The transformation of a mathematical model or structure into an equivalent model or structure such that each element of the original has a one-to-one relationship with an element in the result, where the transformation between its elements is invertible. At this point it should be obvious that when we talk about a mathematical model it is analogous to a system of equations, and for our focus here the equations describe an electrical circuit. Let's take a minute and consider what our definition of a dual means when we talk about a circuit. We are saying that a dual of a circuit must be functionally equivalent, in other words it is at least partially feature-preserving, and each of its components must have a one-to-one relationship between the circuits. This doesn't necessarily mean the dual will have the same components or that the *voltage*{: style="color: rgb(181, 181, 98)"}, *current*{: style="color: rgb(0, 255, 221)"}, *resistance*{: style="color: rgb(114,0,172)"}, or any other value, will be the same in one circuit or its dual, however they do need a one-to-one relationship where some value at some point in one circuit can serve the same function at some point in the dual of that circuit. For example if we create a dual circuit and find the output of the circuit is inverted from the original then that is acceptable since it can be seen as representing the same information in a different but equivalent way. In other words for every one-to-one relationship in a circuit and its dual, the values or components in each must also be duals of each other. In fact that's all the dual of a system really is, some system where you replace part or all of the system with its dual in such a way that the utility of the overall system is preserved. -## The Circuit Dual Under Reciprocal Impedance +### The Circuit Dual Under Reciprocal Impedance There are many different types of circuit duals and even more types of duals in the general sense. The most commonly taught circuit dual is the reciprocal *impedance*{: style="color: rgb(18, 110, 213)"} circuit dual. In this form of dual circuit each component is replaced with an equivalent component that has reciprocal *impedance*{: style="color: rgb(18, 110, 213)"} characteristics. Simultaneously power sources such as batteries have their polarity reversed. This will result in a dual circuit where the amplitude of the signals at any point in the circuit is unchanged but are in different locations in the new circuit. If you flip the components around the power source however instead of flipping the power source, which is functionally the same thing, the position of the *voltage*{: style="color: rgb(181, 181, 98)"} points will remain unchanged; which tends to be a more convenient way to visualize it. The phase of the signals, as well as the *current*{: style="color: rgb(0, 255, 221)"}, at any point undergoes a transformation however and is not preserved. Generally forward phase shifts become negative phase shifts of the same degree. In this type of circuit inductors become the dual of capacitors as they always have reciprocal *impedance*{: style="color: rgb(18, 110, 213)"} of each other for the same value component. @@ -447,7 +445,7 @@ This final diagram is our dual where \\(\color{capacitance}C\color{normal} = \co To recap, we know that the *impedance*{: style="color: rgb(18, 110, 213)"} equation for an inductor is the reciprocal of that of a capacitor, so in our capacitor based low-pass filter we know we can swap the position of the capacitor and the resistor, use the reciprocal value for the new resistor, and since an inductor is already the reciprocal of a capacitor, we just ensure the inductor has the same *inductance*{: style="color: rgb(255,0,255)"} in Henrys as the capacitor has *capacitance*{: style="color: rgb(255, 127, 0)"} in Farads. Thus transforming our capacitor based low-pass filter into its inductor based dual. -## The Voltage-current Dual Under Parallel-series Transformation +### The Voltage-current Dual Under Parallel-series Transformation A *voltage*{: style="color: rgb(181, 181, 98)"}-*current*{: style="color: rgb(0, 255, 221)"} circuit dual under parallel-series transformation is another valid type of dual. In this sort of dual points in the circuit that represent *voltage*{: style="color: rgb(181, 181, 98)"} signals are transformed into equivalent *current*{: style="color: rgb(0, 255, 221)"} signals and vice versa. Every point in the original circuit that represents a *voltage*{: style="color: rgb(181, 181, 98)"} has an equivalent *current*{: style="color: rgb(0, 255, 221)"} through a mesh in the dual circuit. As such the number of nodes in the original circuit (not counting ground) is equal to the number of meshes in the dual circuit and vice versa. This is accomplished by transforming each component from its series topology to a parallel topology and vice versa. @@ -463,7 +461,7 @@ Likewise here is its *voltage*{: style="color: rgb(181, 181, 98)"}-*current*{: s As you can see \\(\color{current}I_1\color{normal}\\) becomes equivalent to \\(\color{voltage}V_1\color{normal}\\) and \\(\color{current}I_2\color{normal}\\) becomes equivalent to \\(\color{voltage}V_2\color{normal}\\). We can also see that the second circuit has two meshes and one node; meanwhile, the first circuit has two nodes and one mesh. More importantly, however, the ratio of the *current*{: style="color: rgb(0, 255, 221)"} being divided between \\(\color{current}I_1\color{normal}\\) and \\(\color{current}I_2\color{normal}\\) in the *current*{: style="color: rgb(0, 255, 221)"} divider is the same as the ratio between voltages \\(\color{voltage}V_1\color{normal}\\) and \\(\color{voltage}V_2\color{normal}\\) in the *voltage*{: style="color: rgb(181, 181, 98)"} divider. -## The Electric-magnetic Dual under Capacitance-permeance Transformation +### The Electric-magnetic Dual under Capacitance-permeance Transformation There is another type of circuit dual that is far more obscure, rarely understood, and almost never considered, that is the circuit dual created by swapping the magnetic field and the electric field in much the same way we can create a circuit dual that swaps the *voltage*{: style="color: rgb(181, 181, 98)"} and *current*{: style="color: rgb(0, 255, 221)"} values. Every electric circuit has an equivalent magnetic circuit as its dual, though in practice this isnt always all that useful to create such a dual. In a magnetic circuit dual of an electric circuit *resistance*{: style="color: rgb(114,0,172)"} becomes *magnetic resistance*{: style="color: rgb(114,0,172)"}, electric fields are replaced with magnetic fields, inductors behave like capacitors, capacitors behave like inductors, Electromotive Force (EMF), measured in *volts*{: style="color: rgb(181, 181, 98)"}, is replaced with Magnetomotive Force (MMF), measured in amps, and *current*{: style="color: rgb(0, 255, 221)"} is replaced with magnetic *current*{: style="color: rgb(0, 255, 221)"} which is the rate of change of magnetic flux, which conveniently enough has the units of volts. In other words a magnet or inductor where the field is collapsing or growing at a constant rate in a magnetic circuit is equivalent to a DC an electric circuit. Similarly since a spinning magnet by definition is constantly accelerating at the edges where its two poles are located (remember rotating objects are constantly accelerating at their edge by definition) would be equivalent to an AC electric citcuit. @@ -473,7 +471,7 @@ Even though in a magnetic circuit the units for *voltage*{: style="color: rgb(18 Keep in mind there are actually two types of magnetic duals, both of which are refered to as a magnetic circuit, and they tend to be a bit different. The type we are describing here is an equivalent-work dual in the sense that if you have an electric circuit that does work, then its magnetic dual as described here will also be doing the same amount of work. This is called the gyrator-capacitor model or less commonly the capacitor-*permeance*{: style="color: rgb(255, 127, 0)"} model for a magnetic circuit. There is another type of magnetic circuit dual which is more often described but does not preserve work-equivalence, that is called the *resistance*{: style="color: rgb(114,0,172)"}-reluctance model. -### Equivalence +#### Equivalence First let's start with an illustration to show how in a magnetic circuit the magnetic field can propagate through an iron wire in much the same way an electric field propagates through a copper wire. @@ -647,7 +645,7 @@ Of course you only need to take the conjugate when dealing with complex numbers One other minor consideration here is that a magnetic dual circuit will have magnetic field lines that are perpendicular to the orientation of magnetic fields in its electric dual. Similarly the magnetic field lines in the magnetic circuit will be parallel to the electric field lines in the electric circuit. For example the magnetic field lines which surround the wires in a magnetic circuit run parallel and along the wires unlike in an electric circuit where they form concentric circles around the wires. -### Magnetic DC and AC Current +#### Magnetic DC and AC Current When we talk about magnetic DC or AC *current*{: style="color: rgb(0, 255, 221)"} things get a bit confusing. In practice most authors would simply avoid these terms all together, and for good reason. But as should be obvious at this point every concept in our electric circuit model has a dual in the magnetic circuit model, so it is worth touching on this. @@ -657,7 +655,7 @@ While in a theoretical context where we are modeling a magnetic circuit with ide On the other hand AC magnetic circuits are perfectly fine and in fact the norm. If the same *voltage*{: style="color: rgb(181, 181, 98)"} source combined with an inductor was used as the power source but the *voltage*{: style="color: rgb(181, 181, 98)"} source was made into a sinusoidal AC *voltage*{: style="color: rgb(181, 181, 98)"} instead then the resulting changing magnetic flux would represent an AC magnetic circuit. This would also be equivalent to a rotating magnet with a constant angular velocity in place of the inductor and *voltage*{: style="color: rgb(181, 181, 98)"} source. -### The Magnetic Capacitor +#### The Magnetic Capacitor Much as an electric capacitor is a component which acts as a reservoir able to to store energy in the form of an electric field or convert that stored energy back into *current*{: style="color: rgb(0, 255, 221)"} in an electric circuit, a magnetic capacitor is a component of a magnetic circuit that acts as a reservoir for energy in the form of a magnetic field. Similarly an electric capacitor is made of two electrically conductive plates with a material in between them which has high *permittivity*{: style="color: rgb(255,0,0)"} and high *resistance*{: style="color: rgb(114,0,172)"} a good magnetic capacitor would consist of two plates made of material with high magnetic conductivity with a material between them which has high *permeability*{: style="color: rgb(0,255,0)"} and a low *magnetic resistance*{: style="color: rgb(114,0,172)"}, which we will cover in the next section. Remember as we pointed out in our table of duals above, *permeability*{: style="color: rgb(0,255,0)"} is to the magnetic field what *permittivity*{: style="color: rgb(255,0,0)"} is to the electric field, and *electric resistance*{: style="color: rgb(114,0,172)"} has the reciprocal units of *magnetic resistance*{: style="color: rgb(114,0,172)"}. We cover the relationship between *electrical resistance*{: style="color: rgb(114,0,172)"} and *magnetic resistance*{: style="color: rgb(114,0,172)"} in more detail in the next section but for now just keep in mind that higher *electrical resistance*{: style="color: rgb(114,0,172)"} of a material results in lower *magnetic resistance*{: style="color: rgb(114,0,172)"} for that same material. As such a good magnetic capacitor will usually be made of a material with high *electrical resistance*{: style="color: rgb(114,0,172)"}. @@ -701,7 +699,7 @@ $$ \color{impedance}\mathcal{Z}\color{normal} = \frac{1}{\omega\color{capacitanc $$ \color{reactance}\mathcal{X}\color{normal} = -\frac{1}{\omega\color{capacitance}\mathcal{C_{_{ideal}}}\color{normal}} = \operatorname{Im}\left(\frac{1}{\omega\color{capacitance}\mathcal{C_{_{real}}}\color{normal}}\right) $$ -### The Magnetic Inductor and Gyrator +#### The Magnetic Inductor and Gyrator As discussed in the previous section in an electric circuit a capacitor is a component which acts as a reservoir for an electric field where it can store energy from the circuit as well as deliver that energy back into the circuit. Similarly in an electric circuit an inductor is a component which acts as a reservoir for a magnetic field which can store or deliver energy from, and to, the circuit. In addition a capacitor in an electrical circuit is storing the type of field, the electric field, being worked within the wires of an electrical circuit, this should be obvious as an *electric voltage*{: style="color: rgb(181, 181, 98)"} between two points is the measure of the difference in the strength of the electric field between those points, and *electric current*{: style="color: rgb(0, 255, 221)"} is the movement of electrons, an electric charge carrier. This is why we can measure the *voltage*{: style="color: rgb(181, 181, 98)"} across a capacitor and use that to indicate how full the capacitor happens to be. Likewise as we recently covered the magnetic capacitor stores a magnetic field instead, which is similarly the type of field inherent to a magnetic circuit. This is contrasted with an electric inductor; in an electric circuit, an inductor stores energy in the form of a magnetic field, which is not the type of field propagating through an electric circuit's copper wires, outside of parasitic effects or inductors anyway, though even in that case the magnetic field largely manifests outside of the copper wires themselves. So in a sense the purpose of an inductor in an electric circuit is to convert the intrinsic electric field energy of the circuit into magnetic field energy, and then store it. In the case of an electric inductor this is stored in the ferrite core, in the case of an air core inductor it is stored in the space around the inductor. This analogy also applies when we talk about magnetic inductors, that is, their purpose is to convert the intrinsic magnetic field energy of a magnetic circuit into electrical field energy and store this energy, or to deliver that stored energy back into the magnetic circuit. @@ -751,7 +749,7 @@ So by now you might be wondering how all this ties into the magnetic circuit dua  -### Magnetic Impedance, Resistance, and Reactance +#### Magnetic Impedance, Resistance, and Reactance *Magnetic resistance*{: style="color: rgb(114,0,172)"} is the dual of *electrical resistance*{: style="color: rgb(114,0,172)"}; just as *electrical resistance*{: style="color: rgb(114,0,172)"} impedes the flow of *electric current*{: style="color: rgb(0, 255, 221)"} by converting its energy into heat, *magnetic resistance*{: style="color: rgb(114,0,172)"} impedes the flow of a changing magnetic field, *magnetic current*{: style="color: rgb(0, 255, 221)"}, by converting some portion of that energy into heat. @@ -945,11 +943,11 @@ $$ \color{impedance}\mathcal{Z}\color{normal} = \frac{L}{\omega S} \cdot \color{ At this point our equation is identical to equation \\(\eqref{finalimp}\\) so it should be clear that this alternative approach works as well. It should also be clear that if we continued to expand the equation and put it in complex number form, as we did with equation \\(\eqref{finalimpcomplex}\\), we would see the *imaginary*{: style="color: rgb(251,0,29)"} number we expect come out of the \\(\color{permeability}\mu\color{normal}\\) argument. So this also serves to demonstrate nicely what I mentioned earlier how when using the real-world equation for a capacitor with *complex capacitance*{: style="color: rgb(255, 127, 0)"}; we do not need to add the *imaginary*{: style="color: rgb(251,0,29)"} number back in manually as this is already baked into the complex value of \\(\color{permeability}\mu\color{normal}\\) for us. -### Examples of Magnetic Circuits +#### Examples of Magnetic Circuits This section I just want to devote to showing some sketches of simple magnetic circuits that show how any electric circuit can have a magnetic circuit dual. Keep in mind these may not be particularly practical in real life, generally the electrical equivalent will be more efficient. The only purpose is to show that every electric circuit can be represented with a magnetic circuit dual. -#### DC Magnetic Lamp +##### DC Magnetic Lamp  @@ -959,13 +957,13 @@ In this circuit, like other circuits, the wires are represented by the rectangul If you think about it an induction furnace is in some ways very similar to this circuit; it uses magnetic energy to heat up a piece of metal untill it turns white hot and glows with light. The only differences are that an induction furnace uses an AC *magnetic current*{: style="color: rgb(0, 255, 221)"} instead of DC and it it heats the material to the point of melting it. In a lamp you'd want to heat it enough to get it white hot but not so much that it would actually melt of course. -#### Magnetic High-pass Filter +##### Magnetic High-pass Filter  Here we have a simple magnetic bandpass filter where the magnetic lamp presents a *resistance*{: style="color: rgb(114,0,172)"} and would be factored into the component values. We added a magnetic capacitor in series with the lamp; there is also a horizontal connection just before the lamp representing a magnetic resistor acting as the resistive component to form the high-pass filter. If these were ideal components then a DC magnetic *current*{: style="color: rgb(0, 255, 221)"} would result in the lamp not lighting at all, and as the frequency of the sine wave generator increased the lamp would glow increasingly brighter. -#### Magnetic Oscillator and Bandpass Filter +##### Magnetic Oscillator and Bandpass Filter  @@ -973,7 +971,7 @@ Finally this is the schematic for a magnetic oscillator or bandpass filter, depe This would also work as an oscillator in the sense that if the sine wave generator produced a pulse instead of a steady sine wave, then the energy would oscillate between the capacitor and the inductor in the circuit at their resonant frequency until all the energy is dissipated by the lamp. -### Permanent magnets as a Power Source +#### Permanent magnets as a Power Source One final related point I wanted to make was on the topic of using permanent magnets as a DC power source in a magnetic circuit. Typically permanent magnets can not do work. This is because the energy stored in their magnetic field, in order to be consumed, must deplete the magnetic field. Just as an inductor would stop acting as an electromagnet if the energy in its magnetic field were consumed, so would a permanent magnet need to become demagnetized in order to consume the energy in its magnetic field. Since permanent magnets don't usually spontaneously become demagnetized during ordinary use it isn't typically the case that they can provide any power on their own when stationary, or indeed do any work at all. @@ -987,13 +985,13 @@ Now your first thought might be that the heat involved to get the magnet to the You could literally run circuits off the energy stored in permanent magnets... well as much as you could from a charged inductor, which is to say, you wont be able to deliver all that much power to really be useful as a power source. But hey, still cool to know that magnets can be used as a power source all the same. Just don't go getting any crackpot ideas about over unity devices or infinite energy. There is a finite and small amount of energy in a magnet and once you use it up, its gone, so no infinite energy anytime soon I'm afraid. -# Special Thanks +## Special Thanks Special thanks to the following people for helping me proof-read and edit this article prior to its release: * [Faith Aydin](https://fosstodon.org/@faydin) - He submited several corrections through gitlab catching numerous spelling and gramatical errors. -# Citations +## Citations [^jaejinlee]: Hong, Y.-K., & Lee, J. (2013). [Ferrites for RF Passive Devices. In Recent Advances in Magnetic Insulators – From Spintronics to Microwave Applications](https://www.sciencedirect.com/science/article/pii/B9780124081307000083) (pp. 237–329). Elsevier. [doi:10.1016/b978-0-12-408130-7.00008-3](https://doi.org/10.1016/b978-0-12-408130-7.00008-3) [^magmodel]: González, G. G., & Ehsani, M. (2018). "[Power-Invariant Magnetic System Modeling](https://www.vibgyorpublishers.org/content/ijme/fulltext.php?aid=ijme-4-012)", International Journal of Magnetics and Electromagnetism, 4(1), 1-9. [doi:10.35840/2631-5068/6512](https://doi.org/10.35840%2F2631-5068%2F6512). ISSN [2631-5068](https://www.worldcat.org/issn/2631-5068). diff --git a/content/blog/2020-12-23-an-efficient-exponential-moving-average-of-finite-length.html.md b/content/blog/2020-12-23-an-efficient-exponential-moving-average-of-finite-length.html.md index 995c2908227cf99942de3ac6c3666f535f267f30..94d02e01d637d0877c5089ff52860b4fabd102e7 100644 --- a/content/blog/2020-12-23-an-efficient-exponential-moving-average-of-finite-length.html.md +++ b/content/blog/2020-12-23-an-efficient-exponential-moving-average-of-finite-length.html.md @@ -14,7 +14,7 @@ In this post I will discuss how to calculate the EMA value with a finite length * Table of Contents will go here. {:toc} -# Calculating EMA with Finite Length +## Calculating EMA with Finite Length First lets take a look at the equation used to calculate the EMA for any point. This equation assumes a starting point of \\(V_0\\); when dealing with an EMA of fixed length then our \\(V_0\\) would be the point in the time series that is the number of steps behind the current data point in the sequence by length. @@ -43,7 +43,7 @@ Where\\ *\\(V_t\\)* the value, \\(V\\), at time \\(t\\),\\ *\\(S_t\\)* the sum at time \\(t\\), this is the same as the EMA at time \\(t\\). -## Example of Length 5 +### Example of Length 5 Lets run through all the math we need to accomplish our end goal for a fixed length of 5, then we can hopefully pick out the patterns and generalized this to any length value. @@ -246,7 +246,7 @@ $$ S_5 = \left(1 - \alpha\right) \cdot {S_4}' + \alpha V_5 $$ From here on out the pattern holds for successive values as well, we can calculate each successive EMA value at any point without recursively iterating through the previous values but rather by modifying the previous value's EMA in the series. -## Generalization of Length N +### Generalization of Length N At this point the pattern is pretty obvious, I hope. Lets sum things up real fast by generalizing what we learned above and rewrite our EMA equation for a fixed length of \\(N\\). When we want to calculate the EMA for a point that is more than N (length) away from the start of the time series then we have the following generalization from the above. diff --git a/content/blog/2022-11-23-eugen-rochko-ceo-of-mastodon-found-to-support-nazis-agenda.html.md b/content/blog/2022-11-23-eugen-rochko-ceo-of-mastodon-found-to-support-nazis-agenda.html.md index 072067235c4d52ceeb23d180397bca13951d9683..c24551d80cfa82abfd5b6086a56c207fa1d97b2d 100644 --- a/content/blog/2022-11-23-eugen-rochko-ceo-of-mastodon-found-to-support-nazis-agenda.html.md +++ b/content/blog/2022-11-23-eugen-rochko-ceo-of-mastodon-found-to-support-nazis-agenda.html.md @@ -11,7 +11,7 @@ I know, clickbait title right? Sadly no. When we say Nazi here we dont just mean I am the founder of one of the oldest instances (servers) on the Mastodon network, QOTO. It is almost 5 years old and we have been building this network along side Eugen Rochko since the begining. There has been a fair bit of drama and while Eugen Rochko has been more or less consistent in stamping out hate speech and prejudice this seems to be limited to when its popular rather than when its right. But this isnt the story of Eugen, in many ways its the story of QOTO and the impact Eugen has played in the network and towards our little corner of it. -## The begining, the exodus +### The begining, the exodus QOTO was founded in July of 2018 out of a need to create a STEM oriented instance that respected and protected the safety of its userbase, in particular that of the LGBTQ+ community. At its founding the network was much simpler than it was today, only a handful of instances and moderation was simplistic. @@ -45,13 +45,13 @@ Unfortunately this caused a lot of backlash. Many instance admins were bitter ov Later we even took it one step further. You see in Mastodon when you follow an account this alerts the account that you are following them. This was a big concern since it might expose our LGBTQ+ members who were monitoring accounts and fear for their privacy was at stake. As a result we implemented a unique feature only present at QOTO called subscriptions. It effectively allowed our users to follow an account without alerting the account they were being followed. It was privacy-respecting, however, specifically designed so it only allowed you to see posts a user made as a public post. Any posts that were restricted to follower-only or private could not be seen with a subscribe, you still needed to do a follow for that. Despite the privacy-respecting aspect of the feature the hate and disinformation campaign against QOTO continued by a handful of bitter instance admins. They lied and made announcements about our feature as privacy-violating and claimed, erroneously, that it bypassed security and let users view follower-only content, which of course it didn't. The divide grew even larger, and as it did our following grew even larger too. -## Acceptance on the joinmastodon directory +### Acceptance on the joinmastodon directory Despite the divide across the network we still have a huge LGBTQ+ community and a large following in the thousands by this point. We therefore applied to join the joinmastodon.org directory, the official directory of Mastodon maintained by Eugen himself. The criteria for getting on this directory are listed clearly and since we qualified, and because of the applause of our supporters, we eventually made it to the list. As a specialty instance that caters specifically to the STEM community this was a crucial milestone for us. It increased our influx of new users substantially and allowed us to reach a level of healthy growth. Due to our popularity Eugen generally defended the attacks against us from instance admins still bitter of the earlier exodus. This was looking good for QOTO and the fediverse. -## Enter snow, the Nazi +### Enter snow, the Nazi By this point in the story QOTO had grown to tens of thousands in size and was in fact one of the largest specialty instances in the entire network. Aside from a handful of bitter instance owners our reputation was excellent and we were highly recommended by our peers. We were consistently seeing hundreds of new users a day and we were growing steadily. @@ -70,7 +70,7 @@ Of course QOTO quickly deleted and suspended any accounts posting such content. Needless to say the previously small number of instance admins that still had an issue with QOTO used this as fuel for the fire. They spread the news of the reports in an attempt to defame QOTO and because the reports were so widespread it worked. QOTO quickly started showing up on numerous block lists around the fediverse. Needless to say it is hard to fight against a misinformation campaign, lies spread faster than truth. -## Picking up the pieces +### Picking up the pieces As the admin of QOTO I was left trying to figure out some way to counter the disinformation that had spread. Like most disinformation campaigns it took on a life of its own. People saw the lies, bought them, and their gut reaction was to hate us without ever bothering to check the facts. Once someone hates you it is very hard to reason with them, the lies compound, gossip ripples, and soon everyone swears they have a cousin who was the victim of an attack. Of course anyone who spent even a moment looking through QOTOs timeline would see we are a place where acceptance and concern for the LGBTQ+ community remains our top priority. We retained a loyal band of supporters, but our enemies were growing no matter how much goodwill we tried to spread. @@ -102,7 +102,7 @@ For the sake of openness and providing all the evidence the full content of the > >If you wish to discuss this further please feel free to reach out to me either by email or by reaching out to me at @freemo@qoto.org -## Eugen caves to Nazi's campaign +### Eugen caves to Nazi's campaign This leads us to Eugen Rochko's role in all this. Up until this point while QOTO was still popular with the majority of the instances he had defended his position to keep us on the joinmastodon official directory of instances. However with the misinformation spread by Snow and the hate this ultimately generated directly and indirectly from this incident he decided to delist us from the official directory over at joinmastodon.org. He did this knowing full well what happened with Snow, he knew Snow's  efforts were to get us suspended, delisted, and blocked and knowing this was all the agenda of a Nazi and his cohorts he still decided to cave to popular pressure rather than to do what was right and set the record straight and stand by the LGBTQ+ communities safety above popularity. This is a shameful and outright disgusting act on his part. I believe it is fueled largely by the increased visibility Mastodon has had lately as people are migrating en masse from twitter to the network. He cared more about appearances than the actual safety of the lives of the LGBTQ+ community and this is disheartening to say the least. @@ -120,7 +120,7 @@ There are several concerning consequences of this decision, particularly the sil He was aware of the incident with the group of Nazis, he knew their agenda, and in the end he supported the Nazi's agenda to get us banned and delisted because it was the popular thing to do. Nothing more, nothing less. In his own words in the one reply he managed to muster about this incident "I will take a listing down if it risks endangering the reputation of Mastodon". A man who cares more about Mastodon's "reputation" than he does about the physical safety of the LGBTQ+ community has no business being in charge. -# Update: Eugen indirectly verifies content of this article +## Update: Eugen indirectly verifies content of this article See Eugen's response here, which I will comment on: [https://mastodon.social/@Gargron/109402824022874888](https://mastodon.social/@Gargron/109402824022874888)