<xmp><!-- <body><!--'"</title></head>--> <script type="text/javascript"> //OwnerIQ var __oiq_pct = 50; if( __oiq_pct>=100 || Math.floor(Math.random()*100/(100-__oiq_pct)) > 0 ) { var _oiqq = _oiqq || []; _oiqq.push(['oiq_addPageBrand','Lycos']); _oiqq.push(['oiq_addPageCat','Internet > Websites']); _oiqq.push(['oiq_addPageLifecycle','Intend']); _oiqq.push(['oiq_doTag']); (function() { var oiq = document.createElement('script'); oiq.type = 'text/javascript'; oiq.async = true; oiq.src = document.location.protocol + '//px.owneriq.net/stas/s/lycosn.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(oiq, s); })(); } //Google Analytics var _gaq = _gaq || []; _gaq.push(['_setAccount','UA-21402695-19']); _gaq.push(['_setDomainName','tripod.com']); _gaq.push(['_setCustomVar',1,'member_name','turnspin',3]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); //Lycos Init function getReferrer() { var all= this.document.cookie; if (all== '') return false; var cookie_name = 'REFERRER='; var start = all.lastIndexOf(cookie_name); if (start == -1) return false; start += cookie_name.length; var end = all.indexOf(';', start); if (end == -1) end = all.length; return all.substring(start, end); } function getQuery() { var rfr = getReferrer(); if (rfr == '') return false; var q = extractQuery(rfr, 'yahoo.com', 'p='); if (q) return q; q = extractQuery(rfr, '', 'q='); return q ? q : ""; } function extractQuery(full, site, q_param) { var start = full.lastIndexOf(site); if (start == -1) return false; start = full.lastIndexOf(q_param); if (start == -1) return false; start += q_param.length; var end = full.indexOf('&', start); if (end == -1) end = full.length; return unescape(full.substring(start, end)).split(" ").join("+"); } function generateHref(atag, template){ atag.href=template.replace('_MYURL_', window.location.href.replace('http://', '')).replace('_MYTITLE_','Check%20out%20this%20Tripod%20Member%20site!'); } var lycos_ad = Array(); var lycos_onload_timer; var cm_role = "live"; var cm_host = "tripod.lycos.com"; var cm_taxid = "/memberembedded"; var tripod_member_name = "turnspin"; var tripod_member_page = "turnspin/camsnip/camsnip_faq.html"; var tripod_ratings_hash = "1709496299:e4b2e76eed104e2a80b57756b9e667aa"; var lycos_ad_category = null; var lycos_ad_remote_addr = ""; var lycos_ad_www_server = "www.tripod.lycos.com"; var lycos_ad_track_small = ""; var lycos_ad_track_served = ""; var lycos_search_query = getQuery(); </script> <script type="text/javascript" src="https://scripts.lycos.com/catman/init.js"></script> <script type='text/javascript'> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; (function() { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); </script> <script type='text/javascript'> googletag.cmd.push(function() { googletag.defineSlot('/95963596/TRI_300X250_dfp', [300, 250], 'div-gpt-ad-1450204159126-0').addService(googletag.pubads()); googletag.defineSlot('/95963596/TRI_above_728x90_dfp', [728, 90], 'div-gpt-ad-1450204159126-1').addService(googletag.pubads()); googletag.defineSlot('/95963596/TRI_below_728x90_dfp', [728, 90], 'div-gpt-ad-1450204159126-2').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> <script type="text/javascript"> (function(isV) { if( !isV ) { return; } var adMgr = new AdManager(); var lycos_prod_set = adMgr.chooseProductSet(); var slots = ["leaderboard", "leaderboard2", "toolbar_image", "toolbar_text", "smallbox", "top_promo", "footer2", "slider"]; var adCat = this.lycos_ad_category; adMgr.setForcedParam('page', (adCat && adCat.dmoz) ? adCat.dmoz : 'member'); if (this.lycos_search_query) { adMgr.setForcedParam("keyword", this.lycos_search_query); } else if(adCat && adCat.find_what) { adMgr.setForcedParam('keyword', adCat.find_what); } for (var s in slots) { var slot = slots[s]; if (adMgr.isSlotAvailable(slot)) { this.lycos_ad[slot] = adMgr.getSlot(slot); } } adMgr.renderHeader(); adMgr.renderFooter(); }((function() { var w = 0, h = 0, minimumThreshold = 300; if (top == self) { return true; } if (typeof(window.innerWidth) == 'number' ) { w = window.innerWidth; h = window.innerHeight; } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { w = document.documentElement.clientWidth; h = document.documentElement.clientHeight; } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { w = document.body.clientWidth; h = document.body.clientHeight; } return ((w > minimumThreshold) && (h > minimumThreshold)); }()))); window.onload = function() { var f = document.getElementById("FooterAd"); var b = document.getElementsByTagName("body")[0]; b.appendChild(f); f.style.display = "block"; document.getElementById('lycosFooterAdiFrame').src = '/adm/ad/footerAd.iframe.html'; // DOM Inj Ad (function(isTrellix) { var e = document.createElement('iframe'); e.style.border = '0'; e.style.margin = 0; e.style.display = 'block'; e.style.cssFloat = 'right'; e.style.height = '254px'; e.style.overflow = 'hidden'; e.style.padding = 0; e.style.width = '300px'; var isBlokedByDomain = function( href ) { var blockedDomains = [ "ananyaporn13000.tripod.com", "xxxpornxxx.tripod.com" ]; var flag = false; for( var i=0; i<blockedDomains.length; i++ ) { if( href.search( blockedDomains[ i ] ) >= 0 ) { flag = true; } } return flag; } var getMetaContent = function( metaName ) { var metas = document.getElementsByTagName('meta'); for (i=0; i<metas.length; i++) { if( metas[i].getAttribute("name") == metaName ) { return metas[i].getAttribute("content"); } } return false; } var getCommentNodes = function(regexPattern) { var nodes = {}; var nodesA = []; var preferredNodesList = ['a', 'c', 'b']; (function getNodesThatHaveComments(n, pattern) { if (n.hasChildNodes()) { if (n.tagName === 'IFRAME') { return false; } for (var i = 0; i < n.childNodes.length; i++) { if ((n.childNodes[i].nodeType === 8) && (pattern.test(n.childNodes[i].nodeValue))) { var areaName = pattern.exec(n.childNodes[i].nodeValue)[1]; nodes[areaName] = n; } else if (n.childNodes[i].nodeType === 1) { getNodesThatHaveComments(n.childNodes[i], pattern); } } } }(document.body, regexPattern)); for (var i in preferredNodesList) { if (nodes[preferredNodesList[i]]) { if( isTrellix && nodes[preferredNodesList[i]].parentNode.parentNode.parentNode.parentNode ) { nodesA.push(nodes[preferredNodesList[i]].parentNode.parentNode.parentNode.parentNode); } else { nodesA.push( nodes[preferredNodesList[i]] ); } } } return nodesA; } var properNode = null; var areaNodes = getCommentNodes( new RegExp( '^area Type="area_(\\w+)"' ) ); for (var i = 0; i < areaNodes.length; i++) { var a = parseInt(getComputedStyle(areaNodes[i]).width); if ((a >= 300) && (a <= 400)) { properNode = areaNodes[i]; break; } } var propertyName = getMetaContent("property") || false; if( isTrellix && (properNode) ) { e.src = '/adm/ad/injectAd.iframe.html'; properNode.insertBefore(e, properNode.firstChild); } else if( isTrellix && !( properNode ) ) // Slap the ad eventhought there is no alocated slot { e.src = '/adm/ad/injectAd.iframe.html'; e.style.cssFloat = 'none'; var cdiv = document.createElement('div'); cdiv.style = "width:300px;margin:10px auto;"; cdiv.appendChild( e ); b.insertBefore(cdiv, b.lastChild); } else if( !isBlokedByDomain( location.href ) ) { var injF = document.createElement('iframe'); injF.style.border = '0'; injF.style.margin = 0; injF.style.display = 'block'; injF.style.cssFloat = 'none'; injF.style.height = '254px'; injF.style.overflow = 'hidden'; injF.style.padding = 0; injF.style.width = '300px'; injF.src = '/adm/ad/injectAd.iframe.html'; if( b && ( !isTrellix || ( typeof isTrellix == "undefined" ) ) ) // All other tripod props { var cdiv = document.createElement('div'); cdiv.style = "width:300px;margin:10px auto;"; cdiv.appendChild( injF ); b.insertBefore(cdiv, b.lastChild); } } }( document.isTrellix )); } </script> <div id="tb_container" style="background:#DFDCCF; border-bottom:1px solid #393939; position:relative; z-index:999999999!important"> <!--form name="search" onSubmit="return searchit()" id='header_search' > <input type="text" placeholder="Search" size=30 name="search2" value=""> <input type="button" value="Go!" onClick="searchit()"> </form> <style> form#header_search { width: 916px; margin: 0 auto 8px; position: relative; } form#header_search input { height: 40px; font-size: 14px; line-height: 40px; padding: 0 8px; box-sizing: border-box; background: #F4F2E9; border: 1px solid #BBB8B8; transition: background-color 300ms ease-out, color 300ms ease; } form#header_search input[type="text"] { width: 100%; } form#header_search input[type="text"]:focus { border-color: #A2D054; background-color: #fff; box-shadow: 0 0px 12px -4px #A2D054; } form#header_search input[type="button"] { position: absolute; top: 1px; right: 1px; opacity: 1; background: #DFDCCF; color: #463734; width: 125px; cursor: pointer; height: 38px; border: none; } form#header_search input[type="text"]:focus ~ input[type='button']:hover, form#header_search input[type='button']:hover { background-color: #A5CE56; color: #fff; } form#header_search input[type="text"]:focus ~ input[type='button'] { background-color: #52AEDF; color: #fff; } </style> <script> function searchit(){ // determine environment var search_env if (lycos_ad_www_server.indexOf(".pd.") > -1) { search_env = 'http://search51.pd.lycos.com/a/'; } else if (lycos_ad_www_server.indexOf(".qa.") > -1) { search_env = 'http://search51.qa.lycos.com/a/'; } else { search_env = 'http://search51.lycos.com/a/'; } var search_term = encodeURIComponent(document.search.search2.value) var search_url = search_env+search_term; window.open(search_url); return false } </script--> <style> .adCenterClass{margin:0 auto} </style> <div id="tb_ad" class="adCenterClass" style="display:block!important; overflow:hidden; width:916px;"> <div id="ad_container" style="display:block!important; float:left; width:728px "> <script type="text/javascript"> if (typeof lycos_ad !== "undefined" && "leaderboard" in lycos_ad) { document.write(lycos_ad['leaderboard']); } </script> </div> </div> </div> <script type="text/javascript"> if (typeof lycos_ad !== "undefined" && "slider" in lycos_ad) { document.write(lycos_ad['slider']); } </script> <!-- added 7/22 --> <div id="FooterAd" style="background:#DFDCCF; border-top:1px solid #393939; clear:both; display:none; width:100%!important; position:relative; z-index:999999!important; height:90px!important"> <div class="adCenterClass" style="display:block!important; overflow:hidden; width:916px;"> <div id="footerAd_container" style="display:block!important; float:left; width:728px"> <iframe id="lycosFooterAdiFrame" style="border:0; display:block; float:left; height:96px; overflow:hidden; padding:0; width:750px"></iframe> </div> </div> </div> --></xmp>

