master
Miloslav Ciz 10 months ago
parent 96776982b7
commit 9cb436ae49

@ -23,7 +23,7 @@ In 2004 Lessig published his **book** called Free Culture that summarized the to
In the book Lessig gives an overview of the history of copyright -- it has been around since about the time of invention of [printing press](printing_press.md) to give some publishers exclusive rights (an artificial [monopoly](monopoly.md)) for printing and publishing certain books. The laws evolved but at first were not so restrictive, they only applied to very specific uses (printing) and for limited time, plus the copyright had to be registered. Over time corporations pressured to make it more and more restrictive -- nowadays copyright applies to basically everything and lasts for 70 years AFTER the death of the author (!!!). This is combined with the fact that in the age of computers any use of information requires making a copy (to read something you need to download it), i.e. copyright basically applies to ANY use now. I.e. both scope and term of copyright have been extended to the extreme, and this was done even AGAINST the US constitution -- Lessig himself tried to fight against it in court but lost. This form of copyright now restricts culture and basically only serves corporations who want to e.g. **kill the [public domain](public_domain.md)** (works that run out of copyright and are now "free for everyone") by repeatedly prolonging the copyright term so that people don't have any pool of free works that would compete (and often win simply by being gratis) with the corporate created "content". In the books Lessig also mentions many hard punishments for breaking copyright laws and a lot of other examples of corruption of the system. He then goes on to propose solutions, mainly his Creative Commons licenses.
Free culture has become a relative success, the free Creative Commons licenses are now widely used -- e.g. **[Wikipedia](wikipedia.md) is part of free** culture under the [CC-BY-SA](cc_by_sa.md) license and its sister project [Wikimedia Commons](wm_commons.md) hosts over 80 million free cultural works! There are famous promoters of free culture such as [Nina Paley](nina_paley.md), webcomics, books, songs etc. In development of libre [games](game.md) free cultural licenses are used (alongside free software licenses) to liberate the game assets -- e.g. the [Freedoom](freedoom.md) project creates free culture content replacement for the game [Doom](doom.md). There are whole communities such as [opengameart](oga.md) or Blendswap for sharing free art, even sites with completely public domain stock photos, vector images, music and many other things. Many scientists release their data to public domain under [CC0](cc0.md). And of course, [LRS](lrs.md) highly advocated free culture, specifically [public domain](public_domain.md) under [CC0](cc0.md).
Free culture has become a relative success, the free Creative Commons licenses are now widely used -- **[Wikipedia](wikipedia.md) is one of the most famous examples of free culture** as it is licensed under the [CC-BY-SA](cc_by_sa.md) and its sister project [Wikimedia Commons](wm_commons.md) hosts over 80 million free cultural works! [Openstreetmap](osm.md) is a free-cultural collaborative project offering maps of the whole world, [libregamewiki](lgw.md) and [opengameart](oga.md) are sites focused on creation of free-cultural video games and game assets and there are many more. There are famous promoters of free culture such as [Nina Paley](nina_paley.md), there exist webcomics, books, songs etc. In development of libre [games](game.md) free cultural licenses are used (alongside free software licenses) to liberate the game assets -- e.g. the [Freedoom](freedoom.md) project creates free culture content replacement for the game [Doom](doom.md). Many scientists release their data to public domain under [CC0](cc0.md). And of course, [LRS](lrs.md) highly advocated free culture, specifically [public domain](public_domain.md) under [CC0](cc0.md).
**BEWARE of fake free culture**: there are many resources that look like or even call themselves "free culture" despite not adhering to its rules. This may be by intention or not, some people just don't know too much about the topic -- a common mistake is to think that all Creative Commons licenses are free culture -- again, this is NOT the case (the NC and ND ones are not). Some think that "free" just means "gratis" -- this is not the case (free means freedom, i.e. respecting the above mentioned criteria of free cultural works). Many people don't know the rules of copyright and think that they can e.g. create a remix of some non-free pop song and license it under CC-BY-SA -- they CANNOT, they are making a derivative work of a non-free work and so cannot license it. Some people use licenses without knowing what they mean, e.g. many use CC0 and then ask for their work to not be used commercially -- this can't be done, CC0 specifically allows any commercial use. Some try to make their own "licenses" by e.g. stating "do whatever you want with my work" instead of using a proper waiver like CC0 -- this is with high probability legally unsafe and invalid, it is unfortunately not so easy to waive one's copyright -- DO use the existing licenses. Educate yourself and if you're unsure, ask away in the community, people are glad to give advice.

