From edb24938dba7d18a12dd0949e6759fddd775dfb7 Mon Sep 17 00:00:00 2001 From: Gabriel Dunne Date: Sun, 2 Sep 2012 17:50:00 -0700 Subject: [PATCH] portfolio updates --- .gitignore | 1 + .htaccess | 11 +- README | 4 +- content/archive/cabspotting | 3 - content/archive/icarus_deadalus | 3 - content/archive/monad | 3 - content/config | 3 + content/log/2010/05/new _blog | 4 - content/log/2010/06/chapter_and_verse | 4 - content/log/2010/11/icosi_gaffta | 17 -- content/log/2011/05/clmpr | 17 -- content/log/2011/05/permenant | 4 - content/news/bavc_2013 | 4 + content/news/config | 12 + content/news/icosi_gaffta | 10 + content/process/clmpr | 10 + content/process/egg | 4 + content/{log/2010/07 => process}/icosi | 4 +- content/{log/2010/07 => process}/icosi2 | 0 .../{log/2010/07 => process}/icosi_biennial | 12 +- content/{log/2010/06 => process}/icosi_rider | 4 +- content/process/permenant | 5 + content/{log/2011/05 => process}/schedule | 0 content/projects/1999/aero | 8 - content/projects/1999/icarus-deadalus | 8 - content/projects/2003/bodyneg | 8 - content/projects/2003/egg | 4 - content/projects/2003/obsession | 5 - content/projects/2008/boat | 25 -- content/{archive => projects}/boat | 0 content/{archive => projects}/bodyneg | 3 +- content/projects/{2007 => }/cabspotting | 5 +- content/projects/obsession | 6 + content/projects/{2006 => }/rattle | 0 content/{log/2010/10 => projects}/seaquence | 4 +- content/projects/{2006 => }/stars | 5 +- content/projects/{2009 => }/synonymovement | 0 css/style.css | 239 +++++++++--------- data/tags.json | 1 + drafts/aero | 7 + {content/archive => drafts}/bay_area_transit | 0 {content/archive => drafts}/cat | 0 {content/projects/2002 => drafts}/celestes | 0 {content/archive => drafts}/cm | 0 drafts/config | 2 + {content/archive => drafts}/cymatic_organ | 3 +- drafts/icarus-deadalus | 8 + {content/archive => drafts}/icosi | 0 {content/projects/2009 => drafts}/mask | 4 +- drafts/monad | 3 + {content/archive => drafts}/paintings | 0 {content/projects/2008 => drafts}/prism | 3 +- {content/archive => drafts}/rattles | 0 {content/archive => drafts}/seashell | 0 {content/archive => drafts}/sos_postcard | 1 + {content/projects/2008 => drafts}/tessellated | 0 index.php | 103 ++++---- lib/data.php | 63 ++++- lib/init.php | 45 ++-- lib/markdown.php | 0 lib/output.php | 23 +- lib/template.php | 31 +-- pages/bio | 149 +---------- pages/contact | 44 ++++ pages/cv | 191 ++++++++++++++ pages/index | 2 - pages/links | 67 ++--- pages/tag | 31 +++ scripts/content | 0 templates/default.html.tpl | 28 +- templates/entry.html.tpl | 51 ++-- templates/entry.news.html.tpl | 8 + templates/head-inc.html.tpl | 3 +- templates/index.html.tpl | 14 +- templates/nav.html.tpl | 38 ++- templates/news.html.tpl | 36 +++ templates/page.html.tpl | 16 +- templates/projects.html copy.tpl | 31 +++ templates/single.html.tpl | 37 +-- templates/tag.html.tpl | 48 ++++ 80 files changed, 902 insertions(+), 648 deletions(-) create mode 100644 .gitignore delete mode 100644 content/archive/cabspotting delete mode 100644 content/archive/icarus_deadalus delete mode 100644 content/archive/monad delete mode 100644 content/log/2010/05/new _blog delete mode 100644 content/log/2010/06/chapter_and_verse delete mode 100644 content/log/2010/11/icosi_gaffta delete mode 100644 content/log/2011/05/clmpr delete mode 100644 content/log/2011/05/permenant create mode 100644 content/news/bavc_2013 create mode 100644 content/news/config create mode 100644 content/news/icosi_gaffta create mode 100644 content/process/clmpr create mode 100644 content/process/egg rename content/{log/2010/07 => process}/icosi (85%) rename content/{log/2010/07 => process}/icosi2 (100%) rename content/{log/2010/07 => process}/icosi_biennial (87%) rename content/{log/2010/06 => process}/icosi_rider (88%) create mode 100644 content/process/permenant rename content/{log/2011/05 => process}/schedule (100%) delete mode 100644 content/projects/1999/aero delete mode 100644 content/projects/1999/icarus-deadalus delete mode 100644 content/projects/2003/bodyneg delete mode 100644 content/projects/2003/egg delete mode 100644 content/projects/2003/obsession delete mode 100644 content/projects/2008/boat rename content/{archive => projects}/boat (100%) rename content/{archive => projects}/bodyneg (87%) rename content/projects/{2007 => }/cabspotting (94%) create mode 100644 content/projects/obsession rename content/projects/{2006 => }/rattle (100%) rename content/{log/2010/10 => projects}/seaquence (74%) rename content/projects/{2006 => }/stars (97%) rename content/projects/{2009 => }/synonymovement (100%) create mode 100644 data/tags.json create mode 100644 drafts/aero rename {content/archive => drafts}/bay_area_transit (100%) rename {content/archive => drafts}/cat (100%) rename {content/projects/2002 => drafts}/celestes (100%) rename {content/archive => drafts}/cm (100%) create mode 100644 drafts/config rename {content/archive => drafts}/cymatic_organ (62%) create mode 100644 drafts/icarus-deadalus rename {content/archive => drafts}/icosi (100%) rename {content/projects/2009 => drafts}/mask (50%) create mode 100644 drafts/monad rename {content/archive => drafts}/paintings (100%) rename {content/projects/2008 => drafts}/prism (55%) rename {content/archive => drafts}/rattles (100%) rename {content/archive => drafts}/seashell (100%) rename {content/archive => drafts}/sos_postcard (98%) rename {content/projects/2008 => drafts}/tessellated (100%) mode change 100755 => 100644 lib/markdown.php create mode 100644 pages/contact create mode 100644 pages/cv delete mode 100644 pages/index create mode 100644 pages/tag mode change 100755 => 100644 scripts/content create mode 100644 templates/entry.news.html.tpl create mode 100644 templates/news.html.tpl create mode 100644 templates/projects.html copy.tpl create mode 100644 templates/tag.html.tpl diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/.htaccess b/.htaccess index bef083f..2790352 100644 --- a/.htaccess +++ b/.htaccess @@ -1,9 +1,6 @@ - - -RewriteEngine On -RewriteBase / -RewriteCond %{REQUEST_FILENAME} !-f -#RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule . index.php [L] + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ index.php?path=$1 [QSA,L] diff --git a/README b/README index 72e0e41..86ab400 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ -Author: +Author: Gabriel Dunne -Description: +Description: PLOG is an CMS engine written for quick and minimal publishing. diff --git a/content/archive/cabspotting b/content/archive/cabspotting deleted file mode 100644 index 6e2eb57..0000000 --- a/content/archive/cabspotting +++ /dev/null @@ -1,3 +0,0 @@ -title = Cabspotting --- -Cabspotting \ No newline at end of file diff --git a/content/archive/icarus_deadalus b/content/archive/icarus_deadalus deleted file mode 100644 index e5f786d..0000000 --- a/content/archive/icarus_deadalus +++ /dev/null @@ -1,3 +0,0 @@ -title = Icarus & Deadalus --- -Icarus & Deadalus \ No newline at end of file diff --git a/content/archive/monad b/content/archive/monad deleted file mode 100644 index 0ff118c..0000000 --- a/content/archive/monad +++ /dev/null @@ -1,3 +0,0 @@ -title = Monad --- -Monadic visualization of the Universe \ No newline at end of file diff --git a/content/config b/content/config index e69de29..5bbeb54 100644 --- a/content/config +++ b/content/config @@ -0,0 +1,3 @@ +title = index +template = index +-- diff --git a/content/log/2010/05/new _blog b/content/log/2010/05/new _blog deleted file mode 100644 index 2f974f5..0000000 --- a/content/log/2010/05/new _blog +++ /dev/null @@ -1,4 +0,0 @@ -title = Process [B]Log -date = 2010-05-29 --- -First post. \ No newline at end of file diff --git a/content/log/2010/06/chapter_and_verse b/content/log/2010/06/chapter_and_verse deleted file mode 100644 index 4ca11e3..0000000 --- a/content/log/2010/06/chapter_and_verse +++ /dev/null @@ -1,4 +0,0 @@ -title = Chapter and Verse -date = 2010-06-01 --- -[Performing](http://www.biennialoftheamericas.org/artists/gabriel-dunne) a new audiovisual project **July 29th** in [Chapter and Verse](http://www.biennialoftheamericas.org/events/month/7/day/29) as part of "Nature of Things", for the Biennial of the Americas in Denver, CO. \ No newline at end of file diff --git a/content/log/2010/11/icosi_gaffta b/content/log/2010/11/icosi_gaffta deleted file mode 100644 index 5e1004e..0000000 --- a/content/log/2010/11/icosi_gaffta +++ /dev/null @@ -1,17 +0,0 @@ -title = ICOSI Performance at Gray Area w/ Jeff Lubow -date = 2010-11-05 --- - - - -Date/Time: 06 Nov 2010 from 7:00 PM to 11:00 PM -Location: Gray Area Foundation for the Arts – 55 Taylor Street, San Francisco -Performances by Gabriel Dunne & Jeff Lubow, and Gregory Zifcak - - -Performances with audiovisual synthesis and projection mapped forms. - -[Event Link](http://www.gaffta.org/2010/11/03/takes-on-sound-space-symposium-performances-this-saturday/) - - - diff --git a/content/log/2011/05/clmpr b/content/log/2011/05/clmpr deleted file mode 100644 index 52a4b3f..0000000 --- a/content/log/2011/05/clmpr +++ /dev/null @@ -1,17 +0,0 @@ -title = clmpr.com -date = may 24 2011 --- - -