Webcam Observations

Frequently Asked Questions
Webcam: Hong Kong
Various observations concerning the CamSnip webcams

The Camsnip webcam project was conceived with a very simple goal in mind. The proliferation & ubiquity of webcams on the internet suggest that it should already be possible to keep an eye on the entire planet from ones workstation. The selection is not intended to be authoritative nor comprehensive, a task left to the much more sophisticated webcam aggregator sites. It is intended above all to be a work of art.

How do I use the site?

In general each of the displayed images is the smallest size available then scaled down (& sometimes up) to fit neatly on the webpage. The source image itself can be accessed via the "view" or "display" or "load" function on many browsers (the "context menu" on Wintel machines which is Shf-F10 or the right mousebutton). If the browser implements it, selective reload can be used to refresh individual images without reseeking all the images on the page.

Leftclicking (ie selecting) an image generally takes you to the actual hosting service itself. In many cases the servers present a large number of related images as well. Please make a point of visiting the source sites & checking out what they have to offer. Take a flight, dress warmly, drive safely & support these global efforts to extend our vision.

What criteria were used in selecting the webcams?

Images available via webcams exhibit a wide variety of characteristics. Those examined for the Camsnip project were chosen for a number of usability criteria.

Multimedia Usage : Many webcam images make use of realtime streaming technologies & to be of use require high bandwidth &/or browser extensions, particularly Windoze Mediaplayer, Java, or Shockwave Flash. Also in this class is the MJPG style image file. Much more useful are the classical periodically-updating still images which can easily be incorporated into an ordinary webpage.