@ -1,15 +1,27 @@
# Logic Circuit
Logic circuits are circuits made of [logic gates](logic_gate.md) that implement [Boolean functions](bool.md), i.e. they are "schematics to process 1s and 0s". They are used to design [computers](computer.md) on a low level. Logic circuits are a bit similar to electronic circuits but are a level of [abstraction](abstraction.md) higher: they don't work with continuous [voltages](voltage.md) but rather with [discrete](discrete.md) [binary](binary.md) logic values: 1s and 0s. This allows us to make kind of "[portable](portable.md)" circuit descriptions independent of any specific [transistor](transistor.md) technology, or even of [electronics](electronics.md) itself (as logical circuit may in theory be realized even mechanically or in other similarly wild ways). Logical circuits can be designed and simulated with specialized software and languages such as [VHDL](vhdl.md).
Logic circuits are circuits made of [logic gates](logic_gate.md) that implement [Boolean functions](bool.md), i.e. they are "graphical schematics for processing 1s and 0s". They are used to design [computers](computer.md) on quite a low level. Logic circuits are a bit similar to [electronic](electronics.md) circuits but are a level of [abstraction](abstraction.md) higher: they don't work with continuous [voltages](voltage.md) but rather with [discrete](discrete.md) [binary](binary.md) logic values: 1s and 0s. This abstraction makes logic circuits kind of a "[portable](portable.md)" circuit descriptions independent of any specific [transistor](transistor.md) technology, or even of [electronics](electronics.md) itself (as logical circuit may in theory be realized even mechanically, with [fluids](fluidics.md) or in other similarly wild ways). Logical circuits can be designed, simulated and synthesized to actual hardware description with specialized software and languages such as [VHDL](vhdl.md).
TODO: picture here
```
0 ___ 1 ___ 1
x ------|NOT|-----|AND|------- a
|___| .--|___|
1 /
y -------.---'
\ ___ 1 ___ 0
0 '--|OR |---|NOT|--- b
z ------------|___| |___|
```
*Example of a logic circuit with three inputs (x, y, z) and two outputs (a, b), with example input values (0, 1, 0) transformed to output values (1, 0).*
Generally a logic circuit can be seen as a "black box" that has *N* input bits and *M* output [bits](bit.md). Then we divide logic circuits into two main categories:
- **combinational**: The output values only depend on the input values, i.e. the circuit implements a pure mathematical [function](function.md). Behavior of such circuit can be described with a [truth table](truth_table.md), i.e. a table that for any combination of input values list their corresponding output. Examples of combinational circuits may be the very basic of logic circuits, the [AND](and.md) and [OR](or.md) functions.
- **sequential**: Extension of the former, here the output values generally depend on the input values AND additionally also on the internal [state](state.md) of the circuit, i.e. the circuit has a kind of [memory](memory.md) (it can be seen as a [finite state machine](finite_state_machine.md)). The internal state is normally implemented with so called [flip-flops](flip_flop.md) (logic gates that take as input their own output). Normal truth tables can't be used for describing these circuits (only if we include the internal state in them). These circuits also often work with **[clock](clock.md)** synchronization, i.e. they have a specialized input called *clock* that periodically switches between 1 and 0 which drives the circuit's operation (this is where [overclocking](overclocking.md) comes from).
- **sequential**: Extension of the former, here the output values generally depend on the input values AND additionally also on the internal [state](state.md) of the circuit, i.e. the circuit has a kind of [memory](memory.md) (it can be seen as a [finite state machine](finite_state_machine.md)). The internal state is normally implemented with so called [flip-flops](flip_flop.md) (logic gates that take as input their own output). Normal truth tables can't be used for describing these circuits (only if we include the internal state in them). These circuits also often work with **[clock](clock.md)** synchronization, i.e. they have a specialized input called *clock* that periodically switches between 1 and 0 which drives the circuit's operation (this is where clock frequency and [overclocking](overclocking.md) in CPUs comes from).
Logical circuits can be drawn simply as "boxes", which one the base level are the basic logic gates such as [AND](and.md), [OR](or.md) etc., connected with lines. But as mentioned, their behavior can also be described with a truth table or a boolean expression, i.e. an algebraic expression that for each of the circuit outputs defines how it is computed from the outputs, for example *o = (x AND y) OR z* where *o* is the output and *x*, *y* and *z* are the inputs (each of which can have a value of either 1 or 0). Each of these types of representation has its potential advantages -- for example the graphical representation is a very human-friendly representation while the algebraic specification allows for optimization of the circuits using algebraic methods. Many hardware design languages therefore allow to use and combine different methods of describing logic circuits (some even offer more options such as describing the circuit behavior in a programming language such as [C](c.md)).
Logic circuits can be drawn simply as "boxes" (which one the base level are the basic logic gates such as [AND](and.md), [OR](or.md) etc.) connected with lines ("wires", but again not really electronic wires as here only 1 or 0 can be carried by such wire). But as mentioned, their behavior can also be described with a truth table (which however says nothing about the internals of the circuit) or a boolean expression, i.e. an algebraic expression that for each of the circuit outputs defines how it is computed from the outputs, for example *a = !x & y* and *b = !(y | z)* for the above drawn example circuit. Each of these types of representation has its potential advantages -- for example the graphical representation is a very human-friendly representation while the algebraic specification allows for optimization of the circuits using algebraic methods. Many hardware design languages therefore allow to use and combine different methods of describing logic circuits (some even offer more options such as describing the circuit behavior in a programming language such as [C](c.md)).
With combinational logic circuits it is possible to implement any boolean function (i.e. "functions only with values 1 and 0"); [undecidability](undecidability.md) doesn't apply here as we're not dealing with [Turing machines](turing_machine.md) computations because the output always has a finite, fixed number of bits, the computation can't end up in an infinite loop as there are no repeating steps, just a straightforward propagation of input values to the output. It is always possible to implement any function at least as a [look up table](lut.md) (which can be created with a [multiplexer](multiplexer.md)). Sequential logic circuits on the other hand can be used to make the traditional computers that work in steps and can therefore get stuck in loop and so on.
@ -37,11 +49,14 @@ Minimization (or optimization) is a crucial and **extremely important** part of
Some basic methods of minimization include:
- **algebraic methods**: We use known logic formulas to simplify the logic expression representing our circuit. This is basically the same as simplifying fractions and similar mathematical expressions. Some common formulas we use:
- **De Morghan Laws**: TODO
- TODO ...
- **Karnaugh maps**: TODO
- **Quine McCluskey**: TODO
- **algebraic methods**: We use known formulas to simplify the logic expression representing our circuit. This is basically the same as simplifying fractions and similar mathematical expressions, just in the realm of boolean algebra. Some common formulas we use:
- **De Morghan Laws**: !x & !y = !(x | y), !x | !y = !(x & y)
- [distributivity](distributivity.md): x | (y & z) = (x | y) & (x | z), x & (y | z) = (x & y) | (x & z)
- x | !x = 1, x & !x = 0, x | x = x, x & x = x
- x | (!x & y) = x | y, x & (!x | y) = x & y
- ...
- **[Karnaugh maps](karnaugh_map.md)**: One of the most basic methods, simple algorithm using a table.
- **[Quine McCluskey](quine_mccluskey.md)**: A bit more advanced method.
- ...
Example of minimization will follow in the example section.
@ -147,4 +162,6 @@ b1 -----| |------- s1
___ | c0
a0 -----|HA |-'
b0 -----|___|------- s0
```
```
TODO: sequential one?

