]> git.quilime.com - plog.git/commitdiff
Added editing.
authorGabriel Dunne <gdunne@quilime.com>
Sat, 8 Sep 2012 01:55:22 +0000 (18:55 -0700)
committerGabriel Dunne <gdunne@quilime.com>
Sat, 8 Sep 2012 01:55:22 +0000 (18:55 -0700)
21 files changed:
content/log/overlords
content/studio/config [new file with mode: 0644]
css/style.css
data/content/log/data.json
index.php
lib/config.ini
lib/data.php
lib/edit.php
lib/init.php
lib/model.php
lib/view.php
pages/about
pages/bio [new file with mode: 0644]
pages/contact [new file with mode: 0644]
pages/cv [new file with mode: 0644]
pages/links1 [new file with mode: 0644]
templates/edit.html.tpl
templates/entry.html.tpl
templates/footer.html.tpl
templates/head-inc.html.tpl
templates/single.html.tpl

index e949c3d2c4307ae9ce7ee78829b7cf3f0cb3c9ac..5f5d99827355e45290e013b298e0b9d6906a80d3 100755 (executable)
@@ -1,8 +1,8 @@
-title = childhoods end
-date = Oct 05 2011, 03:17:57 PM
-tags = india quote
---
-
-> The case of India is particularly instructive. The main difference between us and the British in India was that they had no real motives for going there&mdash;no conscious objectives, that is, except such trivial and temporary ones as trade or hostility to other European powers. They found themselves possessors of an empire before they knew what to do with it, and were never really happy until they had got rid of it again.
-
-> &mdash;"The Inspector" Overlord. <u>Childhoods End</u>, Arthur C. Clark. p.161
+title = childhoods end\r
+date = Oct 05 2011, 03:17:57 PM\r
+tags = india quote\r
+--\r
+\r
+> The case of India is particularly instructive. The main difference between us and the British in India was that they had no real motives for going there—no conscious objectives, that is, except such trivial and temporary ones as trade or hostility to other European powers. They found themselves possessors of an empire before they knew what to do with it, and were never really happy until they had got rid of it again.\r
+\r
+> —"The Inspector" Overlord. <u>Childhoods End</u>, Arthur C. Clark. p.161\r
diff --git a/content/studio/config b/content/studio/config
new file mode 100644 (file)
index 0000000..f33aa2d
--- /dev/null
@@ -0,0 +1,2 @@
+--
+Studio
index 3aae4aae049199fd1a827baa8e8e07fe13a801fe..020374644a7c94ea55c0c4752bbdcfd721054817 100644 (file)
@@ -1,8 +1,8 @@
 html, body, table {
   color: #555555;
-  font-family: sans-serif;
-  font-size:13px;
-  line-height: 1.5em; }
+  font-family: sans-serif, monaco, monospace;
+  font-size: 14px;
+  line-height: 1.6em; }
 body {
   margin: 2em; }
 
@@ -88,6 +88,24 @@ table, td, tr {
 }
 
 
+.edit {
+  margin-left: 160px;
+  padding:20px;
+  box-sizing: border-box;
+  background:#ccf;
+}
+
+.edit textarea {
+  font-family: monaco, monospace;
+  padding:20px;
+  width:100%;
+  font-size:12px;
+  background:#005;
+  color:#eee;
+  height:400px;
+}
+
+
 
 #nav {
   position:fixed;