Thumbnail Presentation : Ideally webcam servers present snapshots of the image at varying sizes & resolutions. In the absence of a smaller sized thumbnail its sometimes necessary to load an enormous image just to present one of the Camsnip panes. In general this has been kept to a minimum where possible.

Server Update : The viability of a webcam image owes much to the serverside technology. Often a still image which is being transmitted as it is being updated can be inaccessible or become corrupt to the point of being undisplayable. Certain servers minimise this effect by making instantaneous updates to the current image, or equivalently maintaining a sendworthy image at all times. Certain browsers can tell if an image is updated during transmission which can cause one or more reseek attempts.

Timestamps : Bannering & timestamping webcam images makes them particularly useful for a project such as Camsnip. Unfortunately the available timestamps are sometimes inaccurate. There are even cases where the time is right but the date is wrong. In general the most egregious of such examples have been avoided.

Time Restrictions : In the webcam world there is a practice whereby cams are turned off at dusk, often leaving their final pre- or postsundown image available throughout the night. As one of the purposes of the Camsnip project is to present a continuous realtime view of the illuminated & unilluminated areas of the planet, such cams are difficult to incorporate except in extreme circumstances.

Sourcing Restrictions : As an emerging technology, most webcams are on the net so they can be accessed. Although established & operated by a variety of private, commercial, organisational, & government entities, the views they present are intended to be shared. Nonetheless in rare circumstances even ordinary still JPGs cant be accessed from any but the host site. Needless to say Camsnip is forced to pass them by.

