<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://mises.org/Community/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Mises Tech Update : Web Technology</title><link>http://mises.org/Community/blogs/misestech/archive/tags/Web+Technology/default.aspx</link><description>Tags: Web Technology</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Mises Tagging Overview</title><link>http://mises.org/Community/blogs/misestech/archive/2007/10/09/tagging.aspx</link><pubDate>Tue, 09 Oct 2007 15:42:00 GMT</pubDate><guid isPermaLink="false">944abf2b-d1be-4bf2-990d-438cb0e377e9:1260</guid><dc:creator>HeroicLife</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mises.org/Community/blogs/misestech/rsscomments.aspx?PostID=1260</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mises.org/Community/blogs/misestech/commentapi.aspx?PostID=1260</wfw:comment><comments>http://mises.org/Community/blogs/misestech/archive/2007/10/09/tagging.aspx#comments</comments><description>&lt;p&gt;The framework used to tag pages on Mises.org is a tagging
library I developed to tag any kind of content on Mises.org.&amp;nbsp; The tag library references &lt;a href="http://en.wikipedia.org/wiki/GUID"&gt;GUID&lt;/a&gt;&amp;#39;s assigned to
all objects in the Mises.org databases.&amp;nbsp;&amp;nbsp;
It tracks users by username or IP address as well as the date that each
tag was added.&amp;nbsp; It includes spam/badword
filtering and has some simple tag rewriting to automatically correct misspelled
words and incomplete names.&amp;nbsp; For a simple
tag example, see &lt;a href="http://www.mises.org/tag/business%20cycle"&gt;business cycle.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update: Mises Tagging is now an open source project!&amp;nbsp; &lt;a href="http://www.codeplex.com/DotTag"&gt;See the project page for details&lt;/a&gt;.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="4"&gt;Architecture overview:&lt;/font&gt;&lt;/p&gt;

&lt;p style="font-weight:bold;"&gt;Datbase layer:&lt;/p&gt;

