<?xml version="1.0" encoding='utf-8'?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title type="html">Blogging Roller</title>
    <subtitle type="html">Dave Johnson on open web technologies, social software and software development</subtitle>
    <id>https://rollerweblogger.org/roller/feed/entries/atom</id>
        <link rel="self" type="application/atom+xml" href="https://rollerweblogger.org/roller/feed/entries/atom?tags=gadgets" />
    <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/" />
    <updated>2026-04-28T07:02:22+00:00</updated>
    <generator uri="http://roller.apache.org" version="6.1.5">Apache Roller</generator>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/wip_widgets_and_gadgets</id>
        <title type="html">WIP: Widgets and Gadgets</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/wip_widgets_and_gadgets"/>
        <published>2012-02-22T07:52:11+00:00</published>
        <updated>2012-09-15T18:45:01+00:00</updated> 
        <category term="Web Development" label="Web Development" />
        <category term="asf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="gadgets" scheme="http://roller.apache.org/ns/tags/" />
        <category term="widgets" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;&lt;i&gt;This is the fifth in my series of Web Integration Patterns. Check out the intro at this URL &lt;a href=&quot;http://rollerweblogger.org/roller/entry/web_integration_patterns&quot;&gt;http://rollerweblogger.org/roller/entry/web_integration_patterns&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;

&lt;h3&gt;Synopsis&lt;/h3&gt; 

&lt;p&gt;
Allow other web sites and applications to integrate your site into their web pages by providing an embeddable user interface, commonly known as a Gadget or Widget, which allows users to view and interact with your site in the context of other sites.
&lt;/p&gt;

&lt;h3&gt;Motivations&lt;/h3&gt;
&lt;ul&gt;
   &lt;li&gt;By embedding Widgets in your site, you can make your site more useful and informative to your users. Users can access relevant information from other sites in the context of your web site.&lt;/li&gt;

   &lt;li&gt;By allow other sites to embed your Widgets, you can give your site and the services that it offers wider reach. Your users can access and interact with your services in the context of other sites.&lt;/li&gt;
&lt;/ul&gt;</summary>
        <content type="html">&lt;p&gt;&lt;i&gt;This is the fifth in my series of Web Integration Patterns. Check out the intro at this URL &lt;a href=&quot;http://rollerweblogger.org/roller/entry/web_integration_patterns&quot;&gt;http://rollerweblogger.org/roller/entry/web_integration_patterns&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;

&lt;h3&gt;Synopsis&lt;/h3&gt; 

&lt;p&gt;
Allow other web sites and applications to integrate your site into their web pages by providing an embeddable user interface, commonly known as a Gadget or Widget, which allows users to view and interact with your site in the context of other sites.
&lt;/p&gt;

&lt;h3&gt;Motivations&lt;/h3&gt;
&lt;ul&gt;
   &lt;li&gt;By embedding Widgets in your site, you can make your site more useful and informative to your users. Users can access relevant information from other sites in the context of your web site.&lt;/li&gt;

   &lt;li&gt;By allow other sites to embed your Widgets, you can give your site and the services that it offers wider reach. Your users can access and interact with your services in the context of other sites.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Related Patterns&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Dashboards and Portals&lt;/li&gt;
&lt;li&gt;Social Network Plugins&lt;/li&gt;
&lt;li&gt;Delegated Pickers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
A Widget or Gadget is a piece of an application, a visual component or a chunk of user-interface  that can be added to some other application. On the web, Widgets are implemented using HTML and JavaScript, or sometimes Flash. Here we&amp;#39;ll discuss simple Widgets and leave discussion or more advanced usage of Widgets in Dashboards, Portals and Pickers for the more advanced patterns we&amp;#39;ll discuss later.
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Easy to &amp;quot;consume&amp;quot;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;
Widgets are easy, especially for widget &amp;quot;consumers&amp;quot; i.e. those who wish to add an existing Widget to their site. Adding a widget to your site or web application can be as easy as adding a couple of lines of HTML and JavaScript to the pages of your site. You can see some examples of Widgets in the two screen shots I&amp;#39;ve included here, below is the &lt;a href=&quot;http://wayin.com&quot;&gt;Wayin&lt;/a&gt; polling Widget, which shows my latest Wayins:
&lt;/p&gt;