What browsers work best with the Camsnip webcams?

The editor is an expert neither in the industry nor in the everexpanding array of available browsers. Implementing a project such as Camsnip (particularly over dialup) serves to illustrate some of the issues concomitant upon attempting to use todays technology for the creation of artwork.

Internet Explorer : In contrast to most browsers, Explorer refuses to acknowledge the WIDTH percentage parameter on the TD element if an image is above a certain size, causing the rendered table to exceed the customary width. For this reason alone the Camsnip webcam panes are not coded using a table structure which arguably might make them easier to maintain. Microsloth sucks. Period.

Firefox 3 : The current Firefox is an enormous disenhancement over previous releases of this once indispensable browser. The issue seems to be one of memory usage causing the product to slow to a crawl & finally to freeze up completely. Oh well.

Netscape 9 : Clearly the workhorse of the modern netizen, its Mozilla / Gecko engine is durable but doesnt do you any favours. Seeking multiple simultaneous highres images from worldwide servers sometimes seems to be too much for it, resulting in the program giving up completely in a stall. Selective reseek is not available, although if individual images are displayed -- hence successfully loaded into cache -- the pageload can sometimes complete if it is reinvoked (*not* reloaded).

Opera 9.5.2 : The Camsnip project demonstrated to this editor the clear superiority of this incredible browser. Apart from its rendering & scrolling performance, it is also far smarter in its ability selectively to seek changed image content, which is highly configurable. The functions on its context menu permit reloading an individual image into a rendered page without reseeking the page entirely. Although all other browsers are supported, Camsnip is best viewed in Opera.

What are some related projects?

These are some incredibly useful links.

(*) = (www) Eternal Sunset
(*) = (www) Fourmilab Earth & Moon Viewer

The authors of these sites clearly have an outlook similar to that of the current editor. It can only be observed in both cases that the ability to track the *lunar* terminator as well as the solar would be a fabulous addition. In fact, this is simpler than it sounds.

The fourmilab site can be used to plot the lunar terminator by calculating a value (D) to be added to the current Julian day to reflect the position of the moon rather than the sun. One needs the age of the moon (A) in days (available from numerous online & offline programs). This can be used to determine a ratio (R) representing the moons current displacement on the ecliptic from the sun merely by dividing it by the moons synodic period 29.5305888531. The integer portion of the product of R & the tropical year is the latitudinal displacement (in whole days) along the ecliptic between the sun & moon. The longitudinal displacement is simply half of R, as Julian days are reckoned from midnight. The sum of these displacements (D) can then be added to the fourmilab Julian day to produce a plot of the lunar terminator.

  R = A / 29.5305888531

  D = INT ( 365.2422 * R ) + R / 2

Of course the eternal sunset site with its catalogue of westward pointing webcams can then be used to observe moonsets around the world.


Thatz the scoop. Keep your eyes open.

Screaming CuckooBroad Associates Last update: 2009nov04am1104 Circle Omega

<noscript> <!-- ooo