index dacb6fe7e40d4ad9d4cc32795ac10b270ea90cd8..96ae72a42e0e51da4f4fea3140526177c3ba3aa2 100644 (file)
@@ -1 +1 @@
-{"entries":[{"config":{"date":"feb 20 2012","title":"temple","tags":"photo"},"title":"temple","filename":"temple","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/temple","fileInfo":{},"timestamp":"1329724800","tags":["photo"],"content":"<p><a href=\"http:\/\/www.flickr.com\/photos\/quilime\/6914577153\/sizes\/z\/in\/photostream\/\">\n    <img src=\"http:\/\/farm8.staticflickr.com\/7053\/6914577153_4c2b7d8a1a_z.jpg\">\n<\/a><\/p>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/temple\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/temple\/","thumb":"media\/\/log\/temple\/thumb.png","url":"\/log\/temple"},{"config":{"title":"Water Is Life","date":"Oct 23 2011 06:04:38 PM","tags":"water photo"},"title":"Water Is Life","filename":"water_is_life","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/water_is_life","fileInfo":{},"timestamp":"1319418278","tags":["water","photo"],"content":"<p><a href=\"http:\/\/www.flickr.com\/photos\/quilime\/6266458764\/sizes\/l\/in\/photostream\/\"><img src=\"http:\/\/farm7.staticflickr.com\/6034\/6266458764_6f71bd0a7e_z.jpg\"><\/a><\/p>\n\n<p>near Quotar Minar in Dadabari.<\/p>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/water_is_life\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/water_is_life\/","thumb":"media\/\/log\/water_is_life\/thumb.png","url":"\/log\/water_is_life"},{"config":{"title":"islands","date":"Oct 05 2011, 03:53:55 PM","tags":"writing quote"},"title":"islands","filename":"islands","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/islands","fileInfo":{},"timestamp":"1317855235","tags":["writing","quote"],"content":"<blockquote>\n  <p>Imagine that every man's mind is an island, surrounded by ocean. Each seems isolated, yet in reality all are linked by the bedrock from which they spring. If the ocean were to vanish, that would be the end of the islands. They would all be part of one continent, but their individuality would be gone.<\/p>\n  \n  <p>&mdash;\"The Inspector\" Overlord. <u>Childhoods End<\/u>, Arthur C. Clark. p.176<\/p>\n<\/blockquote>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/islands\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/islands\/","thumb":"media\/\/log\/islands\/thumb.png","url":"\/log\/islands"},{"config":{"title":"childhoods end","date":"Oct 05 2011, 03:17:57 PM","tags":"india quote"},"title":"childhoods end","filename":"overlords","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/overlords","fileInfo":{},"timestamp":"1317853077","tags":["india","quote"],"content":"<blockquote>\n  <p>The case of India is particularly instructive. The main difference between us and the British in India was that they had no real motives for going there&mdash;no conscious objectives, that is, except such trivial and temporary ones as trade or hostility to other European powers. They found themselves possessors of an empire before they knew what to do with it, and were never really happy until they had got rid of it again.<\/p>\n  \n  <p>&mdash;\"The Inspector\" Overlord. <u>Childhoods End<\/u>, Arthur C. Clark. p.161<\/p>\n<\/blockquote>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/overlords\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/overlords\/","thumb":"media\/\/log\/overlords\/thumb.png","url":"\/log\/overlords"}]}
\ No newline at end of file
+{"entries":[{"config":{"date":"feb 20 2012","title":"temple","tags":"photo"},"title":"temple","filename":"temple","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/temple","fileInfo":{},"timestamp":"1329724800","tags":["photo"],"content":"<p><a href=\"http:\/\/www.flickr.com\/photos\/quilime\/6914577153\/sizes\/z\/in\/photostream\/\">\n    <img src=\"http:\/\/farm8.staticflickr.com\/7053\/6914577153_4c2b7d8a1a_z.jpg\">\n<\/a><\/p>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/temple\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/temple\/","thumb":"media\/\/log\/temple\/thumb.png","url":"\/log\/temple"},{"config":{"title":"Water Is Life","date":"Oct 23 2011 06:04:38 PM","tags":"water photo"},"title":"Water Is Life","filename":"water_is_life","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/water_is_life","fileInfo":{},"timestamp":"1319418278","tags":["water","photo"],"content":"<p><a href=\"http:\/\/www.flickr.com\/photos\/quilime\/6266458764\/sizes\/l\/in\/photostream\/\"><img src=\"http:\/\/farm7.staticflickr.com\/6034\/6266458764_6f71bd0a7e_z.jpg\"><\/a><\/p>\n\n<p>near Quotar Minar in Dadabari.<\/p>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/water_is_life\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/water_is_life\/","thumb":"media\/\/log\/water_is_life\/thumb.png","url":"\/log\/water_is_life"},{"config":{"title":"islands","date":"Oct 05 2011, 03:53:55 PM","tags":"writing quote"},"title":"islands","filename":"islands","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/islands","fileInfo":{},"timestamp":"1317855235","tags":["writing","quote"],"content":"<blockquote>\n  <p>Imagine that every man's mind is an island, surrounded by ocean. Each seems isolated, yet in reality all are linked by the bedrock from which they spring. If the ocean were to vanish, that would be the end of the islands. They would all be part of one continent, but their individuality would be gone.<\/p>\n  \n  <p>&mdash;\"The Inspector\" Overlord. <u>Childhoods End<\/u>, Arthur C. Clark. p.176<\/p>\n<\/blockquote>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/islands\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/islands\/","thumb":"media\/\/log\/islands\/thumb.png","url":"\/log\/islands"},{"config":{"title":"childhoods end","date":"Oct 05 2011, 03:17:57 PM","tags":"india quote"},"title":"childhoods end","filename":"overlords","path":"\/Users\/gdunne\/_code\/plog\/content\/log\/overlords","fileInfo":{},"timestamp":"1317853077","tags":["india","quote"],"content":"<blockquote>\n  <p>The case of India is particularly instructive. The main difference between us and the British in India was that they had no real motives for going there\u2014no conscious objectives, that is, except such trivial and temporary ones as trade or hostility to other European powers. They found themselves possessors of an empire before they knew what to do with it, and were never really happy until they had got rid of it again.<\/p>\n  \n  <p>\u2014\"The Inspector\" Overlord. <u>Childhoods End<\/u>, Arthur C. Clark. p.161<\/p>\n<\/blockquote>\n","comments_enabled":false,"comments":{"comments":[],"comments_loc":"\/Users\/gdunne\/_code\/plogcomments\/\/Users\/gdunne\/_code\/plog\/content\/log\/overlords\/","fileInfo":{},"_recaptcha_resp":null,"_recaptcha_error":null,"_comment_error":null},"cat":{"name":"log","url":"\/log\/"},"media":"media\/\/log\/overlords\/","thumb":"media\/\/log\/overlords\/thumb.png","url":"\/log\/overlords"}]}
\ No newline at end of file
index 6c9cf6d308596d8c279aaec56aa26fd5a2837721..4325e40786cb80ab633ee58f2578417ab272a6fd 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,6 +1,5 @@
 <?php
 