@ -10,7 +10,7 @@ I have not once now encountered groups of people who tried to seriously push me
love & peace ~drummyfish }
Pedophilia is a sexual orientation towards children. Pedophiles are often called just *pedos* for short. Opposition of pedophilia is called **[pedophobia](pedophobia.md)** or [pedohysteria](pedohysteria.md).
Pedophilia is a sexual orientation towards children. A pedophile is often called a *pedo* or *minor-attracted person* (map). Opposition of pedophilia is called **[pedophobia](pedophobia.md)** or [pedohysteria](pedohysteria.md).
Unlike for example pure [homosexuality](gay.md), pedophilia is completely natural, normal and not any more harmful than any other orientation, however it is nowadays wrongfully, for political reasons, labelled a "disorder" (just as homosexuality used to be not a long time ago). It is the forbidden, tabooed, censored and bullied sexual orientation of the [21st century](21st_century.md), even though all healthy people are pedophiles -- just don't pretend you've never seen a [jailbait](jailbait.md) you found sexy, people start being sexually attractive exactly as soon as they become able to reproduce; furthermore when you've gone without sex long enough and get extremely horny, you get turned on by anything that literally has some kind of hole in it -- this is completely normal. Basically everyone has some kind of weird fetish he hides from the world, there are people who literally fuck cars in their exhausts, people who like to eat shit, dress in diapers and hang from ceiling by their nipples, people who have sexual relationships with virtual characters etc. -- this is all considered normal, but somehow once you get an erection seeing a hot 17 year old girl, you're a demon that needs to be locked up and cured, if not executed right away, just for a thought present in your mind.

Loading…
Cancel
Save