&lt;p style=&quot;text-align:center;&quot;&gt;

&lt;p&gt;

&lt;p&gt;
And below is the &lt;a href=&quot;http://flickr.com&quot;&gt;Flickr&lt;/a&gt; Widget, which shows a random selection of my photos from Flickr. You can see these two Widgets in action on the &lt;a href=&quot;http://rollerweblogger.org/roller&quot;&gt;front page of my blog&lt;/a&gt;. And, by the way, the Like, Tweet and +1 buttons on the right of this entry (when viewed on my blog site) are also Widgets.
&lt;/p&gt;

&lt;p style=&quot;text-align:center;&quot;&gt;

&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Relatively easy to create&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Developing an entirely new Widget more complicated than using one that already exists. Creating a new Widget typically requires writing HTML and JavaScript code and employing some interesting tricks. The simplest way to implement a Widget is to use an iframe, allowing a portion of one site to be embedded in another site.&lt;/p&gt;

&lt;p&gt;I&amp;#39;m not going to go into detail as there are already so many good resources on the web for learning about Widget crafting. For example, Alex Marandon wrote a &lt;a href=&quot;http://alexmarandon.com/articles/web_widget_jquery/&quot;&gt;pretty comprehensive blog post on creating Widgets&lt;/a&gt; covering  basic issues like how to ensure that your widget code does not interfere with the page hosting the Widget, how to dynamically load resources and how to bypass browsers&#146; single-origin policy using JSON-P.
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Widget and Gadget standards&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;
For simple Widgets you don&amp;#39;t really need any standards other than HTML and JavaScript. If you want to target specific web site Dashboards or Portals, like NetVibes, or enterprise web applications like Jive or Atlassian&amp;#39;s software development tools, then you&amp;#39;ll need to create your Widgets with specific APIs in mind. For example, &lt;a href=&quot;http://dev.netvibes.com/doc/&quot;&gt;NetVibes&lt;/a&gt; provides it&amp;#39;s own Widget API, while Jive and Atlassian support the &lt;a href=&quot;http://code.google.com/apis/opensocial/&quot;&gt;Open Social Gadget APIs&lt;/a&gt;. I&amp;#39;ll talk more about these issues when I cover the related patterns Dashboards, Portals and Social Network Plugins.
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Wrapping up...&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;That&amp;#39;s it for Widgets and Gadgets. Next up: Feed-based Integration.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/i_want_a_treo_650</id>
        <title type="html">I want a Treo 650, but not from Sprint</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/i_want_a_treo_650"/>
        <published>2004-10-25T14:13:05+00:00</published>
        <updated>2006-10-25T16:09:51+00:00</updated> 
        <category term="General" label="General" />
        <category term="gadgets" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;
Slashdot announces &lt;a href=&quot;http://slashdot.org/article.pl?sid=04/10/25/115231&quot;&gt;
The Official Launch of the Treo 650&lt;/a&gt;. This is perfect timing for me, because my existing phone - a Visor Platinum PDA with phone attachment - is about to die. Unfortunately, Sprint, which happens to be my carrier, has &lt;a href=&quot;http://www.oreillynet.com/pub/wlg/5791&quot;&gt;crippled the Treo 650&lt;/a&gt; so that it cannot be used to connect a computer to the net. Guess it is time to ditch Sprint.&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/airport_express_and_linksys_wrt45g</id>
        <title type="html">Airport Express and Linksys WRT45G router</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/airport_express_and_linksys_wrt45g"/>
        <published>2004-09-19T23:00:28+00:00</published>
        <updated>2006-10-25T16:10:49+00:00</updated> 
        <category term="General" label="General" />
        <category term="gadgets" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;
