<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;CEEGQHw-cSp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337</id><updated>2011-11-28T12:10:21.259+11:00</updated><category term="technology microsoft touch surface" /><title>Paul's Document Repository</title><subtitle type="html">如果找到了对您有用的资料，烦请点击右手边的Google广告支持我继续共享知识，谢谢！
http://dengpeng.spaces.live.com/</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>124</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/pauldeng/document" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="pauldeng/document" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0YERnw-cCp7ImA9WxBWFk8.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-570382329258949163</id><published>2010-02-08T22:38:00.001+11:00</published><updated>2010-02-08T22:38:27.258+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-08T22:38:27.258+11:00</app:edited><title>Rebirth of this blog</title><content type="html">&lt;p align="center"&gt;It is now migrated to independent WordPress located at here:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a title="http://www.sensorapp.net/" href="http://www.sensorapp.net/"&gt;&lt;strong&gt;&lt;font size="5"&gt;http://www.sensorapp.net/&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-570382329258949163?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/570382329258949163/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=570382329258949163" title="37 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/570382329258949163?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/570382329258949163?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2010/02/rebirth-of-this-blog.html" title="Rebirth of this blog" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>37</thr:total></entry><entry gd:etag="W/&quot;DkUNQ3s6cCp7ImA9WxNQFUU.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7003748239177708936</id><published>2009-09-22T11:51:00.001+10:00</published><updated>2009-09-22T11:51:32.518+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-22T11:51:32.518+10:00</app:edited><title>Pachube Java Tutorial</title><content type="html">&lt;p&gt;&lt;a href="http://www.pachube.com/" target="_blank"&gt;Pachube&lt;/a&gt; is a webapp aggragate sensor data around the world. The tutorials given on this site is not well written I think. So, I decide to try it out and blog this simple example. Hope it will be helpfull to you.    &lt;br /&gt;    &lt;br /&gt;Pachube + Java depend Libraries:    &lt;br /&gt;1. EEML: &lt;a title="http://www.eeml.org/library/eeml.zip" href="http://www.eeml.org/library/eeml.zip"&gt;http://www.eeml.org/library/eeml.zip&lt;/a&gt;    &lt;br /&gt;2. Processing: &lt;a href="http://processing.org/download/"&gt;http://processing.org/download/&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;This is a manual (casual) update example source code. remember to call the setup() before draw():&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; eeml.*;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; processing.core.PApplet;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author pdeng&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; HelloPachube {&lt;br /&gt;&lt;br /&gt;    DataOut dOut;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; setup() {&lt;br /&gt;&lt;br /&gt;        PApplet p = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PApplet();&lt;br /&gt;        dOut = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DataOut(p, &amp;quot;&lt;span style="color: #8b0000"&gt;YOUR_FEED_URL&lt;/span&gt;&amp;quot;, &amp;quot;&lt;font color="#8b0000"&gt;YOUR_API_KEY&lt;/font&gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;//  and add and tag a datastream&lt;/span&gt;&lt;br /&gt;        dOut.addData(0, &amp;quot;&lt;span style="color: #8b0000"&gt;temperature&lt;/span&gt;&amp;quot;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; draw() {&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;ready to POST: &lt;/span&gt;&amp;quot;);&lt;br /&gt;        dOut.update(0, 22.5f); &lt;span style="color: #008000"&gt;// update the datastream&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; response = dOut.updatePachube(); &lt;span style="color: #008000"&gt;// updatePachube() updates by an authenticated PUT HTTP request&lt;/span&gt;&lt;br /&gt;        System.out.println(response);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7003748239177708936?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7003748239177708936/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7003748239177708936" title="21 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7003748239177708936?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7003748239177708936?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/09/pachube-java-tutorial.html" title="Pachube Java Tutorial" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>21</thr:total></entry><entry gd:etag="W/&quot;A0IDQ3w8cCp7ImA9WxNQEEw.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7202889367765056779</id><published>2009-09-15T22:58:00.001+10:00</published><updated>2009-09-15T22:59:32.278+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-15T22:59:32.278+10:00</app:edited><title>Smack API Tutorial</title><content type="html">&lt;p&gt;Version: Smack 3.1.0 Beta   &lt;br /&gt;Smack is a Java XMPP library. You can create your own GTalk with this.    &lt;br /&gt;Digested from: &lt;a href="http://www.javaprogrammingforums.com/java-tips-tutorials/551-how-write-simple-xmpp-jabber-client-using-smack-api.html"&gt;http://www.javaprogrammingforums.com/java-tips-tutorials/551-how-write-simple-xmpp-jabber-client-using-smack-api.html&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; jabberhelloworld;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.*;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.io.*;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.logging.Level;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.logging.Logger;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.Chat;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.ConnectionConfiguration;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.MessageListener;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.Roster;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.RosterEntry;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.SASLAuthentication;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.XMPPConnection;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.XMPPException;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.jivesoftware.smack.packet.Message;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Main &lt;span style="color: #0000ff"&gt;implements&lt;/span&gt; MessageListener {&lt;br /&gt;&lt;br /&gt;    XMPPConnection connection;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; login(String userName, String password) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; XMPPException {&lt;br /&gt;        ConnectionConfiguration config = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ConnectionConfiguration(&amp;quot;&lt;span style="color: #8b0000"&gt;jabber.org&lt;/span&gt;&amp;quot;, 5222, &amp;quot;&lt;span style="color: #8b0000"&gt;jabber.org&lt;/span&gt;&amp;quot;);&lt;br /&gt;        connection = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XMPPConnection(config);&lt;br /&gt;&lt;br /&gt;        connection.connect();&lt;br /&gt;        SASLAuthentication.supportSASLMechanism(&amp;quot;&lt;span style="color: #8b0000"&gt;PLAIN&lt;/span&gt;&amp;quot;, 0);&lt;br /&gt;        connection.login(userName, password);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; sendMessage(String message, String to) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; XMPPException {&lt;br /&gt;        Chat chat = connection.getChatManager().createChat(to, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        chat.sendMessage(message);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; displayBuddyList() {&lt;br /&gt;        Roster roster = connection.getRoster();&lt;br /&gt;        Collection&amp;lt;RosterEntry&amp;gt; entries = roster.getEntries();&lt;br /&gt;&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;\n\n&lt;/span&gt;&amp;quot; + entries.size() + &amp;quot;&lt;span style="color: #8b0000"&gt; buddy(ies):&lt;/span&gt;&amp;quot;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (RosterEntry r : entries) {&lt;br /&gt;            System.out.println(r.getUser());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; disconnect() {&lt;br /&gt;        connection.disconnect();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; processMessage(Chat chat, Message message) {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (message.getType() == Message.Type.chat) {&lt;br /&gt;            System.out.println(chat.getParticipant() + &amp;quot;&lt;span style="color: #8b0000"&gt; says: &lt;/span&gt;&amp;quot; + message.getBody());&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                chat.sendMessage(message.getBody() + &amp;quot;&lt;span style="color: #8b0000"&gt; echo&lt;/span&gt;&amp;quot;);&lt;br /&gt;            } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (XMPPException ex) {&lt;br /&gt;                Logger.getLogger(Main.&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;.getName()).log(Level.SEVERE, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;, ex);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; main(String args[]) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; XMPPException, IOException {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// declare variables&lt;/span&gt;&lt;br /&gt;        Main c = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Main();&lt;br /&gt;        BufferedReader br = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BufferedReader(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; InputStreamReader(System.in));&lt;br /&gt;        String msg;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// turn on the enhanced debugger&lt;/span&gt;&lt;br /&gt;        XMPPConnection.DEBUG_ENABLED = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Enter your login information here&lt;/span&gt;&lt;br /&gt;        c.login(&amp;quot;&lt;span style="color: #8b0000"&gt;yourusername&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color: #8b0000"&gt;yourpassword&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;        c.displayBuddyList();&lt;br /&gt;&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;-----&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Who do you want to talk to? - Type contacts full email address:&lt;/span&gt;&amp;quot;);&lt;br /&gt;        String talkTo = br.readLine();&lt;br /&gt;&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;-----&lt;/span&gt;&amp;quot;);&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;All messages will be sent to &lt;/span&gt;&amp;quot; + talkTo);&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Enter your message in the console:&lt;/span&gt;&amp;quot;);&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;-----\n&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (!(msg = br.readLine()).equals(&amp;quot;&lt;span style="color: #8b0000"&gt;bye&lt;/span&gt;&amp;quot;)) {&lt;br /&gt;            c.sendMessage(msg, talkTo);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        c.disconnect();&lt;br /&gt;        System.exit(0);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7202889367765056779?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7202889367765056779/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7202889367765056779" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7202889367765056779?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7202889367765056779?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/09/smack-api-tutorial.html" title="Smack API Tutorial" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IGRHw_eyp7ImA9WxNQEEw.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-5867067427541275321</id><published>2009-09-15T21:52:00.001+10:00</published><updated>2009-09-15T21:52:05.243+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-15T21:52:05.243+10:00</app:edited><title>Sun SPOT offline sensing client</title><content type="html">&lt;p&gt;To monitor an activity, sometimes base station is not in communication range. SPOT should be able to store data in its internal memory. When the base station is avaliable, it could send data back to PC.   &lt;br /&gt;this is how it works:    &lt;br /&gt;1. start SPOT    &lt;br /&gt;2. before your activity, click left button on SPOT,and it is recording    &lt;br /&gt;3. click left button again to pause recording    &lt;br /&gt;4. take it back, click right button on SPOT to send recoreded back to base station&lt;/p&gt;  &lt;h4&gt;SPOT Side:&lt;/h4&gt;  &lt;pre&gt;&lt;span style="color: #008000"&gt;/*&lt;br /&gt; * StartApplication.java&lt;br /&gt; *&lt;br /&gt; * Created on Sep 15, 2009 4:32:39 PM;&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; org.sunspotworld;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.EDemoBoard;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.ISwitch;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.ITriColorLED;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.peripheral.radio.RadioFactory;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.io.j2me.radiostream.*;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.peripheral.NoRouteException;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.IAccelerometer3D;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.ILightSensor;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.ISwitchListener;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.ITemperatureInput;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.util.*;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.io.*;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.Date;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.io.*;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.midlet.MIDlet;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.midlet.MIDletStateChangeException;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.rms.RecordStore;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.rms.RecordStoreException;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.rms.RecordStoreNotOpenException;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;/**&lt;br /&gt; * The startApp method of this class is called by the VM to start the&lt;br /&gt; * application.&lt;br /&gt; * &lt;br /&gt; * The manifest specifies this class as MIDlet-1, which means it will&lt;br /&gt; * be selected for execution.&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; StartApplication &lt;span style="color: #0000ff"&gt;extends&lt;/span&gt; MIDlet &lt;span style="color: #0000ff"&gt;implements&lt;/span&gt; ISwitchListener {&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; ITriColorLED[] leds = EDemoBoard.getInstance().getLEDs();&lt;br /&gt;    ISwitch &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0 = EDemoBoard.getInstance().getSwitches()[0];&lt;br /&gt;    ISwitch &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1 = EDemoBoard.getInstance().getSwitches()[1];&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt; &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0Status = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt; &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1Status = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;br /&gt;    RecordStore rms;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; recordStoreIndex = 0;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IAccelerometer3D accel = EDemoBoard.getInstance().getAccelerometer();&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; ITemperatureInput tempSensor = EDemoBoard.getInstance().getADCTemperature();&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; ILightSensor lightSensor = EDemoBoard.getInstance().getLightSensor();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; startApp() &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; MIDletStateChangeException {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BootloaderListener().start();   &lt;span style="color: #008000"&gt;// monitor the USB (if connected) and recognize commands from host&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;long&lt;/span&gt; ourAddr = RadioFactory.getRadioPolicyManager().getIEEEAddress();&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Our radio address = &lt;/span&gt;&amp;quot; + IEEEAddress.toDottedHex(ourAddr));&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;//add listeners to two switchs&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0.addISwitchListener(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1.addISwitchListener(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;//set the default LED indicator&lt;/span&gt;&lt;br /&gt;        leds[0].setRGB(100, 100, 0);&lt;br /&gt;        leds[0].setOn();&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;//uncomment this line below would delete all RecordStore&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;//deleteRecordStore();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;) {&lt;br /&gt;            &lt;span style="color: #008000"&gt;//click the left button to start/stop recording&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0Status) {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                    &lt;span style="color: #008000"&gt;//create or open RecordStore&lt;/span&gt;&lt;br /&gt;                    rms = RecordStore.openRecordStore(&amp;quot;&lt;span style="color: #8b0000"&gt;Record&lt;/span&gt;&amp;quot;, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;br /&gt;                } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (RecordStoreException ex) {&lt;br /&gt;                    ex.printStackTrace();&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: #008000"&gt;//get values from sensors and store&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0Status) {&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                        String msg = String.valueOf(accel.getAccelX()) + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                String.valueOf(accel.getAccelY()) + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                String.valueOf(accel.getAccelZ()) + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                String.valueOf(accel.getTiltX()) + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                String.valueOf(accel.getTiltY()) + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                String.valueOf(accel.getTiltZ()) + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                String.valueOf(tempSensor.getCelsius()) + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                String.valueOf(lightSensor.getValue() + &amp;quot;&lt;span style="color: #8b0000"&gt;,&lt;/span&gt;&amp;quot; +&lt;br /&gt;                                &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Date().getTime());&lt;br /&gt;                        System.out.println(msg);&lt;br /&gt;                        Utils.sleep(10);&lt;br /&gt;                        &lt;span style="color: #008000"&gt;//add value to RecordStore&lt;/span&gt;&lt;br /&gt;                        rms.addRecord(msg.getBytes(), 0, msg.getBytes().length);&lt;br /&gt;                    } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception ex) {&lt;br /&gt;                        ex.printStackTrace();&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                    &lt;span style="color: #008000"&gt;//add a spliter for each of activities&lt;/span&gt;&lt;br /&gt;                    rms.addRecord(&amp;quot;&lt;span style="color: #8b0000"&gt;finish&lt;/span&gt;&amp;quot;.getBytes(), 0, &amp;quot;&lt;span style="color: #8b0000"&gt;finish&lt;/span&gt;&amp;quot;.getBytes().length);&lt;br /&gt;                } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (RecordStoreNotOpenException ex) {&lt;br /&gt;                    ex.printStackTrace();&lt;br /&gt;                } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (RecordStoreException ex) {&lt;br /&gt;                    ex.printStackTrace();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #008000"&gt;//click the right button to send data to server&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1Status) {&lt;br /&gt;                leds[0].setOff();&lt;br /&gt;                &lt;span style="color: #008000"&gt;//send data&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                    sendout();&lt;br /&gt;                } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception ex) {&lt;br /&gt;                    ex.printStackTrace();&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1Status = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;br /&gt;                leds[7].setOff();&lt;br /&gt;                leds[0].setRGB(100, 100, 0);&lt;br /&gt;                leds[0].setOn();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; pauseApp() {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// This is not currently called by the Squawk VM&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * Called if the MIDlet is terminated by the system.&lt;br /&gt;     * I.e. if startApp throws any exception other than MIDletStateChangeException,&lt;br /&gt;     * if the isolate running the MIDlet is killed with Isolate.exit(), or&lt;br /&gt;     * if VM.stopVM() is called.&lt;br /&gt;     * &lt;br /&gt;     * It is not called if MIDlet.notifyDestroyed() was called.&lt;br /&gt;     *&lt;br /&gt;     * @param unconditional If true when this method is called, the MIDlet must&lt;br /&gt;     *    cleanup and release all resources. If false the MIDlet may throw&lt;br /&gt;     *    MIDletStateChangeException  to indicate it does not want to be destroyed&lt;br /&gt;     *    at this time.&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; destroyApp(&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt; unconditional) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; MIDletStateChangeException {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 8; i++) {&lt;br /&gt;            leds[i].setOff();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; switchPressed(ISwitch sw) {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; switchReleased(ISwitch sw) {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (sw == &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0) {&lt;br /&gt;            System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;switch 0 released&lt;/span&gt;&amp;quot;);&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0Status == &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;) {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0Status = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;                leds[0].setRGB(100, 0, 0);&lt;br /&gt;                leds[0].setOn();&lt;br /&gt;            } &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;0Status = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;br /&gt;                leds[0].setRGB(100, 100, 0);&lt;br /&gt;                leds[0].setOn();&lt;br /&gt;            }&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (sw == &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1) {&lt;br /&gt;            System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;switch 1 released&lt;/span&gt;&amp;quot;);&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1Status == &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;) {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1Status = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;                leds[7].setRGB(100, 0, 0);&lt;br /&gt;                leds[7].setOn();&lt;br /&gt;            } &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt;1Status = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;br /&gt;                leds[7].setRGB(100, 100, 0);&lt;br /&gt;                leds[7].setOn();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; sendout() &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; Exception {&lt;br /&gt;        RadiostreamConnection conn =&lt;br /&gt;                (RadiostreamConnection) Connector.open(&amp;quot;&lt;span style="color: #8b0000"&gt;radiostream://0014.4F01.0000.4bfd:100&lt;/span&gt;&amp;quot;);&lt;br /&gt;        DataInputStream dis = conn.openDataInputStream();&lt;br /&gt;        DataOutputStream dos = conn.openDataOutputStream();&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; j = 1; j &amp;lt; rms.getNumRecords(); j++) {&lt;br /&gt;                dos.writeUTF(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; String(rms.getRecord(j)));&lt;br /&gt;            }&lt;br /&gt;            dos.flush();&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (NoRouteException e) {&lt;br /&gt;            System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;No route to 0014.4F01.0000.0006&lt;/span&gt;&amp;quot;);&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;finally&lt;/span&gt; {&lt;br /&gt;            dis.close();&lt;br /&gt;            dos.close();&lt;br /&gt;            conn.close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; deleteRecordStore() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (RecordStore.listRecordStores().length &amp;gt; 0) {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; k = 0; k &amp;lt; RecordStore.listRecordStores().length; k++) {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                    RecordStore.deleteRecordStore(RecordStore.listRecordStores()[k]);&lt;br /&gt;                } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (RecordStoreException ex) {&lt;br /&gt;                    ex.printStackTrace();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Host Side:&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #008000"&gt;/*&lt;br /&gt; * SunSpotHostApplication.java&lt;br /&gt; *&lt;br /&gt; * Created on Sep 15, 2009 4:03:06 PM;&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; org.sunspotworld;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.peripheral.radio.RadioFactory;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.io.j2me.radiostream.*;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.peripheral.NoRouteException;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.util.IEEEAddress;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.io.*;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.logging.Level;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.logging.Logger;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.io.*;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;/**&lt;br /&gt; * Sample Sun SPOT host application&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; SunSpotHostApplication {&lt;br /&gt;&lt;br /&gt;    FileWriter fc = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;    PrintWriter pc = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * Print out our radio address.&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; run() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;            fc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; java.io.FileWriter(&amp;quot;&lt;span style="color: #8b0000"&gt;C:\\value.dat&lt;/span&gt;&amp;quot;, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IOException ex) {&lt;br /&gt;            ex.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;        pc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; java.io.PrintWriter(fc);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;long&lt;/span&gt; ourAddr = RadioFactory.getRadioPolicyManager().getIEEEAddress();&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Our radio address = &lt;/span&gt;&amp;quot; + IEEEAddress.toDottedHex(ourAddr));&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;            receive();&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IOException ex) {&lt;br /&gt;            Logger.getLogger(SunSpotHostApplication.&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;.getName()).log(Level.SEVERE, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;, ex);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * Start up the host application.&lt;br /&gt;     *&lt;br /&gt;     * @param args any command line arguments&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; main(String[] args) {&lt;br /&gt;        SunSpotHostApplication app = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SunSpotHostApplication();&lt;br /&gt;        app.run();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; receive() &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; IOException {&lt;br /&gt;        RadiostreamConnection conn =&lt;br /&gt;                (RadiostreamConnection) Connector.open(&amp;quot;&lt;span style="color: #8b0000"&gt;radiostream://0014.4F01.0000.46e0:100&lt;/span&gt;&amp;quot;);&lt;br /&gt;        DataInputStream dis = conn.openDataInputStream();&lt;br /&gt;        DataOutputStream dos = conn.openDataOutputStream();&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;) {&lt;br /&gt;                String question = dis.readUTF();&lt;br /&gt;                write2File(question);&lt;br /&gt;            }&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (NoRouteException e) {&lt;br /&gt;            System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;No route to 0014.4F01.0000.0007&lt;/span&gt;&amp;quot;);&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;finally&lt;/span&gt; {&lt;br /&gt;            dis.close();&lt;br /&gt;            dos.close();&lt;br /&gt;            conn.close();&lt;br /&gt;            pc.close();&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;            fc.close();&lt;br /&gt;        } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IOException ex) {&lt;br /&gt;            ex.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; write2File(String question) {&lt;br /&gt;        pc.println(question);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-5867067427541275321?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/5867067427541275321/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=5867067427541275321" title="1 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/5867067427541275321?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/5867067427541275321?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/09/sun-spot-offline-sensing-client.html" title="Sun SPOT offline sensing client" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DUMGRX87eCp7ImA9WxNTFU0.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7501481648066436872</id><published>2009-08-17T20:50:00.001+10:00</published><updated>2009-08-17T21:10:24.100+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-17T21:10:24.100+10:00</app:edited><title>Use NetBeans IDE 6.7 to Combine JAR Files Into a Single JAR File</title><content type="html">&lt;p&gt;This article is digested from &lt;a title="http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/" href="http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/"&gt;http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;1. Create Mars Rover Viewer project in Samples folder in NetBeans&lt;/p&gt;  &lt;p&gt;2. Switch to Files tab, and open build.xml which is ANT script&lt;/p&gt;  &lt;p&gt;3. Edit the file, add following text at the bottom of build.xml and before &amp;lt;/project&amp;gt; tag&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;target&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;package-for-store&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;depends&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;jar&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;&amp;lt;!-- Change the value of this property to be the name of your JAR,&lt;br /&gt;         minus the .jar extension. It should not have spaces.&lt;br /&gt;         &amp;lt;property name=&amp;quot;store.jar.name&amp;quot; value=&amp;quot;MyJarName&amp;quot;/&amp;gt;&lt;br /&gt;    --&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;property&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;store.jar.name&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;MarsRoverViewer&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;&amp;lt;!-- don't edit below this line --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;property&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;store.dir&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;store&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;property&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;store.jar&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${store.dir}/${store.jar.name}.jar&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;echo&lt;/span&gt; &lt;span style="color: #ff0000"&gt;message&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Packaging ${application.title} into a single JAR at ${store.jar}&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;delete&lt;/span&gt; &lt;span style="color: #ff0000"&gt;dir&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${store.dir}&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;mkdir&lt;/span&gt; &lt;span style="color: #ff0000"&gt;dir&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${store.dir}&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;jar&lt;/span&gt; &lt;span style="color: #ff0000"&gt;destfile&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${store.dir}/temp_final.jar&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;filesetmanifest&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;skip&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;zipgroupfileset&lt;/span&gt; &lt;span style="color: #ff0000"&gt;dir&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;dist&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;includes&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;*.jar&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;zipgroupfileset&lt;/span&gt; &lt;span style="color: #ff0000"&gt;dir&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;dist/lib&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;includes&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;*.jar&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;manifest&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;attribute&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Main-Class&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${main.class}&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;manifest&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;jar&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;zip&lt;/span&gt; &lt;span style="color: #ff0000"&gt;destfile&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${store.jar}&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;zipfileset&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${store.dir}/temp_final.jar&amp;quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #ff0000"&gt;excludes&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;zip&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;delete&lt;/span&gt; &lt;span style="color: #ff0000"&gt;file&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;${store.dir}/temp_final.jar&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;target&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;4. Note, this line above &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;property&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;store.jar.name&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;MarsRoverViewer&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The &lt;span class="kwrd"&gt;&amp;quot;MarsRoverViewer&amp;quot; is the name of the compiled single jar file you finally get, change it if you want&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;5. When you done your coding, right click on the build.xml—&amp;gt;Run Target—&amp;gt;Other Targets—&amp;gt;package-for-store&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;6. a folder called Store should appear in your project folder and the MarsRoverViewer.jar should sit in there&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;7. double click it and run!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For more detail, please go to &lt;a title="http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/" href="http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/"&gt;http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7501481648066436872?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7501481648066436872/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7501481648066436872" title="155 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7501481648066436872?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7501481648066436872?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/08/use-netbeans-ide-67-to-combine-jar.html" title="Use NetBeans IDE 6.7 to Combine JAR Files Into a Single JAR File" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>155</thr:total></entry><entry gd:etag="W/&quot;DUUESX45eCp7ImA9WxJVE08.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-2719228815555679150</id><published>2009-06-30T12:00:00.001+10:00</published><updated>2009-06-30T12:00:08.020+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-30T12:00:08.020+10:00</app:edited><title>China: 2009 Declaration of the Anonymous Netizens</title><content type="html">&lt;blockquote&gt;   &lt;p&gt;2009 Declaration of the Anonymous Netizens&lt;/p&gt;    &lt;p&gt;To the Internet censors of China,&lt;/p&gt;    &lt;p&gt;We are the Anonymous Netizens. We have seen your moves on the Internet. You have deprived your netizens of the freedom of speech. You have come to see technology as your mortal enemy. You have clouded and distorted the truth in collaboration with Party mouthpieces. You have hired commentators to create the “public opinion” you wanted to see. All these are etched into our collective memory. More recently, you forced the installation of Green Dam on the entire population and smothered Google with vicious slander. It is now clear as day: what you want is the complete control and censorship of the Internet. We hereby declare that we, the Anonymous Netizens, are going to launch our attack worldwide on your censorship system starting on July 1st, 2009. &lt;/p&gt;    &lt;p&gt;For the freedom of the Internet, for the advancement of Internetization, and for our rights, we are going to acquaint your censorship machine with systematic sabotage and show you just how weak the claws of your censorship really are. We are going to mark you as the First Enemy of the Internet. This is not a single battle; it is but the beginning of a war. Play with your artificial public opinion to your heart's content, for you will soon be submerged in the sea of warring netizens. Your archaic means of propaganda, your epithets borrowed straight from the Cultural Revolution era, your utter ignorance of the Internet itself - these are the tolls of your death bell. You cannot evade us, for we are everywhere. Violence of the state cannot save you - for every one of us that falls, another ten rises. We are familiar with your intrigues. You label some of us as the “vicious few” and dismiss the rest of us as unknowing accomplices; that way you can divide and rule. Go ahead and do that. In fact, we encourage you to do that; the more accustomed you are to viewing your netizens this way, the deeper your self-deception.&lt;/p&gt;    &lt;p&gt;You are trying in vain to halt the wheels of history. Even with your technocratic reinforcements, you will not understand the Internet in the foreseeable future. We congratulate you on your adherence to your Cultural-Revolution style conspiracy theories in your dealings with dissent; for we too get nostalgic at times. We toast to your attempts to erect a Great Wall among your netizens, for such epic folly adds spice to any historical narrative. Still, there's something we feel obliged to tell you.&lt;/p&gt;    &lt;p&gt;NOBODY wants to topple your regime. We take no interest whatsoever in your archaic view of state power and your stale ideological teachings. You do not understand how your grand narrative dissipated in the face of Internetization. You do not understand why appealing to statism and nationalism no longer works. You cannot break free from your own ignorance of the Internet. Your regime is not our enemy. We are not affiliated in any way with any country or organization, and we are not waging this war on any country or organization, not even on you. YOU are waging this war on yourself. YOU are digging your own grave through corruption and antagonization. We are not interested in you, destined for the sewage of history. You cannot stop the Internetization of the human race. In fact, we won't bat an eyelid even if you decide to sever the transpacific information cables in order to obtain the total control you wanted. The harder you try to roll back history, the more you strain the already taut strings, and the more destructive their final release. You are accelerating your own fall. The sun of tomorrow does not shine on those who are fearing tomorrow itself.&lt;/p&gt;    &lt;p&gt;We are the Anonymous Netizens. We are the sum of the world's entire online population. We are coordinated. We are dominant. We are innumerable. For every one of us that falls, another ten joins. We are omnipresent. We are omnipotent. We are unstoppable. We have no weaknesses. We utilize every weakness. We are the humanity under every mask. We are the mirrors of conscience. We are created equal. We are born free. We are an army. We do not forgive. We do not forget.&lt;/p&gt;    &lt;p&gt;LIBERTY LEADS THE INTERNET.&lt;/p&gt;    &lt;p&gt;WE'RE COMING.&lt;/p&gt; &lt;/blockquote&gt; &lt;iframe height="342" src="http://docs.google.com/EmbedSlideshow?docid=ddjgvvk8_194gxjm9jgz" frameborder="0" width="410"&gt;&lt;/iframe&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-2719228815555679150?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/2719228815555679150/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=2719228815555679150" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/2719228815555679150?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/2719228815555679150?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/06/china-2009-declaration-of-anonymous.html" title="China: 2009 Declaration of the Anonymous Netizens" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C04EQnw8cCp7ImA9WxJQGU8.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-3082398243483366497</id><published>2009-06-02T15:51:00.001+10:00</published><updated>2009-06-02T15:51:43.278+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-02T15:51:43.278+10:00</app:edited><title>I am BACK…</title><content type="html">&lt;p&gt;I have not update my tech blog for ages. Sorry, subscribers&lt;img alt="Smile" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif" /&gt;&lt;/p&gt;  &lt;p&gt;I was working on &lt;a href="http://www.gridbus.org/sensorweb/" target="_blank"&gt;SensorWeb project&lt;/a&gt; directed by &lt;a href="http://gridbus.cs.mu.oz.au/~raj/" target="_blank"&gt;Dr. Rajkumar Buyya&lt;/a&gt; in University of Melbourne. My part of the project is finish. It is an honor to work in this innovative lab.&lt;/p&gt;  &lt;p&gt;Here is a introduction of the project:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="1"&gt;The SensorWeb project aims at developing Open SensorWeb Architecture (OSWA) and implementing standards compliant platform and middleware for integration of sensor networks with emerging distributed computing platforms such as Grids. It confirms to Web Services standard defined by the W3C (World-Wide Web) and SensorML (Sensor Model Language) standard defined by the OpenGeospatial Consortium. This integration of sensor networks with Grid computing brings out dual benefits:        &lt;br /&gt;(i) sensor networks can off-load heavy processing activities to the Grid and         &lt;br /&gt;(ii) Grid-based sensor applications can provide advance services for smart-sensing by deploying scenario-specific operators at runtime.         &lt;br /&gt;        &lt;br /&gt;Our Open SensorWeb Architecture consists of four layers: sensor fabric layer, core services, user-level services, and applications. Core services are provided by lower-level layer components whereas components at the user-level layer provide tools for creation of applications and management of life-cycle of data captured through sensor networks. The project primarily aims to develop (a) an interactive development environment, (b) an open and standards-compliant SensorWeb application services middleware, and (c) a coordination language to support the development of sensor applications in various domains including water observation networks, safe road transportation management systems, and Tsunami detection network for the early warning systems. The OSWA-based platform provides a number of sensor and actuation services, such as:         &lt;br /&gt;* sensor notification, collection and observation,         &lt;br /&gt;* data collection, aggregation and archiving,         &lt;br /&gt;* sensor coordination and data processing,         &lt;br /&gt;* faulty sensor data correction &amp;amp; management, and         &lt;br /&gt;* sensor configuration and directory services.&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now, I am re-focusing on Sun SPOT. This blog focuses on explore and study the fundemental knowledge, skill, experience and idea of not only Sun SPOT but all WSN.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-3082398243483366497?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/3082398243483366497/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=3082398243483366497" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/3082398243483366497?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/3082398243483366497?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/06/i-am-back.html" title="I am BACK…" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUQMQHc7cSp7ImA9WxVWFEs.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-1131405298206341627</id><published>2009-02-24T19:16:00.001+11:00</published><updated>2009-02-24T19:16:21.909+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-24T19:16:21.909+11:00</app:edited><title>SunSPOT BroadcastSample Code</title><content type="html">&lt;pre&gt;&lt;span style="color: #008000"&gt;/*&lt;br /&gt; * Copyright (c) 2007 Sun Microsystems, Inc.&lt;br /&gt; *&lt;br /&gt; * Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt; * of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to&lt;br /&gt; * deal in the Software without restriction, including without limitation the&lt;br /&gt; * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or&lt;br /&gt; * sell copies of the Software, and to permit persons to whom the Software is&lt;br /&gt; * furnished to do so, subject to the following conditions:&lt;br /&gt; *&lt;br /&gt; * The above copyright notice and this permission notice shall be included in&lt;br /&gt; * all copies or substantial portions of the Software.&lt;br /&gt; *&lt;br /&gt; * THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt; * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt; * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt; * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt; * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING&lt;br /&gt; * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER&lt;br /&gt; * DEALINGS IN THE SOFTWARE.&lt;br /&gt; **/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; org.sunspotworld.demo;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.io.IOException;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.io.Connector;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.io.Datagram;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.io.DatagramConnection;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.midlet.MIDletStateChangeException;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.io.j2me.radiogram.RadiogramConnection;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.util.Utils;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;/**&lt;br /&gt; * @author: David Mercier &amp;lt;david.mercier@sun.com&amp;gt;&lt;br /&gt; *&lt;br /&gt; * This simple demo shows you how to use the radio to broadcast&lt;br /&gt; * some data to any listening SPOT(s).&lt;br /&gt; *&lt;br /&gt; * There is one thread (startSenderThread) that sends data on a particular&lt;br /&gt; * channel.&lt;br /&gt; * There is a second thread (startReceiverThread) that receives&lt;br /&gt; * data on that same channel.&lt;br /&gt; *&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; BroadcastSample &lt;span style="color: #0000ff"&gt;extends&lt;/span&gt; javax.microedition.midlet.MIDlet {&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; startApp() &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; MIDletStateChangeException {&lt;br /&gt;        &lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;I'm about to rock that SPOT !&lt;/span&gt;&amp;quot;);&lt;br /&gt;        &lt;br /&gt;        startSenderThread();&lt;br /&gt;        startReceiverThread();&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * The receiver thread blocks on the receive function&lt;br /&gt;     * so you don't have to sleep between each receive.&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; startReceiverThread() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Thread() {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; run() {&lt;br /&gt;                String tmp = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;                RadiogramConnection dgConnection = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;                Datagram dg = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;                &lt;br /&gt;                &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                    dgConnection = (RadiogramConnection) Connector.open(&amp;quot;&lt;span style="color: #8b0000"&gt;radiogram://:37&lt;/span&gt;&amp;quot;);&lt;br /&gt;                    &lt;span style="color: #008000"&gt;// Then, we ask for a datagram with the maximum size allowed&lt;/span&gt;&lt;br /&gt;                    dg = dgConnection.newDatagram(dgConnection.getMaximumLength());&lt;br /&gt;                } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IOException e) {&lt;br /&gt;                    System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Could not open radiogram receiver connection&lt;/span&gt;&amp;quot;);&lt;br /&gt;                    e.printStackTrace();&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;br /&gt;                &lt;span style="color: #0000ff"&gt;while&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;){&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                        dg.reset();&lt;br /&gt;                        dgConnection.receive(dg);&lt;br /&gt;                        tmp = dg.readUTF();&lt;br /&gt;                        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Received: &lt;/span&gt;&amp;quot; + tmp + &amp;quot;&lt;span style="color: #8b0000"&gt; from &lt;/span&gt;&amp;quot; + dg.getAddress());&lt;br /&gt;                    } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IOException e) {&lt;br /&gt;                        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Nothing received&lt;/span&gt;&amp;quot;);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }.start();&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * The sender thread sends a string each 500 ms&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;synchronized&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; startSenderThread() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Thread() {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; run() {&lt;br /&gt;                &lt;span style="color: #008000"&gt;// We create a DatagramConnection&lt;/span&gt;&lt;br /&gt;                DatagramConnection dgConnection = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;                Datagram dg = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                    &lt;span style="color: #008000"&gt;// The Connection is a broadcast so we specify it in the creation string&lt;/span&gt;&lt;br /&gt;                    dgConnection = (DatagramConnection) Connector.open(&amp;quot;&lt;span style="color: #8b0000"&gt;radiogram://broadcast:37&lt;/span&gt;&amp;quot;);&lt;br /&gt;                    &lt;span style="color: #008000"&gt;// Then, we ask for a datagram with the maximum size allowed&lt;/span&gt;&lt;br /&gt;                    dg = dgConnection.newDatagram(dgConnection.getMaximumLength());&lt;br /&gt;                } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IOException ex) {&lt;br /&gt;                    System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Could not open radiogram broadcast connection&lt;/span&gt;&amp;quot;);&lt;br /&gt;                    ex.printStackTrace();&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;br /&gt;                &lt;span style="color: #0000ff"&gt;while&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;){&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;br /&gt;                        &lt;span style="color: #008000"&gt;// We send the message (UTF encoded)&lt;/span&gt;&lt;br /&gt;                        dg.reset();&lt;br /&gt;                        dg.writeUTF(&amp;quot;&lt;span style="color: #8b0000"&gt;I rock&lt;/span&gt;&amp;quot;);&lt;br /&gt;                        dgConnection.send(dg);&lt;br /&gt;                        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Broadcast is going through&lt;/span&gt;&amp;quot;);&lt;br /&gt;                    } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (IOException ex) {&lt;br /&gt;                        ex.printStackTrace();&lt;br /&gt;                    }&lt;br /&gt;                    Utils.sleep(500);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }.start();&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; pauseApp() {&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * Called if the MIDlet is terminated by the system.&lt;br /&gt;     * I.e. if startApp throws any exception other than MIDletStateChangeException,&lt;br /&gt;     * if the isolate running the MIDlet is killed with Isolate.exit(), or&lt;br /&gt;     * if VM.stopVM() is called.&lt;br /&gt;     * &lt;br /&gt;     * It is not called if MIDlet.notifyDestroyed() was called.&lt;br /&gt;     *&lt;br /&gt;     * @param unconditional If true when this method is called, the MIDlet must&lt;br /&gt;     *    cleanup and release all resources. If false the MIDlet may throw&lt;br /&gt;     *    MIDletStateChangeException  to indicate it does not want to be destroyed&lt;br /&gt;     *    at this time.&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; destroyApp(&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt; unconditional) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; MIDletStateChangeException {&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;}&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-1131405298206341627?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/1131405298206341627/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=1131405298206341627" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/1131405298206341627?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/1131405298206341627?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/02/sunspot-broadcastsample-code.html" title="SunSPOT BroadcastSample Code" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0MERXg7cCp7ImA9WxVXE0k.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-6985755743462804456</id><published>2009-02-11T19:36:00.001+11:00</published><updated>2009-02-11T19:36:44.608+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-11T19:36:44.608+11:00</app:edited><title>乖乖给我发的情人节视频贺卡</title><content type="html">&lt;p align="center"&gt;&lt;object width="343" height="383"&gt;&lt;param name="movie" value="http://www.skypevideocards.com/flash/SkypeVideoCard.swf"&gt;&lt;embed src="http://www.skypevideocards.com/flash/SkypeVideoCard.swf" width="343" height="383" allowscriptaccess="always" wmode="opaque" flashvars="in_facebook=false&amp;card_id=&amp;card_url=http://www.skypevideocards.com/img/cards/big/8.jpg&amp;update_url=&amp;complete_method=record_complete&amp;video_name=9a6edef409e5a6bae2bcf916d73c32728b4753e3123433981017110"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-6985755743462804456?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/6985755743462804456/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=6985755743462804456" title="1 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/6985755743462804456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/6985755743462804456?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/02/blog-post.html" title="乖乖给我发的情人节视频贺卡" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CkMDQHk-eip7ImA9WxVXFkg.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7014553980922641449</id><published>2009-02-02T19:25:00.001+11:00</published><updated>2009-02-15T09:27:51.752+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-15T09:27:51.752+11:00</app:edited><title>A Brief History of Sensor Networks</title><content type="html">&lt;a title="View A Brief History of Sensor Networks on Scribd" style="display: block; margin: 12px auto 6px; font: 14px helvetica,arial,sans-serif; text-decoration: underline; font-size-adjust: none; font-stretch: normal; x-system-font: none" href="http://www.scribd.com/doc/12393726/A-Brief-History-of-Sensor-Networks"&gt;A Brief History of Sensor Networks&lt;/a&gt;&lt;a title="View A Brief History of Sensor Networks  document on Scribd" style="display: block; margin: 12px auto 6px; font: 14px helvetica,arial,sans-serif; text-decoration: underline; font-size-adjust: none; font-stretch: normal; x-system-font: none" href="http://www.scribd.com/doc/11494397/A-Brief-History-of-Sensor-Networks-"&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_990202462527072" name="doc_990202462527072" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle"	height="500" width="100%"&gt;		&lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=12393726&amp;amp;access_key=key-1urm2h7sldtkji272fag&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=list"&gt; 		&lt;param name="quality" value="high"&gt; 		&lt;param name="play" value="true"&gt;		&lt;param name="loop" value="true"&gt; 		&lt;param name="scale" value="showall"&gt;		&lt;param name="wmode" value="opaque"&gt; 		&lt;param name="devicefont" value="false"&gt;		&lt;param name="bgcolor" value="#ffffff"&gt; 		&lt;param name="menu" value="true"&gt;		&lt;param name="allowFullScreen" value="true"&gt; 		&lt;param name="allowScriptAccess" value="always"&gt; 		&lt;param name="salign" value=""&gt;    			    	&lt;param name="mode" value="list"&gt;	    		&lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=12393726&amp;amp;access_key=key-1urm2h7sldtkji272fag&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=list" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_990202462527072_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" mode="list" height="500" width="100%"&gt;&lt;/embed&gt;	&lt;/object&gt;&lt;/a&gt;&lt;a title="View A Brief History of Sensor Networks  document on Scribd" style="display: block; margin: 12px auto 6px; font: 14px helvetica,arial,sans-serif; text-decoration: underline; font-size-adjust: none; font-stretch: normal; x-system-font: none" href="http://www.scribd.com/doc/11494397/A-Brief-History-of-Sensor-Networks-"&gt;   &lt;div style="display: block; margin: 6px auto 3px; font: 12px helvetica,arial,sans-serif; font-size-adjust: none; font-stretch: normal; x-system-font: none"&gt;&lt;a style="text-decoration: underline" href="http://www.scribd.com/upload"&gt;Publish at Scribd&lt;/a&gt; or &lt;a style="text-decoration: underline" href="http://www.scribd.com/browse"&gt;explore&lt;/a&gt; others: &lt;a href="http://www.scribd.com/browse/Research/?style=text-decoration%3A+underline%3B"&gt;Research&lt;/a&gt; &lt;a style="text-decoration: underline" href="http://www.scribd.com/tag/network"&gt;network&lt;/a&gt; &lt;a style="text-decoration: underline" href="http://www.scribd.com/tag/sensor"&gt;sensor&lt;/a&gt; &lt;/div&gt; &lt;/a&gt;  &lt;div style="display: block; margin: 6px auto 3px; font: 12px helvetica,arial,sans-serif; font-size-adjust: none; font-stretch: normal; x-system-font: none" align="center"&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7014553980922641449?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7014553980922641449/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7014553980922641449" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7014553980922641449?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7014553980922641449?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/02/brief-history-of-sensor-networks.html" title="A Brief History of Sensor Networks" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEACQnkyeip7ImA9WxVQFUs.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7034813982099973918</id><published>2009-02-02T19:19:00.001+11:00</published><updated>2009-02-02T19:19:23.792+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T19:19:23.792+11:00</app:edited><title>WSRF Tutorial</title><content type="html">&lt;a title="View Tutorial 1 on Scribd" style="display: block; margin: 12px auto 6px; font: 14px helvetica,arial,sans-serif; text-decoration: underline; font-size-adjust: none; font-stretch: normal; x-system-font: none" href="http://www.scribd.com/doc/11568189/Tutorial-1"&gt;Tutorial 1&lt;/a&gt;  &lt;p align="center"&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_597643603408167" name="doc_597643603408167" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle"	height="500" width="100%"&gt;		&lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=11568189&amp;amp;access_key=key-2oh2ql5m2qwxohncgjsd&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode="&gt; 		&lt;param name="quality" value="high"&gt; 		&lt;param name="play" value="true"&gt;		&lt;param name="loop" value="true"&gt; 		&lt;param name="scale" value="showall"&gt;		&lt;param name="wmode" value="opaque"&gt; 		&lt;param name="devicefont" value="false"&gt;		&lt;param name="bgcolor" value="#ffffff"&gt; 		&lt;param name="menu" value="true"&gt;		&lt;param name="allowFullScreen" value="true"&gt; 		&lt;param name="allowScriptAccess" value="always"&gt; 		&lt;param name="salign" value=""&gt;    				&lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=11568189&amp;amp;access_key=key-2oh2ql5m2qwxohncgjsd&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_597643603408167_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;	&lt;/object&gt;&lt;/p&gt;  &lt;div style="display: block; margin: 6px auto 3px; font: 12px helvetica,arial,sans-serif; font-size-adjust: none; font-stretch: normal; x-system-font: none" align="center"&gt;&lt;a style="text-decoration: underline" href="http://www.scribd.com/upload"&gt;Publish at Scribd&lt;/a&gt; or &lt;a style="text-decoration: underline" href="http://www.scribd.com/browse"&gt;explore&lt;/a&gt; others: &lt;a href="http://www.scribd.com/browse/Manuals/?style=text-decoration%3A+underline%3B"&gt;Manuals&lt;/a&gt; &lt;a href="http://www.scribd.com/browse/eBooks/Internet-Technology?style=text-decoration%3A+underline%3B"&gt;Internet &amp;amp; Technolog&lt;/a&gt; &lt;a style="text-decoration: underline" href="http://www.scribd.com/tag/2008"&gt;2008&lt;/a&gt; &lt;a style="text-decoration: underline" href="http://www.scribd.com/tag/powerpoint"&gt;powerpoint&lt;/a&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7034813982099973918?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7034813982099973918/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7034813982099973918" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7034813982099973918?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7034813982099973918?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/02/wsrf-tutorial.html" title="WSRF Tutorial" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0MFRHw6eCp7ImA9WxVREU0.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7046928451985677893</id><published>2009-01-16T22:30:00.001+11:00</published><updated>2009-01-16T22:30:15.210+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-16T22:30:15.210+11:00</app:edited><title>WWII Posters</title><content type="html">&lt;p align="center"&gt;&lt;img src="http://afsf.lackland.af.mil/images/wwii/images/WWII United Nations1_jpg.jpg" /&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://afsf.lackland.af.mil/images/wwii/images/WWII United Nations2_jpg.jpg" /&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://afsf.lackland.af.mil/images/wwii/images/WWII United Nations3_jpg.jpg" /&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://afsf.lackland.af.mil/images/wwii/images/WWII United Nations4_jpg.jpg" /&gt; &lt;/p&gt;  &lt;p align="right"&gt;&lt;a title="http://afsf.lackland.af.mil/images/wwii/index.htm" href="http://afsf.lackland.af.mil/images/wwii/index.htm"&gt;http://afsf.lackland.af.mil/images/wwii/index.htm&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7046928451985677893?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7046928451985677893/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7046928451985677893" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7046928451985677893?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7046928451985677893?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2009/01/wwii-posters.html" title="WWII Posters" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkECRXYyeyp7ImA9WxVQGUQ.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-6979810609326488552</id><published>2008-12-24T13:33:00.001+11:00</published><updated>2009-02-07T19:17:44.893+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-07T19:17:44.893+11:00</app:edited><title>PASSED! Sun Certificated Specialist for NetBeans IDE</title><content type="html">&lt;p&gt;Dear Peng (Certification ID#: SUN484247) &lt;/p&gt;  &lt;p&gt;Congratulations on completing all the requirements for the    &lt;br /&gt;Sun Certified Specialist for NetBeans IDE certification. You were certified on 10/31/2008. &lt;/p&gt;  &lt;p&gt;......    &lt;br /&gt;...... &lt;/p&gt;  &lt;p&gt;Congratulations! &lt;/p&gt;  &lt;p align="center"&gt;&lt;a title="SCNBI_Page1_Covered" href="http://www.flickr.com/photos/92451008@N00/3153860938/"&gt;&lt;img alt="SCNBI_Page1_Covered" src="http://static.flickr.com/3088/3153860938_fe1be3c3b0.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Certification Department&lt;/p&gt;  &lt;p&gt;&lt;a title="Credential Verification Report" href="http://www.flickr.com/photos/92451008@N00/3131607299/"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="Credential Verification Report" src="http://static.flickr.com/3229/3131607299_2bc6b5f669.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Actually, this is my first IT skill certificate &lt;img alt="Big Grin" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/4.gif" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a title="Sun NetBeans Ccertificate" href="http://www.flickr.com/photos/92451008@N00/3260074744/"&gt;&lt;img alt="Sun NetBeans Ccertificate" src="http://static.flickr.com/3490/3260074744_a7f4db960f.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-6979810609326488552?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/6979810609326488552/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=6979810609326488552" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/6979810609326488552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/6979810609326488552?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/12/passed-sun-certificated-specialist-for.html" title="PASSED! Sun Certificated Specialist for NetBeans IDE" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0UHSHs7eCp7ImA9WxVTEEU.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-1355041339388628765</id><published>2008-12-24T01:56:00.001+11:00</published><updated>2008-12-24T13:20:39.500+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-24T13:20:39.500+11:00</app:edited><title>Simple EHCACHE Application</title><content type="html">&lt;p&gt;&lt;a href="http://ehcache.sourceforge.net/" target="_blank"&gt;Ehcache&lt;/a&gt; is a widely used java distributed cache for general purpose caching, Java EE and light-weight containers.     &lt;br /&gt;It features memory and disk stores, replicate by copy and invalidate, listeners, cache loaders, cache extensions, cache exception handlers, a gzip caching servlet filter and much more ...     &lt;br /&gt;Ehcache is available under an Apache open source license and is actively developed, maintained and supported.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://ehcache.sourceforge.net/images/layered_architecture.png" /&gt; &lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #008000"&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; helloehcache;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.Random;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; net.sf.ehcache.Cache;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; net.sf.ehcache.CacheManager;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; net.sf.ehcache.Element;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Administrator&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Main {&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * @param args the command line arguments&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; main(String[] args) {&lt;br /&gt;        &lt;span style="color: #008000"&gt;//Create a CacheManager instance using defaults.&lt;/span&gt;&lt;br /&gt;        CacheManager manager = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CacheManager();&lt;br /&gt;        &lt;span style="color: #008000"&gt;//Create a Cache and add it to the CacheManager, then use it.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;/*&lt;br /&gt;         * @param name                the name of the cache. Note that &amp;quot;default&amp;quot; is a reserved name for the defaultCache.&lt;br /&gt;         * @param maxElementsInMemory the maximum number of elements in memory, before they are evicted&lt;br /&gt;         * @param overflowToDisk      whether to use the disk store&lt;br /&gt;         * @param eternal             whether the elements in the cache are eternal, i.e. never expire&lt;br /&gt;         * @param timeToLiveSeconds   the default amount of time to live for an element from its creation date&lt;br /&gt;         * @param timeToIdleSeconds   the default amount of time to live for an element from its last accessed or modified date&lt;br /&gt;         */&lt;/span&gt;&lt;br /&gt;        Cache memoryOnlyCache = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Cache(&amp;quot;&lt;span style="color: #8b0000"&gt;CacheName&lt;/span&gt;&amp;quot;, 5000, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, 7, 2);&lt;br /&gt;        manager.addCache(memoryOnlyCache);&lt;br /&gt;        Cache testCache = manager.getCache(&amp;quot;&lt;span style="color: #8b0000"&gt;CacheName&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;            &lt;span style="color: #008000"&gt;//Queries are coming&lt;/span&gt;&lt;br /&gt;            Random random = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Random();&lt;br /&gt;            String key = &amp;quot;&lt;span style="color: #8b0000"&gt;Key&lt;/span&gt;&amp;quot; + String.valueOf((&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;) (random.nextFloat() * 10f));&lt;br /&gt;            String value = &amp;quot;&lt;span style="color: #8b0000"&gt;Value&lt;/span&gt;&amp;quot; + String.valueOf(random.nextFloat() * 10f);&lt;br /&gt;            System.out.println(i + &amp;quot;&lt;span style="color: #8b0000"&gt;. Quering &lt;/span&gt;&amp;quot; + key);&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (testCache.get(key) == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;br /&gt;                System.out.print(&amp;quot;&lt;span style="color: #8b0000"&gt;Cache is not hit! &lt;/span&gt;&amp;quot;);&lt;br /&gt;                testCache.put(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Element(key, value));&lt;br /&gt;                System.out.print(key + &amp;quot;&lt;span style="color: #8b0000"&gt; &lt;/span&gt;&amp;quot; + value + &amp;quot;&lt;span style="color: #8b0000"&gt; has been put into cache.&lt;/span&gt;&amp;quot;);&lt;br /&gt;            } &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {&lt;br /&gt;                System.out.print(&amp;quot;&lt;span style="color: #8b0000"&gt;Cache is hit! &lt;/span&gt;&amp;quot;);&lt;br /&gt;                Element cachedResult = testCache.get(key);&lt;br /&gt;                System.out.print(&amp;quot;&lt;span style="color: #8b0000"&gt;The value is &lt;/span&gt;&amp;quot; + cachedResult.getObjectValue());&lt;br /&gt;            }&lt;br /&gt;            System.out.println();&lt;br /&gt;            System.out.println();&lt;br /&gt;        }&lt;br /&gt;        System.out.println(testCache.getStatistics().getCacheMisses() + &amp;quot;&lt;span style="color: #8b0000"&gt;/10 missing&lt;/span&gt;&amp;quot;);&lt;br /&gt;        manager.shutdown();&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For more code samples, please visit: &lt;a title="http://ehcache.sourceforge.net/documentation/samples.html" href="http://ehcache.sourceforge.net/documentation/samples.html"&gt;http://ehcache.sourceforge.net/documentation/samples.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-1355041339388628765?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/1355041339388628765/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=1355041339388628765" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/1355041339388628765?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/1355041339388628765?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/12/simple-ehcache-application.html" title="Simple EHCACHE Application" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkQGRXYyeyp7ImA9WxRVFks.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7726862441456517515</id><published>2008-11-14T23:05:00.001+11:00</published><updated>2008-11-14T23:05:24.893+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-14T23:05:24.893+11:00</app:edited><title>ISSNIP Summer School 2008</title><content type="html">&lt;p&gt;I gave a talk in Intelligent Sensors, Sensor Networks and Information Processing (ISSNIP) yesterday. My talk covers 2 topics, one is Sensor Network Analyzer from company I am working for and Sun SPOT.&lt;/p&gt;  &lt;div align="center"&gt;   &lt;div id="__ss_751609" style="width: 425px; text-align: left"&gt;&lt;a title="Issnip Presentation" style="display: block; margin: 12px 0px 3px; font: 14px helvetica,arial,sans-serif; text-decoration: underline" href="http://www.slideshare.net/pauldeng/issnip-presentation-presentation-751609?type=powerpoint"&gt;Issnip Presentation&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=issnippresentation-1226632204404855-8&amp;amp;stripped_title=issnip-presentation-presentation-751609" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=issnippresentation-1226632204404855-8&amp;amp;stripped_title=issnip-presentation-presentation-751609" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;      &lt;div style="font-size: 11px; padding-top: 2px; font-family: tahoma,arial; height: 26px"&gt;View SlideShare &lt;a title="View Issnip Presentation on SlideShare" style="text-decoration: underline" href="http://www.slideshare.net/pauldeng/issnip-presentation-presentation-751609?type=powerpoint"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration: underline" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own.&lt;/div&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Daintree's Sensor Network Analyzer (SNA) provides the industry's most comprehensive solution for ZigBee and 802.15.4 testing, analysis and commissioning. For more information, please check: &lt;a title="http://www.daintree.net/" href="http://www.daintree.net/"&gt;http://www.daintree.net/&lt;/a&gt;&lt;/p&gt;  &lt;p align="right"&gt;For more information about ISSNIP, please check:&lt;a title="http://www.ee.unimelb.edu.au/ISSNIP/events/summerschool08.html" href="http://www.ee.unimelb.edu.au/ISSNIP/events/summerschool08.html"&gt;http://www.ee.unimelb.edu.au/ISSNIP/events/summerschool08.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7726862441456517515?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7726862441456517515/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7726862441456517515" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7726862441456517515?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7726862441456517515?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/11/issnip-summer-school-2008.html" title="ISSNIP Summer School 2008" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEYAQ30-cSp7ImA9WxRWE0s.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-3017047251522554947</id><published>2008-10-30T21:22:00.001+11:00</published><updated>2008-10-30T21:22:22.359+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-30T21:22:22.359+11:00</app:edited><title>NetBeans Keyboard Short Cut</title><content type="html">&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_384764709570826" name="doc_384764709570826" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle"	height="500" width="100%"&gt;		&lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=7629741&amp;amp;access_key=key-14jis5poelf7cvkm0opj&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true&amp;amp;viewMode="&gt; 		&lt;param name="quality" value="high"&gt; 		&lt;param name="play" value="true"&gt;		&lt;param name="loop" value="true"&gt; 		&lt;param name="scale" value="showall"&gt;		&lt;param name="wmode" value="opaque"&gt; 		&lt;param name="devicefont" value="false"&gt;		&lt;param name="bgcolor" value="#ffffff"&gt; 		&lt;param name="menu" value="true"&gt;		&lt;param name="allowFullScreen" value="true"&gt; 		&lt;param name="allowScriptAccess" value="always"&gt; 		&lt;param name="salign" value=""&gt;    		&lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=7629741&amp;amp;access_key=key-14jis5poelf7cvkm0opj&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_384764709570826_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;	&lt;/object&gt;  &lt;div style="font-size: 10px; width: 100%; text-align: center"&gt;&lt;a href="http://www.scribd.com/doc/7629741/netbeans-keyboard-short-cut"&gt;netbeans keyboard short cut&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a Document to Scribd&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-3017047251522554947?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/3017047251522554947/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=3017047251522554947" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/3017047251522554947?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/3017047251522554947?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/10/netbeans-keyboard-short-cut.html" title="NetBeans Keyboard Short Cut" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0cASXkzeyp7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-9151831286307001378</id><published>2008-10-25T21:42:00.001+11:00</published><updated>2008-10-26T09:50:48.783+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T09:50:48.783+11:00</app:edited><title>XMLBeans and SensorML conflict</title><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Digested from: &lt;a title="http://forums.sun.com/thread.jspa?threadID=5332907" href="http://forums.sun.com/thread.jspa?threadID=5332907"&gt;http://forums.sun.com/thread.jspa?threadID=5332907&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hi all,    &lt;br /&gt;i have run out of all ideas and i am in a desperate need of help here, our project is stuck in the middle because of this.     &lt;br /&gt;I am using xmlbeans to bind xml to java objects. We are using OM, SWE and GML (opengis.net) schema specifications for our xmls. Xmlbeans has no problem creating schema if i am not importing any of the above schemas but when i try to i get the following error&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#404040"&gt;addNewLocation() in net.opengis.sensorML.x101.AbstractDerivableComponentType clashes with addNewLocation() in net.opengis.gml.AbstractFeatureType; attempting to use incompatible return type      &lt;br /&gt;found: net.opengis.sensorML.x101.LocationDocument.Location       &lt;br /&gt;required: net.opengis.gml.LocationPropertyType&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I've researched this for a while and found out that the problem is within SensorML schema and here is a apparent fix for this: [ https://52north.org/twiki/bin/view/Sensornet/SensorML| https://52north.org/twiki/bin/view/Sensornet/SensorML]    &lt;br /&gt;Now I am assuming that I am to download (using xmlbeans' sdownload tool) the system.xsd from SensorML folder (schemas.opengis.net) and make that change and since sdownload will create a catalog file, i use that catalog file when compiling the schema and xmlbean will look at the system.xsd on my local machine and go to the net for everything else.     &lt;br /&gt;The above is obviously not working since I don't think it ever looks at the system.xsd on my local machine but go to the net for it and obviously stumbles upon the problem.     &lt;br /&gt;Does anybody have any idea what i am talking about and how i can fix this?     &lt;br /&gt;I will greatly appreciate any insights into this problem. Our project is stuck at this and we can't move forward until this is resolved. thanks&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;so fixed my own problem :D, oh what a relief.      &lt;br /&gt;&lt;/strong&gt;here is what i did in case some other poor soul encounters this issue.     &lt;br /&gt;- I downloaded SCHEMAS_OPENGIS_NET.zip from &lt;a href="http://schemas.opengis.net/"&gt;http://schemas.opengis.net/&lt;/a&gt;     &lt;br /&gt;- made the changes to the system.xsd file that were suggested here: &lt;a href="https://52north.org/twiki/bin/view/Sensornet/SensorML"&gt;https://52north.org/twiki/bin/view/Sensornet/SensorML&lt;/a&gt;     &lt;br /&gt;- my xsd file imported name space like the following&lt;/p&gt;  &lt;p&gt;here is what i did in case some other poor soul encounters this issue.    &lt;br /&gt;- I downloaded SCHEMAS_OPENGIS_NET.zip from &lt;a href="http://schemas.opengis.net/"&gt;http://schemas.opengis.net/&lt;/a&gt;     &lt;br /&gt;- made the changes to the system.xsd file that were suggested here: &lt;a href="https://52north.org/twiki/bin/view/Sensornet/SensorML"&gt;https://52north.org/twiki/bin/view/Sensornet/SensorML&lt;/a&gt;     &lt;br /&gt;- my xsd file imported name space like the following&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;namespace&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://www.opengis.net/gml&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;schemaLocation&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://schemas.opengis.net/gml/3.1.1/base/gml.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;namespace&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://www.opengis.net/swe/1.0.1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;schemaLocation&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://schemas.opengis.net/sweCommon/1.0.1/swe.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;include&lt;/span&gt; &lt;span style="color: #ff0000"&gt;schemaLocation&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://schemas.opengis.net/om/1.0.0/om.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I replaced the url to the name of the above folder. in my case it was SCHEMAS_OPENGIS_NET so now i've&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;namespace&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://www.opengis.net/gml&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;schemaLocation&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;SCHEMAS_OPENGIS_NET/gml/3.1.1/base/gml.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;import&lt;/span&gt; &lt;span style="color: #ff0000"&gt;namespace&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://www.opengis.net/swe/1.0.1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;schemaLocation&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;SCHEMAS_OPENGIS_NET/sweCommon/1.0.1/swe.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;include&lt;/span&gt; &lt;span style="color: #ff0000"&gt;schemaLocation&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;SCHEMAS_OPENGIS_NET/om/1.0.0/om.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;and that it, compile away :) &lt;br /&gt;  &lt;br /&gt;reply to this thread if u need help with this issue, i'll try to help if i can :)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Here below is text from &lt;a href="https://52north.org/twiki/bin/view/Sensornet/SensorML"&gt;https://52north.org/twiki/bin/view/Sensornet/SensorML&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Sensor Model Language (SensorML) &lt;/h3&gt;&lt;br /&gt;SensorML defines concepts and XML encodings for descriptions of sensors, processes and systems. SensorML is used in several OGC SWE web services (e.g. SOS, SPS, SAS). &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;a name="Compiling _SensorML with _XmlBea"&gt;&lt;/a&gt;Compiling SensorML with XmlBeans &lt;/h3&gt;&lt;br /&gt;If you want to compile the sensorML.xsd schema into Java classes with XmlBeans, you have to do a small change in the schema. Open the &lt;code&gt;&lt;b&gt;system.xsd&lt;/b&gt;&lt;/code&gt; file and navigate to the definition of &lt;code&gt;&lt;b&gt;sml:AbstractDerivableComponentType&lt;/b&gt;&lt;/code&gt;. This type is an extension of &lt;code&gt;&lt;b&gt;sml:AbstractProcessType&lt;/b&gt;&lt;/code&gt;, which is an extension of &lt;code&gt;&lt;b&gt;gml:Feature&lt;/b&gt;&lt;/code&gt;. That is, why every &lt;code&gt;&lt;b&gt;sml:AbstractDerivableComponent&lt;/b&gt;&lt;/code&gt; has a &lt;code&gt;&lt;b&gt;location&lt;/b&gt;&lt;/code&gt; element with type &lt;code&gt;&lt;b&gt;gml:location&lt;/b&gt;&lt;/code&gt;. The &lt;code&gt;&lt;b&gt;sml:AbstractDerivableComponentType&lt;/b&gt;&lt;/code&gt; also contains a second &lt;code&gt;&lt;b&gt;location&lt;/b&gt;&lt;/code&gt; element, which is of type &lt;code&gt;&lt;b&gt;sml:location&lt;/b&gt;&lt;/code&gt; Having two &lt;code&gt;&lt;b&gt;location&lt;/b&gt;&lt;/code&gt; elements defined in the &lt;code&gt;&lt;b&gt;sml:AbstractDerivableComponentType&lt;/b&gt;&lt;/code&gt; leads to compiler errors when compiling the XmlBeans created Java classes. &lt;br /&gt;&lt;br /&gt;&lt;p&gt;Solution: The &lt;code&gt;&lt;b&gt;sml:location&lt;/b&gt;&lt;/code&gt; restricts &lt;code&gt;&lt;b&gt;gml:location&lt;/b&gt;&lt;/code&gt; to &lt;code&gt;&lt;b&gt;gml:Point&lt;/b&gt;&lt;/code&gt; and &lt;code&gt;&lt;b&gt;gml:_CurveType&lt;/b&gt;&lt;/code&gt;. &lt;font color="#ff0000"&gt;The easiest way to get around with that, is to change the type of the &lt;code&gt;&lt;b&gt;location&lt;/b&gt;&lt;/code&gt; defined in the &lt;code&gt;&lt;b&gt;sml:AbstractDerivableComponentType&lt;/b&gt;&lt;/code&gt; at line 24 from &lt;code&gt;&lt;b&gt;sml:location&lt;/b&gt;&lt;/code&gt; to &amp;quot;gml:location&amp;quot;.&lt;/font&gt; Although this keeps back the restriction to &lt;code&gt;&lt;b&gt;gml:Point&lt;/b&gt;&lt;/code&gt; and &lt;code&gt;&lt;b&gt;gml:_CurveType&lt;/b&gt;&lt;/code&gt;, you can use these types and the schema could be compiled with XmlBeans. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Please write, if you know a better solution! &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;a name="Validating _SensorML with Altova"&gt;&lt;/a&gt;Validating SensorML with Altova XmlSpy &lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For those developers, who are using XmlSpy 2005: If you comment out the &lt;code&gt;&lt;b&gt;xs:element name=&amp;quot;parameter&amp;quot; type=&amp;quot;swe:DataComponentPropertyType&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot;&lt;/b&gt;&lt;/code&gt; element in line 298, the validation of schema &lt;code&gt;&lt;b&gt;system.xsd&lt;/b&gt;&lt;/code&gt; should work! -- &lt;a href="https://52north.org/twiki/bin/view/Main/ChristophStasch"&gt;ChristophStasch&lt;/a&gt; - 19 Jun 2007 &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To validate all SensorML schema with XmlBeans&lt;a href="https://52north.org/twiki/bin/edit/Sensornet/XmlBeans?topicparent=Sensornet.SensorML"&gt;&lt;sup&gt;?&lt;/sup&gt;&lt;/a&gt; 2005 rel 3, you also have to outcomment the &lt;code&gt;&lt;b&gt;parameters&lt;/b&gt;&lt;/code&gt; element in the &lt;code&gt;&lt;b&gt;TransducerType&lt;/b&gt;&lt;/code&gt;. This is quick and dirty and I will try to see, whether there are better workarounds for this issue. Nevertheless the whole schema do validate for now... -- &lt;a href="https://52north.org/twiki/bin/view/Main/ChristophStasch"&gt;ChristophStasch&lt;/a&gt; - 23 Jun 2007&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="4"&gt;My comment:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I can successfully compile SensorML using XMLBeans by following the solution from &lt;a href="https://52north.org/twiki/bin/view/Sensornet/SensorML"&gt;https://52north.org/twiki/bin/view/Sensornet/SensorML&lt;/a&gt;. I am not sure why I need to modify the schema location according to &lt;a title="http://forums.sun.com/thread.jspa?threadID=5332907" href="http://forums.sun.com/thread.jspa?threadID=5332907"&gt;http://forums.sun.com/thread.jspa?threadID=5332907&lt;/a&gt;. If you have any idea, please let me know. Thanks!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-9151831286307001378?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/9151831286307001378/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=9151831286307001378" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/9151831286307001378?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/9151831286307001378?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/10/xmlbeans-and-sensorml-conflict.html" title="XMLBeans and SensorML conflict" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0cMQ3cyeyp7ImA9WxRXGUo.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-4672281418535468447</id><published>2008-10-23T21:37:00.001+11:00</published><updated>2008-10-26T09:51:22.993+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-26T09:51:22.993+11:00</app:edited><title>6LowPAN Tutorial</title><content type="html">&lt;div align="center"&gt;   &lt;div id="__ss_679283" style="width: 425px; text-align: left"&gt;&lt;a title="6 Lo Wpan Tutorial 20080206" style="display: block; margin: 12px 0px 3px; font: 14px helvetica,arial,sans-serif; text-decoration: underline" href="http://www.slideshare.net/pauldeng/6-lo-wpan-tutorial-20080206-presentation?type=powerpoint"&gt;6 Lo Wpan Tutorial 20080206&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=6lowpantutorial20080206-1224643781661217-9&amp;amp;stripped_title=6-lo-wpan-tutorial-20080206-presentation" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=6lowpantutorial20080206-1224643781661217-9&amp;amp;stripped_title=6-lo-wpan-tutorial-20080206-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-4672281418535468447?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/4672281418535468447/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=4672281418535468447" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/4672281418535468447?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/4672281418535468447?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/10/6lowpan-tutorial.html" title="6LowPAN Tutorial" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkUBSX07eSp7ImA9WxRXGU4.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-2132716475054595224</id><published>2008-10-21T22:07:00.001+11:00</published><updated>2008-10-25T21:24:18.301+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-25T21:24:18.301+11:00</app:edited><title>SunSPOT Application Template Updated</title><content type="html">&lt;p&gt;It seems some API has been changed, but the template file has not reflect these changes yet. Here is the latest template file:&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #008000"&gt;/*&lt;br /&gt; * StartApplication.java&lt;br /&gt; *&lt;br /&gt; * Created on Oct 21, 2008 9:42:46 PM;&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; org.sunspotworld;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.peripheral.Spot;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.EDemoBoard;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.ISwitch;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.sensorboard.peripheral.ITriColorLED;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.sun.spot.util.*;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.midlet.MIDlet;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.microedition.midlet.MIDletStateChangeException;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;/**&lt;br /&gt; * The startApp method of this class is called by the VM to start the&lt;br /&gt; * application.&lt;br /&gt; * &lt;br /&gt; * The manifest specifies this class as MIDlet-1, which means it will&lt;br /&gt; * be selected for execution.&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; StartApplication &lt;span style="color: #0000ff"&gt;extends&lt;/span&gt; MIDlet {&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; ITriColorLED [] leds = EDemoBoard.getInstance().getLEDs();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; startApp() &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; MIDletStateChangeException {&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Hello, world&lt;/span&gt;&amp;quot;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BootloaderListener().start();   &lt;span style="color: #008000"&gt;// monitor the USB (if connected) and recognize commands from host&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: #008000"&gt;//        long ourAddr = RadioFactory.getRadioPolicyManager().getIEEEAddress();&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;long&lt;/span&gt; ourAddr = Spot.getInstance().getRadioPolicyManager().getIEEEAddress();&lt;/strong&gt;&lt;br /&gt;        System.out.println(&amp;quot;&lt;span style="color: #8b0000"&gt;Our radio address = &lt;/span&gt;&amp;quot; + IEEEAddress.toDottedHex(ourAddr));&lt;br /&gt;&lt;br /&gt;        ISwitch sw1 = EDemoBoard.getInstance().getSwitches()[EDemoBoard.SW1];&lt;br /&gt;        leds[0].setRGB(100,0,0);                &lt;span style="color: #008000"&gt;// set color to moderate red&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (sw1.isOpen()) {                  &lt;span style="color: #008000"&gt;// done when switch is pressed&lt;/span&gt;&lt;br /&gt;            leds[0].setOn();                    &lt;span style="color: #008000"&gt;// Blink LED&lt;/span&gt;&lt;br /&gt;            Utils.sleep(250);                   &lt;span style="color: #008000"&gt;// wait 1/4 seconds&lt;/span&gt;&lt;br /&gt;            leds[0].setOff();&lt;br /&gt;            Utils.sleep(1000);                  &lt;span style="color: #008000"&gt;// wait 1 second&lt;/span&gt;&lt;br /&gt;        }&lt;br /&gt;        notifyDestroyed();                      &lt;span style="color: #008000"&gt;// cause the MIDlet to exit&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; pauseApp() {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// This is not currently called by the Squawk VM&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;/**&lt;br /&gt;     * Called if the MIDlet is terminated by the system.&lt;br /&gt;     * I.e. if startApp throws any exception other than MIDletStateChangeException,&lt;br /&gt;     * if the isolate running the MIDlet is killed with Isolate.exit(), or&lt;br /&gt;     * if VM.stopVM() is called.&lt;br /&gt;     * &lt;br /&gt;     * It is not called if MIDlet.notifyDestroyed() was called.&lt;br /&gt;     *&lt;br /&gt;     * @param unconditional If true when this method is called, the MIDlet must&lt;br /&gt;     *    cleanup and release all resources. If false the MIDlet may throw&lt;br /&gt;     *    MIDletStateChangeException  to indicate it does not want to be destroyed&lt;br /&gt;     *    at this time.&lt;br /&gt;     */&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; destroyApp(&lt;span style="color: #0000ff"&gt;boolean&lt;/span&gt; unconditional) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; MIDletStateChangeException {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 8; i++) {&lt;br /&gt;            leds[i].setOff();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Please note the 2 lines in bold. This bug only happens when you are using SunSPOTApplicationTemplate 1.8 with Purple SDK, in new Blue SDK, it is not a problem. This problem is because the API change.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-2132716475054595224?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/2132716475054595224/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=2132716475054595224" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/2132716475054595224?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/2132716475054595224?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/10/sunspot-application-template-updated.html" title="SunSPOT Application Template Updated" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0YCQHw7fCp7ImA9WxRSGUg.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7080080198633648288</id><published>2008-09-21T08:52:00.001+10:00</published><updated>2008-09-21T08:52:41.204+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-21T08:52:41.204+10:00</app:edited><title>The future of mobile 一起畅想一下手机的未来</title><content type="html">&lt;p&gt;&lt;em&gt;The Internet has had an enormous impact on people's lives around the world in the ten years since Google's founding. It has changed politics, entertainment, culture, business, health care, the environment and just about every other topic you can think of. Which got us to thinking, what's going to happen in the next ten years? How will this phenomenal technology evolve, how will we adapt, and (more importantly) how will it adapt to us? We asked ten of our top experts this very question, and during September (our 10th anniversary month) we are presenting &lt;/em&gt;&lt;a href="http://googleblog.blogspot.com/search/label/Google%20at%2010"&gt;&lt;em&gt;their responses&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. As computer scientist Alan Kay has famously observed, the best way to predict the future is to invent it, so we will be doing our best to make good on our experts' words every day. - Karen Wickre and Alan Eagle, series editors      &lt;br /&gt;&lt;/em&gt;There are currently about 3.2 billion mobile subscribers in the world, and that number is expected to grow by at least a billion in the next few years. Today, mobile phones are more prevalent than cars (about 800 million registered vehicles in the world) and credit cards (only 1.4 billion of those). While it took 100 years for landline phones to spread to more than 80% of the countries in the world, their wireless descendants did it in 16. And fewer teens are wearing watches now because they use their phones to tell time instead (somewhere &lt;a href="http://en.wikipedia.org/wiki/Chester_Gould"&gt;Chester Gould&lt;/a&gt; is wondering how he got it backwards). So it's safe to say that the mobile phone may be the most prolific consumer product ever invented.     &lt;br /&gt;However, have you ever considered just exactly how powerful these ubiquitous devices are? The phone that you have in your pocket, pack, or handbag is probably ten times more powerful than the PC you had on your desk only 8 or 9 years ago (assuming you even had a PC; most mobile users never have). It has a range of sensors that would do a martian lander proud: a clock, power sensor (how low is that battery?), thermometer (because batteries charge poorly at low temperatures), and light meter (to determine screen backlighting) on the more basic phones; a location sensor, accelerometer (detects vector and velocity of motion), and maybe even a compass on more advanced ones. And most importantly, it is by its very nature always connected.     &lt;br /&gt;Project out these trends another ten years. You will be carrying with you, 24x7 (a recent study of Chinese mobile customers showed that the majority of them sleep within a meter of their phones), a very powerful, always connected, sensor-rich device. And the cool thing is, so will everyone else. So what are you going to do with it that you aren't doing now? Here are some possibilities:     &lt;br /&gt;Smart alerts: Your phone will be smart about your situation and alert you when something needs your attention. This is already happening today -- eBay can text you when you've been outbid, and alert services (such as Google News) can deliver news, sports, or stock updates to you. In the future these applications will get smarter, patiently monitoring your personalized preferences (which will be stored in the network cloud) and delivering only the information you desire. One very useful scenario: your phone knows that you are heading downtown for dinner, and alerts you of transit conditions or the best places to park.     &lt;br /&gt;Augmented reality: Your phone uses its arsenal of sensors to understand your situation and provide you information that might be useful. For example, do you really want to know how much is that doggy in the window? Your phone, with its GPS and compass, knows what you are looking at, so it can tell you before you even ask. Plus, what breed it is and the best way to train him.     &lt;br /&gt;Crowd sourcing goes mainstream: Your phone is your omnipresent microphone to the world, a way to publish pictures, emails, texts, Twitters, and blog entries. When everyone else is doing the same, you have a world where people from every corner of the planet are covering their experiences in real-time. That massive amount of content gets archived, sorted, and re-deployed to other people in new and interesting ways. Ask the web for the most interesting sites in your vicinity, and your phone shows you reviews and pictures that people have uploaded of nearby attractions. Like what you see? It will send you directions on how to get there.     &lt;br /&gt;Sensors everywhere: Your phone knows a lot about the world around you. If you take that intelligence and combine it in the cloud with that of every other phone, we have an incredible snapshot of what is going on in the world right now. Weather updates can be based on not hundreds of sensors, but hundreds of millions. Traffic reports can be based not on helicopters and road sensors, but on the density, speed, and direction of the phones (and people) stuck in the traffic jams.     &lt;br /&gt;Tool for development: Your phone may be more than just a convenience, it may be your livelihood. Already, this is true for people in many parts of the world: in southern India, fishermen use text messaging to find the best markets for their daily catch, in South Africa, sugar farmers can receive text messages advising them on how much to irrigate their crops, and throughout sub-Saharan Africa entrepreneurs with mobile phones become phone operators, bringing communications to their villages. These innovations will only increase in the future, as mobile phones become the linchpin for greater economic development.     &lt;br /&gt;The future-proof device: Your phone will open up, as the Internet already has, so it will be easy for developers to create or improve applications and content. The ones that you care about get automatically installed on your phone. Let's say you have a piece of software on your phone to improve power management (and therefore battery life). Let's say a developer makes an improvement to the software. The update gets automatically installed on your phone, without you lifting a finger. Your phone actually gets better over time.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Safer software through trust and verification: &lt;/b&gt;Your phone will provide tools and information to empower you to decide what to download, what to see, and what to share. Trust is the most important currency in the always connected world, and your phone will help you stay in control of your information. You may choose to share nothing at all (the default mode), or just share certain things with certain people -- your circle of trusted friends and family. You'll make these decisions based on information you get from the service and software providers, and the collective ratings of the community as well. Your phone is like your trusted valet: it knows a lot about you, and won't disclose an iota of it without your OK.&lt;/p&gt;  &lt;p&gt;Now, if we can just train it to do your laundry ...    &lt;br /&gt;Posted by Andy Rubin, Engineering Director&lt;/p&gt;  &lt;p align="right"&gt;&lt;a title="http://googleblog.blogspot.com/2008/09/future-of-mobile.html" href="http://googleblog.blogspot.com/2008/09/future-of-mobile.html"&gt;http://googleblog.blogspot.com/2008/09/future-of-mobile.html&lt;/a&gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;设计师常会讨论到“设计能不能改变世界”这个问题，“改变世界”通常是我们作为个体追求的一种最高理想，我们可以退而求其次，“科技改变世界”是一条公认的真理，在中国也是，当然还有一条是我们不太“想”谈的，但我们可以光明正大来谈“科技”是如何改变人们的生活，如何改变这个社会。什么科技在改变着我们，如果我们把范围定在这几年，第一答案一定会是“互联网”，接下来的也许就是我们这篇文章的主题——“手机”，到2008年上半年中国手机用户已达 6亿，没有什么比它更普及更接近每一个个人，调查显示大部分的中国人睡觉时离手机的距离在1米之内。&lt;/p&gt;  &lt;p&gt;这个“1米之内”的数据引用之 Google 官方 Blog 的一篇文章“&lt;a href="http://googleblog.blogspot.com/2008/09/future-of-mobile.html"&gt;The future of mobile&lt;/a&gt;”，这篇文章谈论了移动和手机的未来。文中说到现在全球已有32亿的手机用户，它的普及率超过了汽车、信用卡和固定电话，手机的16年就完成了固定电话百年的扩展，年轻人更少戴手表因为手机会显示时间，手机无疑是最普及的消费产品。现在手机的功能已经超过8，9年前的PC,而且它有一系列的传感探测器诸如时钟、电能、光感、温度、地理以及动力速度等。文章从几方面出发谈论了手机未来的各种可能性。&lt;/p&gt;  &lt;p&gt;1，智能提醒。根据你的所处情况为主动你提供各种信息，诸如建议，各种即使信息等。结合你的个人信息（储存在云网络中）为你提供恰巧需要的信息。&lt;/p&gt;  &lt;p&gt;2，AR，虚拟扩增。我们在&lt;a href="http://www.hi-id.com/?p=1583"&gt;对 Android 的期待&lt;/a&gt;中谈到过一些，手机的传感器可以将物理世界和虚拟信息更主动相连，比如你想知道那窗户内的小狗什么价格出卖时，在你问之前，你的手机会告诉你，甚至更多的信息，如何喂养如何训练。&lt;/p&gt;  &lt;p&gt;3，走向主流的群体信息源。你的手机是你面向世界的麦克风，世界每一个角落每一个人都在用手机发布他们的照片、邮件、短信、 Twiiters，Blog等他们的实时体验，这些信息被索引，储存，并通过不同方式重新分发。当你在一地想知道有什么好玩的东西，你手机会告诉你别人的体验。&lt;/p&gt;  &lt;p&gt;4，无处不在的传感探测器。手机作为机器可以了解更多周遭的世界，比如基于手机的交通情况。&lt;/p&gt;  &lt;p&gt;5，生产工具。印度南方的渔夫使用短信可以找到最好的市场，南非的糖农可以接受到建议短信关于灌溉作物的量度等。&lt;/p&gt;  &lt;p&gt;6，自我完善的设备。就和我们电脑上的软件自动更新一样，你的手机也将会一次次的完善成长。&lt;/p&gt;  &lt;p&gt;7，经过信用认证的安全。控制分享的信息，基于社区评价的决定等等。&lt;/p&gt;  &lt;p&gt;虽然在现在从一个手机来说，它并没有和其他一些数字消费品相差多少，但是由于它被使用的环境，它发挥的作用有些是我们始料未及的，如我们开头说的改变着生活改变着社会改变着世界，那么你来畅想一下手机的未来，它会是怎样，或者说你希望它怎样呢？欢迎发表你的意见。&lt;/p&gt;  &lt;p align="right"&gt;&lt;a title="http://www.hi-id.com/?p=1963" href="http://www.hi-id.com/?p=1963"&gt;http://www.hi-id.com/?p=1963&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7080080198633648288?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7080080198633648288/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7080080198633648288" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7080080198633648288?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7080080198633648288?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/09/future-of-mobile.html" title="The future of mobile 一起畅想一下手机的未来" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEEESHsycCp7ImA9WxRRFk0.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-830030395362909734</id><published>2008-09-20T13:28:00.001+10:00</published><updated>2008-09-28T21:50:09.598+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-28T21:50:09.598+10:00</app:edited><title>The 3rd Shenzhou manned spacecraft PERFECTLY landed</title><content type="html">&lt;p&gt;Shenzhou 7 took off at the end of September. One of three astronauts left spacecraft and released a tiny satellite during mission.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://en.wikipedia.org/wiki/Shenzhou_spacecraft" href="http://en.wikipedia.org/wiki/Shenzhou_spacecraft"&gt;http://en.wikipedia.org/wiki/Shenzhou_spacecraft&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://en.wikipedia.org/wiki/Shenzhou_7" href="http://en.wikipedia.org/wiki/Shenzhou_7"&gt;http://en.wikipedia.org/wiki/Shenzhou_7&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://img2.cache.netease.com/cnews/2008/9/25/20080925173504ad3a4.jpg" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Taking off real time video from Shenzhou 7:&lt;/p&gt;  &lt;p align="center"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div align="center"&gt;   &lt;div class="wlWriterSmartContent" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:289cb68e-d561-4319-8748-b8914a6dfce0" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://www.youtube.com/v/kF29gobAoQE" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p align="center"&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;/p&gt;  &lt;div align="center"&gt;   &lt;div class="wlWriterSmartContent" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:d5b77432-1647-4712-b60a-a689e242a5fb" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://www.youtube.com/v/SLVJtVzfn1M" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;The first Chinese spacewalk:&lt;/p&gt;  &lt;div align="center"&gt;   &lt;div class="wlWriterSmartContent" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:b8e063cf-a5cc-42b7-81a1-26ec6de62023" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://www.youtube.com/v/7W8U1KMm7Gc" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div align="center"&gt;   &lt;div class="wlWriterSmartContent" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:358bce24-aa1c-429c-b4ce-4e1503cc65ab" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://www.youtube.com/v/iZNCMp20ELI" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div align="center"&gt;   &lt;div class="wlWriterSmartContent" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:9e096c16-8690-4b4e-8188-c3adce7c00ae" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://www.youtube.com/v/1bLKv5uCHuU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div align="center"&gt;   &lt;div class="wlWriterSmartContent" id="scid:53357c8b-5919-4e32-8c25-305d27c17a37:c1994788-9419-43a4-ab6d-3904064dd0f9" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://www.youtube.com/v/ijKVv0cKpWA" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Landing……&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;&lt;img src="http://i0.sinaimg.cn/dy/c/p/2008-09-28/1222597148_zP3A76.jpg" /&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Three HEROS&lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://img1.cache.netease.com/cnews/2008/9/28/20080928184441bb216.jpg" /&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://img1.cache.netease.com/cnews/2008/9/28/2008092818315919854.jpg" /&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;We will build our own short term space station and lunch it in 2012.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-830030395362909734?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/830030395362909734/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=830030395362909734" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/830030395362909734?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/830030395362909734?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/09/3rd-shenzhou-manned-spacecraft-will.html" title="The 3rd Shenzhou manned spacecraft PERFECTLY landed" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEAARXo7fSp7ImA9WxRSFEo.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-266332089462643788</id><published>2008-09-12T10:30:00.000+10:00</published><updated>2008-09-15T19:59:04.405+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-15T19:59:04.405+10:00</app:edited><title>Energy Harvesting on Mote</title><content type="html">&lt;p align="center"&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_489281610501843" name="doc_489281610501843" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle"	height="500" width="100%"&gt;		&lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=6023990&amp;amp;access_key=key-255ce9tlumk9ujvmd80s&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true&amp;amp;viewMode="&gt; 		&lt;param name="quality" value="high"&gt; 		&lt;param name="play" value="true"&gt;		&lt;param name="loop" value="true"&gt; 		&lt;param name="scale" value="showall"&gt;		&lt;param name="wmode" value="opaque"&gt; 		&lt;param name="devicefont" value="false"&gt;		&lt;param name="bgcolor" value="#ffffff"&gt; 		&lt;param name="menu" value="true"&gt;		&lt;param name="allowFullScreen" value="true"&gt; 		&lt;param name="allowScriptAccess" value="always"&gt; 		&lt;param name="salign" value=""&gt;    		&lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=6023990&amp;amp;access_key=key-255ce9tlumk9ujvmd80s&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_489281610501843_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;	&lt;/object&gt;&lt;/p&gt;  &lt;div align="center"&gt;   &lt;div style="font-size: 10px; width: 100%; text-align: center"&gt;&lt;a href="http://www.scribd.com/doc/6023990/Sentilla-Energy-Harvesting"&gt;Sentilla Energy Harvesting&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a Document to Scribd&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div style="display: none" align="center"&gt;Read this document on Scribd: &lt;a href="http://www.scribd.com/doc/6023990/Sentilla-Energy-Harvesting"&gt;Sentilla Energy Harvesting&lt;/a&gt; &lt;/div&gt;  &lt;p align="center"&gt;http://www.sentilla.com/pdf/Sentilla_Energy_Harvesting.pdf&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-266332089462643788?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/266332089462643788/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=266332089462643788" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/266332089462643788?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/266332089462643788?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/09/energy-harvesting-on-mote.html" title="Energy Harvesting on Mote" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkAARH85fCp7ImA9WxdaF0k.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7504842045047267145</id><published>2008-08-26T17:43:00.001+10:00</published><updated>2008-08-26T18:52:25.124+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-26T18:52:25.124+10:00</app:edited><title>Digest:Sun SPOT Slides@Open House Sun Labs 2008</title><content type="html">&lt;div style="display: none" align="left"&gt;&lt;a title="http://research.sun.com/sunlabsday/docs.2008/" href="http://research.sun.com/sunlabsday/docs.2008/"&gt;http://research.sun.com/sunlabsday/docs.2008/&lt;/a&gt;&lt;/div&gt;  &lt;div style="display: none" align="left"&gt;&amp;#160;&lt;/div&gt;  &lt;p align="center"&gt;&lt;object id="doc_493604337354011" style="width: 100%; height: 415px" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" height="500" width="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" name="doc_493604337354011"&gt;&lt;param name="_cx" value="8096"&gt;&lt;param name="_cy" value="10980"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=5064051&amp;amp;access_key=key-1jz40du38qoziywkpgps&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true"&gt;&lt;param name="Src" value="http://documents.scribd.com/ScribdViewer.swf?document_id=5064051&amp;amp;access_key=key-1jz40du38qoziywkpgps&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true"&gt;&lt;param name="WMode" value="Opaque"&gt;&lt;param name="Play" value="0"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value="LT"&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="NoScale"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="FFFFFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;  		 		 				 				 				 				 		 		    		&lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=5064051&amp;amp;access_key=key-1jz40du38qoziywkpgps&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_493604337354011_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;	&lt;/object&gt;&lt;/p&gt;  &lt;div align="center"&gt;   &lt;div style="font-size: 10px; width: 100%; text-align: center"&gt;&lt;a href="http://www.scribd.com/doc/5064051/OpenHouse08-SPOTS"&gt;OpenHouse08 SPOTS&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a Document to Scribd&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div style="display: none" align="center"&gt;Read this document on Scribd: &lt;a href="http://www.scribd.com/doc/5064051/OpenHouse08-SPOTS"&gt;OpenHouse08 SPOTS&lt;/a&gt; &lt;/div&gt;  &lt;div style="display: none" align="center"&gt;&amp;#160;&lt;/div&gt;  &lt;div style="display: none" align="right"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7504842045047267145?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7504842045047267145/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7504842045047267145" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7504842045047267145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7504842045047267145?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/08/digestsun-spot-slidesopen-house-sun.html" title="Digest:Sun SPOT Slides@Open House Sun Labs 2008" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IFQn4_eSp7ImA9WxdaF04.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-7722805131599535824</id><published>2008-08-26T17:20:00.001+10:00</published><updated>2008-08-26T17:25:13.041+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-26T17:25:13.041+10:00</app:edited><title>Add 3rd Party JAR Library to Sun SPOT Application</title><content type="html">&lt;p&gt;According to &lt;a title="https://www.sunspotworld.com/forums/viewtopic.php?p=7666#7666" href="https://www.sunspotworld.com/forums/viewtopic.php?p=7666#7666"&gt;https://www.sunspotworld.com/forums/viewtopic.php?p=7666#7666&lt;/a&gt;&lt;/p&gt; &lt;p&gt;For a &lt;font color="#ff0000"&gt;&lt;strong&gt;host app&lt;/strong&gt;&lt;/font&gt; all you need to do is specify the third party jar files in your project's build.properties file:&lt;br&gt;&lt;strong&gt;Code:&lt;br&gt;user.classpath=/whatever/directory/&amp;lt;TheNameOfYourJAR&amp;gt;.jar &lt;/strong&gt; &lt;p&gt;For a &lt;font color="#ff0000"&gt;&lt;strong&gt;SPOT app&lt;/strong&gt;&lt;/font&gt; to have the third party jar deployed to the SPOT you need to use the following:&lt;br&gt;&lt;strong&gt;Code:&lt;br&gt;utility.jars=/whatever/directory/&amp;lt;TheNameOfYourJAR&amp;gt;.jar &lt;/strong&gt; &lt;p&gt;For a SPOT app, if you are using NetBeans, you also need to add the third party jar file to the compile classpath (i.e. &amp;lt;classpath mode="compile"&amp;gt;) in the nbproject/project.xml file. If you have modified your project.xml file to use SPOT defined properties then you can add it by putting&lt;br&gt;&lt;strong&gt;Code:&lt;br&gt;user.classpath=${utility.jars} &lt;/strong&gt; &lt;p&gt;in your &lt;font color="#ff0000"&gt;&lt;strong&gt;build.properties&lt;/strong&gt;&lt;/font&gt; file.  &lt;p&gt; NOTE: issue about preverify JAR is discussed here as well...&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-7722805131599535824?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/7722805131599535824/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=7722805131599535824" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7722805131599535824?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/7722805131599535824?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/08/add-3rd-party-jar-library-to-sun-spot.html" title="Add 3rd Party JAR Library to Sun SPOT Application" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Dk4AQnY7cCp7ImA9WxdUE04.&quot;"><id>tag:blogger.com,1999:blog-7072004136531384337.post-4230184915264463551</id><published>2008-07-29T22:35:00.001+10:00</published><updated>2008-07-29T22:35:43.808+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-29T22:35:43.808+10:00</app:edited><title>Sun SPOT on Google Tech Talk</title><content type="html">&lt;div align="center"&gt;   &lt;div class="wlWriterSmartContent" id="scid:7D5EF55F-E55D-42a4-BF5D-4F7E2A94EDCA:d24378da-ed43-4d2b-bed8-7eb7a78b5dc3" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://www.youtube.com/v/fGSObzubTfY" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7072004136531384337-4230184915264463551?l=pauldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://pauldeng.blogspot.com/feeds/4230184915264463551/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7072004136531384337&amp;postID=4230184915264463551" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/4230184915264463551?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7072004136531384337/posts/default/4230184915264463551?v=2" /><link rel="alternate" type="text/html" href="http://pauldeng.blogspot.com/2008/07/sun-spot-on-google-tech-talk.html" title="Sun SPOT on Google Tech Talk" /><author><name>Paul Peng Deng</name><uri>http://www.blogger.com/profile/04562521478872440174</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://3.bp.blogspot.com/_bMfmJoeQEJo/SWftr1g6P8I/AAAAAAAAAK0/_BAG0WHi4V0/S220/meCartoon.jpg" /></author><thr:total>0</thr:total></entry></feed>