&lt;p&gt;The database schema gives a good indication of the
data-access layer:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mises.com/blogs/misestech/images/TaggingSchema.gif"&gt;&lt;img src="http://mises.com/blogs/misestech/images/TaggingSchema.gif" alt="Tag Schema" align="" border="" height="" hspace="" width="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p style="font-weight:bold;"&gt;Stored procedures:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mises.com/blogs/misestech/images/TaggingSprocs.gif"&gt;&lt;img src="http://mises.com/blogs/misestech/images/TaggingSprocs.gif" alt="" align="" border="" height="" hspace="" width="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;UI Layer:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The interface is organized into self-contained user
controls.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;TagCloud.ascx&lt;/span&gt; - a tag cloud for the given document&lt;br /&gt;Example: &lt;a href="http://www.mises.org/resources/3250"&gt;http://www.mises.org/resources/3250&amp;nbsp; (Sroll down)&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;EditTags.ascx&lt;/span&gt; - an editable list of tagged
documents and a user-specific tag cloud.&lt;br /&gt;Example: &lt;a href="http://www.mises.org/mymises/"&gt;http://www.mises.org/mymises/&lt;/a&gt;
(You&amp;#39;ll have to register at Mises.com tag some documents first.)&lt;/li&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;TaggingStats.ascx&lt;/span&gt; - global tagging statistics&lt;br /&gt;Example: &lt;a href="http://www.mises.org/clouds.aspx#stats"&gt;http://www.mises.org/clouds.aspx#stats&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;











&lt;p&gt;Management:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;DocumentTags.ascx&lt;/span&gt; - an editable list of tags for a particular
document&lt;/li&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;Tags.aspx&lt;/span&gt;: delete tags, delete all tags by a particular user
and search/replace tags&lt;/li&gt;&lt;/ul&gt;



&lt;p&gt;&lt;b&gt;The MisesBot: &lt;/b&gt;&lt;/p&gt;

&lt;p&gt;You might have noticed that 99% of all tags are entered by
the MisesBot.&amp;nbsp; The bot is an application
that uses the meta tags collected by the MetaParser (detailed in a future post)
as well as other available metadata to add tags to document.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Thanks to: &lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/cloud.asp"&gt;Cloud Control for ASP.Net&lt;/a&gt; - displays a list of hyperlinks in
varying styles depending on a weight. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html"&gt;Toxi&lt;/a&gt; - the inspiration for the tag schema&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.getluky.net/freetag/"&gt;Freetag&lt;/a&gt;, an Open Source Tagging / Folksonomy module for
PHP/MySQL applications - the inspiration for the business logic layer&lt;/li&gt;&lt;li&gt;&lt;a href="http://communityserver.org/"&gt;Community Server&lt;/a&gt; -&amp;nbsp; Inspired the tag browser interface and provided the banned words list. &lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;&amp;nbsp;&lt;b&gt;To do:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Did you notice the TagAuthority field in the tag
schema?&amp;nbsp; A future version of the MisesBot
will automatically determine the &amp;quot;authoritative&amp;quot; document for each tag.&lt;/li&gt;&lt;li&gt;Automatically mark up content.&amp;nbsp; If we know the authoritative document for a
tag, we can automatically link to it when that tag appears in the document text.&lt;/li&gt;&lt;li&gt;Improving the &amp;quot;related tags&amp;quot; algorithm.&amp;nbsp; I could use some help with this:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Here is the query to get related tags. &amp;nbsp;The problem is that it currently ranks tags according to their total popularity, not their &amp;quot;related-ness.&amp;quot;&lt;br /&gt;


&lt;pre&gt;CREATE&lt;br /&gt;PROCEDURE [dbo].[TagGetRelatedTags]        &lt;br /&gt;        @Tag VARCHAR(70)&lt;br /&gt;AS&lt;br /&gt;BEGIN   &lt;br /&gt;        DECLARE&lt;br /&gt;                @TagId int&lt;br /&gt;                SET @TagId =&lt;br /&gt;                        (SELECT TagId FROM Tag WHERE Tag = @Tag)&lt;br /&gt;                        SELECT  TOP 30 Tag.Tag,&lt;br /&gt;                                COUNT(TagMap.TagId) AS &amp;#39;Count&amp;#39;&lt;br /&gt;                        FROM    TagMap&lt;br /&gt;                        INNER JOIN Tag&lt;br /&gt;                        ON      TagMap.TagId    = Tag.TagId&lt;br /&gt;                        WHERE   [TagMap].TagId &amp;lt;&amp;gt; @TagId&lt;br /&gt;                            AND (TagMap.TagId  IN&lt;br /&gt;                                (SELECT DISTINCT TagId&lt;br /&gt;                                FROM    TagMap&lt;br /&gt;                                WHERE (ObjectId IN&lt;br /&gt;                                        (SELECT ObjectId FROM TagMap WHERE (TagId = @TagId)))&lt;br /&gt;                                )&lt;br /&gt;                                )&lt;br /&gt;                        GROUP BY TagMap.TagId,&lt;br /&gt;                                Tag.Tag&lt;br /&gt;                        ORDER BY &amp;#39;Count&amp;#39; DESC&lt;br /&gt;                END&lt;br /&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mises.org/Community/aggbug.aspx?PostID=1260" width="1" height="1"&gt;</description><enclosure url="http://mises.org/Community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.12.60/TaggingSchema.gif" length="11058" type="image/gif" /><category domain="http://mises.org/Community/blogs/misestech/archive/tags/Web+Technology/default.aspx">Web Technology</category><category domain="http://mises.org/Community/blogs/misestech/archive/tags/ASP.net/default.aspx">ASP.net</category><category domain="http://mises.org/Community/blogs/misestech/archive/tags/tagging/default.aspx">tagging</category></item><item><title>How I converted Mises.org to Web 2.0 (Part 1)</title><link>http://mises.org/Community/blogs/misestech/archive/2007/10/01/how-i-converted-mises-org-to-web-2-0.aspx</link><pubDate>Tue, 02 Oct 2007 01:39:00 GMT</pubDate><guid isPermaLink="false">944abf2b-d1be-4bf2-990d-438cb0e377e9:72</guid><dc:creator>HeroicLife</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mises.org/Community/blogs/misestech/rsscomments.aspx?PostID=72</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mises.org/Community/blogs/misestech/commentapi.aspx?PostID=72</wfw:comment><comments>http://mises.org/Community/blogs/misestech/archive/2007/10/01/how-i-converted-mises-org-to-web-2-0.aspx#comments</comments><description>&lt;p&gt;During the period of late August -
mid September 2007, I redesigned the architecture of Mises.org from the ground
up from a largely-static &amp;quot;web 1.0&amp;quot; era site to a future-oriented database and
user driven &amp;quot;&lt;a href="http://mises.com/blogs/misestech/archive/2007/09/09/10-future-web-trends.aspx"&gt;web 2.0&lt;/a&gt; enabled&amp;quot; site.&amp;nbsp; In
the next few posts, I will present a somewhat-technical overview of my changes and
share the tools and applications which I created. &amp;nbsp;I hope that this will help the users and
contributors of Mises.org as well as anyone contemplating a similar conversion.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;font size="5"&gt;Part one: Overview&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;First, let&amp;#39;s look at a high-level
overview of my goals, some implementation challenges, and how I resolved them:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Building
an online community&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: create an online community - including forums, blogs, and live chat &lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Challenge&lt;/span&gt;: Distinguish between approved and
professional content and user-contributed content&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create the community site on a new
mises.com domain to complement the existing mises.org site.&amp;nbsp; &lt;/li&gt;&lt;li&gt;By branding the two sites differently, we
make it clear which site represents &amp;quot;official&amp;quot; content and which is created by
users.&lt;/li&gt;&lt;li&gt;&lt;a href="http://communityserver.org/"&gt;Community Server&lt;/a&gt; provides blogging and forums, &lt;a href="http://www.phpfreechat.net/"&gt;phpFreeChat&lt;/a&gt; provides chat functionality. &lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: create a user profile-management system to tie
together the mises.org and mises.com sites.&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Challenge&lt;/span&gt;: A single integrated authentication system
is necessary to tie together the new content-management system behind mises.com
with a variety of legacy application mises.org&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: Use the built in ASP.Net 2.0 authentication
framework to share membership information between sites.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Separating
content from presentation&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Allow all content to be presented under any
template.&amp;nbsp; For example, a biography can
be dynamically presented in the about, web resources, or publication section
depending on context&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Challenge&lt;/span&gt;: &amp;nbsp;the
site content existed in a variety of web applications and formats.&amp;nbsp; For example, articles, e-Books, mp3s, store
products, PDF&amp;#39;s.&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: &amp;nbsp;(Detailed
in a future post.)&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Migrate
text content in static files to the database&lt;/li&gt;&lt;li&gt;Collect
metadata from all binary files referenced in the database&lt;/li&gt;&lt;li&gt;Tag
all content with the collected metadata.&lt;/li&gt;&lt;li&gt;Assign
all content a unique identifier&lt;/li&gt;&lt;li&gt;Dynamically
load content-specific controls based on the type of object requested.&amp;nbsp; For example, video files render a video
player, text files show in browser, external URL&amp;#39;s redirect.&lt;/li&gt;&lt;/ol&gt;