-
 require 'lib/init.php';
 
 
@@ -15,10 +14,10 @@ if ($m->is_multiple())
 if ($m->is_single() || $m->is_page() || $m->is_multiple())
     $v->assign('entry', $m->entry);
 
+$v->assign('is_edit', $m->is_edit);
 
 header("Content-Type: {$m->response_mime_type}; charset=UTF-8");
 $v->render( $m->template, $m->response_format );
 
 
 exit;
-
index 885c226f4dd61ac58a85c5fbd87e2c2724d34f6f..fba828c2f5dcfd25b9488da24ec752715ec97c5a 100644 (file)
@@ -1,5 +1,7 @@
 [development]
 dev = true
+edit = true
+
 
 [settings]
 ; general settings
index 145dc7c1bca4367cff7753be6a19e45b182cdbd1..4d8a90dcbaa8abd2dfe5a92fac4a6001f1ce46fa 100644 (file)
@@ -41,7 +41,7 @@ function get_entries( $path = "", $args = array() )
         if (isset($dir_iterator)) {
         foreach ($dir_iterator as $file => $info) {
             if (!$info->isDir() && $info->getFilename() != CONFIG_FILE) {
-                // dot files
+                // skip dot files
                 if (substr($info->getFilename(), 0, 1) == '.') 
                     continue;
                 $entry = parse_entry($info);
@@ -116,6 +116,9 @@ function get_dirs( $path = "", $args = array())
        $dirs = array();
        foreach ($dir_iterator as $dir => $info) {
                if ($info->isDir() && $info->getFilename() != '.' && $info->getFilename() != '..') {
+            // skip dot files
+            if (substr($info->getFilename(), 0, 1) == '.') 
+                continue;
             $d = array();
             $d['url'] = WEB_ROOT . str_replace($path, "",  $info->getRealPath());
             if (!CLEAN_URLS)
@@ -137,7 +140,11 @@ function get_pages()
        $dir_iterator = new DirectoryIterator($path);
        $pages = array();
        foreach($dir_iterator as $page) {
-               if ($page->isDir()) continue;
+
+        // skip folders and dotfiles
+               if ($page->isDir() || substr($page->getFilename(), 0, 1) == '.') 
+            continue;
+
                $e = parse_entry($page, 1);
                $e->is_page = 1;
                $pages[] = $e;
index 761a8c5e6d1003e4c83d604db71cd21d3f017037..a8645063ba5a25a9a51e7606b8b3886e10dfea6d 100644 (file)
@@ -19,7 +19,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST' &&
             fclose($fp);
         }
         if (!file_exists( $_POST['edited_file'] )) {
-            throw new Exception('Error creating tags.json. Permissions?');
+            throw new Exception('Error editing file. Permissions?');
         }
     } catch (Exception $e) {
         echo 'Caught exception: ',  $e->getMessage(), "\n";
index 74f228fedccce2ea058eea125aae52db2adbc14a..b071f3fb1782ac17af118a6e9fc5e133cbd8d9d1 100644 (file)
@@ -45,16 +45,17 @@ define ('MORE_DELIM', $_cfg['more_delim']);
 define ('TITLE_DELIMITER', $_cfg['title_delim']);
 define ('ENTRY_DATE_FORMAT', $_cfg['date_format']);
 define ('DEV', $_cfg['dev']);
+define ('EDIT', $_cfg['edit']);
 $_FILE_IGNORES = $_cfg['file_ignores'];
 
 
 
 
 # recaptcha for comments
-require_once 'recaptchalib.php';
+//require_once 'recaptchalib.php';
 // Get a key from https://www.google.com/recaptcha/admin/create
-$captcha_publickey  = "6Lek-MkSAAAAAAZknQQGSx9DiCqm_wAiFGytc37d";
-$captcha_privatekey = "6Lek-MkSAAAAAK4FAaPKO0Cwp-iHa0OcUaqipee4";
+//$captcha_publickey  = "6Lek-MkSAAAAAAZknQQGSx9DiCqm_wAiFGytc37d";
+//$captcha_privatekey = "6Lek-MkSAAAAAK4FAaPKO0Cwp-iHa0OcUaqipee4";
 
 
 
index ad5c215d522dd8d78197fe3362dbb0c473b1df87..a3c862a4ace4520538d0ab92b6d03b95e5cac507 100644 (file)
@@ -14,10 +14,24 @@ class Model
        var $entry = null;
        var $config = null;
 
+       var $is_edit = false;
 
-       function __construct( $request )
+
+       function __construct( $req )
        {
-               $this->request = $request;
+               $this->request = $req;
+
+               // TODO: clean request to make sure there's no ../'s
+
+               if (EDIT) {
+                       $this->is_edit = strpos($this->request['path'], 'edit/') !== false ? true : false;
+                       $this->request['dirname'] = str_replace('edit/', '', $this->request['dirname']);
+                       $this->request['path'] = str_replace('edit/', '', $this->request['path']);
+                       if ($_SERVER['REQUEST_METHOD'] == 'POST') 
+                               $this->process_edit_post_request();
+               }
+
+
                list($this->response_format, $this->response_mime_type) = parse_format($this->request['extension']);    
                $this->template = 'default.' . $this->response_format . '.tpl';
                $this->parse_request( $this->request );
@@ -27,27 +41,6 @@ class Model
        function parse_request( $request )
        {
 
-/*
-               $dirs = explode('/', $request['path']);
-               switch($dirs[0]) {
-                   # EDITING
-                   case 'edit' : 
-                       include 'edit.php';
-                       break;
-                   # TAG
-                   case 'tag' : 
-                       echo 'tag time.';
-                       exit;
-                       break;
-               }
-
-
-               # edit
-               if (DEV && isset($edit) && $edit) {
-               $this->template = 'edit.html.tpl';
-               }
-
-*/
 
            # if multiple (multiple files in CONTENT dir)
            if ($this->is_multiple()) {
@@ -71,9 +64,11 @@ class Model
                        
                        // post request
                        if ($_SERVER['REQUEST_METHOD'] == 'POST') 
-                               $this->process_post_request($this->entry);
+                               $this->process_post_request( $this->entry );
+
 
                        // prev/next
+                       /*
                        $entries = get_entries( $request['dirname'] );
                        for($i = count($entries)-1; $i>=0; $i--) {
                                if ($this->entry->url == $entries[$i]->url) {
@@ -82,6 +77,7 @@ class Model
                                        break;
                                }
                        }
+                       */
 
                        $this->entry->is_single = true;
                        $this->template = 'single.' . $this->response_format . '.tpl';
@@ -102,29 +98,55 @@ class Model
        }
 
        function process_post_request( &$entry ) {
+
                if (isset($entry->comments)) 
                        $entry->comments->process_post_request();
        }       
 
+       function process_edit_post_request() {
+               if ($this->is_edit && isset($_POST['edited_file_contents'])) {
+                   try {
+                       if (!is_writable( $this->get_filename() )) {
+                           throw new Exception('Error editing file. Permissions?');
+                       }                       
+                       $fp = fopen( $this->get_filename(), 'w');
+                       if ($fp) {
+                           fwrite($fp, $_POST['edited_file_contents']);
+                           fclose($fp);
+                       }
+                   } catch (Exception $e) {
+                       echo 'Caught exception: ',  $e->getMessage(), "\n";
+                   }
+               }
+       }
+
        function has_config()
        {       
-               $conf = join(array( LOCAL_ROOT, CONTENT_DIR, $this->request['path'], CONFIG_FILE ), DIRECTORY_SEPARATOR );
+               $conf = join(array( LOCAL_ROOT, CONTENT_DIR, $this->request['path'], CONFIG_FILE ), '/' );
                return is_file($conf) ? 1 : 0;
        }
 
        function is_multiple()
        {
-               return is_dir(join(array( LOCAL_ROOT, CONTENT_DIR, $this->request['path'] ), DIRECTORY_SEPARATOR )) ? 1 : 0;
+               return is_dir(join(array( LOCAL_ROOT, CONTENT_DIR, $this->request['path'] ), '/' )) ? 1 : 0;
        }
 
        function is_single()
        {
-               return is_file(join(array( LOCAL_ROOT, CONTENT_DIR, $this->request['path'] ), DIRECTORY_SEPARATOR )) ? 1 : 0;
+               return is_file(join(array( LOCAL_ROOT, CONTENT_DIR, $this->request['path'] ), '/' )) ? 1 : 0;
        }
 
        function is_page()
        {
-               $path = rtrim(join(array( LOCAL_ROOT, PAGE_DIR, $this->request['path'] ), DIRECTORY_SEPARATOR ), '/');
+               $path = rtrim(join(array( LOCAL_ROOT, PAGE_DIR, $this->request['path'] ), '/' ), '/');
                return is_file($path) ? 1 : 0;
        }
+
+       function get_filename()
+       {
+               if ($this->is_page())
+                       return rtrim(join(array( LOCAL_ROOT, PAGE_DIR, $this->request['path'] ), '/' ), '/');
+               else 
+                       return rtrim(join(array( LOCAL_ROOT, CONTENT_DIR, $this->request['path'] ), '/' ), '/');
+       }
 }
index 98d20ac37df53d4dad38e846100a0aa55d10fd72..9de6c646988053910979d7550cd633c531cc7c4d 100644 (file)
@@ -12,6 +12,7 @@ class View
        var $response_mime_type = 'text/html';
 
        var $_tpl_vars = array();
+    
 
        function __construct()
        {
@@ -43,9 +44,9 @@ class View
        public function render( $template, $response_format = 'html' )
        {
                extract( $this->_tpl_vars );
-        if (!is_file($this->template_dir . DIRECTORY_SEPARATOR . $template))
-            $template = $this->default_template . '.' . $response_format . '.tpl';
-               include( $this->template_dir . DIRECTORY_SEPARATOR . $template );
+        if (!is_file($this->template_dir.'/'.$template))
+            $template = $this->default_template.'.'.$response_format.'.tpl';
+               include( $this->template_dir.'/'.$template );
        }
 
 
index f821528cd2d7f54d649059073cbc9bf8bda7eb1f..3999a3bcb5ea526ecc501f7988647b7cc88c7213 100644 (file)
@@ -1,33 +1,3 @@
 title = about
 --
-
-#about
-
-quilime is an archive of my experiments and process
-
-this site is built with <a href="http://git.quilime.com/?p=plog.git;a=summary">plog</a>, a static-file `p`roject`log` engine written in PHP.
-
-<!--add <a href="http://quilime.com/.rss" class="rss">.rss</a>-->
-
-@ 1999&mdash;2012 gabriel dunne  
-[www](http://gabrieldunne.com), [email](&#x6d;&#x61;&#x69;&#108;&#x74;&#111;&#x3a;&#x67;&#x64;&#x75;&#x6e;&#110;&#x65;&#x40;&#x71;&#117;&#105;&#x6c;&#x69;&#x6d;&#101;&#x2e;&#x63;&#111;&#x6d;)  
-
-<br />
-
-## also
-[aggregate](http://media.quilime.com/aggregate/)  
-[clmpr](http://clmpr.com/quilime/)  
-
-<br />
-
-## elsewhere
-[@quilime](http://twitter.com/quilime/)  
-[vimeo](http://vimeo.com/quilime/)  
-[github](http://github.com/quilime/)  
-[flickr](http://flickr.com/photos/quilime/)  
-
-<br />
-
-## feeds
-[rss](http://quilime.com/.rss)  
-[feedburner](http://feeds.feedburner.com/quilime)  
+Born, lives, and works in the San Francisco Bay Area
diff --git a/pages/bio b/pages/bio
new file mode 100644 (file)
index 0000000..a0659e0
--- /dev/null
+++ b/pages/bio
@@ -0,0 +1,10 @@
+
+--
+
+
+Born and lives in the San Francisco Bay Area, works internationally.
+
+<!--
+Gabriel Dunne develops artistic and research focused projects based on space, time, perception. Some key elements of his work are the overlap of physical, visual, and sonic perception. The use of light, sound, projection, and structure are prime mediums for his work.
+-->
+
diff --git a/pages/contact b/pages/contact
new file mode 100644 (file)
index 0000000..5b77e3c
--- /dev/null
@@ -0,0 +1,32 @@
+--
+
+
+1242 Market St, FL 2  
+San Francisco, CA USA 94102  
+studio@gabrieldunne.com   
+\+ 1 415 493 8496
+
+<br />
+
+<form>
+
+<p>
+<lable>name</label><br />
+<input type="text" name="name">
+</p>
+
+<p>
+<lable>email</label><br />
+<input type="text" name="email">
+</p>
+
+<p>
+<lable>message</label><br />
+<textarea style="width:250px;height:100px;"></textarea>
+</p>
+
+<p>
+<input type="submit" value="send">
+</p>
+
+</form>
diff --git a/pages/cv b/pages/cv
new file mode 100644 (file)
index 0000000..be097da
--- /dev/null
+++ b/pages/cv
@@ -0,0 +1,191 @@
+title = cv
+--
+
+**edu**    
+2003 B.A. Design | Media Arts, UCLA    
+2001 Pont Aven School of Art, France   
+1999 College of Marin, Architecture
+<br />
+<br />
+
+
+**select exhibition + performance**  
+2012 CCRMA Show. Live Visuals.   
+2012 Creators Project SF, San Francisco. "Audio Shader Toy", Installation (collab).  
+2012 India Art Fair, Delhi, India. Collaboration with Vishal K Dar.
+2011 Sepalcure, Shigeto, Simple & Santa, GAFFTA, San Francisco. Live visuals. <a href="http://www.gaffta.org/2011/03/01/sepalcure-shigeto-simple-santa/">&rarr;</a>    
+2010 Milieux Sonores: Sound and Imaginary Space, GAFFTA, San Francisco. Live A/V performance.  
+2010 Biennial of the Americas, Denver.  Live A/V performance.   
+2010 Prototype, GAFFTA, San Francisco. Installation.  
+2010 Powers of Ten, GAFFTA. Installation.    
+2008 Design and the Elastic Mind, MoMA NYC Permanent Collection. Collab w/Stamen Design.    
+2006 Interferenze: Naturalis Electronica, Valle Caudina, Italy.    
+2006 Japan Media Arts Festival, Tokyo, Japan  
+2006 Festival Sonar, Barcelona, Spain  
+2006 SIGGRAPH, Boston   
+2005 New Wight Gallery MFA Show, UCLA, Los Angeles, CA (collab.)   
+2005 SIGGRAPH, Los Angeles  
+2005 :Output International Design Competition, Amsterdam, Netherlands  
+2005 CiberArt: International Festival of New Technologies, Bilbao, Spain  
+2004 Traffic, New Wight Gallery, UCLA, Los Angeles, CA. Collab w/Scott Hessels.        
+2003 Sur(Face), Design Media Arts EDA, Los Angeles, CA  
+2003 Eyberrations Digital Film Festival, Irvine, CA  
+2002 Melbourne International Film Festival", Melbourne, Australia  
+2002 Experimental Works On Paper, Paris, France  
+2002 Experimental Works On Paper, Rennes, France  
+2002 Jaquez Gallery Collection, Pont Aven, France. Permanent Collection.
+<br />
+<br />
+
+
+
+**residencies / collaborations**    
+2011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Studio Collaboration w/ Studio Vishal K. Dar    
+2009&mdash;2010 Residency, Gray Area Foundation for the Arts
+<br />
+<br />
+
+
+
+
+
+**public collections**  
+New York Museum of Modern Art, NY  
+Jaquez Gallery Collection, Pont Aven, France
+<br />
+<br />
+
+
+
+
+**talks**  
+2010 "Prototype" Resident Artist Symposium, Gray Area, San Francisco  
+2004 Text + Architecture & Writing in Architecture, SCIARC, Los Angeles  
+2003 narr@tive: Digital Storytelling, Hammer Museum, Los Angeles
+<br />
+<br />
+
+
+**teaching/advisory**  
+2012 Film/Code Remix (Youth Program, BAVC, San Francisco), co-teach with Jonathan McIntosh.  1 yr.  
+2011 Creative Code (Youth Program, BAVC, San Francisco), 1 yr.    
+2011 Processing 101 Workshop(Certificate Program, Gray Area, San Francisco), 2 wk  
+2010 Open Source (Youth Program, BAVC, San Francisco), 1 yr.    
+2010 Creative Coding: An Introduction to Processing  (Gray Area, San Francisco), 2 wk  
+2009 Creative Coding (Gray Area, San Francisco), 2 wek    
+2009 Introduction to Processing (Gray Area, San Francisco), weekend    
+2007 Processing (Makers Faire, San Mateo), 2 hr    
+2005 Programming and Design (UCLA student workshops, Los Angeles), 1 semester  
+2004 Maya Workshop Series (UCLA, Los Angeles), 1 semester  
+2003 Typography Workshop Series (UCLA, Los Angeles), 1 day    
+2003 Adobe Software Workshops, Photoshop/Illustrator/After Effects (UCLA, Los Angeles), Lead Instructor, 1 day each  
+2002 Macromedia Design Student Workshops (UCLA, Los Angeles), 1 day
+<br />
+<br />
+
+
+**websites**    
+2011 Duran Duran "All You Need Is Now" http://now.gaffta.org  
+2010 Seaquence http://seaquence.org  
+2007 Motion Theory [link]
+<br />
+<br />
+
+**commercials**    
+Budwieser "Superbowl", Motion Theory  
+Budwieser "The Game", Motion Theory  
+Nike "One", Motion Theory
+<br />
+<br />
+
+
+**shorts**    
+RestFest 2003 Opener, Motion Theory  
+The Mirror
+<br />
+<br />
+
+
+
+**music videos**    
+Beck "Girl", Motion Theory  
+Papa Roach "Getting Away With Murder", Motion Theory
+<br />
+<br />
+
+
+
+**print / tv / radio**  
+Art College Radio, San Francisco  
+MIT Aerospace Annual  
+A'minima #17  
+FOCUS Italia, May Issue  
+Discover Magazine  
+Wired  
+Adult Swim, Cartoon Network  
+Contemporary Art of Science and Technology  
+AD: Architectural Digest  
+HDRI
+<br />
+<br />
+
+
+**awards**  
+Creative Review Best in Show 2005, Beck "Girl"  
+Type Directors Award, Nike "Golf"  
+AIGA, Hewlett Packard "It Consolidates"  
+AICP, Hewlett Packard "Hands"  
+Screen Network Australia Best in Show  
+Shorttakes Film Festival, Best Visual Effects
+<br />
+<br />
+
+
+**academic honors**  
+2002, 2003 UCLA Deans List  
+2001 UCLA Merit Scholarship
+<br />
+<br />
+
+**credentials**  
+Adobe A.C.E. Certified in Photoshop, Illustrator
+<br />
+<br />
+
+
+
+
+
+
+
+
+**professional activity**    
+2012&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obscura Digital, Consultant      
+2010&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bay Area Video Coalition, Youth Instructor   
+2005&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tessellated Group, Designer  
+1999&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Studio Gabriel Dunne, Owner    
+2009&mdash;2010 Gray Area Foundation for the Arts, Studio Director/Resident Artist     
+2007&mdash;2008 Stamen Design, Data Visualization Software Developer   
+2007&mdash;2008 Google, Inc, Data Visualization Software Developer   
+2004&mdash;2006 Motion Theory: Animator, Designer, Software, 
+<br />
+<br />
+
+**commercial & non/profit clients**  
+Ogilvy & Mather  
+Goodby, Silverstein & Partners  
+Mekanism  
+Hewlett Packard  
+Nike     
+Budweiser  
+Cadillac  
+Ogilvy & Mather  
+The Soup  
+Tessellated Group  
+Google  
+YouTube  
+Gray Area Foundation for the Arts  
+Bay Area Video Coalition  
+Duran Duran
+<br />
+<br />
diff --git a/pages/links1 b/pages/links1
new file mode 100644 (file)
index 0000000..6914b61
--- /dev/null
@@ -0,0 +1,29 @@
+title = links
+--
+
++   [quilime.com](http://quilime.com) process blog  
++   [ssherriff.com](http://ssherriff.com) stephanie sherriff
++   [onecm.com](http://onecm.com) ryan alexander
++   [ripevessel.com](http://ripevessel.com) adam roth
++   [jtnimoy.net](http://jtnimoy.net) joshua nimoy
++   [oddsympathy.com](http://oddsympathy.com) daniel massey
++   [carbonworkshop.com](http://carbonworkshop.com) gustavo huber &amp; shelly brown
++   [keithpasko.com](http://keithpasko.com) keith pasko
++   [dabkitsch.com/jml/](http://dabkitsch.com/jml/) jeff lubow
++   [ghost-hack.com](http://ghost-hack.com) michael chang
++   [flight404.com](http://flight404.com) robert hodgin
++   [pohflepp.com](http://pohflepp.com) sascha pohflep
++   [mylinhtrieu.com](http://mylinhtrieu.com) mylinh ttieu nguyen
++   [fredericeyl.de](http://fredericeyl.de) frédéric eyl 
++   [thegreeneyl.com](http://thegreeneyl.com) the green eyl 
++   [universaloscillation.com](http://universaloscillation.com) aaron meyers
++   [aaronkoblin.com](http://aaronkoblin.com) aaron koblin
++   [tom-carden.co.uk](http://tom-carden.co.uk) tom carden
++   [mike.teczno.co](http://mike.teczno.com) michal migurski
++   [davidrager.org](http://davidrager.org) david rager
++   [digitanalog.net](http://digitanalog.net) marc nimoy 
++   [makaga.com](http://makaga.com) matthew gale 
++   [reas.com](http://rea.com/) casey reas  
++   [n-e-r-v-o-u-s.com](http://n-e-r-v-o-u-s.com/) nervous system 
++   [gaffta.org](http://gaffta.org) gray area foundation for the arts (GAFFTA)
++   [bavc.org](http://bavc.org) bay area video coalition (BAVC)
index e27c80fd9d299934a8016f07c878531e2257afab..0a53e14c6f4cea65eaa03a462f2708822ab6e261 100644 (file)
@@ -1,32 +1,10 @@
-<html>
-<head>
-
-    <? $this->include_template('head-inc.html.tpl') ?>
-
-    <title><?=SITE_TITLE?><?=TITLE_DELIMITER?><?=$entry->title?></title>
-
-</head>
-<body>
-
-    <? $this->include_template('nav.html.tpl') ?>
-
-<div id="content" class="edit">
-
+<div class="edit">
     <? if ($entry): ?>
     <? $fileContents = file_get_contents($entry->fileInfo); ?>
-
     <form action="" method="POST">
     <textarea name="edited_file_contents"><?=$fileContents?></textarea>
-    <input type="hidden" name="edited_file" value="<?=$entry->fileInfo->getPath().DIRECTORY_SEPARATOR.$entry->fileInfo->getFilename();?>">
     <input type="button" onClick="window.location = '<?=$entry->url?>'"value="cancel">
     <input type="submit" value="save">
     </form>
-
     <? endif; ?>
-
 </div>
-
-    <? $this->include_template('footer.html.tpl') ?>
-
-</body>
-</html>
index 93876cdf263b791b8deb506419295a594cec3574..af01d55a3fab83e8f82fe03a150f152682445200 100644 (file)
@@ -22,9 +22,7 @@
                endfor;
                ?>
                </span>
-       <?
-       endif;
-       ?>
+       <? endif; ?>
 </div>
 
 <? /*
@@ -54,8 +52,8 @@ if (isset($entry->is_single) && $entry->is_single && $entry->comments_enabled)
 ?>     
 
 
-<? if (DEV) : ?>
-<a href="<?=WEB_ROOT?>edit<?=$entry->cat->url . $entry->filename?>">edit</a>
+<? if (EDIT) : ?>
+<a href="<?=WEB_ROOT?>edit<?=$entry->cat->url.$entry->filename?>">edit</a>
 <? endif; ?>
 
 </div>
index b7c1734f7f89c65bcb0ba06b9b297861b413648b..a57a655621bd69590a19b5ce1551c10112571651 100644 (file)
@@ -1,5 +1,5 @@
 
 <!-- footer -->
-
+<!-- 
 <script src="<?=get_base_dir();?>/js/js.js"></script>
-
+ -->
index d25ffb13114377710ffc4acf8a9f844295387bc2..63ebdfcce3a0e92737c704f27ceca92429d53ffa 100644 (file)
@@ -1,4 +1,3 @@
-
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
 <? /*
@@ -36,16 +35,16 @@ $(document).ready(function() {
 */ ?>
 <link rel="alternate" type="application/rss+xml" title="official quilime RSS Feed" href="<?=get_base_dir();?>/.rss" />
 <link rel="stylesheet" href="<?=get_base_dir();?>/css/style.css" type="text/css">
-<link rel="stylesheet" href="<?=get_base_dir();?>/css/comments.css" type="text/css">
-
-<script type="text/javascript" src="/js/prettify/prettify.js"></script>
-<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
+<!-- <link rel="stylesheet" href="<?=get_base_dir();?>/css/comments.css" type="text/css"> -->
 
+<!-- <script type="text/javascript" src="/js/prettify/prettify.js"></script> -->
+<!-- <link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" /> -->
+<!-- 
 <script>
 window.onload = function() {
     prettyPrint();
 }
 </script>
-
+ -->
 
 
index 1a175c261eba7609127cf853ca28db0252608a7a..e8f9dd832317dfc2db2448dfa32b8f33828e45bf 100644 (file)
@@ -10,6 +10,8 @@
 
     <? $this->include_template('nav.html.tpl') ?>
 
+    <? if ($is_edit) $this->include_template('edit.html.tpl'); ?>
+
        <div id="content" class="single entry">
            <div class="entry">
            <? $this->include_template('entry.html.tpl', array('entry' => $entry, 'single' => true)); ?>