Amherst College: Web Observatory https://www.amherst.edu/ en [Twitter @WebObservatory] https://www.amherst.edu/people/facstaff/aanderson/webobservatory/node/120005 <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/30671" class="username">Andy Anderson</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2009-08-06T16:24:59-04:00" title="Thursday, August 6, 2009, at 4:24 PM" class="datetime">Thursday, 8/6/2009, at 4:24 PM</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1><strong><a href="https://twitter.com/WebObservatory">Twitter @WebObservatory</a></strong></h1></div> Thu, 06 Aug 2009 20:24:59 +0000 aanderson 120005 at https://www.amherst.edu The Twitter Event Stamp https://www.amherst.edu/people/facstaff/aanderson/webobservatory/node/620248 <span class="field field--name-title field--type-string field--label-hidden">The Twitter Event Stamp</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/30671" class="username">Andy Anderson</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2015-11-11T14:14:55-05:00" title="Wednesday, November 11, 2015, at 2:14 PM" class="datetime">Wednesday, 11/11/2015, at 2:14 PM</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><a href="https://twitter.com/GeoObservatory/status/652130777614958592"></a></p><article class="media media--type-image media--view-mode-full"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Image</div> <div class="field__item"> <img loading="lazy" src="/system/files/Philly%20Pope%20Map.jpg" width="600" height="450" alt="JS.Geo Presentation" title="JS.Geo Presentation"> </div> </div> </article> If you’ve been to a conference lately, it’s hard to miss the “hashtags” such as <a href="https://twitter.com/hashtag/sxsw?src=hash">#SXSW</a> that are&nbsp;announced in introductory remarks and embedded in conference programs. Since the establishment of the microblogging service <a href="https://twitter.com/">Twitter</a>&nbsp;in 2006, it has become very popular for conference&nbsp;attendees to use them to provide live descriptions and comments on talks and related events. There are a number of web articles that describe best practices, e.g. <a href="https://www.tweetarchivist.com/about/tracking-tweets-at-a-conference">A Complete Guide For Event Planners To Using Twitter At A Conference</a>, and these have been taken to heart by conference organizers who want to promote conversations and engagement amongst attendees. <p>Nevertheless, what usually seems to be missing is some way to quickly get more information about the conference if <em>you aren't attending it yourself</em> and it’s not a high-profile event. I can't count the number of times that I've seen interesting tweets by one or more people that I'm following, but which are accompanied by an obscure Twitter hashtag, e.g. <a href="https://twitter.com/hashtag/dlfLAC?src=hash">#dlfLAC</a>. I click on the hashtag to find out more and I find myself scrolling backward through scores of tweets, never finding a reference to the conference web site or to the sponsoring organization unless I'm very lucky or very persistent. The 140-character limit of tweets encourages assumed knowledge and also short acronymic tags (although sometimes 4 valuable characters are wasted on the year, which is unnecessary given the short-term visibility of tweets).</p> <p>I therefore propose a solution to this blind spot, the <dfn>Twitter Event Stamp</dfn>, which provides basic information about the conference, announces the tweeter’s attendance, and can be easily retweeted to provide enough weight to promote the stamp to the top of the hashtag search.</p> <p>For example,</p> <p><samp>I’m attending #jsgeo!<br>JS.Geo<br>JavaScript for mappy things.<br>Philadelphia, PA<br>2015-10-08<br>http://www.jsgeo.com</samp></p> <p>The basic format of the event stamp is:</p> <p><samp>I’m attending #<var>&lt;Tag&gt;</var>!<br><var>&lt;Organization Name&gt;</var><br><var>&lt;Brief Description&gt;</var><br><var>&lt;Location&gt;</var><br><var>&lt;Date&gt;</var><br><var>&lt;Web Site&gt;</var></samp></p> <p>If you aren't actually attending the conference but rather monitoring it from afar, you can change the first line to</p> <p><code>I’m watching #<var>&lt;Tag&gt;</var>!</code></p> <p>which will also help bring attention to the conference.</p> <p>Much as a hyperlink can be complex underneath but with a single click&nbsp;lead to a web page of useful human-readable information, an event stamp leverages the power of social media to focus attention on the basics of an event and provide context for all of the related tweets. Want to read the abstract of that presentation that looks so cool? The event stamp should lead you to it, and perhaps also to an&nbsp;online PowerPoint or video&nbsp;if it’s been made available.</p> <p>To get the ball rolling, one conference organizer should compose the event stamp and tweet it&nbsp;before the beginning of the conference, and then provide a link to the tweet to other organizers and attendees and ask them to retweet it. Those tweets will also become a record of attendees using Twitter.</p> <p>Even if the conference organizers don't think to create an event stamp, attendees can do it themselves, and encourage others to retweet it. Or ask that remote person you're following to do so, so that you can learn about what you're missing (thanks, <a href="https://twitter.com/RhoBott/status/661991115478945792">@RhoBott</a>!).</p> <p>Conferences are collaborative activities, and by participating with a Twitter Event Stamp we can all help raise the profile of our favorite conferences. Once the event stamp becomes common enough, tweeters will get a feel for it and retweet when they see it, making it a useful “standard practice” in the Twitterverse. So I hope you’ll adopt the stamp!</p> <p><a href="https://www.amherst.edu/people/facstaff/aanderson/webobservatory/node/620248/">Permalink</a></p></div> <div> <span class="field__label">Tags:&nbsp;</span> <span class="field__items"> <span class="field__item"><a href="/taxonomy/term/13001" hreflang="en">Twitter</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/22510" hreflang="en">hashtag</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/4720" hreflang="en">Conference</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/23044" hreflang="en">event stamp</a>&nbsp;</span> </span> </div> Wed, 11 Nov 2015 19:14:55 +0000 aanderson 620248 at https://www.amherst.edu Google's Chrome OS: A Sculpture by Any Other Name https://www.amherst.edu/people/facstaff/aanderson/webobservatory/node/118495 <span class="field field--name-title field--type-string field--label-hidden">Google&#039;s Chrome OS: A Sculpture by Any Other Name</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/30671" class="username">Andy Anderson</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2009-07-13T18:34:05-04:00" title="Monday, July 13, 2009, at 6:34 PM" class="datetime">Monday, 7/13/2009, at 6:34 PM</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Last week, Google announced (in a <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html">low-key blog post)</a> that they are sculpting a new computer operating system, <dfn>Chrome OS</dfn>. Starting with an armature of Linux, it will carve off the Desktop and cast Google's <a href="http://www.google.com/chrome">Chrome web browser</a> as its user interface. Other common operating system features will be chiseled away to allow its computing power to better support web activities and improve security.</p><p>To furnish the all-important documents and applications, Chrome OS will depend on the <dfn>Cloud</dfn>, the growing network of remote web sites and databases erected on huge server farms such as those that Google operates. I've worked with a couple of the Google Docs applications (an implementation of <a href="http://en.wikipedia.org/wiki/OpenOffice.org">Open Office</a>), and found them to be a bit ponderous, but very useful for collaboration with remote colleagues. It's conceivable that a web-focused operating system could help polish their rough edges. But at the moment I'm happy to keep most of my "stuff" firmly on the ground and private.</p><p>I originally assumed that the name "Chrome" comes from Netscape's term for the controls and meta-fields of a web browser, usually gray-colored or metallic. Google certainly didn't want to imply that the browser/OS will be <a href="http://www.catb.org/~esr/jargon/html/C/chrome.html">flashy but with little substance</a>! However, given their stated intentions, I've now realized that the name must come instead from the <cite>Cloud Gate</cite> sculpture in <a href="http://www.millenniumpark.org/artandarchitecture/cloud_gate.html">Chicago's Millennium Park</a>:</p><div align="center" class="mediainline"><span class="inline"><a href="/people/facstaff/aanderson/webobservatory/images/node/118494/original/cloud_gate.jpg"><img class="image standard" src="/media/view/118494/original/cloud_gate.jpg" border="0" alt="Cloud Gate" title="Cloud Gate" width="600" height="450" loading="lazy"></a></span></div><h6><a href="/people/facstaff/aanderson/webobservatory/node/118495/">Permalink</a></h6></div> <div> <span class="field__label">Tags:&nbsp;</span> <span class="field__items"> <span class="field__item"><a href="/taxonomy/term/1030" hreflang="en">Chicago</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/10602" hreflang="en">cloud gate</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/10605" hreflang="en">Google</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/10607" hreflang="en">Open Office</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/10608" hreflang="en">Millennium Park</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/10609" hreflang="en">Chrome OS</a>&nbsp;</span> </span> </div> Mon, 13 Jul 2009 22:34:05 +0000 aanderson 118495 at https://www.amherst.edu Making AJAX Truly Asynchronous https://www.amherst.edu/people/facstaff/aanderson/webobservatory/node/116021 <span class="field field--name-title field--type-string field--label-hidden">Making AJAX Truly Asynchronous</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/user/30671" class="username">Andy Anderson</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2009-06-01T10:55:33-04:00" title="Monday, June 1, 2009, at 10:55 AM" class="datetime">Monday, 6/1/2009, at 10:55 AM</time> </span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>AJAX (Asynchronous JavaScript and XML) is a technique that lets web pages update themselves with remote data without reloading the entire page, greatly increasing their interactivity. It uses JavaScript to change the content of the page, and the non-standard function&nbsp;XMLHttpRequest() to talk to remote web servers to obtain or provide new data. All of this occurs in the background, allowing the user to interact with other elements on the page at the same time.</p><p>AJAX is described in many places on the web and in technical books, but from what I've seen the usual examples are&nbsp;<em>not</em>&nbsp;truly asynchronous, as rapid multiple requests by the user can collide with each other. The following is typical code:</p><pre>var request;<br><br>function action() { request = new XMLHttpRequest(); // Browser variation and error catching code should be here, too request.open('GET', 'action.php'); // Open a connection to this URL, in this case a local page<br> request.onreadystatechange =&nbsp;handle_action; // Function to process the request&nbsp;results on completion<br> request.send(null); // Send the request, which proceeds in the background<br>&nbsp;&nbsp; return 0; // Returns control of the browser to the user<br>}</pre><p>The basic problem is in the <code>request</code> variable, which is set up as a global so that the function <code>handle_action</code> can reference the returned data it contains. This means that a second request of the same type can possibly overwrite the previous request before it has completed its assigned task! And it's not truly asynchronous if it doesn't control its own state.</p><p>The following variation fixes the issue:</p><pre>function action() { var request; request = new XMLHttpRequest(); request.open('GET', 'action.php');<br> request.onreadystatechange =&nbsp;function () { return handle_action(request); };<br> request.send(null);<br>&nbsp; return 0;<br>}</pre><p>By making <code>request</code> a local variable and providing it as a parameter to the request handler, each request has independent status. The request handler is implemented as an <dfn>anonymous function</dfn> and a <dfn>closure</dfn>, which preserves a reference to the local variable even after the parent function exits.</p><h6><a href="/people/facstaff/aanderson/webobservatory/node/116021/">Permalink</a></h6></div> <div> <span class="field__label">Tags:&nbsp;</span> <span class="field__items"> <span class="field__item"><a href="/taxonomy/term/1523" hreflang="en">javascript</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/10444" hreflang="en">AJAX</a>&nbsp;</span> <span class="field__item"><a href="/taxonomy/term/10445" hreflang="en">XML</a>&nbsp;</span> </span> </div> Mon, 01 Jun 2009 14:55:33 +0000 aanderson 116021 at https://www.amherst.edu