User:Dave Young/Thematic Project 1: Bits and Pieces

From XPUB & Lens-Based wiki

Computata Miscellanea

Places for homeless code snippets from the thematic project seminars and workshops.

Script for Literal Draw/SVGs etc

Places pixels based on an ascii grid template - an 'X' = a pixel relative to that point on the canvas, any other text character leaves a blank space. The script expects a grid.txt argument [String], a starting x [int], and y [int] argument, a pixel size [int], and an outputfile_name.txt [string].

Frog in a Boat
--------------------------------------------------------------
----------------------------XXXX------------------------------
--------------------------XXXX-XX-----------------------------
------------------------XXXXXXXXX-----------------------------
-----------------------XXXXXXXXXXXX----XX---------------------
----------------------XXXXXXXXXXXXXXXXXX----------------------
XXX------------------XXXXXXXXXXX----XX---------------------XXX
XXXX----------------XXXXXXXXXXXX---XX---------------------XXXX
XXXXXXXXXXX---------XXXXXXXXXXXX--XX---------------XXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
----XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX----
--------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX--------
-------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-------------
----------------------------XX--------------------------------
---------------------------XX---------------------------------
-------------------------XXXX---------------------------------
Frog at a Bar
-----------------------------------------------
-------------------------------GIMME BEER!-----
-----------------XX----XX-----/----------------
-----------------X-XXXX-XX---------------------
-----------------XXXXXXXXXXX-------------------
----------------XXXXXXXXXXXXXX-----------------
X--------------XXX-XXXXXXXX-XXX-------------XXX
XX-------------XX--XXXXXXXX---XXX----------XXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
------------------XX------XX-------------------
------------------XX------XX-------------------
------------------XX------XX-------------------
------------------XX------XX-------------------
-----------------XXX------XXX------------------
-----------------------------------------------
Frog 'Avin a Laugh
-------------------------------------------------------------
-------------------------------------------------------------
-------------------------------------------------------------
-------------------------------------------------------------
------------------XXXXX----------------XXXXX-----------------
----------------XXX--XXX--------------XXX--XX----------------
X--------------XXXX--XXXXXXXXXXXXXXXXXXXX--XXX--------------X
XX------------XXXXX--XXXXXXXXXXXXXXXXXXXX--XXXX------------XX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX------------XXXXXX--XXXXXXXXXXXXXXXXXX--XXXXX------------XX
X--------------XXXXX----------------------XXXX--------------X
----------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXX----------------
------------------XXXXXXXXXXXXXXXXXXXXXXXXX------------------
--------------------XXX---------------XXX--------------------
--------------------XXX---------------XXX--------------------
--------------------XXX---------------XXX--------------------
------------------XXXXXXX-----------XXXXXXX------------------
#!/usr/bin/python
#automates grid-based transformations
#Args: gridfile | commandfile | columnwidth | rowheight
#


import sys

thegrid = open(sys.argv[1]) #grid template - X = draw commands
output = open(sys.argv[2], "w") #the outputted text to paste into 

x = int(sys.argv[3]) #starting x point
y = int(sys.argv[4]) #starting y point
ox = x
oy = y
sz = int(sys.argv[5]) #the size of the rectangle

def commands(x, y, sz):
	cmd = "move {0} {1} \n line {2} {3} \n line {4} {5} \n line {6} {7} \n close\n\n".format(x, y, x+sz, y, x+sz, y+sz, x, y+sz)  #a rectangle!
	output.write(cmd)

for line in thegrid:
	ret=0
	for char in line:
		x+=sz
		if char == str('X'):
			commands(x, y, sz)
	x=ox
	y+=sz

thegrid.close()
output.close()

Review Generator v0.01

Built in Nicolas Maleve's thematic project workshop. More information available here

<?php

$goodlines = file('good.txt'); //the 'good' text file to read from
shuffle($goodlines); //randomise array order
$badlines = file('bad.txt');
shuffle($badlines);
$numLines = rand(1, 8); //random number of sentences in review - min 1, max 8 sentences

for ($i=0; $i<$numLines; $i++){

        $currline = $goodlines[$i]; //store the current line  $currline
        if(preg_match("*name*", $currline)){ //if *name* is found, insert the form element 'name'   
                $currline = preg_replace("*name*", htmlspecialchars($_POST['name']), $currline);
        }
        if(preg_match("*city*", $currline)){ //if *city* is found, insert form element 'city'
                $currline = preg_replace("*city*", htmlspecialchars($_POST['city']), $currline);
        }
        echo $currline; //print edited $currline
}
?>