I fell for another one of those cute little Apple gadgets yesterday, an &lt;a href=&quot;http://www.apple.com/airportexpress/&quot;&gt;Airport Express&lt;/a&gt;. I bought it primarily to extend the range of my existing wireless network, but I also bought the cable pack so that I can use the Express to pipe music from iTunes to my stereo. 
&lt;/p&gt;
&lt;p&gt;
I had assumed that the &amp;quot;extend the range of my Airport wireless network&amp;quot; feature would work with Linksys WRT54G Wireless-G Broadband router right out of the box, but I was wrong. I hate it when that happens, but after much cursing and gnashing of teeth I found an answer. I found an &lt;a href=&quot;http://arstechnica.com/reviews/004/airportexpress/airportexpress-4.html&quot;&gt;Airport Express review&lt;/a&gt; on Arstechnica that indicated that the WRT54G would work, as long as I upgraded to a hacked open source version of the router firmware and learned how to us WDS (wireless distribution system). Then I found the open source firmware, had a bad run-in with some poorly written instructions, and then finally found a set of instructions that worked for me. For future reference, here are the details:
&lt;/p&gt;

&lt;blockquote&gt;
First, I downloaded and installed the &lt;a href=&quot;http://www.linksysinfo.org/modules.php?name=Downloads&amp;amp;d_op=viewdownload&amp;amp;cid=8&quot;&gt;Sveasoft Satori v4.0 WRT54G&lt;/a&gt; firmware on my router. Next I followed the instructions below (found in the foruns at &lt;a href=&quot;http://www.xlr8yourmac.com/feedback/airport_express_feedback.html&quot;&gt;http://www.xlr8yourmac.com&lt;/a&gt;):
&lt;ul&gt;
&lt;li&gt;
Plug in, reset (push button with paperclip for &amp;gt;5
seconds), and attach the Airport Express (AX) to an Ethernet port on my
(Linksys) WRT54G. &lt;/li&gt;&lt;li&gt;Run Airport Admin Utility (AAU) - make sure it&amp;#39;s the latest
version - installed from the CD that came with the AX. My WRT54G gave
the AX an IP address (it&amp;#39;s set to use DHCP). The default AX password is
&amp;quot;public&amp;quot; (no quotes).
&lt;/li&gt;
&lt;li&gt;
From Safari, go to 192.168.1.1 and log into the WRT54G
(default login is blank, and password is &amp;quot;admin&amp;quot;), and display the
channel (11), SSID, wireless MAC address (which differs by one hex
digit from the LAN and WAN MAC addresses), in the format:
00:0c:41:5f:19:6e. I&amp;#39;m using WEP 128, so I copy the WEP key, too.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Then, in AAU:&lt;br&gt;
Airport (tab) - select Create a Wireless Network, enter the SSID (from
the WRT54G) as the Network Name, set the channel to match (channel 11).
Click Security and enter &amp;quot;$&amp;quot; followed by my WEP key. Enter it again in
the Verify box.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Next click on Internet (tab) - select Connect Using Airport
(WDS), type in the wireless MAC address from the WRT54G, and then check
Allow Wireless Clients. (I want to allow them but have not yet tested
this.)&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Click Network (tab) - and uncheck Distribute IP Addresses.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;Click the WDS (tab) - and check Enable This Base Station as
WDS, and select Remote Base Station. Check Allow Wireless Clients.
Again, confirm that the MAC address is filled in with the wireless MAC
address of the WRT54G.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Click Music (tab) - and check Enable Airtunes on this Base
Station. Give a name to the location where the AX will be deployed
(near my home theater room), like &amp;quot;Home Theater.&amp;quot;&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Now click on Update to load this configuration into the AX.&lt;br&gt;
The Ethernet cable from the WRT54G port is then disconnected, and I
unplug the AX, move it near my destination (room with home
theater/stereo, 70 feet away and upstairs). After a minute, the AX
resets and light stays green. This is good!
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;</content>
    </entry>
</feed>

