https://microformats.org/wiki/api.php?action=feedcontributions&user=1143295502&feedformat=atomMicroformats Wiki - User contributions [en]2024-03-29T01:01:10ZUser contributionsMediaWiki 1.38.4https://microformats.org/wiki/index.php?title=naming-principles&diff=5561naming-principles2006-03-25T14:01:33Z<p>1143295502: </p>
<hr />
<div><h1>Naming Principles</h1><br />
<br />
One of the key [[microformats]] principles is re-use, and in particular, re-use of names of objects, properties, and values from existing formats and standards when possible.<br />
<br />
I explicitly created this principle in response to the anti-patterns that I saw in many (most?) existing standards efforts such as:<br />
<br />
* Making up names from thin air<br />
* Ignoring all earlier work<br />
* Actual hostility towards using names/terms from other standards<br />
* Using others' names to mean different things<br />
* Using new names to mean the same thing<br />
* Endlessly debating and "name-smithing" in order to come up with a slightly more perfect name<br />
<br />
Perhaps it is human nature to want to create new names, or name new things. Certainly there is some amount of ego involved in the creation of a new thing which you can then claim to have invented or named. Some of these tendencies are also a form of "Not Invented Here" (NIH) syndrome which unfortunately is quite common among software engineers.<br />
<br />
Unfortunately such desire for novelty is bad for standards, and certainly bad for interoperability, which depends on being able to depend on the same name meaning the same thing. It's also bad for language and communication among humans. Even though humans can deal with some ambiguity and overloading of terms (using context to disambiguate), it's easier for humans as well when there is less ambiguity and less overloading.<br />
<br />
We're not going to be able to fully eliminate such "Tower of Babel" tendencies, but at least we can minimize them, especially when they are bad for standards and interoperability.<br />
<br />
With the experience of developing new microformats such as [[xfolk|xFolk]], [[hreview|hReview]], and [[hatom|hAtom]], it has become quite clear that we need to explicitly document some of the specific design principles that went into naming the objects and properties of some of the early established microformats like [[hcard|hCard]] and [[hcalendar|hCalendar]], and that's the purpose of this document.<br />
<br />
<h2>Table of Contents</h2><br />
<br />
__TOC__<br />
<br />
== Author ==<br />
<br />
* [http://tantek.com/ Tantek Çelik]<br />
<br />
== Semantic XHTML Design Principles ==<br />
<br />
First, it is important to note the naming principles which have been defined and explicitly referenced in (most of) the above-mentioned microformats.<br />
<br />
{{semantic-xhtml-design-principles}}<br />
<br />
=== Some Details ===<br />
<br />
* '''dash-separated-lowercase-words'''. [http://w3.org/ W3C] [http://w3.org/Style/CSS/ CSS] (cascading style sheets) introduced the convention of lowercasing all property/value names (identifiers) and separating words with dash "-" characters for reasons of better human readability as compared to other approaches like CamelCase (or even camelCase). Microformats property names strictly adopt this approach as well.<br />
<br />
== Unique Root Class Names ==<br />
<br />
I've also written a bit about the design principles that went into the *root* class names (which require a bit different treatment than property class names) in the microformats, but this is described in the hcard-parsing page currently:<br />
<br />
http://microformats.org/wiki/hcard-parsing#root_class_name<br />
<br />
Need to copy some of that text here and make it not-hCard specific.<br />
<br />
== Minimal Vocabulary ==<br />
<br />
This is one of two additional key principles that I think I need to outline in more detail. The principle of "minimal vocabulary" is actually directly derived from the principle of [http://microformats.org/wiki/microformats#the_microformats_principles start as simple as possible].<br />
<br />
* minimal vocabulary. We try to introduce as few new microformat terms as possible.<br />
<br />
== Reuse Microformats First, Other Standards Second ==<br />
<br />
This is actually outlined quite clearly in the [http://microformats.org/wiki/microformats#the_microformats_principles microformats principles], but deserves both explicit repeating here with <strong>strong emphasis</strong>:<br />
<br />
* reuse building blocks from widely adopted standards<br />
** semantic (http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html), meaningful (X)HTML (http://tantek.com/presentations/2005/03/elementsofxhtml). See SemanticXHTMLDesignPrinciples for more details.<br />
** <strong>existing microformats</strong><br />
** <strong>well established schemas from interoperable RFCs</strong><br />
<br />
The key here is that this principle is not only about reusing whole microformats (e.g. don't invent a new person property for your microformat, just reuse [[hcard|hCard]]), but also about where to get names for properties.<br />
<br />
In particular, if you find that your new microformat has a property which means the same thing as an exsiting microformat, you SHOULD (maybe I should make this a MUST) reuse the class name from that existing microformat. This practice also follows the principle of minimal vocabulary, and of re-using the same name to mean the same thing (instead of using two names to mean the same thing).<br />
<br />
=== For Other Standards, Prefer Older to Newer ===<br />
<br />
If there is no microformat name for a property, and we are reusing names based upon research of existing formats, then often there is more than one format with more than one name for the particular concept.<br />
<br />
Often times new standards are developed which (most often) needlessly rename names from older standards. Thus to repair such naming drift, all other things being equal (e.g. both standards have been widely interoperably implemented), we prefer the older name over the newer name.<br />
<br />
== Examples of Following the Naming Principles ==<br />
<br />
We've followed these naming principles from the start, and made changes to microformats in development as a result. For example, [[xfolk|xFolk]] was changed from v0.4 to v1RC. xFolk dropped the new class name "extended" in preference for re-using the existing "description" class name. See [http://microformats.org/wiki/xfolk#Changes_since_xFolk_0.4 Changes since xFolk 0.4] for details.<br />
<br />
== Naming Patterns Under Consideration as Principles ==<br />
<br />
A few patterns have arisen in the naming of class names for microformats, and while these patterns are not conventions (yet), it may be worth considering them.<br />
<br />
=== dt properties ===<br />
<br />
So far, all datetime class names start with "dt", and all class names that start with "dt" are ISO8601 datetime properties. E.g.<br />
<br />
* dtend - [[hcalendar|hCalendar]]<br />
* dtstart - [[hcalendar|hCalendar]]<br />
* dtreviewed - [[hreview|hReview]]<br />
<br />
Note that "dt" is also [http://microformats.org/wiki/rest/datatypes#Proposal under consideration for type XOXO].<br />
<br />
==== exceptions to dt prefix ====<br />
<br />
However, some proposed/underdevelopment microformats currently have class names for datetime properties without the "dt" prefix:<br />
<br />
Draft:<br />
* rev - [[hcard|hCard]]<br />
* bday - [[hcard|hCard]]<br />
<br />
Proposed:<br />
* updated - [[hatom|hAtom]]<br />
* published - [[hatom|hAtom]]<br />
<br />
=== h word ===<br />
<br />
So far, all uses of a single "h" prefix in a property name apply to (potential) root elements. But not all (potential) root elements start with "h" (which is ok).<br />
<br />
E.g.:<br />
<br />
* [[hatom]]<br />
* hentry - [[hatom|hAtom]]<br />
* [[hreview]]<br />
* [[hlisting-proposal|hlisting]] (proposed)<br />
<br />
Should we enforce the rule that only (potential) root elements may begin with an "h" prefix?<br />
<br />
Non-h-prefixed root elements:<br />
* vcard - [[hcard|hCard]]<br />
* vcalendar - [[hcalendar|hCalendar]]<br />
* vevent - [[hcalendar|hCalendar]]<br />
* [[xfolk]]<br />
<br />
== Related ==<br />
<br />
* [[semantic-xhtml-design-principles]]<br />
* [[naming-conventions]] for microformats.org wiki pages<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="display:none"><br />
[l_sp]<br />
<a href="http://test.com"> test</a><br />
<br />
</div></div>1143295502https://microformats.org/wiki/index.php?title=distributed-conversation-examples&diff=5560distributed-conversation-examples2006-03-25T14:01:26Z<p>1143295502: </p>
<hr />
<div>= Distributed Conversation Examples=<br />
<br />
This is an exploratory page to document various methods used to anotate online conversations both distributed and not. The purpose of the studies on this page is to serve as background for the design of a microformat to anotate distributed conversations on blogs and other online media.<br />
<br />
see [[distributed-conversation-brainstorming]] for more discussion on this topic.<br />
see [[distributed-conversation-formats]] for formats.<br />
<br />
== Authors ==<br />
<br />
* [[User:EranGloben|Eran Globen]]<br />
* [[User:BenjaminCarlyle|Benjamin Carlyle]]<br />
* ...<br />
<br />
<br />
== Web Examples ==<br />
<br />
=== Author, href and blockquote ===<br />
&lt;p>His column was picked up all over the web, including by Danny Ayers. He<br />
dives into discussion about <br />
&lt;a href="http://dannyayers.com/archives/2006/01/10/new-data-languages-harmful/"><br />
how to build an RDF model<br />
</a><br />
,rather than an XML language:<br />
</p><br />
&lt;blockquote><br />
&lt;p><br />
When working with RDF, my current feeling (could be wrong ;-) is that in most cases it’s probably best to initially make up<br />
afresh a new representation that matches the domain model as closely as possible(/appropriate). Only then start looking to<br />
replacing the new terms with established ones with matching semantics. But don’t see reusing things as more important than getting<br />
an (appropriately) accurate model. (Different approaches are likely to be better for different cases, but as a loose guide I think<br />
this works.)<br />
&lt;/p><br />
&lt;/blockquote><br />
<br />
[http://www.soundadvice.id.au/blog/2006/01/15/#xmlLanguages source]<br />
<br />
Danny Ayers is the author of the pieces being referenced. The href identifies an article the blockquote comes from. "How to build an RDF model" may be considered a short description of the link, however sometimes this text is as short as "writes".<br />
<br />
=== Cite attribute in blockquote or quote ===<br />
From <cite>[http://decafbad.com/blog/2006/01/19/use-delicious-to-build-share-reading-lists Les Orcahrd's 0xdecafbad]</cite>:<br />
&lt;blockquote cite="http://vrypan.net/log/archives/2006/01/19/delicious-as-fedd-manager/">As far as I know, the most popular link<br />
managment tool is del.icio.us, a tool I love for its power and simplicity. del.icio.us allow you to export all your links in RSS <br />
which is cool. So, I wrote a quick and dirty PHP script that converts this RSS export to an OPML list (see at the end of this <br />
post).&lt;/blockquote><br />
<br />
&lt;p>&lt;small style="text-align: right; display: block;"><br />
Source: &lt;a href="http://vrypan.net/log/archives/2006/01/19/delicious-as-fedd-manager/"><br />
vrypan|net|log » del.icio.us as feed manager<br />
&lt;/a><br />
&lt;/small>&lt;/p><br />
The cite attribute of the blockquote tag is defined in many standards but is not well supported by browsers and is therefore hidden from the user. This requires the author to repeat its value later, in the form of a link.<br />
<br />
A similar example from [http://theryanking.com/blog/archives/2006/01/25/blogging-as-religion/ Ryan King's blog]:<br />
Intuitively, we&#8217;d expect a group to balance each other out, but <br />
&lt;q cite="http://en.wikipedia.org/wiki/Risky_shift"><br />
people with relatively moderate viewpoints tend to assume that their groupmates hold more extreme views, <br />
and to alter their own views in compensation<br />
&lt;/q> <br />
[&lt;a href="http://en.wikipedia.org/wiki/Risky_shift">source&lt;/a>]<br />
<br />
=== cite href ===<br />
Another one from [http://theryanking.com/blog/archives/2005/01/31/things-to-say-when-you-are-losing-a-tech-argument/ Ryan King] (hopefully this is from before he discovered Tantek's presentation about markup).<br />
<br />
&lt;div class="entry"><br />
&lt;p>From &lt;cite>&lt;a href="http://www.skirsch.com/humor/techarg.htm"><br />
Things to say when you are losing a tech argument&lt;/a><br />
&lt;/cite>:&lt;/p><br />
&lt;blockquote>&lt;p><br />
2.That’s been proven to be O(N^2) and we need a solution that’s O(NlogN).&lt;br><br />
15. Oh, I played with that approach back as an undergrad. Got a D, too.&lt;br><br />
18.That’s totally inefficient on modern hardware.&lt;br><br />
26. No, no, no. It’s fairly important that the database be in THIRD NORMAL FORM.&lt;br><br />
28. I don’t think that’s altogether clear. Please write it up in UML for me.&lt;br><br />
39.This is all covered in Knuth, and we don’t have time to go over it again.&lt;br><br />
65.Yes, but we’re standardizing on XML.<br />
&lt;/p><br />
&lt;/blockquote><br />
&lt;/div><br />
<br />
Ryan uses the &lt;CITE>&lt;A href="source">source name&lt;/A>&lt;/CITE> structure.<br />
<br />
=== href inside blockquote ===<br />
From [http://www.stoweboyd.com/message/2006/01/umair_haque_on_.html Stowe Boyd]<br />
&lt;p>Umair Haque is worried that a steady diet of tech.memeorandum is making him stupid:&lt;/p><br />
&lt;blockquote><br />
[from &lt;a title="Bubblegeneration Strategy Lab" href="http://www.bubblegeneration.com/2006/01/problems-with-2.cfm"><br />
The Problems with 2.0, pt 34514<br />
&lt;/a>]<br />
&lt;p><br />
I luv Memeorandum and all it's reconstructor cousins. It's one of the first things of my reading list. <br />
It's hugely slashed my search costs in finding new stuff.But there's a problem. Ever since I've started using<br />
it to the point where it replaces many of my other sources, I have gotten stupider.I can feel it - I don't <br />
think as fast, flexibly, or freely.<br />
&lt;/p><br />
&lt;/blockquote><br />
<br />
The link to the quote's source is embedded inside the BLOCKQUOTE element as part of the text of the quote.<br />
<br />
=== href and quote ===<br />
&lt;p>It is incorrect to say that software is<br />
&lt;a href="http://www.groklaw.net/article.php?story=20060111223959235">&lt;q>just maths</q></a>,<br />
and is therefore<br />
not patentable...</p><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="display:none"><br />
[l_sp]<br />
<a href="http://test.com"> test</a><br />
<br />
</div></div>1143295502https://microformats.org/wiki/index.php?title=rest&diff=5559rest2006-03-25T14:01:18Z<p>1143295502: </p>
<hr />
<div>= Microformats in REST Web Services =<br />
This the home page for discussion, research, and standards regarding how to optimally use Microformats as the encoding for [http://en.wikipedia.org/wiki/Representational_State_Transfer REST] web services. The goal is for all REST-related information in the microformats world to live under this URL.<br />
<br />
== Discussion Forums ==<br />
* [http://microformats.org/discuss/mail/microformats-rest/ uf-rest] discussion list on microformats.org<br />
* [http://groups.yahoo.com/group/rest-discuss/ rest-discuss] @ Yahoo Groups<br />
<br />
== Topics ==<br />
=== URLs ===<br />
;[[rest/opacity]]<br />
:Properly Interpreting the "Axiom of URI Opacity"<br />
;[[rest/urls]]<br />
:How should URLs be structured for maximum clarity & discoverability?<br />
=== HTML ===<br />
;[[rest/ahah]]<br />
:Asychronous HTML vs. AJAX<br />
;[[rest/datatypes]]<br />
:How to encode type information in HTML<br />
;[[rest/description]]<br />
:What, if anything, is the analogue of WSDL for REST services?<br />
;[[rest/webforms]]<br />
:Upgrading browsers to support PUT and DELETE properly<br />
<br />
=== Implementations ===<br />
;[[rest/cgi]]<br />
:CGI is slow, and FastCGI is designed for C parsers. Is there a third option?<br />
;[[rest/rails]]<br />
:Ways to make Ruby on Rails more REST-friendly out of the box.<br />
=== Standards ===<br />
* [http://www.ietf.org/rfc/rfc3205.txt HTTP as a Substrate] - Best Current Practice<br />
* [http://www.faqs.org/rfcs/rfc2483.html text/uri-list] (Section 5, URI Resolution Services)<br />
<br />
== Background Research ==<br />
=== Examples ===<br />
* [[rest/examples]]<br />
* [[rest/forms-examples]]<br />
<br />
=== Brainstorming ===<br />
<br />
* [[rest/brainstorming]]<br />
* [[rest/forms-brainstorming]]<br />
<br />
== Proposals ==<br />
Note that these are all preliminary.<br />
<br />
* [http://www.opendarwin.org/~drernie/talk/rest-enabled-xhtml-20051019.html REST-Enabled XHTML]] by Dr. Ernie<br />
** original at [[rest/rex-proposal]]<br />
* [http://restylab.php5.cz/dreams/webutopia.html WebUtopia] by Toydi<br />
** more details in rest-discuss thread: [http://groups.yahoo.com/group/rest-discuss/message/5290 "Dreams about ReSTifying web apps"]<br />
<br />
== Implementations ==<br />
<br />
=== Tools === <br />
* [[xoxo-sample-code| XOXO parser (python)]]<br />
** also [http://www.opendarwin.org/~drernie/xoxo-plist.py xoxo-plist.py], a pyobjc variant support Mac OS X plists]<br />
* [http://www.opendarwin.org/~drernie/src/ahah.js ahah.js] Asynchronous HTML over HTTP<br />
** was [http://epeus.blogspot.com/2005_05_01_epeus_archive.html#111588374981985824 JAH], an [http://technorati.com/tag/AJAX AJAX] alternative)<br />
* Ruby RESTifarian plugin<br />
$ script/plugin install restifarian # need beta gems/edge rails for this to work<br />
** See also prototype [http://www.onautopilot.com/oss/rails/rest_controller.rb controller]<br />
* [http://wiki.jonnay.net/bunny/meditation/meditation Meditation] a PHP REST API Framework.<br />
<br />
=== Examples ===<br />
* [http://www.opendarwin.org/~drernie/C499496031/E20051019100520/index.html DARC]: Darwin-Apache-Rails-CoreData<br />
* [http://www.opendarwin.org/~drernie/C499496031/E20051026153908/index.html TurboGear] AddressBook (Mac OS X-only)<br />
=== Sites ===<br />
* [http://www.larrystaton.com Larry Staton Jr.] AHAH-enabled homepage (a first!)<br />
<br />
<br />
== Participants ==<br />
* [http://www.opendarwin.org/~drernie/C395201355/index.html Dr. Ernie Prabhakar]<br />
* [http://restylab.php5.cz/ Teo HuiMing (toydi)]<br />
* [mailto:dimitri.glazkov@gmail.com Dimitri Glazkov]<br />
* [http://www.xrest.org Max Voelkel (xamde)]<br />
* [http://www.loudthinking.com/ David Heinemeier Hansson]<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="display:none"><br />
[l_sp]<br />
<a href="http://test.com"> test</a><br />
<br />
</div></div>1143295502https://microformats.org/wiki/index.php?title=xfolk-kottke&diff=5558xfolk-kottke2006-03-25T14:01:11Z<p>1143295502: </p>
<hr />
<div>= Kottke's Remaindered Links =<br />
<br />
<p>'''This page is out of date. Kottke's format has changed totally since this article was written. Each item is now merely an &lt;li> element containing text; there can be (and often is) more than one link per post, and there isn't neccessarily a most important link that could be the "taggedlink".'''</p><br />
<br />
<p>[http://www.kottke.org/remainder/ Kottke's remaindered links] is an [http://www.mediabistro.com/aboutus/articles/050207_independent.pdf internationally recognized] link blog. This entry from his link blog represents several challenges for applying xFolk because, as is, it is not valid xhtml. Further, there are no explicit semantics, only implied semantics.</p><br />
<br />
<pre>&lt;li><br />
&lt;a href="http://www.guardian.co.uk/arts/news/story/0,11711,1188015,00.html"><br />
A previous Banksy unauthorized art placement took place in the <br />
Natural History Museum in London<br />
&lt;/a>&nbsp;&thinsp;<br />
&lt;span class="nocmt"><br />
&lt;a href="http://www.kottke.org/remainder/05/03/7937.html"><br />
&amp;thinsp;#&amp;thinsp;<br />
&lt;/a>&lt;br /><br />
"The graffiti artist Banksy has managed to smuggle in his latest <br />
work, a dead rat in a glass-fronted box, into the Natural History<br />
Museum where it was exhibited on a wall for several hours."<br />
&lt;/li></pre><br />
<br />
<p>Here is the version rendered in xFolk. Note that we fixed the &lt;span> tag that was not properly closed in the original rendition. A further issue is that Kottke used a &lt;br /> element, a sort of no-no in semantic markup. Under the idea of altering practice as little as possible, we just leave it. A challenge with this particular entry is the presence of two URLs that could be interpreted as the URL to tag, one pointing to a permalink on Kottke's site and one pointing to the original article. We opt for the URL pointing to the original article. Altered lines are marked with a comment at the end of the line.</p><br />
<br />
<pre>&lt;li class="xfolkentry"> <!-- changed --><br />
&lt;a class="taggedlink" href="http://www.guardian.co.uk/arts/news/story/0,11711,1188015,00.html"> <!-- changed --><br />
A previous Banksy unauthorized art placement took place in the <br />
Natural History Museum in London<br />
&lt;/a>&nbsp;&thinsp;<br />
&lt;span class="nocmt"><br />
&lt;a href="http://www.kottke.org/remainder/05/03/7937.html"><br />
&amp;thinsp;#&amp;thinsp; <br />
&lt;/a><br />
<strong>&lt;/span></strong><br />
&lt;br /><br />
&lt;span class="extended"> "The graffiti artist Banksy has managed <!-- changed --><br />
to smuggle in his latest <br />
work, a dead rat in a glass-fronted box, into the Natural History<br />
Museum where it was exhibited on a wall for several hours."&lt;/span> <!-- changed --><br />
&lt;/li></pre><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="display:none"><br />
[l_sp]<br />
<a href="http://test.com"> test</a><br />
<br />
</div></div>1143295502https://microformats.org/wiki/index.php?title=blog-description-format&diff=5557blog-description-format2006-03-25T14:01:05Z<p>1143295502: </p>
<hr />
<div>= Blog description format (background research)=<br />
<br />
'''Note: this page has been rewritten/refactored out to other pages to better fit in with the microformats [[process]]. E.g. the following pages have been added to or created:'''<br />
<br />
* [[blog-post-examples]]<br />
* [[blog-description-examples]]<br />
* [[blog-description-brainstorming]] (perhaps simply rename [[blog-description-format-brainstorming]])<br />
<br />
<br />
__TOC__<br />
<br />
== Discussion Participants ==<br />
<br />
=== Editors ===<br />
* [http://bs-markup.de Bj&ouml;rn Seibert]<br />
* [http://rbach.priv.at/ Robert Bachmann]<br />
* [http://tantek.com/ Tantek Çelik]<br />
<br />
=== Authors ===<br />
* [http://bs-markup.de Bj&ouml;rn Seibert]<br />
* [http://rbach.priv.at/ Robert Bachmann]<br />
* [http://tantek.com/ Tantek Çelik]<br />
<br />
=== Contributors ===<br />
* [http://maetl.coretxt.net.nz Mark Rickerby]<br />
<br />
== Purpose ==<br />
A microformat to describe the contents of a (we)blog. It provides a specific set of information to categorize a (we)blog. Enables easier search for humans and efficient collection of information by machines.<br />
<br />
Here are some of examples for information that might be provided:<br />
<br />
* Details about the blog<br />
* Blog name (e.g: "John Doe's Blog")<br />
** Blog URI (e.g: http://example.org/ )<br />
** Lanuage used for the blog, read-able by machines (e.g: "en-US" or "de")<br />
** Topics covered by the blog<br />
** A short description<br />
** Available feeds (RSS, Atom, etc.)<br />
** A small logo image<br />
* Details about the author(s)<br />
** Name (e.g: "John Doe")<br />
** Organisation<br />
** Contact details <br />
** Geographical Location<br />
<br />
== Existing practice ==<br />
<br />
=== Blog Posts ===<br />
<br />
Moved to [http://microformats.org/wiki/blog-post-examples#Rough_Examples blog-post-examples].<br />
<br />
=== Blog description ===<br />
<br />
Moved to [[blog-description-examples]].<br />
<br />
== See also ==<br />
* [[blog-description-format-brainstorming]] for examples on how things ''could'' be done.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div style="display:none"><br />
[l_sp]<br />
<a href="http://test.com"> test</a><br />
<br />
</div></div>1143295502