&lt;p&gt;&lt;b&gt;Sharing
and personalizing content&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Create a library of reusable controls which
can be used across web applications to present views of various site data &lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Challenge&lt;/span&gt;: There are many different kinds of data - lists
of links, books, resources, media, etc.&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: &amp;nbsp;Create a standard set of &amp;quot;Sidebar&amp;quot; controls,
and populate them with self-contained user controls which can be reused across
all Mises domains.&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Allow all content to be syndicated via RSS&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: &amp;nbsp;Use
&lt;a href="http://www.codeplex.com/ASPNETRSSToolkit"&gt;RSS Toolkit&lt;/a&gt; to dynamically generate RSS/podcast feeds based on a variety of parameters. &lt;a href="http://mises.com/blogs/misestech/archive/2007/09/21/adding-feed-auto-discovery-links-amp-meta-tags-to-the-page-header.aspx"&gt;More here&lt;/a&gt; and &lt;a href="http://mises.com/blogs/misestech/archive/2007/09/09/new-feature-author-category-specific-rss-feeds.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: allow users to tag, save, and share all content
on the site &lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution:&lt;/span&gt; &lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Tagging: Create a tagging framework which allows
users to tag any content.&amp;nbsp; Make tagged
content available within the site as well as via RSS feeds. (&lt;a href="http://mises.com/blogs/misestech/archive/2007/10/09/tagging.aspx"&gt;Detailed here&lt;/a&gt;.)&lt;/li&gt;&lt;li&gt;Favorites: Any page can be saved to a list of
personalized favorites or sent by email.&lt;/li&gt;&lt;li&gt;Social bookmarking: Standard metadata makes social bookmarking &lt;a href="http://mises.com/blogs/misestech/archive/2007/09/21/social-bookmarking-links.aspx"&gt;easy&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;



