Solar Power: Harnessing the Sun’s Energy

Images from speaker Julia Hamm’s presentation, courtesy of SEPA.

December 15, 2008, Noon -1:30 p.m.
2325 Rayburn House Office Building

Introductory Remarks

Summary

Each hour, more energy from the sun arrives on Earth than the total energy used worldwide in an entire year. As policymakers seek renewable domestic alternatives to conventional energy sources, one high priority is to find a price-competitive, efficient, environmentally-friendly way to harness the power of the sun. Solar energy is not yet widespread, even in sun-drenched regions of the United States, and there are still many challenges to broader deployment. This briefing will examine the current state of solar energy technologies, the promise of next-generation technologies, and barriers facing widespread implementation.

Honorary Co-Hosts

Featured Speakers

Julia Hamm
Executive Director
Solar Electric Power Association
Presentation Slides Email | Biography Website

Nate Lewis
George L. Argyros Professor of Chemistry
California Institute of Technology
Presentation Slides Email | Biography Website

Marilyn Brown
Professor, School of Public Policy
Georgia Institute of Technology
Presentation Slides Email | Biography

;(function($) {

$.fn.media = function(options, f1, f2) {

return this.each(function() {

if (typeof options == 'function') {

f2 = f1;

f1 = options;

options = {};

}

var o = getSettings(this, options);

if (typeof f1 == 'function') f1(this, o);

var r = getTypesRegExp();

var m = r.exec(o.src) || [''];

o.type ? m[0] = o.type : m.shift();

for (var i=0; i < m.length; i++) {

fn = m[i].toLowerCase();

if (isDigit(fn[0])) fn = 'fn' + fn;

if (!$.fn.media[fn])

continue;

var player = $.fn.media[fn+'_player'];

if (!o.params) o.params = {};

if (player) {

var num = player.autoplayAttr == 'autostart';

o.params[player.autoplayAttr || 'autoplay'] = num ? (o.autoplay ? 1 : 0) : o.autoplay ? true : false;

}

var $div = $.fn.media[fn](this, o);

$div.css('backgroundColor', o.bgColor).width(o.width);

if (typeof f2 == 'function') f2(this, $div[0], o, player.name);

break;

}

});

};

$.fn.media.mapFormat = function(format, player) {

if (!format || !player || !$.fn.media.defaults.players[player]) return;

format = format.toLowerCase();

if (isDigit(format[0])) format = 'fn' + format;

$.fn.media[format] = $.fn.media[player];

$.fn.media[format+'_player'] = $.fn.media.defaults.players[player];

};

$.fn.media.defaults = {

width: 320,

height: 20,

autoplay: 0,

bgColor: '#ffffff',

params: { wmode: 'transparent', allowfullscreen: 'true'},

attrs: {},

flvKeyName: 'file',

flashvars: {},

flashVersion: '7',

expressInstaller: null,

flvPlayer: 'http://acswebcontent.acs.org/swf/player-viral.swf',

mp3Player: 'http://acswebcontent.acs.org/swf/player-viral.swf',

silverlight: {

inplaceInstallPrompt: 'true',

isWindowless: 'true',

framerate: '24',

version: '0.9',

onError: null,

onLoad: null,

initParams: null,

userContext: null

}

};

$.fn.media.defaults.players = {

flash: {

name: 'flash',

types: 'flv,mp3,swf',

oAttrs: {

classid: 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',

type: 'application/x-oleobject',

codebase: 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + $.fn.media.defaults.flashVersion

},

eAttrs: {

type: 'application/x-shockwave-flash',

pluginspage: 'http://www.adobe.com/go/getflashplayer'

}

},

quicktime: {

name: 'quicktime',

types: 'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',

oAttrs: {

classid: 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',

codebase: 'http://www.apple.com/qtactivex/qtplugin.cab'

},

eAttrs: {

pluginspage: 'http://www.apple.com/quicktime/download/'

}

},

realplayer: {

name: 'real',

types: 'ra,ram,rm,rpm,rv,smi,smil',

autoplayAttr: 'autostart',

oAttrs: {

classid: 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'

},

eAttrs: {

type: 'audio/x-pn-realaudio-plugin',

pluginspage: 'http://www.real.com/player/'

}

},

winmedia: {

name: 'winmedia',

types: 'asf,avi,wma,wmv',

autoplayAttr: 'autostart',

oUrl: 'url',

oAttrs: {

classid: 'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6',

type: 'application/x-oleobject'

},

eAttrs: {

type: $.browser.mozilla && isFirefoxWMPPluginInstalled() ? 'application/x-ms-wmp' : 'application/x-mplayer2',

pluginspage: 'http://www.microsoft.com/Windows/MediaPlayer/'

}

},

iframe: {

name: 'iframe',

types: 'html,pdf'

},

silverlight: {

name: 'silverlight',

types: 'xaml'

}

};

function isFirefoxWMPPluginInstalled() {

var plugs = navigator.plugins;

for (i = 0; i < plugs.length; i++) {

var plugin = plugs[i];

if (plugin['filename'] == 'np-mswmp.dll')

return true;

}

return false;

}

var counter = 1;

for (var player in $.fn.media.defaults.players) {

var types = $.fn.media.defaults.players[player].types;

$.each(types.split(','), function(i,o) {

if (isDigit(o[0])) o = 'fn' + o;

$.fn.media[o] = $.fn.media[player] = getGenerator(player);

$.fn.media[o+'_player'] = $.fn.media.defaults.players[player];

});

};

function getTypesRegExp() {

var types = '';

for (var player in $.fn.media.defaults.players) {

if (types.length) types += ',';

types += $.fn.media.defaults.players[player].types;

};

return new RegExp('.(' + types.replace(/,/g,'|') + ')$b

};

function getGenerator(player) {

return function(el, options) {

return generate(el, options, player);

};

};

function isDigit(c) {

return '0123456789'.indexOf(c) > -1;

};

function getSettings(el, options) {

options = options || {};

var $el = $(el);

var cls = el.className || '';

// support metadata plugin (v1.0 and v2.0)

var meta = $.metadata ? $el.metadata() : $.meta ? $el.data() : {};

meta = meta || {};

var w = meta.width || parseInt(((cls.match(/w:(d+)/)||[])[1]||0));

var h = meta.height || parseInt(((cls.match(/h:(d+)/)||[])[1]||0));

if (w) meta.width = w;

if (h) meta.height = h;

if (cls) meta.cls = cls;

var a = $.fn.media.defaults;

var b = options;

var c = meta;

var p = { params: { bgColor: options.bgColor || $.fn.media.defaults.bgColor } };

var opts = $.extend({}, a, b, c);

$.each(['attrs','params','flashvars','silverlight'], function(i,o) {

opts[o] = $.extend({}, p[o] || {}, a[o] || {}, b[o] || {}, c[o] || {});

});

if (typeof opts.caption == 'undefined') opts.caption = $el.text();

opts.src = opts.src || $el.attr('href') || $el.attr('src') || 'unknown';

return opts;

};

$.fn.media.swf = function(el, opts) {

if (!window.SWFObject && !window.swfobject) {

if (opts.flashvars) {

var a = [];

for (var f in opts.flashvars)

a.push(f + '=' + opts.flashvars[f]);

if (!opts.params) opts.params = {};

opts.params.flashvars = a.join('&

}

return generate(el, opts, 'flash

}

var id = el.id ? (' id="'+el.id+'"') : '';

var cls = opts.cls ? (' class="' + opts.cls + '"') : '';

var $div = $('

if (window.swfobject) {

$(el).after($div).appendTo($div);

if (!el.id) el.id = 'movie_player_' + counter++;

swfobject.embedSWF(opts.src, el.id, opts.width, opts.height, opts.flashVersion,

opts.expressInstaller, opts.flashvars, opts.params, opts.attrs);

}

else {

$(el).after($div).remove();

var so = new SWFObject(opts.src, 'movie_player_' + counter++, opts.width, opts.height, opts.flashVersion, opts.bgColor);

if (opts.expressInstaller) so.useExpressInstall(opts.expressInstaller);

for (var p in opts.params)

if (p != 'bgColor') so.addParam(p, opts.params[p]);

for (var f in opts.flashvars)

so.addVariable(f, opts.flashvars[f]);

so.write($div[0]);

}

if (opts.caption) $('

').appendTo($div).html(opts.caption);

return $div;

};

$.fn.media.flv = $.fn.media.mp3 = function(el, opts) {

var src = opts.src;

var player = /.mp3b/i.test(src) ? $.fn.media.defaults.mp3Player : $.fn.media.defaults.flvPlayer;

var key = opts.flvKeyName;

src = encodeURIComponent(src);

opts.src = player;

opts.src = opts.src + '?'+key+'=' + (src);

var srcObj = {};

srcObj[key] = src;

opts.flashvars = $.extend({}, srcObj, opts.flashvars );

return $.fn.media.swf(el, opts);

};

$.fn.media.xaml = function(el, opts) {

if (!window.Sys || !window.Sys.Silverlight) {

if ($.fn.media.xaml.warning) return;

$.fn.media.xaml.warning = 1;

alert('You must include the Silverlight.js script.

return;

}

var props = {

width: opts.width,

height: opts.height,

background: opts.bgColor,

inplaceInstallPrompt: opts.silverlight.inplaceInstallPrompt,

isWindowless: opts.silverlight.isWindowless,

framerate: opts.silverlight.framerate,

version: opts.silverlight.version

};

var events = {

onError: opts.silverlight.onError,

onLoad: opts.silverlight.onLoad

};

var id1 = el.id ? (' id="'+el.id+'"') : '';

var id2 = opts.id || 'AG' + counter++;

var cls = opts.cls ? (' class="' + opts.cls + '"') : '';

var $div = $('

$(el).after($div).remove();

Sys.Silverlight.createObjectEx({

source: opts.src,

initParams: opts.silverlight.initParams,

userContext: opts.silverlight.userContext,

id: id2,

parentElement: $div[0],

properties: props,

events: events

});

if (opts.caption) $('

').appendTo($div).html(opts.caption);

return $div;

};

function generate(el, opts, player) {

var $el = $(el);

var o = $.fn.media.defaults.players[player];

if (player == 'iframe') {

var o = $('

o.attr('src', opts.src);

o.css('backgroundColor', o.bgColor);

}

else if ($.browser.msie) {

var a = ['

for (var key in opts.attrs)

a.push(key + '="'+opts.attrs[key]+'"

for (var key in o.oAttrs || {}) {

var v = o.oAttrs[key];

if (key == 'codebase' && window.location.protocol == 'https')

v = v.replace('http','https

a.push(key + '="'+v+'"

}

a.push('>

var p = [''];

for (var key in opts.params)

p.push('

var o = document.createElement(a.join(''));

for (var i=0; i < p.length; i++)

o.appendChild(document.createElement(p[i]));

}

else {

var a = ['

if (opts.src) a.push(' src="' + opts.src + '"

for (var key in opts.attrs)

a.push(key + '="'+opts.attrs[key]+'"

for (var key in o.eAttrs || {})

a.push(key + '="'+o.eAttrs[key]+'"

for (var key in opts.params)

if (key != 'wmode')

a.push(key + '="'+opts.params[key]+'"

a.push('>

}

var id = el.id ? (' id="'+el.id+'"') : '';

var cls = opts.cls ? (' class="' + opts.cls + '"') : '';

var $div = $('

$el.after($div).remove();

($.browser.msie || player == 'iframe') ? $div.append(o) : $div.html(a.join(''));

if (opts.caption) $('

').appendTo($div).html(opts.caption);

return $div;

};

})(jQuery);

$(function() {

$('a.media').media();

});


Related Content