clmpr.com

- - - - - -clmpr is a clean, minimal bookmarking site. - -soon: -- tags -- public data endpoints -- group clmping - diff --git a/content/log/2011/05/permenant b/content/log/2011/05/permenant deleted file mode 100644 index a0322b8..0000000 --- a/content/log/2011/05/permenant +++ /dev/null @@ -1,4 +0,0 @@ -date = Tue May 24 22:00:58 2011 --- - - \ No newline at end of file diff --git a/content/news/bavc_2013 b/content/news/bavc_2013 new file mode 100644 index 0000000..e675600 --- /dev/null +++ b/content/news/bavc_2013 @@ -0,0 +1,4 @@ +title = Film/Code remix +-- +Co-teaching a Youth Film/Code Remix class at BAVC, starting in October. +[link](http://bavc.org) diff --git a/content/news/config b/content/news/config new file mode 100644 index 0000000..04b3f84 --- /dev/null +++ b/content/news/config @@ -0,0 +1,12 @@ +title = news +template = news +-- + +
+receive email updates: + +add +remove +
rss +(you will receive confirmation) + diff --git a/content/news/icosi_gaffta b/content/news/icosi_gaffta new file mode 100644 index 0000000..57c988f --- /dev/null +++ b/content/news/icosi_gaffta @@ -0,0 +1,10 @@ +title = ICOSI Performance at Gray Area Foundation for the Arts +date = 2010-11-05 +tags = projection-mapping performance audiovisual +-- +ICOSI Performance at Gray Area Foundation for the Arts +Date/Time: 06 Nov 2010 from 7:00 PM to 11:00 PM +Location: Gray Area Foundation for the Arts – 55 Taylor Street, San Francisco +ICOSI by Gabriel Dunne in collaboration with Jeff Lubow (Audio) +[link](http://www.gaffta.org/2010/11/03/takes-on-sound-space-symposium-performances-this-saturday/) + diff --git a/content/process/clmpr b/content/process/clmpr new file mode 100644 index 0000000..6494709 --- /dev/null +++ b/content/process/clmpr @@ -0,0 +1,10 @@ +title = clmpr.com +date = may 24 2011 +tags = code www opensource +-- + + + + + +clmpr is a minimal open-source bookmarking engine. diff --git a/content/process/egg b/content/process/egg new file mode 100644 index 0000000..7280d7f --- /dev/null +++ b/content/process/egg @@ -0,0 +1,4 @@ +date = 2003-05-01 +-- + +marker, wire. 4" x 2.5" diff --git a/content/log/2010/07/icosi b/content/process/icosi similarity index 85% rename from content/log/2010/07/icosi rename to content/process/icosi index 48f4de4..6186855 100644 --- a/content/log/2010/07/icosi +++ b/content/process/icosi @@ -1,8 +1,8 @@ -tags = fabrication, construction, icosi, installation, design title = icosi fabrication date = 2010-07-01 +tags = fabrication icosi design sculpture mapping -- -Fabrication process for ICOSI projection surface. The form is a section of an icosidodecahedron (scaled on the z-axis by 0.5). +Fabrication process for ICOSI projection surface. The form is a section of an icosidodecahedron (scaled on the z-axis by 0.5). diff --git a/content/log/2010/07/icosi2 b/content/process/icosi2 similarity index 100% rename from content/log/2010/07/icosi2 rename to content/process/icosi2 diff --git a/content/log/2010/07/icosi_biennial b/content/process/icosi_biennial similarity index 87% rename from content/log/2010/07/icosi_biennial rename to content/process/icosi_biennial index fbd41bd..1d877a0 100644 --- a/content/log/2010/07/icosi_biennial +++ b/content/process/icosi_biennial @@ -1,5 +1,5 @@ -title = ICOSI -tags = perf install projection vis aud +title = ICOS Performance @ Biennial of the Americas, CO +tags = performance installation projection visual audio notes = this might need to be split up into a few posts date = 2010-07-29 -- @@ -7,21 +7,21 @@ date = 2010-07-29 -*ICOSI* is an audio/visual sculptural performance which was shown at the Biennial of the Americas, Denver CO, 2010. +*ICOSI* is an audio/visual sculptural performance which was shown at the Biennial of the Americas, Denver CO, Jul 29 2010. audio synthesis created with Ablton Live/Max/MSP, custom software (OPENGL, Processing). Custom surface fabrication dimensions: 230cm x 230 cm (7.9' x 7.9') -The software and audio toolset was developed over three weeks leading up to the performance. The performance dramatically split my focus into two places (music and visuals), which was a juggle that I didn't fully anticipate as I was developing the visual software on one split-screen before the performance. Inspired to continue pursuing interfaces and controllers to overcome the separation of creating audio and visuals simultaneously. +The software and audio toolset was developed over three weeks leading up to the performance. The performance dramatically split my focus into two places (music and visuals), which was a juggle that I didn't fully anticipate as I was developing the visual software on one split-screen before the performance. Inspired to continue pursuing interfaces and controllers to overcome the separation of creating audio and visuals simultaneously. The multiple mediums (sculpture, sound, visual media) of this particular project was fascinating. Each iteration represents a process of my own curiosities in technology, consciousness, spirituality, design, and fabrication. -The piece represents my practice and experiences in regards to my own spiritual growth and experience. Geometrically, the form is inspired by sacred polyhedra that represent forms of transition. The choice of an [icosidodecahedron](http://en.wikipedia.org/wiki/Icosidodecahedron) represents transition of two frequencies, represented by an [icosahedron](http://en.wikipedia.org/wiki/Icosahedron) and its dual polyhedron, a [dodecahedron](http://en.wikipedia.org/wiki/Dodecahedron). +The piece represents my practice and experiences in regards to my own spiritual growth and experience. Geometrically, the form is inspired by sacred polyhedra that represent forms of transition. The choice of an [icosidodecahedron](http://en.wikipedia.org/wiki/Icosidodecahedron) represents transition of two frequencies, represented by an [icosahedron](http://en.wikipedia.org/wiki/Icosahedron) and its dual polyhedron, a [dodecahedron](http://en.wikipedia.org/wiki/Dodecahedron). The form is composed of 7 panels trimmed and scaled from a full icosidodecahedron. The visuals follow the structure of the form nearly explicitly, with the exception of textural elements. The inclusion of the Merkaba/Star Tetrahedron represents an inspiration for the visuals. The Merkaba, a dual spinning pyramid, represents a spiritual light vehicle used by the ancients to transcend to and contact spiritual realms. "Mer" means Light. "Ka" means Spirit. "Ba" means Body. Mer-Ka-Ba means the spirit/body surrounded by counter-rotating fields of light, (wheels within wheels), spirals of energy as in DNA, which transports spirit/body from one dimension to another. [[1]](http://www.crystalinks.com/merkaba.html) -[more photos via flickr →](http://www.flickr.com/photos/quilime/sets/72157624499344281/with/4847387648/) +[more photos via flickr →](http://www.flickr.com/photos/quilime/sets/72157624499344281/with/4847387648/) diff --git a/content/log/2010/06/icosi_rider b/content/process/icosi_rider similarity index 88% rename from content/log/2010/06/icosi_rider rename to content/process/icosi_rider index 14c95dd..6aec4a6 100644 --- a/content/log/2010/06/icosi_rider +++ b/content/process/icosi_rider @@ -3,7 +3,7 @@ date = 2010-06-10 -- Tech rider developed for new project: -[![](/media/projects/icosi/rider_02_t.png)](/media/projects/icosi/rider_02.png)    +[![](/media/projects/icosi/rider_02_t.png)](/media/projects/icosi/rider_02.png)    [![](/media/projects/icosi/rider_01_t.png)](/media/projects/icosi/rider_01.png) -[pdf](http://media.quilime.com/files/projects/icosi/gdunne_rider_diag.pdf) \ No newline at end of file +[pdf](http://media.quilime.com/files/projects/icosi/gdunne_rider_diag.pdf) diff --git a/content/process/permenant b/content/process/permenant new file mode 100644 index 0000000..d1dd04e --- /dev/null +++ b/content/process/permenant @@ -0,0 +1,5 @@ +date = Tue May 24 22:00:58 2011 +hide_title = true +-- + + diff --git a/content/log/2011/05/schedule b/content/process/schedule similarity index 100% rename from content/log/2011/05/schedule rename to content/process/schedule diff --git a/content/projects/1999/aero b/content/projects/1999/aero deleted file mode 100644 index 2949f76..0000000 --- a/content/projects/1999/aero +++ /dev/null @@ -1,8 +0,0 @@ -title = aero -date = 1999 --- - - -6" x 3" x 3", ceramic - -aerodynamic blob vehicle diff --git a/content/projects/1999/icarus-deadalus b/content/projects/1999/icarus-deadalus deleted file mode 100644 index f6bd705..0000000 --- a/content/projects/1999/icarus-deadalus +++ /dev/null @@ -1,8 +0,0 @@ -title = icarus and deadalus -date = nov 1 1999 --- - - -16" x 16" x 4", balsa wood - -The myth of Icarus depicted in a public-space courtyard design. diff --git a/content/projects/2003/bodyneg b/content/projects/2003/bodyneg deleted file mode 100644 index adf03bf..0000000 --- a/content/projects/2003/bodyneg +++ /dev/null @@ -1,8 +0,0 @@ -title = body negative --- - - -
-ink press, 5 wall-mounted panels. 8' x 4' x 2' -
-pont even school of art final exhibition, France diff --git a/content/projects/2003/egg b/content/projects/2003/egg deleted file mode 100644 index 07e7b48..0000000 --- a/content/projects/2003/egg +++ /dev/null @@ -1,4 +0,0 @@ -date = 2003 --- - -marker, wire. 4" x 2.5" \ No newline at end of file diff --git a/content/projects/2003/obsession b/content/projects/2003/obsession deleted file mode 100644 index d1b7fc1..0000000 --- a/content/projects/2003/obsession +++ /dev/null @@ -1,5 +0,0 @@ -title = obsession -date = 2003 --- - -copper wire, masonite. 3.5' x 4.5' diff --git a/content/projects/2008/boat b/content/projects/2008/boat deleted file mode 100644 index 6f7a9f9..0000000 --- a/content/projects/2008/boat +++ /dev/null @@ -1,25 +0,0 @@ -title = boat -data = 2010 --- - - - - - - - - - - - - - - - - - -
-photo timelapse diff --git a/content/archive/boat b/content/projects/boat similarity index 100% rename from content/archive/boat rename to content/projects/boat diff --git a/content/archive/bodyneg b/content/projects/bodyneg similarity index 87% rename from content/archive/bodyneg rename to content/projects/bodyneg index 25d1507..c9d8ddf 100644 --- a/content/archive/bodyneg +++ b/content/projects/bodyneg @@ -1,9 +1,8 @@ title = Bodyneg date = 2002 -tags = print mixed media +tags = print installation thumb = /media/projects/bodyneg/thumb.png --
ink press, 5 wall-mounted panels. 8' x 4' x 2' - diff --git a/content/projects/2007/cabspotting b/content/projects/cabspotting similarity index 94% rename from content/projects/2007/cabspotting rename to content/projects/cabspotting index 813ce60..63d870d 100644 --- a/content/projects/2007/cabspotting +++ b/content/projects/cabspotting @@ -1,6 +1,6 @@ title = cabspotting date = 2009 -tags = cabs stamen whatever blah blah +tags = datavis software stamen -- - @@ -19,7 +18,7 @@ tags = cabs stamen whatever blah blah - + diff --git a/content/projects/obsession b/content/projects/obsession new file mode 100644 index 0000000..0432bb5 --- /dev/null +++ b/content/projects/obsession @@ -0,0 +1,6 @@ +title = obsession +date = 2003 +thumb = /media/projects/obsession/thumb.png +-- + +copper wire, masonite. 3.5' x 4.5' diff --git a/content/projects/2006/rattle b/content/projects/rattle similarity index 100% rename from content/projects/2006/rattle rename to content/projects/rattle diff --git a/content/log/2010/10/seaquence b/content/projects/seaquence similarity index 74% rename from content/log/2010/10/seaquence rename to content/projects/seaquence index 817a144..6293558 100644 --- a/content/log/2010/10/seaquence +++ b/content/projects/seaquence @@ -1,9 +1,9 @@ title = Seaquence -tags = seaquence flash +tags = code audio www notes = this might need to be split up into a few posts date = 2010-10-04 -- Alpha release of [Seaquence: A experimental web-based musical ecosystem](http://seaquence.org). -[http://seaquence.org](http://seaquence.org) \ No newline at end of file +[http://seaquence.org](http://seaquence.org) diff --git a/content/projects/2006/stars b/content/projects/stars similarity index 97% rename from content/projects/2006/stars rename to content/projects/stars index 800862e..10e1259 100644 --- a/content/projects/2006/stars +++ b/content/projects/stars @@ -1,4 +1,5 @@ title = Stars +date = 2009 -- @@ -26,7 +27,7 @@ title = Stars - + @@ -36,4 +37,4 @@ title = Stars - \ No newline at end of file + diff --git a/content/projects/2009/synonymovement b/content/projects/synonymovement similarity index 100% rename from content/projects/2009/synonymovement rename to content/projects/synonymovement diff --git a/css/style.css b/css/style.css index e92bf70..f64757e 100644 --- a/css/style.css +++ b/css/style.css @@ -1,204 +1,195 @@ html, body, table { - color: #555555; - font-family: sans-serif; - font-size: 12px; - line-height: 1.5em; -} - + color: #555555; + font-family: sans-serif; + font-size: 12px; + line-height: 1.5em; } body { - margin: 20px auto; -} + margin: 20px; } a { - border: 0pt none; - color: #000000; -} - -a img { - border: 0pt none; -} - -a.mute { - text-decoration: none ! important; -} - -a:hover, a.mute:hover { - border: medium none; - color: #0000FF; -} + border: 0pt none; + color: #000000; + font-weight:bold; + text-decoration: none; } + a img { + border: 0pt none; } + a.mute { + text-decoration: none ! important; } + a:hover, a.mute:hover { + border: medium none; + color: #0000FF; + text-decoration: underline; } p { - margin: 20px auto; - max-width: 600px; - text-align: left; -} - -p.center { - max-width: none; - text-align: center; + margin: 20px 0; + max-width: 800px; + text-align: left; } + p.center { + max-width: none; + text-align: center; + } .center { - text-align: center; + text-align: center; } -strong { - -} +strong { } h1, h2, h3, h4, h5, h6 { - color: #333; - font-size: 16px; - font-weight: normal; - letter-spacing: 0.08em; -} + color: #333; + font-size:1em; } h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - line-height: 2em; -} + line-height: 2em; } h1 { - margin: 0pt 0pt 3em; -} + margin: 0pt 0pt 3em; } h2 { - margin: 0pt 0pt 0.5em; -} + margin: 0pt 0pt 0.5em; } h3 { - margin: 0pt; -} + margin: 0pt; } ul, li { - list-style-type: none; - margin: 0pt; - padding: 0pt; -} + list-style-type: none; + margin: 0pt; + padding: 0pt; } ol li { - list-style-type: decimal; -} + list-style-type: decimal; } img { - margin-bottom: 0.25em; -} + margin-bottom: 0.25em; } blockquote { - background: none repeat scroll 0pt 0pt #000000; - color: #AAAAAA; - font-family: times; - font-size: 15px; - font-style: italic; - line-height: 1.4em; - margin: 0pt; - max-width: 600px; - padding: 2em 4em; -} + background: none repeat scroll 0pt 0pt #000000; + color: #AAAAAA; + font-family: times; + font-size: 15px; + font-style: italic; + line-height: 1.4em; + margin: 0pt; + max-width: 600px; + padding: 2em 4em; } + + + + + #nav { - font-style:italic; - margin-bottom: 60px; - margin-left: 20px; - color:#999; -} + color:#999; + margin-bottom:6em; + } + #nav ul { + margin:0; + padding:0; } + #nav a { + border: 0pt none; + font-style:normal; + border-radius:1px; + } + #nav a:hover { + text-decoration:none; + } + #nav li { + } + #nav .spacer { + width:1em; + } + -#nav .t { - font-weight: bold; -} -#nav a { - border: 0pt none; - font-style:normal; -} -#nav li { - margin-bottom: 0.2em; -} -#nav li.title { -} #content { - left: 300px; - padding: 0pt 20px; - position: absolute; - top: 20px; - padding-bottom:50px; -} + padding-bottom:50px; } + #content p:first-child { + margin-top: 0pt;} + +.news { -#content p:first-child { - margin-top: 0pt; } +.news .entry { + margin-bottom: 4em; +} +.news .entry .date { + position:relative; + left:-1.25em; } .projects { - } .projects li { - display: inline-block; - margin: 0pt 20px 40px; + display:inline-block; + margin:0 20px 30px 0; + margin-bottom:40px; } -.projects li { - -} .projects li a.thumb { - border: 0pt none; - display: block; - height: 120px; - width: 200px; +border: 0pt none; +display: block; +height: 120px; +width: 200px; } .projects li img { - height: 100%; - width: 100%; +height: 100%; +width: 100%; } .projects li a { - color: #999999; - text-decoration: none; +display:inline-block; } .entry { - margin-bottom: 150px; +margin-bottom: 150px; +display:block; } .entry h2 { - + } .entry .title { - margin-bottom: 20px; + +} + +.entry .metadata { +color:#999; +} +.entry .metadata a { + +} +.entry .metadata .tags li { +display:inline !important; +} +.entry .metadata .tags a { +text-decoration: none; } .footer { - margin-top:50px; +margin-top:50px; } .arrow { - font-weight:bold; +margin-top:1em; +font-weight:bold; +font-size:14px; } .arrow a { - text-decoration:none; +text-decoration:none; } .entry .date { - } -.entry .tags { - color: #444444; - font-style: italic; - margin-top: 10px; -} -.entry .tags li { - display: inline-block; -} .caption { - color: #444444; - font-style: italic; - margin-top: 5px; +margin-top: 5px; } diff --git a/data/tags.json b/data/tags.json new file mode 100644 index 0000000..5fd61db --- /dev/null +++ b/data/tags.json @@ -0,0 +1 @@ +{"tags":{"datavis":1,"software":1,"stamen":1,"print":1,"installation":2,"code":2,"www":2,"opensource":1,"audio":2,"performance":1,"projection":1,"visual":1,"icosi":2,"fabrication":2,"design":1,"sculpture":1,"mapping":1,"timelapse":1,"photography":1}} \ No newline at end of file diff --git a/drafts/aero b/drafts/aero new file mode 100644 index 0000000..ffff74f --- /dev/null +++ b/drafts/aero @@ -0,0 +1,7 @@ +title = aero +date = 1999 +tags = sculpture sketch +-- + + +6" × 3" × 3", ceramic diff --git a/content/archive/bay_area_transit b/drafts/bay_area_transit similarity index 100% rename from content/archive/bay_area_transit rename to drafts/bay_area_transit diff --git a/content/archive/cat b/drafts/cat similarity index 100% rename from content/archive/cat rename to drafts/cat diff --git a/content/projects/2002/celestes b/drafts/celestes similarity index 100% rename from content/projects/2002/celestes rename to drafts/celestes diff --git a/content/archive/cm b/drafts/cm similarity index 100% rename from content/archive/cm rename to drafts/cm diff --git a/drafts/config b/drafts/config new file mode 100644 index 0000000..d798728 --- /dev/null +++ b/drafts/config @@ -0,0 +1,2 @@ +title = projects +template = projects \ No newline at end of file diff --git a/content/archive/cymatic_organ b/drafts/cymatic_organ similarity index 62% rename from content/archive/cymatic_organ rename to drafts/cymatic_organ index 68e8400..bf1b9d1 100644 --- a/content/archive/cymatic_organ +++ b/drafts/cymatic_organ @@ -1,3 +1,4 @@ title = Cymatic Organ -- -Cymatic Organ \ No newline at end of file +Cymatic Organ + diff --git a/drafts/icarus-deadalus b/drafts/icarus-deadalus new file mode 100644 index 0000000..6f2b180 --- /dev/null +++ b/drafts/icarus-deadalus @@ -0,0 +1,8 @@ +title = icarus and deadalus +date = nov 1 1999 +-- + + +16" x 16" x 4", balsa wood + +The myth of Icarus depicted in a public-space courtyard design. diff --git a/content/archive/icosi b/drafts/icosi similarity index 100% rename from content/archive/icosi rename to drafts/icosi diff --git a/content/projects/2009/mask b/drafts/mask similarity index 50% rename from content/projects/2009/mask rename to drafts/mask index e6a4056..943d653 100644 --- a/content/projects/2009/mask +++ b/drafts/mask @@ -1,5 +1,7 @@ title = mask +date = 2009 +tags = painting -- - + graphite on plywood. 12" x 12" diff --git a/drafts/monad b/drafts/monad new file mode 100644 index 0000000..8c4fac6 --- /dev/null +++ b/drafts/monad @@ -0,0 +1,3 @@ +title = Monad +-- +Visualization of the Universal timescale. diff --git a/content/archive/paintings b/drafts/paintings similarity index 100% rename from content/archive/paintings rename to drafts/paintings diff --git a/content/projects/2008/prism b/drafts/prism similarity index 55% rename from content/projects/2008/prism rename to drafts/prism index 6d34e4e..13cae51 100644 --- a/content/projects/2008/prism +++ b/drafts/prism @@ -1,5 +1,6 @@ title = prism +date = 2010 -- - + oil on canvas. 4' x 3' diff --git a/content/archive/rattles b/drafts/rattles similarity index 100% rename from content/archive/rattles rename to drafts/rattles diff --git a/content/archive/seashell b/drafts/seashell similarity index 100% rename from content/archive/seashell rename to drafts/seashell diff --git a/content/archive/sos_postcard b/drafts/sos_postcard similarity index 98% rename from content/archive/sos_postcard rename to drafts/sos_postcard index d56abc4..a31ab6d 100644 --- a/content/archive/sos_postcard +++ b/drafts/sos_postcard @@ -1,3 +1,4 @@ title = SOS Postcard + -- Self Organizing Systems Postcard diff --git a/content/projects/2008/tessellated b/drafts/tessellated similarity index 100% rename from content/projects/2008/tessellated rename to drafts/tessellated diff --git a/index.php b/index.php index 72a0112..7513a92 100644 --- a/index.php +++ b/index.php @@ -1,51 +1,68 @@ response_format = $response_format; - $t->assign('view', isset($_GET['v']) ? $_GET['v'] : null); - - $content_request = LOCAL_ROOT . CONTENT_DIR . $url['dirname'] . '/' . $url['filename']; - $page_request = LOCAL_ROOT . PAGE_DIR . DIRECTORY_SEPARATOR . $url['filename']; - $total = 0; - - # content exists, and is a folder - if (is_dir($content_request)) { - # get config in folder, if exists - if (is_file($content_request . '/' . CONFIG_FILE )) { - $config = parse_entry(new SplFileInfo($content_request . '/' . CONFIG_FILE)); - $template = $config['config']['template'] . '.' . $response_format . '.tpl' ; - } - list($data, $total) = get_entries($url['dirname'] . '/' . $url['filename']); - $t->assign('data', $data); - $t->assign('page_title', preg_replace('{^/|/$}', '', $url['url'])); - } +require_once 'lib/init.php'; - # content exists, and is a single entry - else if (is_file($content_request)) { - $t->assign('data', parse_entry(new SplFileInfo($content_request))); - $t->assign('single', true); - $template = 'single.'.$response_format.'.tpl'; - } +$url = get_url(); +list($response_format, $response_mime_type) = parse_format($url['extension'], 'html'); + +$content_req = LOCAL_ROOT . CONTENT_DIR . DIRECTORY_SEPARATOR . $url['url']; +$page_req = LOCAL_ROOT . PAGE_DIR . DIRECTORY_SEPARATOR . $url['url']; +$total = 0; + + +# setup template +$template = 'default.html.tpl'; +$t = get_template_instance(); +$t->assign('url', $url); - # content exists, and is a page - else if (is_file($page_request)) { - $page = parse_entry(new SplFileInfo($page_request), 1); - $t->assign('data', $page); - $template = $page['config']['template'] ? $page['config']['template'] . '.' . $response_format . '.tpl' : 'page.' . $response_format . '.tpl'; + +# special endpoints +$dirs = explode('/', $url['url']); +# tag +if ($dirs[0] == 'tag') { + $page_req = LOCAL_ROOT . PAGE_DIR . DIRECTORY_SEPARATOR . $dirs[0]; + if (isset($dirs[1])) { + $t->assign('tag', $dirs[1]); } +} + - # 404 - else { - $template = '404.html.tpl'; +# content exists, and is a folder +if (is_dir($content_req)) { + # get config in folder, if exists + if (is_file($content_req . '/' . CONFIG_FILE )) { + $config = parse_entry(new SplFileInfo($content_req . '/' . CONFIG_FILE)); + $template = $config['config']['template'] . '.' . $response_format . '.tpl' ; + $t->assign('data', $config); } + list($entries, $total) = get_entries($url['dirname'] . '/' . $url['filename']); + $t->assign('entries', $entries); + $t->assign('page_title', preg_replace('{^/|/$}', '', $url['url'])); +} + +# content exists, and is a single entry +else if (is_file($content_req)) { + $t->assign('data', parse_entry(new SplFileInfo($content_req))); + $t->assign('single', true); + $template = 'single.'.$response_format.'.tpl'; +} + +# content exists, and is a page +else if (is_file($page_req)) { + $page = parse_entry(new SplFileInfo($page_req), 1); + $t->assign('data', $page); + $template = isset($page['config']['template']) ? $page['config']['template'] . + '.' . $response_format . '.tpl' : 'page.' . $response_format . '.tpl'; +} + +# 404 +else { + $template = '404.html.tpl'; +} - # render - $t->assign('total', $total); - header("Content-Type: {$response_mime_type}; charset=UTF-8"); - $t->render($template); +# render +$t->response_format = $response_format; +$t->assign('view', isset($_GET['v']) ? $_GET['v'] : null); +$t->assign('total', $total); +header("Content-Type: {$response_mime_type}; charset=UTF-8"); +$t->render($template); diff --git a/lib/data.php b/lib/data.php index 9d156d1..b266ac3 100644 --- a/lib/data.php +++ b/lib/data.php @@ -5,13 +5,14 @@ * @param path: the path to search. defaults to the CONTENT_DIR * @param args array */ -function get_entries( $path = "", $args = array()) -{ +function get_entries( $path = "", $args = array() ) +{ $recursive = isset($args['recursive']) ? $args['recursive'] : 1; $order_by = empty($args['order_by']) ? null : $args['order_by']; $order = empty($args['order']) ? SORT_DESC : $args['order']; - $path = LOCAL_ROOT . CONTENT_DIR . $path; - + $tag = empty($args['tag']) ? null : $args['tag']; + $path = LOCAL_ROOT . CONTENT_DIR . DIRECTORY_SEPARATOR . $path; + if ($recursive) { $iterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_PATHNAME); $dir_iterator = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST); @@ -22,10 +23,15 @@ function get_entries( $path = "", $args = array()) $entries = array(); foreach ($dir_iterator as $file => $info) { if (!$info->isDir() && $info->getFilename() != CONFIG_FILE) { - $entries[] = parse_entry($info); + $entry = parse_entry($info); + if (!isset($tag)) { + $entries[] = $entry; + } + else if ($tag && in_array($tag, is_array($entry['tags']) ? $entry['tags'] : array())) { + $entries[] = $entry; + } } } - switch ($order_by) { default : @@ -58,16 +64,49 @@ function get_pages() /** + * get tags + */ +function get_tags($path = "", $args = array() ) +{ + $tags_json = DATA_DIR . '/tags.json'; + + if (DEV || !file_exists($tags_json)) { + $entries = get_entries($path, $args); + $tags = array(); + + foreach($entries[0] as $entry) { + $entry_tags = is_array($entry['tags']) ? $entry['tags'] : array(); + $tags = array_merge($tags, $entry_tags); + } + + $tags = array_count_values($tags); + + try { + $fp = fopen( $tags_json, 'w'); + fwrite($fp, json_encode(array( 'tags' => $tags ))); + fclose($fp); + if (!file_exists( $tags_json)) { + throw new Exception('Error creating tags.json. Permissions?'); + } + } catch (Exception $e) { + echo 'Caught exception: ', $e->getMessage(), "\n"; + } + } + + $json = json_decode(file_get_contents($tags_json)); + return get_object_vars($json->tags); +} + + +/* * returns directories of a folder * @param path the path to search. defaults to the CONTENT_DIR * @param args array */ -function get_dirs( $path = "", $args = array()) +function get_dirs( $path = "", $args = array() ) { $recursive = isset($args['recursive']) ? $args['recursive'] : 1; - $path = LOCAL_ROOT . CONTENT_DIR .'/'. $path; - - + $path = LOCAL_ROOT . CONTENT_DIR . '/' . $path; if ($recursive) { $iterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_PATHNAME); @@ -128,6 +167,8 @@ function parse_entry($fileInfo, $page = 0) $file = array(); $file['config'] = parse_ini_string($config); $file['title'] = isset($file['config']['title']) ? $file['config']['title'] : $fileInfo->getFilename(); + $file['filename'] = $fileInfo->getFilename(); + $file['path'] = $fileInfo->getPath(); $file['config']['date'] = isset($file['config']['date']) ? $file['config']['date'] : null; $file['timestamp'] = $file['config']['date'] ? date('U', strtotime( $file['config']['date'])) : $fileInfo->getCTime(); $file['tags'] = isset($file['config']['tags']) ? explode(" ", $file['config']['tags']) : null; @@ -142,4 +183,4 @@ function parse_entry($fileInfo, $page = 0) $file['url'] = WEB_ROOT . ($page ? '' : substr($file['cat']['url'],1)) . $fileInfo->getFilename(); return $file; -} \ No newline at end of file +} diff --git a/lib/init.php b/lib/init.php index 9021c45..4e16b18 100644 --- a/lib/init.php +++ b/lib/init.php @@ -1,28 +1,31 @@ '); - define ('TITLE_DELIMITER', ': '); - define ('CONFIG_FILE', 'config'); +define ('DATA_DIR', 'data'); +define ('CONTENT_DIR', 'content'); +define ('TEMPLATE_DIR', 'templates'); +define ('PAGE_DIR', 'pages'); +define ('CONFIG_DELIMITER', '--'); +define ('MORE_DELIM', ''); +define ('TITLE_DELIMITER', ': '); +define ('CONFIG_FILE', 'config'); - require_once 'data.php'; - require_once 'output.php'; - require_once 'markdown.php'; - require_once 'template.php'; +define ('DEV', true); - - //error_reporting(E_ALL); - //ini_set("display_errors", 1); - +if (DEV) { + error_reporting(E_ALL); + ini_set("display_errors", 1); +} + +require_once 'data.php'; +require_once 'output.php'; +require_once 'markdown.php'; +require_once 'template.php'; diff --git a/lib/markdown.php b/lib/markdown.php old mode 100755 new mode 100644 diff --git a/lib/output.php b/lib/output.php index add2fbb..c3d5f0a 100644 --- a/lib/output.php +++ b/lib/output.php @@ -13,6 +13,7 @@ function get_template_instance() return $t; } + /** * @param format * @param default format @@ -21,7 +22,7 @@ function parse_format($format, $default) { $types = array('html' => 'text/html', 'text' => 'text/plain', - 'rss' => 'application/rss+xml', + 'rss' => 'application/rss+xml', 'atom' => 'application/atom+xml', 'json' => 'text/json', 'js' => 'application/x-javascript', @@ -37,7 +38,6 @@ function parse_format($format, $default) function paginate( $set ) { - } @@ -96,13 +96,13 @@ function approximate_time($seconds) return 'moments'; case abs($seconds) <= 90 * 60: - return round(abs($seconds) / 60).' minutes'; + return round(abs($seconds) / 60) . ' minutes'; case abs($seconds) <= 36 * 60 * 60: - return round(abs($seconds) / (60 * 60)).' hours'; + return round(abs($seconds) / (60 * 60)) . ' hours'; default: - return round(abs($seconds) / (24 * 60 * 60)).' days'; + return round(abs($seconds) / (24 * 60 * 60)) . ' days'; } } @@ -169,17 +169,18 @@ function get_base_href() function get_url_parts() { - $parts = explode('/', substr($_SERVER['SCRIPT_URL'], strlen(get_base_dir() . '/'))); + $parts = explode('/', substr($_SERVER['SCRIPT_NAME'], strlen(get_base_dir() . '/'))); return $parts[0] ? $parts : 0; } function get_url() { - $path_info = pathinfo($_SERVER['SCRIPT_URL']); - $path_info['url'] = preg_match("/\.\.\//", $_SERVER['SCRIPT_URL']) ? '/' : $_SERVER['SCRIPT_URL']; - $path_info['extension'] = null; - return $path_info; //substr($_SERVER['SCRIPT_URL'], strlen(get_base_dir() . '/')); + $path = isset($_GET['path']) ? $_GET['path'] : '/'; + $path_info = pathinfo($path); + $path_info['url'] = rtrim($path, "/"); + $path_info['extension'] = isset($path_info['extension']) ? $path_info['extension'] : null; + return $path_info; } @@ -195,3 +196,5 @@ function get_url_domain($url) $parsed = parse_url($url); return $parsed['host']; } + + diff --git a/lib/template.php b/lib/template.php index c3f379c..d26bba4 100644 --- a/lib/template.php +++ b/lib/template.php @@ -1,23 +1,20 @@ $val) if ($key != '') @@ -29,26 +26,22 @@ class Template } - public function include_template ($template, $vars = array()) - { + function include_template ($template, $vars = array()) { $this->_tpl_vars = array_merge($this->_tpl_vars, $vars); $this->render($template); } - - public function render( $template ) - { - extract( $this->_tpl_vars ); + function render( $template ) { + extract( $this->_tpl_vars ); if (is_file( $this->template_dir . DIRECTORY_SEPARATOR . $template )) include( $this->template_dir . DIRECTORY_SEPARATOR . $template ); else include( $this->template_dir . DIRECTORY_SEPARATOR . 'default.' . $this->response_format . '.tpl'); } - - - public function page_title($delim) - { + + + function page_title($delim) { return isset($this->_tpl_vars['page_title']) ? $delim . $this->_tpl_vars['page_title'] : ""; } } diff --git a/pages/bio b/pages/bio index 7f191f6..a0659e0 100644 --- a/pages/bio +++ b/pages/bio @@ -1,153 +1,10 @@ -title = bio + -- -**gabriel labov dunne** -(1981, San Francisco) -
-1242 Market Street, FL 2 -San Francisco, CA 94102 -+ 1 415 493 8496 -email -
-
+ +Born and lives in the San Francisco Bay Area, works internationally. - - - -**residencies / collaborations** -2011            Collaboration, Studio Vishal K. Dar -2009—2010 Residency, Gray Area Foundation for the Arts -
- - -**exhibition / performance** -2012 India Art Fair, Delhi, India. Collaboration with Vishal K Dar. -2011 Sepalcure, Shigeto, Simple & Santa, GAFFTA, San Francisco. Live visuals. -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. -
- - -**public collections** -New York Museum of Modern Art, NY -Jaquez Gallery Collection, Pont Aven, France -
- - -**edu** -2003 B.A. Design | Media Arts, UCLA -2001 Pont Aven School of Art, France -1999 College of Marin, Architecture -
- - - -**professional activity** -2010—         Bay Area Video Coalition, NextGen Youth Instructor -2005—         Tessellated Group: Designer -2009—2010 Gray Area Foundation for the Arts: Studio Director -2007—2008 Stamen Design: Designer, Programmer -2007—2008 Google, Inc: Designer, Programmer -2004—2006 Motion Theory: Designer, Programmer, Animator -
-
- - - - -**talks / conferences** -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 -
- -**courses / lectures / workshops** -2011 Processing 101 Workshop(Certificate Program, Gray Area, San Francisco), 2 weeks -2010 Open Source Coding (Youth Program, BAVC, San Francisco), school year -2010 Creative Coding: An Introduction to Processing (Gray Area, San Francisco), 2 weeks -2009 Creative Coding (Gray Area, San Francisco), 2 weeks -2009 Introduction to Processing (Gray Area, San Francisco), weekend -2007 Processing (Makers Faire, San Mateo), 2 hour -2005 Programming and Design (UCLA student workshops, Los Angeles), quarter -2004 Maya Workshop Series (UCLA, Los Angeles), 1 quarters -2003 Typography Workshop Series (UCLA, Los Angeles), 1 day -2003 Adobe Software Workshops, Photoshop/Illustrator/After Effects (UCLA, Los Angeles), 1 day each -2002 Macromedia Design Student Workshops (UCLA, Los Angeles), 1 day -
- -**websites** -2011 Duran Duran "All You Need Is Now" http://now.gaffta.org -2010 Seaquence http://seaquence.org -2007 Motion Theory [link] -
- -**commercials** -Budwieser "Superbowl", Motion Theory -Budwieser "The Game", Motion Theory -Nike "One", Motion Theory -
- -**shorts** -RestFest 2003 Opener, Motion Theory -The Mirror -
- - -**music videos** -Beck "Girl", Motion Theory -Papa Roach "Getting Away With Murder", Motion Theory -
- - -**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 -
- -**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 -
- -**academic honors** -2002, 2003 UCLA Deans List -2001 UCLA Merit Scholarship -
- -**credentials** -Adobe A.C.E. Certified in Photoshop, Illustrator -
diff --git a/pages/contact b/pages/contact new file mode 100644 index 0000000..b2e047b --- /dev/null +++ b/pages/contact @@ -0,0 +1,44 @@ + +-- + + + + + +Gabriel Labov Dunne + +1242 Market Street, FL 2 +San Francisco, CA 94102 + +studio@gabrieldunne.com +www.gabrieldunne.com + ++ 1 415 493 8496 + + +
+ +
+ +

+name
+ +

+ +

+email
+ +

+ +

+message
+ +

+ +

+ +

+ +
diff --git a/pages/cv b/pages/cv new file mode 100644 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 +
+
+ + +**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. +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. +
+
+ + + +**residencies / collaborations** +2011              Studio Collaboration w/ Studio Vishal K. Dar +2009—2010 Residency, Gray Area Foundation for the Arts +
+
+ + + + + +**public collections** +New York Museum of Modern Art, NY +Jaquez Gallery Collection, Pont Aven, France +
+
+ + + + +**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 +
+
+ + +**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 +
+
+ + +**websites** +2011 Duran Duran "All You Need Is Now" http://now.gaffta.org +2010 Seaquence http://seaquence.org +2007 Motion Theory [link] +
+
+ +**commercials** +Budwieser "Superbowl", Motion Theory +Budwieser "The Game", Motion Theory +Nike "One", Motion Theory +
+
+ + +**shorts** +RestFest 2003 Opener, Motion Theory +The Mirror +
+
+ + + +**music videos** +Beck "Girl", Motion Theory +Papa Roach "Getting Away With Murder", Motion Theory +
+
+ + + +**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 +
+
+ + +**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 +
+
+ + +**academic honors** +2002, 2003 UCLA Deans List +2001 UCLA Merit Scholarship +
+
+ +**credentials** +Adobe A.C.E. Certified in Photoshop, Illustrator +
+
+ + + + + + + + +**professional activity** +2012—cur      Obscura Digital, Consultant +2010—cur      Bay Area Video Coalition, Youth Instructor +2005—cur      Tessellated Group, Designer +1999—cur      Studio Gabriel Dunne, Owner +2009—2010 Gray Area Foundation for the Arts, Studio Director/Resident Artist +2007—2008 Stamen Design, Data Visualization Software Developer +2007—2008 Google, Inc, Data Visualization Software Developer +2004—2006 Motion Theory: Animator, Designer, Software, +
+
+ +**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 +
+
diff --git a/pages/index b/pages/index deleted file mode 100644 index eab0d4d..0000000 --- a/pages/index +++ /dev/null @@ -1,2 +0,0 @@ -title = index --- \ No newline at end of file diff --git a/pages/links b/pages/links index d8fcb1b..6914b61 100644 --- a/pages/links +++ b/pages/links @@ -1,44 +1,29 @@ title = links -type = page -- -*elsewhere* -+ [quilime.com](http://quilime.com) - -
-*friends* - -+ stephanie sherriff [ssherriff.com](http://ssherriff.com) -+ ryan alexander [onecm.com](http://onecm.com) -+ adam roth [ripevessel.com](http://ripevessel.com) -+ joshua nimoy [jtnimoy.net](http://jtnimoy.net) -+ daniel massey [oddsympathy.com](http://oddsympathy.com) -+ keith pasko [keithpasko.com](http://keithpasko.com) -+ jeff lubow [dabkitsch.com/jml/](http://dabkitsch.com/jml/) -+ michael chang [ghost-hack.com](http://ghost-hack.com) -+ robert hodgin [flight404.com](http://flight404.com) -+ carbon workshop (gustavo huber + shelly brown) [carbonworkshop.com](http://carbonworkshop.com) -+ sascha pohflep [pohflepp.com](http://pohflepp.com) -+ mylinh trieu [mylinhtrieu.com](http://mylinhtrieu.com) -+ aaron meyers [universaloscillation.com](http://universaloscillation.com) -+ tom carden [tom-carden.co.uk](http://tom-carden.co.uk) -+ michal migurski [mike.teczno.co](http://mike.teczno.com) -+ david rager [davidrager.org](http://davidrager.org) -+ marc nimoy [digitanalog.net](http://digitanalog.net) -+ matthew gale [makaga.com](http://makaga.com) -+ frédéric eyl [fredericeyl.de](http://fredericeyl.de) -+ the green eyl [thegreeneyl.com](http://thegreeneyl.com) - - -
-*respect* - -+ nervous system [http://n-e-r-v-o-u-s.com/](http://n-e-r-v-o-u-s.com/) - - - -
-*places* - -+ gray area foundation for the arts [gaffta.org](http://gaffta.org) -+ bay area video coalition [bavc.org](http://bavc.org) \ No newline at end of file ++ [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 & 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) diff --git a/pages/tag b/pages/tag new file mode 100644 index 0000000..23f9a51 --- /dev/null +++ b/pages/tag @@ -0,0 +1,31 @@ +title = tags +-- + + + + + $tag)); ?> + +more →

'; +?> + +
+include_template('entry.html.tpl', array('entry' => $entry)); ?> +
+ + + + + + + + + diff --git a/scripts/content b/scripts/content old mode 100755 new mode 100644 diff --git a/templates/default.html.tpl b/templates/default.html.tpl index 51ffbe1..d5dfa37 100644 --- a/templates/default.html.tpl +++ b/templates/default.html.tpl @@ -1,28 +1,28 @@ - + include_template('head-inc.html.tpl') ?> - + <?=SITE_TITLE?><?=$this->page_title(TITLE_DELIMITER);?> - + - + include_template('nav.html.tpl') ?> - +
- - - +
+ more →

'; - - $this->include_template('entry.html.tpl', array('data' => $entry)); - + + $this->include_template('entry.html.tpl', array('entry' => $entry)); ?> - - +
+ +
include_template('footer.html.tpl') ?> diff --git a/templates/entry.html.tpl b/templates/entry.html.tpl index 38114f2..8454017 100644 --- a/templates/entry.html.tpl +++ b/templates/entry.html.tpl @@ -1,22 +1,37 @@ -
-
- ' . $data['content']); ?> -
+ +

+ -
"> - -
- - +
+ ' . $entry['content']); ?> +
+ + + +
+ +
+ +
"> + +
+ diff --git a/templates/entry.news.html.tpl b/templates/entry.news.html.tpl new file mode 100644 index 0000000..dcfb779 --- /dev/null +++ b/templates/entry.news.html.tpl @@ -0,0 +1,8 @@ + + + +
+ ' . $data['content']); ?> +
diff --git a/templates/head-inc.html.tpl b/templates/head-inc.html.tpl index d40b6f2..cba64db 100644 --- a/templates/head-inc.html.tpl +++ b/templates/head-inc.html.tpl @@ -7,7 +7,8 @@ \ No newline at end of file + diff --git a/templates/index.html.tpl b/templates/index.html.tpl index 4de5f3c..14af678 100644 --- a/templates/index.html.tpl +++ b/templates/index.html.tpl @@ -1,16 +1,18 @@ - + include_template('head-inc.html.tpl') ?> - + <?=SITE_TITLE?> - + - + include_template('nav.html.tpl') ?> - -
>>> Hello World
+ +
+ +
include_template('footer.html.tpl') ?> diff --git a/templates/nav.html.tpl b/templates/nav.html.tpl index baf9f5b..ce12401 100644 --- a/templates/nav.html.tpl +++ b/templates/nav.html.tpl @@ -1,12 +1,28 @@ \ No newline at end of file + + diff --git a/templates/news.html.tpl b/templates/news.html.tpl new file mode 100644 index 0000000..a6d5d31 --- /dev/null +++ b/templates/news.html.tpl @@ -0,0 +1,36 @@ + + + + include_template('head-inc.html.tpl') ?> + + <?=SITE_TITLE?><?=$this->page_title(TITLE_DELIMITER);?> + + + + + include_template('nav.html.tpl') ?> + +
+ + ' . $data['content']); ?> + +
+
+
+ + +
+ more →

'; + $this->include_template('entry.news.html.tpl', array('data' => $entry)); + ?> +
+ + +
+ + include_template('footer.html.tpl') ?> + + + diff --git a/templates/page.html.tpl b/templates/page.html.tpl index b46a1fd..fcf54a5 100644 --- a/templates/page.html.tpl +++ b/templates/page.html.tpl @@ -1,19 +1,19 @@ - + include_template('head-inc.html.tpl') ?> - + <?=SITE_TITLE?><?=TITLE_DELIMITER?> <?=$data['title']?> - + - + include_template('nav.html.tpl') ?> - +
- - - + + ' . $data['content']); ?> +
include_template('footer.html.tpl') ?> diff --git a/templates/projects.html copy.tpl b/templates/projects.html copy.tpl new file mode 100644 index 0000000..d8bb648 --- /dev/null +++ b/templates/projects.html copy.tpl @@ -0,0 +1,31 @@ + + + + include_template('head-inc.html.tpl') ?> + + <?=SITE_TITLE?>: <?=$page_title?> + + + + + include_template('nav.html.tpl') ?> + +
+ + + +
+ + include_template('footer.html.tpl') ?> + + + diff --git a/templates/single.html.tpl b/templates/single.html.tpl index 7f2ffc1..90269bb 100644 --- a/templates/single.html.tpl +++ b/templates/single.html.tpl @@ -1,40 +1,19 @@ - + include_template('head-inc.html.tpl') ?> - + <?=$data['title'];?> - + - - include_template('nav.html.tpl') ?> - -
-
- ' . $data['content']); ?> -
- -
- -
- - - - + include_template('nav.html.tpl') ?> +
+
+ include_template('entry.html.tpl', array('data' => $data, 'single' => true)); ?> +
include_template('footer.html.tpl') ?> diff --git a/templates/tag.html.tpl b/templates/tag.html.tpl new file mode 100644 index 0000000..cf0afe8 --- /dev/null +++ b/templates/tag.html.tpl @@ -0,0 +1,48 @@ + + + + include_template('head-inc.html.tpl') ?> + + <?=SITE_TITLE?><?=TITLE_DELIMITER?> <?=$data['title']?> + + + + + include_template('nav.html.tpl') ?> + +
+ + + + $tag)); ?> + + more →

'; + ?> + +
+ include_template('entry.html.tpl', array('data' => $entry)); ?> +
+ + + + + + +
    + + $count) : ?> +
  • ×
  • + +
+ + + +
+ + include_template('footer.html.tpl') ?> + + + -- 2.34.1