A lot of projects ported from the old metanohi site.

This commit is contained in:
Niels Serup 2011-08-02 23:08:13 +02:00
parent d1b8234f78
commit a63b3ad10d
261 changed files with 12435 additions and 28 deletions

View File

@ -10,10 +10,8 @@ import mege.git as git
import mege.misc as misc
def download_prog(root, fname):
return ''
def list_pages(pathdir):
def list_pages(pathdir=None):
pathdir = misc.macrog('pathdir', pathdir)
dl = htmlfunc.DefList()
fs = [(p if os.path.isfile(p) else os.path.join(
p, 'index.org'), f, f[:-4] if os.path.isfile(p) else f + '/') for p, f in filter(

Binary file not shown.

View File

@ -41,7 +41,7 @@ set_min_height = function() {
metadiv.style.width = (contentdiv.offsetWidth - 42) + 'px';
contentdiv.style.paddingBottom = h + 'px';
h = wh - h - menudiv.offsetHeight - 145;
h = wh - h - menudiv.offsetHeight - 165;
contentdiv.style.minHeight = h + 'px';
};

View File

@ -304,14 +304,14 @@ del {
}
hr {
margin: 4px 0;
margin: 5px 0;
}
/* Lists */
ul, ol {
margin-bottom: 4px;
margin-top: 5px;
list-style-position: inside;
}
@ -370,7 +370,7 @@ dl > dl {
/* Tables */
table {
margin: 0 auto;
margin: 5px auto;
border-collapse: collapse;
}
@ -529,7 +529,11 @@ div.left-float, img.left-float, video.left-float, audio.left-float {
border: 1px outset black;
}
.note p, .warning p {
.notice {
background-color: yellow;
}
.notice p, .note p, .warning p {
margin-bottom: 5px;
}

View File

@ -1,4 +1,5 @@
<!--@exec
if page.is_dynamic:
page.title = run_macros(page.title)
page.summary = run_macros(page.summary)
@--><?xml version='1.0' encoding='utf-8'?>
@ -88,7 +89,7 @@ for x in('projects', 'writings', 'about', 'sitemap'):
<!--@eval run_macros(page.metadata_html)@-->
<!--@exec
if page.is_dynamic:
print("<p><a href='{}'>View source</a></p>".format(page.sourcepath), end='')@-->
print("<p><a href='{}' rel='nofollow'>View source</a></p>".format(page.sourcepath), end='')@-->
</div>
</div>
<div id='logo'>

View File

@ -31,17 +31,17 @@ redirect {eonaton,projects/eonaton} http://projects.metanohi.name/eonaton/
redirect {evolution,projects/evolution} http://projects.metanohi.name/evolution/
redirect {snake,projects/snake} http://projects.metanohi.name/snake/
redirect {words,projects/words} http://projects.metanohi.name/words/
redirect {projects/{cln,cli},cln,cli} http://old.projects.metanohi.name/cln/
redirect {cln,cli} projects/cln/
redirect writings/Na.html writings/na
redirect writings/digital-sikring.html writings/digital-sikring
redirect bsq http://old.projects.metanohi.name/bsq/
redirect gt3000 http://old.projects.metanohi.name/gt3000/
redirect {algo,algohol} http://old.projects.metanohi.name/algo/
redirect dsktp http://old.projects.metanohi.name/dsktp/
redirect jap http://old.projects.metanohi.name/jap/
redirect pedro http://old.projects.metanohi.name/pedro/
redirect snowman http://old.projects.metanohi.name/snowman/
redirect sq http://old.projects.metanohi.name/sq/
redirect webcli http://old.projects.metanohi.name/webcli/
redirect x http://old.projects.metanohi.name/x/
redirect bsq http://projects.metanohi.name/bsq/
redirect gt3000 http://projects.metanohi.name/gt3000/
redirect {algo,algohol} http://projects.metanohi.name/algo/
redirect dsktp http://projects.metanohi.name/dsktp/
redirect jap http://projects.metanohi.name/jap/
redirect pedro http://projects.metanohi.name/pedro/
redirect snowman http://projects.metanohi.name/snowman/
redirect sq http://projects.metanohi.name/sq/
redirect webcli http://projects.metanohi.name/webcli/
redirect x http://projects.metanohi.name/x/

View File

@ -4,5 +4,8 @@ cd ~/www/meta/nohi
git commit -a
git push
ssh webserverhost 'cd www/meta/nohi/scripts; ./hook_new.sh'
mege restart

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -77,3 +77,7 @@ Click to go to fullsize image.
#&img;url=img/scr2.png,width=300,float=left,noclear,medlink,caption=Projects page
#&img;url=img/scr3.png,width=300,float=left,noclear,medlink,caption=CSS fun
** Language
metanohi is only available in English.

View File

@ -4,6 +4,13 @@
* Licenses of media
| Path | License |
|------+---------|
| u | a |
|---------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------|
| [[/img/licenses/]]~cc*~ | CC BY [[http://creativecommons.org][creativecommons.org]] |
| [[/img/licenses/]]~*gpl.png~ | See [[http://www.gnu.org/graphics/license-logos.html]] |
| [[/img/licenses/]]~freecontent.*~ | Public domain |
| [[http://projects.metanohi.name/bsq/Cerebral_lobes.png]] | Image released under GFDL 1.2 or any later version. Author unknown. See [[http://commons.wikimedia.org/wiki/File:Cerebral_lobes.png]]. |
| [[http://projects.metanohi.name/bsq/Cerveau_anime.gif]] | Image released under GFDL 1.2 or any later version. Author: modifié par Azariel. See [[http://commons.wikimedia.org/wiki/File:Cerveau_animé.gif]]. |
| [[http://projects.metanohi.name/bsq/Friendly_stickman.png]] | Image released under WTFPL 2.0. |
| [[http://projects.metanohi.name/x/img/linux.png]] | Image copyright of Larry Ewing, Simon Budig and Anja Gerwinski. See [[http://commons.wikimedia.org/wiki/File:Tux.svg]]. |
| [[http://projects.metanohi.name/x/img/textsize.png]] | Public domain |

View File

@ -102,3 +102,8 @@ YFvSXaEGu8s=
=ASfw
-----END PGP PUBLIC KEY BLOCK-----
#+END_SRC
** Misc.
#&img;url=img/fsfmember.png, medlink=http://www.fsf.org/associate/support_freedom/join_fsf?referrer=8085

Binary file not shown.

View File

@ -0,0 +1,14 @@
#+title: aeltei
#&summary
A curses frontend for fluidsynth
#&
#+license: bysa, page
#+license: agpl 3+, program
* aeltei
aeltei is a virtual multi instrument environment. [[aeltei-0.1.0.tar.gz][Download]].
aeltei can also be found in the [[http://pypi.python.org/pypi/aeltei][Python Package Index]].
aeltei has its code at Gitorious; see [[http://gitorious.org/aeltei][http://gitorious.org/aeltei]].

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 678 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 365 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 353 KiB

View File

@ -0,0 +1,19 @@
#+title: alart images
#&summary
Art from alart
#&
#+license: cc0
#&fullpage
* alart images
Click on the images to go to their SVG versions.
#++exec
#+BEGIN_SRC python
root = misc.macrog('pathdir')
for f in os.listdir(root):
if os.path.isfile(os.path.join(root, f)) and f.endswith('.png'):
base = f[:-4]
print("<a href='{base}.svg'><img src='{base}.png' alt='{base}' /></a>".format(base=base))
#+END_SRC

View File

@ -0,0 +1,25 @@
#+title: alart
#&summary
A pseudo-random art generator
#&
#+license: bysa, page
#+license: gpl 3+, program
* alart
#&img;url=images/art0.png, alt=art, center
alart is a pseudo-random art generator. It generates silhouettes.
#&+large,center,classes=notice
[[images/][See example art]].
#&
alart is licensed under the GNU General Public License, version 3 or any later
version. The current version of alart is 0.1.0 (codename: "Ablaze").
[[alart-0.1.0.tar.gz][Download gzipped tarball]].
alart can also be found in the [[http://pypi.python.org/pypi/alart][Python Package Index]].
alart has its code at Gitorious; see [[http://gitorious.org/alart][http://gitorious.org/alart]].

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,25 @@
#+title: Alp
#&summary
A new time unit and a Python library/command-line utility
#&
#+license: bysa, page
#+license: gpl 3+, program
* The Alp Project
The Alp is a new time unit. It is superior to the traditional units in many
ways. It is, however, too complex to be explained in a short amount of space.
** Documentation and examples
Currently, [[alp-documentation-0.1.0.pdf][this PDF file]] is the documentation. Alp documentation has a git
repository at Gitorious: see [[http://gitorious.org/Alp-doc][http://gitorious.org/Alp-doc]].
** Software
You can download the newest Alp program (v0.1.1, both a command-line utility
and a Python library, released under the GPLv3+) [[Alp-0.1.1.tar.gz][here]] (older versions: [[Alp-0.1.0.tar.gz][0.1.0]].
Alp software can also be found in the [[http://pypi.python.org/pypi/Alp][Python Package Index]].
Alp software also has a git repository at Gitorious: see
[[http://gitorious.org/Alp][http://gitorious.org/Alp]].

BIN
site/projects/an5w/an5w.tar.gz Executable file

Binary file not shown.

BIN
site/projects/an5w/art.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
site/projects/an5w/art.xcf Executable file

Binary file not shown.

View File

@ -0,0 +1,121 @@
#+title: an5w
#&summary
A PHP script for simple surveys
#&
#+license: bysa, page
#+license: wtf, program
* an5w
#&img;url=art.png,title=Hmm..
an5w (pronounced "answ" as in "answer") is a simple PHP program for creating
online surveys. It consists of just two PHP files, one that serves the user and
one that shows the answers.
** Download
[[an5w.tar.gz][Here]]
** Documentation
You will not find any documentation in the an5w tarball --- not even a single
readme. When you've extracted the an5w directory from the tarball, put it in a
place your webserver recognizes. That should work.
The code has no comments, basically because it's scaringly simple and extremely
short. an5w is released under the WTFPL&acro='Do What The Fuck You Want To
Public License', as published by Sam Hocevar [[http://sam.zoy.org/wtfpl/][here]].
A raw an5w directory has the following files and directories (*answers*
and *art* are directories):
#&pre
*answers* button footer
*index.php* style.css wrapper art done header *questions* title
#&
However, only the ones in bold are actually necessary. You can remove
the rest without an5w failing. In the 'answers' directory, it's the same:
#&pre
*index.php* style.css
#&
Again, only the bold ones are needed. In this case, you only need 'index.php'.
*** Description of files
#++pre
#+BEGIN_SRC
answers/index.php:
The program that shows answers
answers/style.css:
CSS styles
button:
The text of the submit button. Default is "Submit".
footer:
Text to display on the bottom of the page. Default is nothing.
index.php:
The main program
style.css:
CSS styles
wrapper:
The HTML element(s) that wrap everything else. Default is
"<div id='wrapper'>TEXT</div>\n" (where TEXT is the actual content).
art/art.xcf:
Promotional question marks
art/art-small.png:
Promotional question marks in mini version
done:
Text to display when the survey has been completed.
header:
Text to display on the top of the survey page.
questions:
The actual questions. See the *markup* section below.
title:
The title of the survey. Will only be displayed on the titlebar of the page.
#+END_SRC
*** Markup
The syntax used in the 'questions' file is really quite simple. It looks like
this:
#&pre
Question
Type of input (in form of text, multiple choices, etc.)
Another question
Type of input
#&
An example:
#&pre
To what extent do you get annoyed when people attack you with pencils?
[]
Why are cows unable to fly (in your own opinion)?
[]
#&
Currently (as of version 0.001), only the '[]' input type is supported. '[]' =
<textarea>.
A question can only take up one line. If you need a newline, use a <br /> tag
instead.
To see answers, just visit answers/index.php in your web browser.
*** Details
an5w does not store data a database. It uses text files.

View File

86
site/projects/bito/README Executable file
View File

@ -0,0 +1,86 @@
▄▄▄▄▄ ▀ ▄ █ ▄█▀█▄ ▀▀▄ ▀▀█▀▀ ▄▀▀▀▀█
█ █ ▄▄▄ ▄▄█▄▄ ▄▄▄ █ █ █ █ █ █ █
█▄▄▄▄▀ █ █ █▀ ▀█ █ █▄ ▄█ █ █ ▄▀▀▀▀█
█ █ █ █ █ █ █ ▀▀▀ ▀▀█▀▀ ▀▀▀ █ █
█▄▄▄▄▀ ▄▄█▄▄ ▀▄▄ ▀█▄█▀ █ ▀ ▄ ▀▀▀▀▀
Bito is a programming language that aims to be easy to work with. Bito only
accepts ones and zeroes. All other characters will be ignored. A command in
Bito consists of two parts, the first part consisting of 1 bit and the second
part consisting of three bits. All first parts must be written from left to
right, while all last parts must be written from right to left. A last part
consisting of 011 must thus be written 110.
Bito saves data in a list containing an infinite numbers of memory cells. A
cell can hold only any number above or equal to 0. There are no limits on how
large numbers can be.
Tip: Writing comments with ones and zeroes will make code more difficult to
understand. Try to replace ones with uppercase "i"s and zeroes with
uppercase "o"s.
Available commands:
0 xxx Append xxx to current memory cell (as a string)
1 000 Print current number
1 001 Print current number as ASCII
1 010 Increment memory cell index
1 011 Decrement memory cell index
1 100 Start loop
1 101 Restart or end loop
1 110 Add value of previous cell to current cell (as an integer)
1 111 Write input from stdin to next cells and write length to current cell
Trying to print an unset number will result in an error. Trying to print a
number not in the ASCII range as ASCII text will also result in an error.
Loops will run the times specified by the current cell. If the value of the
current cell is either unset, 0 or 1, the loop will run only once, i.e. it will
not act as a loop. Specifying the value 2 or above will thereby make it a loop.
Because infinite loops are not possible in Bito, Bito does not suffer from the
Halting Problem.
Ending a loop when no loop has been started will not result in an error, nor
will starting a loop without ending it do so (though the loop will, in those
cases, not function as a loop). Also, nested loops cannot exist. When a loop
has been started, all subsequent attempt to start a new loop will be ignored,
until the loop has ended.
Trying to add the value of a previous cell to the current cell will result in
an error if the current cell is unset. If a previous cell is unset, its value
is -1, which makes it ideal for use in subtracting numbers.
How to print an "N" (ASCII 78, binary ASCII 1001110):
Short version:
0001100011100100
Long version:
0 Current cell: OOI
0 Current cell: OOIOOI
0 Current cell: OOIOOIIIO (i.e. IOOIIIO)
1 Print ASCII 78 (N)
100
011
100
100
Saving ones and zeroes as ASCII is meaningless, as it takes up much more space
than needed. It is therefore recommended to convert every 8 characters into a
byte. This will greatly reduce filesizes. If the number of characters in a file
isn't directly dividable with 8 (4, 12, 132, etc.), just append a command that
does not affect the the script too much -- like ending a loop (1 101). If this
command is called outside a loop, nothing will happen.
The above N-printing program would, in byte-form, take up two bytes instead of
its current 16 bytes. It would save the first byte with 24 as its value and the
second byte with 224 as its value (this is theoretically speaking -- as
compressed Bito files are basically still text files, it is normal to have a
newline character appended at the end of a file).
To run Bito programs, you can use the bitopret.py interpreter found in the
'interpreter' directory. This interpreter also functions as a Bito file packer,
i.e. it can compress Bito files.
You will find a set of example programs in the 'examples' subdirectory.
The Bito programming language was created by Niels Serup (metanohi.org). You
can contact Niels a <ns@metanohi.org>.
Updates to Bito are likely to appear at <http://metanohi.org/projects/bito/>.
This readme was written by Niels and was put into the public domain by him.
Date: 27 July 2009

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -0,0 +1,691 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="154"
height="60"
id="svg3029"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="bito-logo.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/niels/Programming/Esoteric/Bito/bito-logo.png"
inkscape:export-xdpi="344.80521"
inkscape:export-ydpi="344.80521">
<defs
id="defs3031">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3037" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.4805195"
inkscape:cx="77"
inkscape:cy="30"
inkscape:document-units="px"
inkscape:current-layer="mainlayer"
showgrid="false"
inkscape:window-width="1255"
inkscape:window-height="975"
inkscape:window-x="24"
inkscape:window-y="0" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="mainlayer"
font-size="10"
style="font-size:10px;font-family:monospace"
transform="translate(2.5,-20)">
<text
xml:space="preserve"
style="font-size:7.65052413999999992px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#51797a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono;opacity:0.9"
x="-2.8715544"
y="26.73325"
id="text3210"
transform="scale(1.0527564,0.9498873)"><tspan
sodipodi:role="line"
x="-2.8715544"
y="26.73325"
id="tspan3254">00100010001000100010001001001000</tspan><tspan
sodipodi:role="line"
x="-2.8715544"
y="36.296406"
id="tspan3283">10001000100010001001111110110110</tspan><tspan
sodipodi:role="line"
x="-2.8715544"
y="45.859558"
id="tspan3285">01100011011000100001001000101010</tspan><tspan
sodipodi:role="line"
x="-2.8715544"
y="55.422714"
id="tspan3287">01100010001101100010001101100010</tspan><tspan
sodipodi:role="line"
x="-2.8715544"
y="64.98587"
id="tspan3289">11110110001000110101000000101011</tspan><tspan
sodipodi:role="line"
x="-2.8715544"
y="74.549026"
id="tspan3291">10101000101111011000100100111000</tspan><tspan
sodipodi:role="line"
x="-2.8715544"
y="84.112183"
id="tspan3293">10001101100010001001100010100001</tspan></text>
<g
id="g4065"
style="fill:#69578b;fill-opacity:1">
<g
style="opacity:0.84999999999999998;fill:#69578b;fill-opacity:1"
transform="matrix(1.1476463,0,0,1.1554864,-2.6476463,-12.283424)"
id="g2947">
<rect
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="48.5"
width="6"
height="10"
id="rect193" />
<rect
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="58.5"
width="6"
height="10"
id="rect249" />
<rect
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="68.5"
width="6"
height="10"
id="rect305" />
<text
style="fill:#69578b;fill-opacity:1"
x="1.0976562"
y="36.5"
id="text453">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="7.0976562"
y="36.5"
id="text455">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="13.097656"
y="36.5"
id="text457">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="19.097656"
y="36.5"
id="text459">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="25.097656"
y="36.5"
id="text461">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="36.5"
id="text463">▀</text>
<text
style="fill:#69578b;fill-opacity:1"
x="79.305992"
y="36.5"
id="text465">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="1.0976562"
y="46.5"
id="text467">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="31.097654"
y="46.5"
id="text469">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="43.097656"
y="46.5"
id="text471">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="49.097656"
y="46.5"
id="text473">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="46.5"
id="text475">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="67.305992"
y="46.5"
id="text477">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="73.305992"
y="46.5"
id="text479">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="79.305992"
y="46.5"
id="text481">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="85.305992"
y="46.5"
id="text483">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="91.305992"
y="46.5"
id="text485">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="109.32681"
y="46.5"
id="text487">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="115.32681"
y="46.5"
id="text489">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="121.32681"
y="46.5"
id="text491">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="1.0976562"
y="56.5"
id="text493">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="7.0976562"
y="56.5"
id="text495">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="13.097656"
y="56.5"
id="text497">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="19.097656"
y="56.5"
id="text499">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="25.097656"
y="56.5"
id="text501">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="31.097654"
y="56.5"
id="text503">▀</text>
<text
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="56.5"
id="text505">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="79.305992"
y="56.5"
id="text507">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="103.32681"
y="56.5"
id="text509">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="109.32681"
y="56.5"
id="text511">▀</text>
<text
style="fill:#69578b;fill-opacity:1"
x="121.32681"
y="56.5"
id="text513">▀</text>
<text
style="fill:#69578b;fill-opacity:1"
x="127.32682"
y="56.5"
id="text515">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="1.0976562"
y="66.5"
id="text517">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="31.097654"
y="66.5"
id="text519">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="66.5"
id="text521">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="79.305992"
y="66.5"
id="text523">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="103.32681"
y="66.5"
id="text525">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="127.32682"
y="66.5"
id="text527">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="1.0976562"
y="76.5"
id="text529">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="7.0976562"
y="76.5"
id="text531">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="13.097656"
y="76.5"
id="text533">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="19.097656"
y="76.5"
id="text535">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="25.097656"
y="76.5"
id="text537">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="31.097654"
y="76.5"
id="text539">▀</text>
<text
style="fill:#69578b;fill-opacity:1"
x="43.097656"
y="76.5"
id="text541">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="49.097656"
y="76.5"
id="text543">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="55.097656"
y="76.5"
id="text545">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="61.097656"
y="76.5"
id="text547">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="67.097656"
y="76.5"
id="text549">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="79.305992"
y="76.5"
id="text551">▀</text>
<text
style="fill:#69578b;fill-opacity:1"
x="85.305992"
y="76.5"
id="text553">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="91.305992"
y="76.5"
id="text555">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="103.32681"
y="76.5"
id="text557">▀</text>
<text
style="fill:#69578b;fill-opacity:1"
x="109.32681"
y="76.5"
id="text559">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="115.32681"
y="76.5"
id="text561">▄</text>
<text
style="fill:#69578b;fill-opacity:1"
x="121.32681"
y="76.5"
id="text563">█</text>
<text
style="fill:#69578b;fill-opacity:1"
x="127.32682"
y="76.5"
id="text565">▀</text>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,142 @@
#+title: Bito
#&summary
A poor but simple programming language along with an interpreter
#&
#+license: cc0, text
#+license: bysa, logo
#+license: gpl 3+, interpreter
* Bito
#&img;url=img/bito-logo.png,center
*Bito* is a programming language. I already wrote a readme about it, which you
can either see below or download [[README][here]]. To run Bito
programs, you will need a Bito interpreter.
[[bitopret.tar.gz][Download Bito interpreter, Bito interpreter README and Bito code examples]].
** Bito README
#&pre
▄▄▄▄▄ ▀ ▄ █ ▄█▀█▄ ▀▀▄ ▀▀█▀▀ ▄▀▀▀▀█
█ █ ▄▄▄ ▄▄█▄▄ ▄▄▄ █ █ █ █ █ █ █
█▄▄▄▄▀ █ █ █▀ ▀█ █ █▄ ▄█ █ █ ▄▀▀▀▀█
█ █ █ █ █ █ █ ▀▀▀ ▀▀█▀▀ ▀▀▀ █ █
█▄▄▄▄▀ ▄▄█▄▄ ▀▄▄ ▀█▄█▀ █ ▀ ▄ ▀▀▀▀▀
Bito is a programming language that aims to be easy to work with. Bito only
accepts ones and zeroes. All other characters will be ignored. A command in
Bito consists of two parts, the first part consisting of 1 bit and the second
part consisting of three bits. All first parts must be written from left to
right, while all last parts must be written from right to left. A last part
consisting of 011 must thus be written 110.
Bito saves data in a list containing an infinite numbers of memory cells. A
cell can hold only any number above or equal to 0. There are no limits on how
large numbers can be.
Tip: Writing comments with ones and zeroes will make code more difficult to
understand. Try to replace ones with uppercase "i"s and zeroes with
uppercase "o"s.
Available commands:
0 xxx Append xxx to current memory cell (as a string)
1 000 Print current number
1 001 Print current number as ASCII
1 010 Increment memory cell index
1 011 Decrement memory cell index
1 100 Start loop
1 101 Restart or end loop
1 110 Add value of previous cell to current cell (as an integer)
1 111 Write input from stdin to next cells and write length to current cell
Trying to print an unset number will result in an error. Trying to print a
number not in the ASCII range as ASCII text will also result in an error.
Loops will run the times specified by the current cell. If the value of the
current cell is either unset, 0 or 1, the loop will run only once, i.e. it will
not act as a loop. Specifying the value 2 or above will thereby make it a loop.
Because infinite loops are not possible in Bito, Bito does not suffer from the
Halting Problem.
Ending a loop when no loop has been started will not result in an error, nor
will starting a loop without ending it do so (though the loop will, in those
cases, not function as a loop). Also, nested loops cannot exist. When a loop
has been started, all subsequent attempt to start a new loop will be ignored,
until the loop has ended.
Trying to add the value of a previous cell to the current cell will result in
an error if the current cell is unset. If a previous cell is unset, its value
is -1, which makes it ideal for use in subtracting numbers.
How to print an "N" (ASCII 78, binary ASCII 1001110):
Short version:
0001100011100100
Long version:
0 Current cell: OOI
0 Current cell: OOIOOI
0 Current cell: OOIOOIIIO (i.e. IOOIIIO)
1 Print ASCII 78 (N)
100
011
100
100
Saving ones and zeroes as ASCII is meaningless, as it takes up much more space
than needed. It is therefore recommended to convert every 8 characters into a
byte. This will greatly reduce filesizes. If the number of characters in a file
isn't directly dividable with 8 (4, 12, 132, etc.), just append a command that
does not affect the the script too much --- like ending a loop (1 101). If this
command is called outside a loop, nothing will happen.
The above N-printing program would, in byte-form, take up two bytes instead of
its current 16 bytes. It would save the first byte with 24 as its value and the
second byte with 224 as its value (this is theoretically speaking -- as
compressed Bito files are basically still text files, it is normal to have a
newline character appended at the end of a file).
To run Bito programs, you can use the bitopret.py interpreter found in the
'interpreter' directory. This interpreter also functions as a Bito file packer,
i.e. it can compress Bito files.
You will find a set of example programs in the 'examples' subdirectory.
The Bito programming language was created by Niels Serup (metanohi.org). You
can contact Niels at <[[mailto:ns@metanohi.org][ns@metanohi.org]]>.
Updates to Bito are likely to appear at <[[http://metanohi.name/projects/bito/]]>.
This readme was written by Niels and was put into the public domain by him.
Date: 27 July 2009
#&
** Bito interpreter README
#&pre
█ ▀ ▄ ▄
█▄▄▄ ▄▄▄ ▄▄█▄▄ ▄▄▄ ▄▄▄▄ ▄ ▄▄ ▄▄▄ ▄▄█▄▄
█▀ ▀█ █ █ █▀ ▀█ █▀ ▀█ █▀ ▀ █▀ █ █
█ █ █ █ █ █ █ █ █ █▀▀▀▀ █
██▄█▀ ▄▄█▄▄ ▀▄▄ ▀█▄█▀ ██▄█▀ █ ▀█▄▄▀ ▀▄▄
An interpreter for the Bi ▀ to programming language
Though a creating a compiler might have been the best way to be able to run
files written in the Bito programming language, it's easier to create an
interpreter. The standard interpreter for Bito files, bitopret, works
flawlessly, though naturally it's not lightning fast. To use bitopret, run
bitopret.py. If you run bitopret.py without any arguments, it will display some
hopefully historically helpful help.
To understand the Bito language, you should have a look at the original README
describing it. You can fetch a copy at <[[http://metanohi.name/projects/bito/]]>.
There are example programs in the 'examples' directory.
Niels Serup (metanohi.name) created this interpreter along with the Bito
language. You can contact Niels at <[[mailto:ns@metanohi.org][ns@metanohi.org]]>.
Version information:
bitopret 0.9
Copyright (C) 2009 Niels Serup
License GPLv3+: GNU GPL version 3 or later <[[http://gnu.org/licenses/gpl.html]]>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
#&

BIN
site/projects/cln/cln_v.0.1.7z Executable file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,21 @@
#+title: CLN
#&summary
Old PyGame CLI experiment
#&
#+license: bysa, page
#+license: gpl 3+, program
* Command Line Navigation (CLN)
Never has pygame been used this effeciently...
Using Python and [[http://www.pygame.org/][pygame]] I have created a simple CLI clone that is unable to do
anything useful. It is merely a proof that SDL can be used for stuff that
appears to be non-graphical.
** Screenshot
#&img;url=img/screenshot.png, alt=Screenshot showing CLN in action
** Download
Grab the 7z file [[cln_v.0.1.7z][here]]. Instructions on how to make it work are included.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -0,0 +1,345 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448"
height="340"
id="svg2"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="logo.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<pattern
id="pattern2953"
height="355"
width="645"
y="0"
x="0"
patternUnits="userSpaceOnUse">
<g
id="g2955" />
<g
id="g2957">
<g
id="g2959"
clip-path="url(#clipPath2949)">
<g
id="g2961">
<path
id="path2963"
style="fill:#aeb7bb;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 53.555,323.48 599.91,298.633 c 14.77,-0.672 26.117,-13.102 25.445,-27.867 L 615.699,58.398 C 615.027,43.629 602.598,32.281 587.828,32.953 L 41.477,57.797 C 26.707,58.469 15.359,70.898 16.031,85.668 l 9.657,212.367 c 0.671,14.766 13.101,26.117 27.867,25.445 z" />
</g>
</g>
</g>
</pattern>
<clipPath
id="clipPath2949"
clipPathUnits="userSpaceOnUse">
<path
id="path2951"
d="M 0,0 645,0 645,355 0,355 0,0 z" />
</clipPath>
<clipPath
id="clipPath2945"
clipPathUnits="userSpaceOnUse">
<path
id="path2947"
d="m 0,0 644.79999,0 0,354.39999 L 0,354.39999 0,0 z" />
</clipPath>
<mask
id="mask2933"
height="1"
width="1"
y="0"
x="0"
maskUnits="userSpaceOnUse">
<g
id="g2935">
<g
id="g2937"
clip-path="url(#clipPath2929)">
<path
id="path2939"
style="fill:#ffffff;fill-opacity:0.45794402;fill-rule:nonzero;stroke:none"
d="m 0,0 644.79999,0 0,354.39999 L 0,354.39999 0,0 z" />
</g>
</g>
</mask>
<clipPath
id="clipPath2929"
clipPathUnits="userSpaceOnUse">
<path
id="path2931"
d="m 0,0 644.79999,0 0,354.39999 L 0,354.39999 0,0 z" />
</clipPath>
<pattern
id="pattern2903"
height="355"
width="645"
y="0"
x="0"
patternUnits="userSpaceOnUse">
<g
id="g2905" />
<g
id="g2907">
<g
id="g2909"
clip-path="url(#clipPath2899)">
<g
id="g2911">
<g
id="g2913"
transform="matrix(1,0.031696,0.031696,-1,0,355)">
<path
id="path2915"
style="fill:#88a189;fill-opacity:1;fill-rule:nonzero;stroke:#838383;stroke-opacity:1;stroke-width:1.015043;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 31.942,23.04 600.91,23.039 c 14.778,-0.001 26.674,11.896 26.675,26.669 l -0.001,274.36 c 0,14.777 -11.896,26.673 -26.674,26.67 l -568.968,10e-4 c -14.778,0 -26.67,-11.896 -26.671,-26.67 L 5.272,49.71 c 0,-14.777 11.892,-26.674 26.67,-26.67 z" />
</g>
</g>
</g>
</g>
</pattern>
<clipPath
id="clipPath2899"
clipPathUnits="userSpaceOnUse">
<path
id="path2901"
d="M 0,0 645,0 645,355 0,355 0,0 z" />
</clipPath>
<clipPath
id="clipPath2895"
clipPathUnits="userSpaceOnUse">
<path
id="path2897"
d="m 0,0 644.79999,0 0,354.39999 L 0,354.39999 0,0 z" />
</clipPath>
<mask
id="mask2883"
height="1"
width="1"
y="0"
x="0"
maskUnits="userSpaceOnUse">
<g
id="g2885">
<g
id="g2887"
clip-path="url(#clipPath2879)">
<path
id="path2889"
style="fill:#ffffff;fill-opacity:0.45794402;fill-rule:nonzero;stroke:none"
d="m 0,0 644.79999,0 0,354.39999 L 0,354.39999 0,0 z" />
</g>
</g>
</mask>
<clipPath
id="clipPath2879"
clipPathUnits="userSpaceOnUse">
<path
id="path2881"
d="m 0,0 644.79999,0 0,354.39999 L 0,354.39999 0,0 z" />
</clipPath>
<inkscape:perspective
id="perspective2861"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.6046349"
inkscape:cx="372.04724"
inkscape:cy="170"
inkscape:document-units="px"
inkscape:current-layer="g2865"
showgrid="false"
inkscape:window-width="1278"
inkscape:window-height="1022"
inkscape:window-x="1"
inkscape:window-y="1"
inkscape:window-maximized="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
transform="matrix(1.25,0,0,-1.25,31.285725,916.71936)"
inkscape:label="forside"
id="g2863">
<g
id="g2865">
<rect
style="fill:#ff3400;fill-opacity:1;stroke:none"
id="rect4456"
width="587.29871"
height="266.72736"
x="-20.935801"
y="-731.09418"
transform="scale(1,-1)"
ry="10.469671" />
<g
transform="matrix(1,-0.117595,-0.117595,-1,-43.606102,773.12083)"
id="g2867">
<path
id="path2869"
style="fill:#9e2b2b;fill-opacity:1;fill-rule:nonzero;stroke:#e08787;stroke-width:7.12143993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 56.632,85.93 c 344.025,-79.58 555.708,87.14 555.708,87.14 0,0 -161.967,54.422 -308.935,26.126 C 165.182,172.587 56.87,88.285 56.632,85.93 z" />
</g>
<path
id="path2871"
style="fill:#ff3e1d;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 328.1599,582.62084 c -9.157,-33.953 -44.106,-54.059 -78.063,-44.902 -33.953,9.16 -54.058,44.109 -44.902,78.062 9.16,33.957 44.109,54.059 78.062,44.902 33.957,-9.156 54.059,-44.105 44.903,-78.062 z" />
<path
id="path2873"
style="fill:#ffe51d;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 299.6169,590.31984 c -4.907,-18.191 -23.629,-28.961 -41.821,-24.054 -18.191,4.906 -28.961,23.628 -24.054,41.82 4.906,18.187 23.629,28.957 41.82,24.055 18.187,-4.907 28.957,-23.629 24.055,-41.821 z" />
<text
id="text2973"
transform="matrix(-0.99896762,0.04542796,-0.04542796,-0.99896762,0,0)"
x="-529.19556"
y="-716.52588"
style="font-size:12px">
<tspan
id="tspan2975"
sodipodi:role="line"
y="-716.52588"
x="-529.19556 -523.91516 -518.63477 -513.35431 -508.0737 -502.79327 -497.51297 -492.23264 -486.95224 -481.67184 -476.39145 -471.11105 -465.83066 -460.55029 -455.2699 -449.9895 -444.70911 -439.42871 -434.14832 -428.86792 -423.58752 -418.30713 -413.02673 -407.74634 -402.46594 -397.18555 -391.90518 -386.62479 -381.34439 -376.064 -370.7836 -365.5032 -360.22281 -354.94241 -349.66202 -344.38162 -339.10123 -333.82083 -328.54044 -323.26004 -317.97968 -312.69928 -307.41888 -302.13849 -296.85809 -291.5777 -286.2973 -281.01691 -275.73651 -270.45612 -265.17572 -259.89536 -254.61507 -249.3347 -244.05432 -238.77385 -233.49345 -228.21306 -222.93266 -217.65227 -212.37187 -207.09148 -201.81108 -196.53069 -191.25029 -185.96985 -180.68941 -175.40901 -170.12862 -164.84822 -159.56783 -154.28743 -149.00703 -143.72664 -138.44624 -133.16585 -127.88542 -122.60506 -117.32465 -112.04427 -106.76392 -101.48353 -96.203125 -90.922691 -85.642296 -80.361908 -75.081512 -69.801117 -64.520737 -59.24036 -53.959999 -48.679596 -43.399193 -38.118797 -32.838394 -27.557989 -22.277592 -16.997204 -11.716817 -6.4364123 -1.1560197 4.1243796 9.4047718 14.685173 19.965506 25.245901 30.526295"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">e/WJ9WfNWYK8Fm/hjtBuwDnEMmsXqMi4SBFdsYAnxYuuTVrBNC7ETPDerdCuqygSOF4QhtNPxHfIP0oToci3zYIpdMI6zh/KUQgmmZGkKEf</tspan>
<tspan
id="tspan2977"
sodipodi:role="line"
y="-703.32489"
x="-529.19556 -523.91516 -518.63477 -513.35431 -508.0737 -502.79327 -497.51291 -492.23264 -486.95224 -481.67184 -476.39145 -471.11105 -465.83066 -460.55026 -455.26987 -449.98947 -444.70908 -439.42868 -434.14832 -428.86792 -423.58752 -418.3071 -413.02673 -407.74634 -402.46594 -397.18555 -391.90515 -386.62476 -381.34436 -376.06396 -370.78357 -365.5032 -360.22281 -354.94241 -349.66202 -344.38162 -339.10123 -333.82083 -328.54044 -323.26004 -317.97964 -312.69925 -307.41885 -302.13846 -296.85806 -291.5777 -286.2973 -281.01691 -275.73651 -270.45612 -265.17572 -259.89532 -254.61504 -249.33467 -244.05429 -238.77382 -233.49345 -228.21306 -222.93266 -217.65227 -212.37187 -207.09148 -201.81108 -196.53069 -191.25029 -185.96982 -180.68938 -175.40898 -170.12859 -164.84819 -159.56783 -154.28743 -149.00703 -143.72664 -138.44624 -133.16585 -127.88542 -122.60506 -117.32465 -112.04427 -106.76389 -101.4835 -96.203102 -90.922691 -85.642296 -80.361908 -75.081512 -69.801117 -64.520737 -59.24036 -53.959969 -48.679565 -43.399162 -38.118767 -32.838364 -27.557989 -22.277592 -16.997204 -11.716817 -6.4364123 -1.1560197 4.1243796 9.4047718 14.685173 19.965567 25.245962 30.526295"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">LxoFwDHoFH7+MLrc1ihMBJquoVQEkSoLTtAdCytwyQQuhWU7zCwcpzsdhlSZOb4wS4Of6PIjuQ8YZrj2wh0mDEGw1xQ0Y0CqKyZSOrp9Y50</tspan>
<tspan
id="tspan2979"
sodipodi:role="line"
y="-690.12396"
x="-529.19556 -523.91516 -518.63477 -513.35431 -508.0737 -502.79327 -497.51291 -492.2326 -486.95221 -481.67181 -476.39145 -471.11105 -465.83066 -460.55026 -455.26987 -449.98947 -444.70908 -439.42868 -434.14828 -428.86789 -423.58749 -418.3071 -413.0267 -407.74631 -402.46594 -397.18555 -391.90515 -386.62476 -381.34436 -376.06396 -370.78357 -365.50317 -360.22278 -354.94238 -349.66199 -344.38159 -339.10123 -333.82083 -328.54044 -323.26004 -317.97964 -312.69925 -307.41885 -302.13846 -296.85806 -291.57767 -286.29727 -281.01688 -275.73648 -270.45612 -265.17572 -259.89532 -254.61504 -249.33467 -244.05429 -238.77382 -233.49342 -228.21303 -222.93263 -217.65224 -212.37184 -207.09148 -201.81108 -196.53069 -191.25029 -185.96982 -180.68938 -175.40898 -170.12859 -164.84819 -159.56779 -154.2874 -149.007 -143.72661 -138.44621 -133.16585 -127.88542 -122.60506 -117.32465 -112.04427 -106.76389 -101.4835 -96.203102 -90.922661 -85.642265 -80.361908 -75.081512 -69.801117 -64.520737 -59.24036 -53.959969 -48.679565 -43.399162 -38.118767 -32.838364 -27.557959 -22.277561 -16.997204 -11.716817 -6.4364123 -1.1560197 4.1243796 9.4047718 14.685173 19.965567 25.245962 30.526356"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">rMjo5LYpS8sWK5DRyGWIm4eBmvb83M9dXk/WKeQQdxtxTkqCqF74mYLcl9e/T5b+lckvHqZrX6snNzy+H7qFl/zYBqeAfrmW/0Iu9y5u21i</tspan>
<tspan
id="tspan2981"
sodipodi:role="line"
y="-676.92291"
x="-529.19556 -523.91516 -518.63477 -513.35431 -508.0737 -502.79327 -497.51291 -492.2326 -486.95221 -481.67181 -476.39142 -471.11102 -465.83063 -460.55023 -455.26987 -449.98947 -444.70908 -439.42868 -434.14828 -428.86789 -423.58749 -418.3071 -413.0267 -407.74631 -402.46591 -397.18552 -391.90515 -386.62476 -381.34436 -376.06396 -370.78357 -365.50317 -360.22278 -354.94238 -349.66199 -344.38159 -339.1012 -333.8208 -328.54041 -323.26001 -317.97961 -312.69925 -307.41885 -302.13846 -296.85806 -291.57767 -286.29727 -281.01688 -275.73648 -270.45609 -265.17569 -259.89532 -254.61504 -249.33467 -244.05429 -238.77382 -233.49342 -228.21303 -222.93263 -217.65224 -212.37184 -207.09145 -201.81105 -196.53065 -191.25026 -185.96979 -180.68938 -175.40898 -170.12859 -164.84819 -159.56779 -154.2874 -149.007 -143.72661 -138.44621 -133.16582 -127.8854 -122.60503 -117.32462 -112.04424 -106.76389 -101.4835 -96.203102 -90.922661 -85.642265 -80.361877 -75.081482 -69.801086 -64.520706 -59.24033 -53.959969 -48.679565 -43.399162 -38.118767 -32.838364 -27.557959 -22.277561 -16.997204 -11.716817 -6.4364123 -1.1560197 4.1243796 9.4047718 14.685173 19.965567 25.245962 30.526356"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">+WQfQlC3ieuTuv0+7IMxnD8ySeq/9sEemk5A871sKR69c/ErXR6+oFwaAxkpjREQI422EKM94p3rOWx0akxcTNSgTqSPa8XrTqFZNHfUZL7</tspan>
<tspan
id="tspan2983"
sodipodi:role="line"
y="-663.72192"
x="-529.19556 -523.91516 -518.63477 -513.35431 -508.0737 -502.79327 -497.51291 -492.2326 -486.95221 -481.67181 -476.39142 -471.11102 -465.83063 -460.55023 -455.26984 -449.98944 -444.70905 -439.42865 -434.14825 -428.86789 -423.58749 -418.30707 -413.0267 -407.74631 -402.46591 -397.18552 -391.90512 -386.62473 -381.34433 -376.06393 -370.78354 -365.50317 -360.22278 -354.94238 -349.66199 -344.38159 -339.1012 -333.8208 -328.54041 -323.26001 -317.97961 -312.69922 -307.41882 -302.13843 -296.85803 -291.57764 -286.29727 -281.01688 -275.73648 -270.45609 -265.17569 -259.89529 -254.61501 -249.33464 -244.05426 -238.77379 -233.49342 -228.21303 -222.93263 -217.65224 -212.37184 -207.09145 -201.81105 -196.53065 -191.25026 -185.96979 -180.68935 -175.40895 -170.12856 -164.84816 -159.56776 -154.2874 -149.007 -143.72661 -138.44621 -133.16582 -127.8854 -122.60503 -117.32462 -112.04424 -106.76386 -101.48345 -96.203072 -90.922661 -85.642265 -80.361877 -75.081482 -69.801086 -64.520706 -59.24033 -53.959938 -48.679535 -43.399132 -38.118736 -32.838333 -27.557959 -22.277561 -16.997143 -11.716757 -6.4363513 -1.1559587 4.1244407 9.4047718 14.685173 19.965567 25.245962 30.526356"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">mqO+kQ84cBNcZ5UkwLKYftQGhnmabKlbn/Seu5lNUPrGhFqudI3h77jYIoxpKQQCKJJgRwasJKfY+vTTGaBhMyqKsXCTCvEpYoS0YGCHbn4</tspan>
<tspan
id="tspan2985"
sodipodi:role="line"
y="-650.521"
x="-529.1955 -523.9151 -518.6347 -513.35431 -508.0737 -502.79327 -497.51291 -492.23257 -486.95218 -481.67178 -476.39142 -471.11102 -465.83063 -460.55023 -455.26984 -449.98944 -444.70905 -439.42865 -434.14825 -428.86786 -423.58746 -418.30707 -413.02667 -407.74631 -402.46591 -397.18552 -391.90512 -386.62473 -381.34433 -376.06393 -370.78354 -365.50314 -360.22275 -354.94235 -349.66196 -344.38156 -339.1012 -333.8208 -328.54041 -323.26001 -317.97961 -312.69922 -307.41882 -302.13843 -296.85803 -291.57764 -286.29724 -281.01685 -275.73645 -270.45609 -265.17569 -259.89529 -254.61501 -249.33464 -244.05426 -238.77379 -233.49339 -228.213 -222.9326 -217.65221 -212.37181 -207.09145 -201.81105 -196.53065 -191.25026 -185.96979 -180.68935 -175.40895 -170.12856 -164.84816 -159.56776 -154.28737 -149.00697 -143.72658 -138.44618 -133.16579 -127.8854 -122.60503 -117.32462 -112.04424 -106.76386 -101.48345 -96.203072 -90.92263 -85.642235 -80.361847 -75.081482 -69.801086 -64.520706 -59.24033 -53.959938 -48.679535 -43.399132 -38.118736 -32.838333 -27.557928 -22.277531 -16.997143 -11.716757 -6.4363513 -1.1559587 4.1244407 9.4048328 14.685234 19.965567 25.245962 30.526356"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">YHlz3ac7ROsYqsbLkHfIYdyY9LPhIm7hWqyAhyOjuH98yUbFNq0pb6oLbDAP8ZSaimniVG6kx4Fxv1LxQoKaWl18evBBB5WjQIgXIyPEMoC</tspan>
<tspan
id="tspan2987"
sodipodi:role="line"
y="-637.31995"
x="-529.1955 -523.9151 -518.6347 -513.35425 -508.07364 -502.79321 -497.51285 -492.23257 -486.95218 -481.67178 -476.39139 -471.11099 -465.8306 -460.5502 -455.26984 -449.98944 -444.70905 -439.42865 -434.14825 -428.86786 -423.58746 -418.30707 -413.02667 -407.74628 -402.46588 -397.18549 -391.90509 -386.62473 -381.34433 -376.06393 -370.78354 -365.50314 -360.22275 -354.94235 -349.66196 -344.38156 -339.10117 -333.82077 -328.54037 -323.25998 -317.97958 -312.69922 -307.41882 -302.13843 -296.85803 -291.57764 -286.29724 -281.01685 -275.73645 -270.45605 -265.17566 -259.89526 -254.61501 -249.33464 -244.05426 -238.77379 -233.49339 -228.213 -222.9326 -217.65221 -212.37181 -207.09142 -201.81102 -196.53062 -191.25023 -185.96976 -180.68935 -175.40895 -170.12856 -164.84816 -159.56776 -154.28737 -149.00697 -143.72658 -138.44618 -133.16579 -127.88537 -122.60499 -117.32459 -112.04421 -106.76383 -101.48345 -96.203072 -90.92263 -85.642235 -80.361847 -75.081451 -69.801056 -64.520676 -59.240299 -53.959908 -48.679535 -43.399132 -38.118736 -32.838333 -27.557928 -22.277531 -16.997143 -11.716757 -6.4363513 -1.1559587 4.1244407 9.4048328 14.685234 19.965567 25.245962 30.526356"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">997++bMlsSV2mStrZXZXlZvXm+9BeXJsQ/bSVr9jYMIOSM5mLcfAyHfd7ct7GSiX7Oc8MGZbkX+hnLv7jnkdc5aOeIrBWlYfumMw6IrK15w</tspan>
<tspan
id="tspan2989"
sodipodi:role="line"
y="-624.11902"
x="-529.1955 -523.9151 -518.6347 -513.35425 -508.07364 -502.79321 -497.51285 -492.23257 -486.95218 -481.67178 -476.39139 -471.11099 -465.8306 -460.5502 -455.26981 -449.98941 -444.70901 -439.42862 -434.14822 -428.86783 -423.58746 -418.30704 -413.02667 -407.74628 -402.46588 -397.18549 -391.90509 -386.62469 -381.3443 -376.0639 -370.78351 -365.50311 -360.22275 -354.94235 -349.66196 -344.38156 -339.10117 -333.82077 -328.54037 -323.25998 -317.97958 -312.69919 -307.41879 -302.1384 -296.858 -291.57761 -286.29724 -281.01685 -275.73645 -270.45605 -265.17566 -259.89526 -254.61497 -249.33461 -244.05423 -238.77376 -233.49336 -228.213 -222.9326 -217.65221 -212.37181 -207.09142 -201.81102 -196.53062 -191.25023 -185.96976 -180.68932 -175.40892 -170.12852 -164.84813 -159.56773 -154.28737 -149.00697 -143.72658 -138.44618 -133.16579 -127.88537 -122.60499 -117.32459 -112.04421 -106.76383 -101.48341 -96.203026 -90.92263 -85.642235 -80.361847 -75.081451 -69.801056 -64.520676 -59.240299 -53.959908 -48.679504 -43.399101 -38.118706 -32.838303 -27.557898 -22.277531 -16.997143 -11.716757 -6.4363513 -1.1559587 4.1244407 9.4048328 14.685234 19.965628 25.246023 30.526417"
style="font-size:10.5607872px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">otQUD0Zuib0eP6cnGWw9i4yvPSC9YLBwZVozQpg2tUsWmtpc3KrTzDBc+4AmbA1fMGDuINeVkPmFbfn4QXc5uyeozmp0mR8KOJ6qhV5ow==</tspan>
</text>
<text
id="text2991"
transform="matrix(-0.99896762,0.045428,-0.045428,-0.99896762,0,0)"
x="-529.07562"
y="-604.41357"
style="font-size:12px">
<tspan
id="tspan2993"
sodipodi:role="line"
y="-604.41357"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">AAAAgIPJov3uoC/PqdXATy5eHffFBWJ5AuZPqH+kcXgbGVorpfKFMtKB8zqZZein8oYDCPwCcbQH8NmdoUsZtPJhr8</tspan>
<tspan
id="tspan2995"
sodipodi:role="line"
y="-588.72144"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">DsoPBduYsGljMGZR1Vp1a6XhWd1b+b/O5LWJBYhnBPv4GJMwLkd3djE81rPbF+frmr2z4yvoLYmbKrajzMFLW/AAAA</tspan>
<tspan
id="tspan2997"
sodipodi:role="line"
y="-573.0293"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">AwEAAQAAAIBicnU01laJgMqxJ7i+vYYLef18w0M8QxNvTquI+k1lA6gy0/fUM0k8ZC0xsIxGOewzPawsvaXZGpzL2k</tspan>
<tspan
id="tspan2999"
sodipodi:role="line"
y="-557.33722"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">dGrVy5XfzrJ36Zx19f6fx2pxGeCkrX+ERWFmS8Gg7qqPldHPT5T8otBlOwh/zVVf/Ok8AaONkhpWAol1ZM8VOW314M</tspan>
<tspan
id="tspan3001"
sodipodi:role="line"
y="-541.64508"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">UQAAAEDbkCuOFwkiEAHRxlquYTCBoQSo4EKlpHfIASdQUF6iaTjiYco5ednub2kFsqHKXqoIAfp7QtdJkUpDxjKg+T</tspan>
<tspan
id="tspan3003"
sodipodi:role="line"
y="-525.953"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">dXAAAAQJmocquo9sCUJam/4hvYLmPST4RZYJs9gSO+Sztst7rj7tKRAQck7Du/dMkT9flABs7x5Whbkaq+BygJZi3y</tspan>
<tspan
id="tspan3005"
sodipodi:role="line"
y="-510.26083"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">e9kAAACAg8mi/e6gL8+p1cBPLl4d98UFYnkC5k+of6RxeBsZWiul8oUy0oHzOpll6KfyhgMI/AJxtAfw2Z2hSxm08m</tspan>
<tspan
id="tspan3007"
sodipodi:role="line"
y="-494.56845"
x="-529.07562 -522.79883 -516.52197 -510.24487 -503.96799 -497.69113 -491.4144 -485.13754 -478.86072 -472.58386 -466.30701 -460.03018 -453.75333 -447.47647 -441.19965 -434.92279 -428.64594 -422.36911 -416.09225 -409.8154 -403.53854 -397.26172 -390.98489 -384.70804 -378.43118 -372.15436 -365.8775 -359.60065 -353.32382 -347.04697 -340.77011 -334.49329 -328.21643 -321.93958 -315.66275 -309.38589 -303.10907 -296.83221 -290.55536 -284.27853 -278.00168 -271.72485 -265.448 -259.17114 -252.89447 -246.6176 -240.34071 -234.06384 -227.78699 -221.51013 -215.23331 -208.95645 -202.6796 -196.40277 -190.12592 -183.84909 -177.57224 -171.29538 -165.01855 -158.7417 -152.46484 -146.18802 -139.91116 -133.63431 -127.35744 -121.0805 -114.80366 -108.52685 -102.25001 -95.973167 -89.696312 -83.419464 -77.142639 -70.865784 -64.588936 -58.312138 -52.035278 -45.758408 -39.481579 -33.20472 -26.927862 -20.651039 -14.374212 -8.0973568 -1.820497 4.4563546 10.733217 17.010069 23.286854 29.563709"
style="font-size:12.553689px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Inconsolata;-inkscape-font-specification:Inconsolata">Gvv3doUiP5iyPyC4re4Itt99TqwXCcHFsa9V+ZHczJWfJyWdRAN6PYsTjk75x3GbrgCNTnXk8gGeRKYT+ao/0pApA=</tspan>
</text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,23 @@
#+title: desurveil
#&summary
Cryptography program
#&
#+license: bysa, text
#+license: cc0, logo
#+license: agpl 3+, program
* desurveil
#&img;url=desurveil-logo.png, medlink=desurveil-logo.svg, alt=desurveil logo, center
#&-large
desurveil is a cryptography program with support for key pair generation and
encrypting and decrypting with RSA, OAEP, and arbitrary data lengths. [[desurveil-0.1.1.tar.gz][Download]].
#&
desurveil is released under the [[http://gnu.org/licenses/agpl.html][AGPLv3(+)]] license.
desurveil can also be found in the [[http://pypi.python.org/pypi/desurveil][Python Package Index]].
desurveil has its code at Gitorious; see [[http://gitorious.org/desurveil][http://gitorious.org/desurveil]].

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -0,0 +1,21 @@
#+title: Dililatum
#&summary
RPG engine
#&
#+license: bysa, page
#+license: gpl 3+, program
* Dililatum
#&img;url=granul-small.png, float=right, alt=Dililatum logo, width=256, height=360
Dililatum is an RPG library/engine. It's quite simple. The 0.1 release is just
out, and you can get it from Launchpad [[http://launchpad.net/dililatum/trunk/0.1/+download/Dililatum-0.1.tar.gz][here]].
To really use Dililatum you will need a game. [[../forestquest/][ForestQuest]] is such a game. It's
not very finished, but it works.
Dililatum uses Launchpad for development, so there's not much need for this
page. The project is available at [[http://launchpad.net/dililatum][http://launchpad.net/dililatum]], and the team
managing the project has its page at [[http://launchpad.net/~dililatum-dev][http://launchpad.net/~dililatum-dev]].

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,23 @@
#+title: DotBox
#&summary
A block-based mini game library
#&
#+license: bysa, page
#+license: gpl 3+, program
* DotBox
#&img;url=dotbox-logo-320.png, alt=DotBox logo, center
#&+large, center
DotBox is a block-based game mini library. It greatly limits what is plausible.
#&
DotBox is licensed under the GNU General Public License, version 3 or any later
version. The current version of DotBox is 0.1.0.
[[dotbox-0.1.0.tar.gz][Download gzipped tarball]].
DotBox can also be found in the [[http://pypi.python.org/pypi/dotbox][Python Package Index]].
DotBox has its code at Gitorious; see [[http://gitorious.org/dotbox][http://gitorious.org/dotbox]].

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,40 @@
#+title: Electruth
#&summary
A collection of boolean logic tools. Understands gEDA netlists.
#&
#+license: bysa, text
#+license: cc0, logo
#+license: gpl 3+, program
* Electruth
See the Truth via ELECTRUTH&color=blue&huge.
#&img;url=electruth-logo-400.png, alt=electruth logo
#&pre
"Sometimes it's false, sometimes it's true. But it's always
boolean."
-- Someone
#&
electruth (or "ELECTRUTH") is a collection of boolean logic tools. It can be
used as both a command-line tool and a Python library. It understands boolean
algebra (to some extent) and can be used to simplify boolean expressions using
the Quine-McClusky method. This can be useful if you have a truth table in need
of basic shortening. electruth can also be used to compare boolean expressions,
which can be very useful if you need to compare a truth table with a schematic
you created based on that truth table. electruth can also be used to "destroy"
complex boolean expressions into simpler ones consisting only of ANDS, ORS and
NOTS.
You can download the newest electruth, v0.2.0, (released under the GPLv3+)
[[electruth-0.2.0.tar.gz][here]].
Old versions: [[electruth-0.1.0.tar.gz][0.1.1]] (final one for Python 2.x), [[electruth-0.1.0.tar.gz][0.1.0]].
electruth can also be found in the [[http://pypi.python.org/pypi/electruth][Python Package Index]].
electruth has its code at Gitorious; see [[http://gitorious.org/electruth][http://gitorious.org/electruth]].
NEW: Truth table generation howto up [[truthtables][here]].

View File

@ -0,0 +1,63 @@
#+title: Electruth :: Truth tables
#&summary
A guide to using truth tables with electruth
#&
#+license: bysa, page
* HOWTO: Truth tables in electruth
The truth table syntax used in electruth is simple: columns are separated by
commas (but can be separated by tabs instead), and rows are separated by
newlines. The first row must contain at least one input column and at least one
output column. To specify that something is input, prefix the input variable
with a '<' character. To specify an output, use the '>' character. This is best
illustrated with an example:
#&pre
<A,<B,>out
0,0,1
0,1,0
1,0,0
1,1,1
#&
If you save this file as something.csv (.csv means it consists of
comma-separated values) and run `electruth something.csv', you should get an
output like this:
#&pre
out = or(and(not(A), not(B)), and(A, B))
#&
This makes sense, considering that the output variable `out' is only true (a
"1" in the truth table) when `out' is either not A and not B or A and B.
So, that's how you make a truth table understandable by electruth. I want to
stress that electruth's output can almost always be shortened. In the example
above, we can see that `out' is false ("0") when A or B is true -- it is false
only when A is false and B is true, and when A is true and B is false. This
construct can be shortened to fit the XOR operator, and we can say that `out'
is false when out = A XOR B. This means that `out' is true when out = NOT (A
XOR B) (in the internals of electruth, this would be written as "out =
not(xor(A, B))"). This is much shorter than "out = or(and(not(A), not(B)),
and(A, B))". To test if the two expressions really match, electruth can be used
(and this is really electruth's best part) by running this:
#&pre
electruth truthtable.csv 'out=not A xor B'
#&
which should return this:
#&pre
out_0 = or(and(not(A), not(B)), and(A, B))
out_1 = or(and(not(A), not(B)), and(A, B))
'- out_0 matches out_1? True
#&
which just confirms that it is true.
I created electruth to help me design electronic digital circuits. I don't know
what you use it for, but if you stumbled upon it because of that, I can
recommend you take a look at the programs called Ktechlab and Qucs. They can be
used for boolean logic as well.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="500"
height="250"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="logo.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.308"
inkscape:cx="250"
inkscape:cy="125"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1255"
inkscape:window-height="974"
inkscape:window-x="25"
inkscape:window-y="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:type="star"
style="opacity:1;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2394"
sodipodi:sides="3"
sodipodi:cx="195.65831"
sodipodi:cy="354.98007"
sodipodi:r1="153.25435"
sodipodi:r2="76.627174"
sodipodi:arg1="1.9936503"
sodipodi:arg2="3.0408478"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
d="M 132.76813,494.73601 L 106.07121,230.63761 L 348.13559,339.5666 L 132.76813,494.73601 z"
transform="matrix(0.8876668,0,0,0.7989111,50.92815,-166.99191)" />
<path
style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Gentium Bold"
d="M 81.653893,121.7791 L 94.408342,121.7791 L 94.408342,133.92051 L 80.856732,133.92051 L 37.994437,133.92051 L 37.994437,149.15248 L 25.730539,149.15248 L 25.730539,79.615242 L 94.408342,79.615242 L 94.408342,91.535909 L 37.994437,91.535909 L 37.994437,121.7791 L 81.653893,121.7791 M 123.84168,133.92051 L 123.84168,91.315169 L 167.50114,121.7791 L 167.50114,133.92051 L 180.25559,133.92051 L 180.25559,116.03952 L 128.74724,79.615242 L 111.57779,79.615242 L 111.57779,133.92051 L 123.84168,133.92051 M 209.87288,133.92051 L 209.87288,85.134079 L 197.60899,85.134079 L 197.60899,133.92051 L 209.87288,133.92051 M 209.68893,77.573289 L 209.68893,67.860152 L 197.42504,67.860152 L 197.42504,77.573289 L 209.68893,77.573289 M 227.10364,79.615242 L 295.78144,79.615242 L 295.78144,133.92051 L 295.78144,149.15248 L 283.027,149.15248 L 283.027,133.92051 L 227.10364,133.92051 M 283.027,121.7791 L 283.027,91.535909 L 239.36757,91.535909 L 239.36757,121.7791 L 283.027,121.7791 M 353.17649,133.92051 L 340.91256,133.92051 L 340.91256,91.535909 L 325.21479,91.535909 L 325.21479,133.92051 L 312.95093,133.92051 L 312.95093,79.615242 L 381.62872,79.615242 L 381.62872,133.92051 L 368.87427,133.92051 L 368.87427,91.535909 L 353.17649,91.535909 L 353.17649,133.92051 M 454.72149,121.7791 L 454.72149,91.535909 L 411.06206,121.7791 L 454.72149,121.7791 M 421.85429,91.535909 L 398.79814,91.535909 L 398.79814,79.615242 L 467.47594,79.615242 L 467.47594,133.92051 L 398.79814,133.92051 L 398.79814,116.26026 L 434.36344,91.535909 M 25.730539,149.18456 L 73.31445,148.99524 L 467.40565,148.99524 L 467.40565,160.9159 L 37.994437,160.9159"
id="flowRoot2383"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,57 @@
<html lang="en">
<head>
<title>Booleans - Enigma</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Enigma">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Language.html#Language" title="Language">
<link rel="prev" href="Lists.html#Lists" title="Lists">
<link rel="next" href="Files.html#Files" title="Files">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual is for Enigma, version 0.1.
Copyright (C) 2010 Niels Serup
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
This document is also available under the terms of the Creative
Commons Attribution-Share Alike 3.0 (or any later version)
Unported license. A copy of the license is available at
`http://creativecommons.org/licenses/by-sa/3.0/legalcode'.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Booleans"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Files.html#Files">Files</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Lists.html#Lists">Lists</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Language.html#Language">Language</a>
<hr>
</div>
<h3 class="section">2.5 Booleans</h3>
<p><a name="index-booleans-8"></a>Booleans are used a lot in Enigma. The predefined variables <code>true</code>
and <code>false</code> can be used.
</body></html>

View File

@ -0,0 +1,179 @@
<html lang="en">
<head>
<title>Built-In functions - Enigma</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Enigma">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Built_002dIn.html#Built_002dIn" title="Built-In">
<link rel="prev" href="Built_002dIn-values.html#Built_002dIn-values" title="Built-In values">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual is for Enigma, version 0.1.
Copyright (C) 2010 Niels Serup
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
This document is also available under the terms of the Creative
Commons Attribution-Share Alike 3.0 (or any later version)
Unported license. A copy of the license is available at
`http://creativecommons.org/licenses/by-sa/3.0/legalcode'.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Built-In-functions"></a>
<a name="Built_002dIn-functions"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Built_002dIn-values.html#Built_002dIn-values">Built-In values</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Built_002dIn.html#Built_002dIn">Built-In</a>
<hr>
</div>
<h3 class="section">6.2 Functions</h3>
<p><a name="index-built_002din-functions-17"></a>Enigma has few built-in functions. But they do exist.
<p class="noindent"><code>str(OBJECT...)</code>: Converts all supplied values to strings.
<p class="noindent"><code>num(OBJECT...)</code>: Converts all supplied values to numbers.
<p class="noindent"><code>list(OBJECT...)</code>: Puts all supplied values in a list and destroys
nested lists at one level.
<p class="noindent"><code>bool(OBJECT...)</code>: Converts all supplied values to booleans.
<p class="noindent"><code>code(OBJECT...)</code>: Converts all supplied values to code strings.
<p class="noindent"><code>repr(OBJECT...)</code>: Converts all supplied values to representational
strings. Strings get prepended and appended by " characters, code
objects are surrounded by { and }, and so on.
<p class="noindent"><code>type(OBJECT...)</code>: Converts all supplied values to type strings
(string, number, file, etc.).
<p class="noindent"><code>len(OBJECT...)</code>: Converts all supplied values to their length. This
can be used for both strings and lists.
<p class="noindent"><code>clone(OBJECT...)</code>: Clones all supplied values. When an object is
cloned, its value is assigned to a new variable. The list of clones is
returned.
<p class="noindent"><code>slice(LIST|STRING, NUMBER, NUMBER)</code>: Returns a list value sliced
according to the first and second number if the first variable is a
list variable, or a substring if the first variable is a string
variable.
<p class="noindent"><code>loop(FUNCTION, [OBJECT]...)</code>: Executes function until it returns
false. Sends the rest of the specified variables (if any) to the
function as arguments.
<p class="noindent"><code>open(STRING, STRING)</code>: Opens the file by the name of the first
string, using the second string as its guide as to how it should be
opened. "r" means to read, "w" means to write, and "a" means to
append. Returns a file object.
<p class="noindent"><code>close(FILE...)</code>: Closes files.
<p class="noindent"><code>read(FILE)</code>: Reads one character of a file and returns it. If no
more characters are present, an empty string is returned.
<p class="noindent"><code>write(FILE, STRING)</code>: Writes a string to a file.
<p class="noindent"><code>greater(NUMBER, NUMBER...</code>: Checks if the first number is
greater than the rest and returns true or false.
<p class="noindent"><code>lesser(NUMBER, NUMBER...</code>: Checks if the first number is
lesser than the rest and returns true or false.
<p class="noindent"><code>equal(OBJECT, OBJECT...</code>: Checks if the objects are equal and returns
true or false.
<p class="noindent"><code>and(BOOLEAN...)</code>: Checks if all booleans are true and returns true
or false.
<p class="noindent"><code>or(BOOLEAN...)</code>: Checks if at least one boolean is true and returns
true or false.
<p class="noindent"><code>not(BOOLEAN...)</code>: Converts values of true to values of false, and
vice-versa.
<p class="noindent"><code>act(BOOLEAN, FUNCTION, [OBJECT]...)</code>: Run the function with the
optional objects as arguments if the boolean is true.
<p class="noindent"><code>system(STRING...)</code>: Join the strings and run the result as a
system command.
<p class="noindent"><code>add(NUMBER|STRING|CODE|LIST...)</code>: Add objects together. Numbers, strings, code
strings and lists can be used, but only with similar types. The type
of the first object determines what types the rest must be. The result
is stored in the first object and also returned.
<p class="noindent"><code>subtract(NUMBER...)</code>: Subtract numbers from each other. The
first object receives the final number. It is also returned.
<p class="noindent"><code>multiply(NUMBER...)</code>: Multiply numbers with each other. The
first object receives the final number. It is also returned.
<p class="noindent"><code>divide(NUMBER...)</code>: Divide numbers with each other. The
first object receives the final number. It is also returned.
<p class="noindent"><code>mod(NUMBER, NUMBER)</code>: Finds the remainder of the first number
divided with the second number and returns it as a new variable.
<p class="noindent"><code>pow(NUMBER, NUMBER)</code>: Returns first number^second number.
<p class="noindent"><code>log(NUMBER, [NUMBER])</code>: Returns the logarithm of the first
number. If the second number is not specified, the natural logarith is
used.
<p class="noindent"><code>random()</code>: Returns a random number between 0 and 1.
<p class="noindent"><code>abs(NUMBER...)</code>: Sets and returns absolute values of numbers.
<p class="noindent"><code>round(NUMBER, NUMBER)</code>: Rounds the first number with x decimals,
where x is the second number.
<p class="noindent"><code>floor(NUMBER, NUMBER)</code>: Floors the first number with x decimals,
where x is the second number.
<p class="noindent"><code>ceil(NUMBER, NUMBER)</code>: "Ceils" the first number with x decimals,
where x is the second number.
<p class="noindent"><code>sin(NUMBER...)</code>: Sets and returns sine values.
<p class="noindent"><code>cos(NUMBER...)</code>: Sets and returns cosine values.
<p class="noindent"><code>tan(NUMBER...)</code>: Sets and returns tangent values.
<p class="noindent"><code>asin(NUMBER...)</code>: Sets and returns arcsine values.
<p class="noindent"><code>acos(NUMBER...)</code>: Sets and returns arccosine values.
<p class="noindent"><code>atan(NUMBER...)</code>: Sets and returns arctangent values.
<p class="noindent"><code>sinh(NUMBER...)</code>: Sets and returns hyperbolic sine values.
<p class="noindent"><code>cosh(NUMBER...)</code>: Sets and returns hyperbolic cosine values.
<p class="noindent"><code>tanh(NUMBER...)</code>: Sets and returns hyperbolic tangent values.
</body></html>

View File

@ -0,0 +1,68 @@
<html lang="en">
<head>
<title>Built-In values - Enigma</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Enigma">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Built_002dIn.html#Built_002dIn" title="Built-In">
<link rel="prev" href="Built_002dIn.html#Built_002dIn" title="Built-In">
<link rel="next" href="Built_002dIn-functions.html#Built_002dIn-functions" title="Built-In functions">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual is for Enigma, version 0.1.
Copyright (C) 2010 Niels Serup
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
This document is also available under the terms of the Creative
Commons Attribution-Share Alike 3.0 (or any later version)
Unported license. A copy of the license is available at
`http://creativecommons.org/licenses/by-sa/3.0/legalcode'.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Built-In-values"></a>
<a name="Built_002dIn-values"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Built_002dIn-functions.html#Built_002dIn-functions">Built-In functions</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Built_002dIn.html#Built_002dIn">Built-In</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Built_002dIn.html#Built_002dIn">Built-In</a>
<hr>
</div>
<h3 class="section">6.1 Values</h3>
<p><a name="index-built_002din-values-16"></a>The following variables are special and can be accessed anytime. They can
even be overwritten.
<pre class="verbatim">args, return, temp, stdin, stderr, stdout, zero, true, false, none, @pi,
@e, cwd, cpd, fnm
</pre>
<code>zero</code> is a fake writable file that does nothing. <code>none</code> is an
abstract variable with an internal value of.. none. <code>@pi</code> is
Pi. <code>@e</code> is Euler's number. <code>cwd</code> is the directory from which
Enigma is run, <code>cpd</code> is the directory in which the current program
file resides, and <code>fnm</code> is the filename of the current program
file. The rest are self-explanatory &mdash; and <code>args</code>, <code>return</code>
and <code>temp</code> are extra special.
</body></html>

View File

@ -0,0 +1,59 @@
<html lang="en">
<head>
<title>Built-In - Enigma</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Enigma">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="prev" href="Comparison.html#Comparison" title="Comparison">
<link rel="next" href="Copying-This-Manual.html#Copying-This-Manual" title="Copying This Manual">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual is for Enigma, version 0.1.
Copyright (C) 2010 Niels Serup
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
This document is also available under the terms of the Creative
Commons Attribution-Share Alike 3.0 (or any later version)
Unported license. A copy of the license is available at
`http://creativecommons.org/licenses/by-sa/3.0/legalcode'.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Built-In"></a>
<a name="Built_002dIn"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Copying-This-Manual.html#Copying-This-Manual">Copying This Manual</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Comparison.html#Comparison">Comparison</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
<hr>
</div>
<h2 class="chapter">6 Built-in values and functions</h2>
<ul class="menu">
<li><a accesskey="1" href="Built_002dIn-values.html#Built_002dIn-values">Built-In values</a>
<li><a accesskey="2" href="Built_002dIn-functions.html#Built_002dIn-functions">Built-In functions</a>
</ul>
</body></html>

View File

@ -0,0 +1,75 @@
<html lang="en">
<head>
<title>Compared assigning - Enigma</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Enigma">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Comparison.html#Comparison" title="Comparison">
<link rel="prev" href="Comparison.html#Comparison" title="Comparison">
<link rel="next" href="Compared-conditionals.html#Compared-conditionals" title="Compared conditionals">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual is for Enigma, version 0.1.
Copyright (C) 2010 Niels Serup
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
This document is also available under the terms of the Creative
Commons Attribution-Share Alike 3.0 (or any later version)
Unported license. A copy of the license is available at
`http://creativecommons.org/licenses/by-sa/3.0/legalcode'.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Compared-assigning"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Compared-conditionals.html#Compared-conditionals">Compared conditionals</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Comparison.html#Comparison">Comparison</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Comparison.html#Comparison">Comparison</a>
<hr>
</div>
<h3 class="section">5.1 Assigning values</h3>
<blockquote>
<b>C:</b> <p><table class="cartouche" summary="cartouche" border="1"><tr><td>
<pre class="example"> type var = value;
</pre>
</td></tr></table>
</blockquote>
<blockquote>
<b>Python:</b> <p><table class="cartouche" summary="cartouche" border="1"><tr><td>
<pre class="example"> var = value
</pre>
</td></tr></table>
</blockquote>
<blockquote>
<b>Enigma:</b> <p><table class="cartouche" summary="cartouche" border="1"><tr><td>
<pre class="example"> value = var;
</pre>
</td></tr></table>
</blockquote>
</body></html>

Some files were not shown because too many files have changed in this diff Show More