&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Enable users to customize the site&amp;#39;s content and appearance &lt;/p&gt;&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;:&amp;nbsp;&lt;/p&gt;



&lt;ul&gt;&lt;li&gt;&lt;a href="http://mises.com/blogs/misestech/archive/2007/09/09/new-feature-customiza-the-content-on-the-mises-org-homepage.aspx"&gt;Customizable homepage&lt;/a&gt;: convert
user controls to web parts to allow users to select their preferred data view
from a web part catalog. (Detailed in a future post.)&lt;/li&gt;&lt;li&gt;Themes: (See below)&lt;/li&gt;&lt;/ul&gt;



&lt;p&gt;&lt;b&gt;Creating
the &amp;quot;Web 2.0&amp;quot; look&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Visualize documents from a variety of source and formats via tag clouds &lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: &lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mises.org/clouds.aspx"&gt;Aggregate&lt;/a&gt; tag clouds,
as well as &lt;a href="http://www.mises.org/clouds.aspx#stats"&gt;statistics &lt;/a&gt;on user-contributed tags can be viewed centrally.&lt;/li&gt;&lt;li&gt;As users tag documents,
the site creates a &amp;quot;&lt;a href="http://www.mises.org/mymises/"&gt;personal tag cloud&lt;/a&gt;&amp;quot; for each user&lt;/li&gt;&lt;li&gt;To do: Integrate
subject-specific tag clouds into the site&lt;/li&gt;&lt;/ul&gt;





&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Make navigation more simple and intuitive &lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: Replace a drop-down menu with dozens of redundant
selections with a main menu containing of a few categories and then provide detailed
links in section-specific sidebars&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Implement the &amp;quot;Web 2.0&amp;quot; look &lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: New theme: gradients, large uniform fonts,
simple color palette, standard feed icons, rounded content containers.&lt;/p&gt;

&lt;p&gt;&lt;span style="font-style:italic;"&gt;Goal&lt;/span&gt;: Allow customizable user themes.&lt;/p&gt;



&lt;p&gt;&lt;span style="font-style:italic;"&gt;Solution&lt;/span&gt;: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Mises.com runs Community Server, which has
themes built in.&amp;nbsp; &lt;/li&gt;&lt;li&gt;For Mises.org migrate
all formatting to use the ASP.Net 2.0 Themes feature&lt;/li&gt;&lt;li&gt;(To do:) allow users to
choose their own theme.&lt;/li&gt;&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://mises.org/Community/aggbug.aspx?PostID=72" width="1" height="1"&gt;</description><category domain="http://mises.org/Community/blogs/misestech/archive/tags/Web+Technology/default.aspx">Web Technology</category></item></channel></rss>