Changeset 30 in projects
- Timestamp:
- Mar 13, 2009, 2:32:13 AM (15 years ago)
- Files:
-
- 10 added
- 1 deleted
- 5 edited
- 3 moved
Legend:
- Unmodified
- Added
- Removed
-
README.SVN.txt
r6 r30 1 1 2 The P aper TapeProject -- Subversion access3 =========================================== 2 The Punched Paper Project -- Subversion access 3 ============================================== 4 4 5 The P aper TapeProject sources are stored on the technikum29.de servers.5 The Punched Paper Project sources are stored on the technikum29.de servers. 6 6 They are reachable at 7 7 … … 9 9 Web SVN: http://dev.technikum29.de/websvn 10 10 11 You can access the subversion reposity anonymous. So simply checkout 11 until the svn repository moved to 12 13 svn://technikum29.de/punched-paper-project 14 15 You can access the subversion reposity anonymously. So simply checkout 12 16 the sources at your unix box using the svn terminal client: 13 17 … … 19 23 team at development@[this domain] and ask for a subversion account. 20 24 21 --Sven, 19.07.08 25 --Sven, 19.07.08, 13.03.09 -
documentation/index.php
r23 r30 12 12 **/ 13 13 14 // the web site root path, taken relatively to the 15 // global project path 16 $doc = 'documentation'; 17 14 18 // where to get the file to display: Can be simply 15 19 // $filename = $_SERVER['QUERY_STRING']; … … 18 22 19 23 // redirect to default page if no one is given: 20 $default_page = 'documentation/start.htm';24 $default_page = $doc.'/start.htm'; 21 25 if(empty($filename)) { header("Location: $_SERVER[PHP_SELF]/$default_page"); exit; } 22 26 … … 24 28 $jail_dir = realpath('../'); # don't display files higher than parental dir 25 29 $file_path = realpath('../'.$filename); 26 #var_dump(substr($file_path, -3, 3), $filename, $file_path, $jail_dir); 27 if(0 !== strncmp($file_path, $jail_dir, strlen($jail_dir)) || 28 substr($file_path, -3, 3) != 'htm') { 30 $extension = substr(strrchr($file_path, '.'),1); 31 $good_extensions = array('c', 'cpp', 'pl', 'htm', 'txt'); 32 33 #var_dump($extension, $filename, $file_path, $jail_dir, $good_extensions, in_array($extension, $good_extensions)); exit(); 34 if(0 !== strncmp($file_path, $jail_dir, strlen($jail_dir)) 35 || !in_array($extension, $good_extensions) 36 || !is_readable('../'.$filename) ) { 29 37 // user want's display file higher than parental dir 30 // or file is not a *.htm file31 // then Redirect to file! Apache will handle error ;-)38 // or file is not a nice file (like *.htm) or file is not 39 // readable, then Redirect to file! Apache will handle error ;-) 32 40 header("Location: $_SERVER[SCRIPT_NAME]/../../$filename"); 33 41 echo "Won't make file $filename beautiful\nRefering to that file...\n"; … … 35 43 } 36 44 37 // parse file until <body> start.. 38 $handle = @fopen("../$filename", 'r'); 39 if(!$handle) { header("HTTP/1.0 403 Forbidden"); print "Must not open $filename\n."; exit; } 40 while(!feof($handle)) { 41 if(strpos(fgets($handle), "<body") !== false) 42 break; 45 // since PHP cannot initialize global variables on an intelligent way: 46 $exec_action = $extension=='htm' ? 'display_file' : 'syntax_highlight_file'; 47 48 function display_file($filename) { 49 // display HTML file. 50 // parse file until <body> starts... 51 $handle = fopen("../$filename", 'r'); 52 if(!$handle) { print "Error at opening $filename\n"; exit; } 53 while(!feof($handle)) { 54 if(strpos(fgets($handle), "<body") !== false) 55 break; 56 } 57 fpassthru($handle); 58 } 59 60 function syntax_highlight_file($filename) { 61 // syntax highlight some file 62 include_once('geshi.php'); 63 $geshi = new GeSHi(); 64 $geshi->load_from_file("../$filename"); 65 $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); 66 echo "<h2>Contents of <code>$filename</code></h2>"; 67 echo $geshi->parse_code(); 43 68 } 44 69 ?> 45 70 <html> 46 71 <head> 47 <title>The P aper Tape Project</title>48 <link rel="stylesheet" href=" ../documentation/style.css" type="text/css">72 <title>The Punched Paper Project / <?=$filename; ?></title> 73 <link rel="stylesheet" href="<?=$_SERVER['SCRIPT_NAME'].'/'.$doc; ?>/style.css" type="text/css"> 49 74 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 50 75 </head> 51 76 <body> 52 <h1> 53 <a href="http://dev.technikum29.de/projekte/"><span>technikum29 Coding projects: </span></a> 54 <strong>The Paper Tape Project</strong> 55 </h1> 77 <div id="header"> 78 <h1>The Punched Paper Project</h1> 79 <p class="subtitle">/<?=$filename; ?></p> 80 <a href="http://dev.technikum29.de/" class="powered-by"><img src="<?=$_SERVER['SCRIPT_NAME'].'/'.$doc; ?>/src/powered-by-icon.png" alt="technikum29 development zone"></a> 81 </div> 56 82 <div id="navigation"> 57 83 <?php 58 84 59 85 $nav = array( 60 # all URLs are taken relative to one subdir (e.g. documentation/). 61 'Start' => $default_page, 62 'Data' => 'daten/README.htm', 63 'Perl tools' => 'perl-tools/README.htm', 64 'Labeling and Fonts' => array( 65 'Generating Labels' => 'schriften/README.htm', 66 'Paper Tape Font Files' => 'schriften/font_files.htm' 67 ), 68 'Visualisation' => 'visualisator/README.htm', 69 'Generating Paper Tapes online!' => 'web-frontend/' 86 #all URLs are taken relative to one subdir (e.g. documentation/). 87 'Start' => $default_page, 88 'The Paper Tape Project' => array( 89 'Start' => $doc.'/paper-tape-project.htm', 90 'Data' => 'paper-tape/daten/README.htm', 91 'Perl tools' => 'paper-tape/perl-tools/README.htm', 92 'Labeling and Fonts' => array( 93 'Generating Labels' => 'paper-tape/schriften/README.htm', 94 'Paper Tape Font Files' => 'paper-tape/schriften/font_files.htm' 95 ), 96 'Visualisation' => 'paper-tape/visualisator/README.htm', 97 'Generating Paper Tapes online!' => 'paper-tape/web-frontend/' 98 ), 99 'The Punch Card Project' => array( 100 'Start' => $doc.'/punch-card.htm' 101 ), 102 //'About' => $doc.'/about.htm' 70 103 ); 71 104 … … 77 110 print "<em>$name</em>\n"; print_nav($url); 78 111 } else 79 print $url == $filename ? "<strong>$name</strong>" : "<a href=\" ../$url\">$name</a>";112 print $url == $filename ? "<strong>$name</strong>" : "<a href=\"$_SERVER[SCRIPT_NAME]/$url\">$name</a>"; 80 113 echo "</li>\n"; 81 114 } … … 87 120 <div id="content"> 88 121 <?php 89 fpassthru($handle);122 call_user_func($exec_action, $filename);#, $exec_array); 90 123 ?> 91 124 </div> 92 < hr/>93 <center> 125 <div id="footer"> 126 Further reading: 94 127 <a href="http://dev.technikum29.de">dev.technikum29.de</a> | 95 128 <a href="http://dev.technikum29.de/websvn/listing.php?repname=paper-tape-project&path=%2F&sc=0">Paper-Tape-Project WebSVN</a> | 96 129 <a href="http://koeppel.homeunix.org">koeppel.homeunix.org</a> 97 </ center>130 </div> -
documentation/start.htm
r23 r30 2 2 <body> 3 3 4 <h2>The Paper Tape Project</h2> 4 <a href="http://www.flickr.com/photos/flickrsven/2385929362/" 5 title="Some Flickr link to paper tape art ;-)"> 6 <img src="../paper-tape/web-frontend/design/logo.png" 7 style="float:right; margin:0 0 20px 20px;" alt="Flying paper tape"> 8 </a> 5 9 6 <h3>What is this project about?</h3> 7 <p>Welcome to the Paper Tape Project. The goal of this project is to handle paper tapes handy 8 with today's computers. Therefore we have written drivers for punching and reading with 9 external devices, as well as a complete specialized hex editor for paper tape binary files. 10 This project has produced a lot of tools, partly high quality, partly quick & dirty. 11 It's an open source project – you can get the complete results, every single source 12 file, as well as compiled binaries for Microsoft Windows and Linux. The development 13 proceeds mainly at linux workstations, thanks to their great and powerful Unix shells.</p> 10 <p>Welcome to the <b>Punched Paper Project</b>. This is a small website 11 that informs you about the goals and progress of that project</p> 14 12 15 <h3>Progress/status</h3> 16 <p>I'm about to switch to HTML files for documentation, but there still some README.txt 17 files flying around:</p> 18 <ul> 19 <li><a href="../README.txt">General README about the project and subprojects</a></li> 20 <li><a href="../reader/README.txt">Reader subsystem readme</a></li> 21 <li><a href="../usersprace-driver/README.txt">Userspace driver (puncher) subsystem readme</a></li> 22 <li><a href="../web-frontend/README.txt">Webfrontend readme</a></li> 23 </ul> 13 <h2>In a nutshell</h2> 14 <p>The goal of this project is to handle various antiquated storage 15 media with today's computers. Such media are especially paper tapes 16 and punch cards. 17 <br/>This project started as <b>Paper Tape Project</b> with drivers 18 that make PCs capable to 19 communicate with paper tape readers and writers, so we can now read 20 and write paper tapes under various operating systems (GNU/Linux, 21 Micrsoft Windows). Then we got visualizing and operating tools for 22 paper tape data, as well as font/label generators for paper tapes. 23 <br/>In 2009, we got the idea to make punch card devices run at 24 computers, too. So I've renamed the whole project to <b>Punched 25 Paper Project</b>. 26 </p> 24 27 25 <p>See this progress README files:</p> 26 <ul> 27 <li><a href="../puncher/README.txt">Puncher subsystem readme</a></li> 28 </ul> 29 30 <p>The this shallabe README files:</p> 31 <ul> 32 <li><a href="../driver/README.txt">General driver subsystem</a></li> 33 </ul> 34 35 <h3>Targeted structure</h3> 36 <p>Something about the goal</p> 28 <h2>Who's running the project</h2> 29 <p>The Punched Paper Project is an <b>Open Source</b> project by a 30 german student. It's hosted on the servers of the german computer 31 museum <a href="http://www.technikum29.de">technikum29</a>.</p> -
documentation/style.css
r23 r30 1 1 /* 2 * PaperTape Project: Documentation design 2 * PaperTape Project: Documentation design. 3 * 4 * This is a small design I've made up from mind at Do. 12.03.2009 5 * while moving from "Paper Tape Project" to "Punched Paper Project". 6 * 7 * Use it as in the public domain. 3 8 * 4 9 */ 5 @import url(http://dev.technikum29.de/src/private.design/style.css); 10 /* @import url(http://dev.technikum29.de/src/private.design/style.css); */ 11 12 body { 13 /*padding: 15px;*/ 14 margin: 0; 15 font: 12px Verdana,Arial,sans-serif; 16 } 17 18 img { 19 border: none; 20 } 21 22 #header { 23 background-color: black; 24 height: 80px; 25 position: relative; 26 padding-top: 25px; 27 padding-left: 20px; 28 } 29 30 #header h1 { 31 color: white; 32 font: 30px monospace; 33 margin: 0; padding: 0; 34 } 35 36 #header p.subtitle { 37 color: #ce5c00; 38 font-family: monospace; 39 margin: 0; padding: 0; 40 } 41 42 #header a.powered-by { 43 position: absolute; 44 top: 26px; right: 25px; 45 } 46 47 #navigation { 48 width: 185px; 49 padding-top: 20px; 50 float: left; 51 background-color: #EEEEEE; 52 border-right: 2px solid black; 53 height: 1000px; 54 } 55 56 #navigation ul { 57 margin: 0; padding: 0; 58 background-color: #eee; 59 padding-left: 10px; 60 } 61 62 #navigation li { 63 margin: 0; padding: 0; 64 list-style-type: circle; 65 margin-left: 10px; 66 color: #3465A4; /* bullets same color as links */ 67 } 68 69 #navigation a, #navigation strong, #navigation em { 70 display: block; 71 line-height: 20px; 72 font-weight: bold; 73 text-decoration: none; 74 } 75 76 #navigation em { 77 font-style: normal; 78 color: black; 79 } 80 81 #navigation strong { 82 background-color: black; 83 color: white; 84 } 85 86 #navigation a:link, #navigation a:visited { 87 color: #3465a4; 88 } 89 90 #navigation a:hover { 91 background-color: #fff; 92 color: #f57900; 93 } 94 95 96 #content { 97 margin-left: 195px; 98 padding: 15px; 99 100 text-align: justify; 101 line-height: 135%; 102 } 103 104 #content a:link { 105 color: #3465a4; /* from #navigation */ 106 } 107 108 #footer { 109 clear: both; 110 margin-top: 15px; 111 background-color: #000; 112 padding: 20px; 113 text-align: center; 114 color: white; 115 } 116 117 #footer a { 118 color: #eaeaea; 119 } 6 120 7 121 pre { -
paper-tape/perl-tools/README.htm
r23 r30 11 11 CPAN modules, etc. -- so they'll run on almost every platform. 12 12 13 <h3>The files in detail</h3> 14 15 <p>This is an overview over the perl tools: 16 17 <ul> 18 <li><a href="byte-tester">byte-tester</a>: Will simply output 19 a byte with the value you gave the program via argv[1]. Nice 20 for sending special bytes via shell scripts to the puncher 21 <li><a href="hex-meter">hex-meter</a>: Generates a quite long 22 byte pattern that contains all possible byte values from 0x00 23 up to 0xFF. Nice for debugging and espacially practical for 24 counting rapidly the position on another paper tape. 25 <li><a href="how-long-is-this-papertape">how-long-is-this-papertape</a>: 26 This is a kind of <tt>du</tt> shell utility for paper tapes – 27 it won't count the size some files take on your hard disk but 28 the length of paper tape they would produce if punched out ;-) 29 <li><a href="label-it">label-it</a>: A very simple implementation of 30 a paper tape font: You input the label via command line arguments 31 and this script will produce some bytes that will look like text 32 when punched out on a paper tape ;-) 33 <br>This was the very first implementation of a paper tape font. 34 <li><a href="punch-simulator">punch-simulator</a>: A very simple 35 program to print out how bytes (reading from STDIN) would look 36 on a paper tape. ASCII art :-) 37 <li><a href="read-file">read-file</a>: This is a simple program that 38 reads in numbers from a text file and packs them together to bytes. 39 So this behaves a bit like byte-tester, only more complex. 40 <li><a href="strip-null-bytes.c">strip-null-bytes (C program)</a>: 41 This is a quite simple program that strips all null bytes at the 42 start and end of a file/stdin and outputs that to stdout. Since 43 that s a quite low-level task, it's implemented in C. 44 <li><a href="alter-udo-parser">udo-parser 0</a>, 45 <a href="udo-parser">udo-parser 1</a>: Some simple Perl ASCII 46 file parsers that generate byte data to stdout. 47 </ul> 48 49 50 <h3>Copyright for the complete directory</h3> 13 51 <p>Copyright 2008 Sven Köppel, all tools in this directory are 14 52 released under the GPL.
Note: See TracChangeset
for help on using the changeset viewer.