<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>geeknixta.com</title>
	<atom:link href="http://geeknixta.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://geeknixta.com/blog</link>
	<description></description>
	<lastBuildDate>Sat, 21 Aug 2010 18:21:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Community Server &amp; VMWare Server conflict</title>
		<link>http://geeknixta.com/blog/2010/08/20/community-server-vmware-server-conflict/</link>
		<comments>http://geeknixta.com/blog/2010/08/20/community-server-vmware-server-conflict/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 18:10:12 +0000</pubDate>
		<dc:creator>geeknixta</dc:creator>
				<category><![CDATA[Community Server]]></category>
		<category><![CDATA[Quick Hint]]></category>
		<category><![CDATA[Solr]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[VMWare Server]]></category>

		<guid isPermaLink="false">http://geeknixta.com/blog/?p=74</guid>
		<description><![CDATA[TweetOK, so it's technically a Solr Search (used by Community Server) and VMWare Server 2.0 conflict, but both start Apache Tomcat as a Windows Service. After a reboot, you'll see one of the services hasn't started, and Task Manager will only show one tomcat6.exe running. The conflict occurs on Tomcat startup. The default Apache Tomcat [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style="float: right; margin-left: 8px; margin-bottom: 8px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FcAqcmr&amp;via=geeknixta&amp;text=Community%20Server%20%26%20VMWare%20Server%20conflict&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Fgeeknixta.com%2Fblog%2F2010%2F08%2F20%2Fcommunity-server-vmware-server-conflict%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://geeknixta.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a href="http://geeknixta.com/blog/wp-content/uploads/2010/08/TomcatVMWare.png"><img class="alignright size-full wp-image-76" title="Tomcat and VMWare can sit in a tree" src="http://geeknixta.com/blog/wp-content/uploads/2010/08/TomcatVMWare.png" alt="" width="170" height="149" /></a>OK, so it's technically a Solr Search (used by Community Server) and VMWare Server 2.0 conflict, but both start Apache Tomcat as a Windows Service. After a reboot, you'll see one of the services hasn't started, and Task Manager will only show one tomcat6.exe running.</p>
<p>The conflict occurs on Tomcat startup. The default Apache Tomcat config starts the service with a listener registered on port 8005. So, whichever service starts second on Windows startup fails to start with an "Address already in use" error in the Tomcat log.</p>
<p>In our case, the second service was Solr Search. It meant that after a reboot, searching would not work in our Community Server communities.</p>
<p>The fix was to change the port, <a href="http://angiecltan.blogspot.com/2008/11/software-conflict-vmware-server-20-vs.html" target="_blank">as suggested in this post</a> (thank you, Angie Tan and Google!). But in my case I wanted to alter the VMWare setting, not the Telligent/Solr setting.</p>
<p>So, go to your VMWare Server's Tomacat config folder and find the server.xml file, in my case:</p>
<pre>C:\Program Files (x86)\VMWare\VMWare Server\tomcat\conf\server.xml</pre>
<p>And modify the line Server port tag to read something like this:</p>
<pre>&lt;Server port="8006" shutdown="SHUTDOWN"&gt;</pre>
<p>Restart your services. If both services can run, go the whole hog and test a restart/recovery scenario with a full reboot, checking the Services panel and the Task Manager that everything started up OK.</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknixta.com/blog/2010/08/20/community-server-vmware-server-conflict/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jailbreakme.com thoughts, a couple of weeks in</title>
		<link>http://geeknixta.com/blog/2010/08/20/jailbreakme-com-thoughts-a-couple-of-weeks-in/</link>
		<comments>http://geeknixta.com/blog/2010/08/20/jailbreakme-com-thoughts-a-couple-of-weeks-in/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 17:43:52 +0000</pubDate>
		<dc:creator>geeknixta</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Cydia]]></category>
		<category><![CDATA[JailBreak]]></category>
		<category><![CDATA[Rock]]></category>
		<category><![CDATA[Unlock]]></category>

		<guid isPermaLink="false">http://geeknixta.com/blog/?p=67</guid>
		<description><![CDATA[TweetAt the encouragement of a couple of chums of mine, I jailbroke my iPhone 4 when the Jailbreakme.com hack first appeared for iOS 4.0.1. Here are some very brief thoughts on the matter after a couple of weeks of being jailbroken: The process was so easy. Everything should be that easy. Lord it was easy. [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style="float: right; margin-left: 8px; margin-bottom: 8px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FcAqcmr&amp;via=geeknixta&amp;text=Jailbreakme.com%20thoughts%2C%20a%20couple%20of%20weeks%20in&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Fgeeknixta.com%2Fblog%2F2010%2F08%2F20%2Fjailbreakme-com-thoughts-a-couple-of-weeks-in%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://geeknixta.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><div id="attachment_68" class="wp-caption alignright" style="width: 210px"><a href="http://geeknixta.com/blog/wp-content/uploads/2010/08/photo.png"><img class="size-medium wp-image-68" title="My Jailbroken iPhone" src="http://geeknixta.com/blog/wp-content/uploads/2010/08/photo-200x300.png" alt="" width="200" height="300" /></a><p class="wp-caption-text">Is that logo worth the warranty?</p></div>
<p>At the encouragement of a couple of chums of mine, I jailbroke my iPhone 4 when the <a href="http://www.jailbreakme.com/faq.html" target="_blank">Jailbreakme.com</a> hack first appeared for iOS 4.0.1. Here are some very brief thoughts on the matter after a couple of weeks of being jailbroken:</p>
<ul>
<li>The process was so easy. Everything should be that easy. Lord it was easy. Wow.</li>
<li>Even being careful, I feel that battery life has suffered.</li>
<li>I have had some odd UI behaviour (cursor goes missing, etc.), but it's so irregular that I can't tie it to the jailbreak. But I have my suspicions.</li>
<li>I am eternally grateful to the JailBreak community because they've allowed me to unlock my old 3GS which I can now send to my brother in Slovenia.</li>
<li>I find it hard to find reasons to be jailbroken beyond the need to unlock. I feel that just removing unused icons isn't really enough.</li>
<li>Can I trust jailbroken software not to harvest my information?</li>
<li>Ultimately it's not for me.</li>
</ul>
<p><strong>Update:</strong> I encountered a brief gotcha when unjailbreaking. See below.</p>
<p><span id="more-67"></span>But, even though I now have a jailbroken+unlocked 3GS and iPhone 4 at iOS 4.0.1, and one 3G at 3.1.2, I don't really see the benefit to me. I don't travel enough that tethering is useful. In fact, I rather enjoy being disconnected as a welcome break from the daily grind. I don't need 3G Facetime chat. I don't need that purdy AT&amp;T icon at the top (click the image for a closer look).</p>
<p>Obviously, that means that Jailbreaking <em>is</em> great for some people (I've just listed some really good reasons to do it). But you need to figure out what you're going to get out of it. Here are some pluses and minuses to try to help…</p>
<ul>
<li><strong>The Good:</strong>
<ul>
<li>You can <a href="http://www.redmondpie.com/unlock-ios-4.0.1-with-ultrasn0w-how-to-guide/" target="_blank">unlock your phone</a>. This is something all carriers with a contract should allow at any point. I would argue that it's illegal for AT&amp;T and Apple to prevent it after your purchase-time defined contract term expires, yet they continue to do so. O2 in the UK will unlock your iPhone. They already have you by the curlies on a contract. If you're not going to pay the terms of your contract, it's rather immaterial to them whether your iPhone is locked or not.</li>
<li>You can tether. Sensibly. Without AT&amp;T forcing you out of your grandfathered unlimited data.</li>
<li>You can VNC, and DynDNS, so you could in theory (I haven't tried it) provide tech support remotely for your tech-terrified mater.</li>
<li><a href="http://rockyourphone.com/" target="_blank">Rock</a> beats Cydia. Faster, free trials, more user-friendly. Make it the first thing you install after Cydia.</li>
<li>You can store your <a href="http://thefirmwareumbrella.blogspot.com/" target="_blank">SHSH Blob and later downgrade OSes</a> if needs be. (You can also do that without jailbreaking using the Umbrella App, but Cydia makes it automagic).</li>
<li>You can have 5 icons on your dock (this is much more useful than you'd think).</li>
<li>There are trial versions (via Rock) of commercial apps. But note that these are not apps available in the iTunes App Store.</li>
</ul>
</li>
<li><strong>The Bad:</strong>
<ul>
<li>Upgrading to the latest iOS version requires a wait until someone cracks the iOS.</li>
<li>You <em>could</em> be vulnerable to attacks unless you <a href="http://cydia.saurik.com/password.html" target="_blank">change the default passwords</a>. But you'd have to install some SSH/terminal component first. However, a jailbreak app could install that silently. It's amazing what components I've found on my phone after 3 or 4 app installs.</li>
<li>The MobileTerminal app just didn't work on my iPhone 4, so I couldn't change the password anyway.</li>
<li>The "store" is really unnavigable, especially for themes. And its inconsistent. Some developers do a great job with screenshots and so on. Others do not.</li>
<li>Having loads of information on your lock screen is ugly, slow, doesn't work well, and is much less useful than you'd think.</li>
<li>You risk voiding your warranty. Well, technically, you do void your warranty, but if you restore then as of right now Apple can't reliably (read easily) tell you've been jailbroken.</li>
<li>Beware that not all basebands versions (Settings-&gt;General-&gt;About-&gt;Modem Firmware) are unlockable.</li>
<li>iTunes App Store apps are not available via the Rock/Cydia stores. This might be obvious, but I do rather like the jailbroken app install process and Rock's trial versions.</li>
</ul>
</li>
</ul>
<h4>Why I'm unjailbreaking</h4>
<p>The very valid arguments my friends put for jailbreaking just don't apply to me. I don't particularly care that some Ad networks snoop at my info. I've given up giving two hoots about that sort of stuff a long time ago. Like I said, caring about that is very valid, but I find I don't have the energy for it any longer.</p>
<p>But I have what I think is a legitimate counterpoint: as Apple lock down the OS and insist that the user is prompted to allow much of that info to be harvested, running a non-Apple vetted jailbreak-only app could bypass the OS barriers, so there really isn't a good answer beyond who you trust: Apple or the Jailbreak Community. I trust Apple well enough, and although the Jailbreak Community may mean well as a whole, it's just takes one rotten apple orange, and it might already be there.</p>
<h4>Update: Quick Gotcha when un-jailbreaking</h4>
<p>When I unjailbroke to iOS 4.0.2, I lost the Camera icon (the 5th Beatle in my 5-icon dock collection). A quick click of Settings-&gt;General-&gt;Reset-&gt;Reset Home Screen Layout fixed that (and left me with an hour of recreating my application folders!). I claim dumbness there for not thinking of that.</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknixta.com/blog/2010/08/20/jailbreakme-com-thoughts-a-couple-of-weeks-in/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Telligent Mail Templates and AvatarURL tildes</title>
		<link>http://geeknixta.com/blog/2010/08/20/telligent-mail-templates-and-avatarurl-tildes/</link>
		<comments>http://geeknixta.com/blog/2010/08/20/telligent-mail-templates-and-avatarurl-tildes/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 04:18:28 +0000</pubDate>
		<dc:creator>geeknixta</dc:creator>
				<category><![CDATA[Community Server]]></category>
		<category><![CDATA[.Net Reflector]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Email Templates]]></category>
		<category><![CDATA[Email Tokens]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Workarounds]]></category>

		<guid isPermaLink="false">http://geeknixta.com/blog/?p=42</guid>
		<description><![CDATA[TweetTelligent's email templating is very powerful, but leaves a lot to be desired on the documentation front. It also appears to have an annoying bug, which of course we ran into headfirst. You see, we wanted to include the user's avatar image in notification emails that our community sends out. The Problem Sadly, the token [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style="float: right; margin-left: 8px; margin-bottom: 8px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FcAqcmr&amp;via=geeknixta&amp;text=Telligent%20Mail%20Templates%20and%20AvatarURL%20tildes&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Fgeeknixta.com%2Fblog%2F2010%2F08%2F20%2Ftelligent-mail-templates-and-avatarurl-tildes%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://geeknixta.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Telligent's email templating is very powerful, but leaves a lot to be desired on the documentation front. It also appears to have an annoying bug, which of course we ran into headfirst. You see, we wanted to include the user's avatar image in notification emails that our community sends out.</p>
<h4>The Problem</h4>
<p>Sadly, the token you're supposed to use for this, <strong>$User.AvatarUrl</strong>, is worthless; it returns a URL that begins with a "~". This might be useful if there were an email template function to handle "~"s in URLs (it refers to the root of the site) but there's nothing to say there is, and nothing to document how you might process the result with a custom function. In .Net there are helper functions Telligent provide that fix this, but not in the email template language.</p>
<p>I left <a href="http://telligent.com:80/support/telligent_evolution_platform/community/f/533/p/1063862/1339881.aspx#1339881" target="_blank">this post</a> on the Telligent forums, in which I point out that using that token you end up with a URL that looks like:</p>
<pre>~/blahblah.aspx</pre>
<p>And that using the function <strong>$global.FullPath() </strong>on the token, you end up with:</p>
<pre>http://geeknixta.com~/blahblah.aspx</pre>
<p>Which of course DNS doesn't know how to handle, and nor does the browser…<span id="more-42"></span></p>
<h4>The hopeful solution - Markup Translations?</h4>
<p>So I began to think… Could I use a <a href="http://telligent.com/support/telligent_evolution_platform/w/documentation/3-create-and-customize-a-new-theme.aspx#markup_translations" target="_blank">MarkUp Translation</a> to do this for me and remove the "~"? If so, I could just add this to my theme in the theme.config.</p>
<p>I started to look for the telltale <a href="http://telligent.com/support/telligent_evolution_platform/w/documentation/3-create-and-customize-a-new-theme.aspx#markup_translations" target="_blank">ApplyMarkupTranslations() call</a> using the amazing and indispensable <a href="http://en.wikipedia.org/wiki/.NET_Reflector" target="_blank">.Net Reflector</a>. In retrospect this wasn't a sensible option (I sort of suspected this to begin with, but didn't really think it through until afterwards), but I did learn a lot about what's happening in there. In particular, <a href="http://nvelocity.sourceforge.net/index.html" target="_blank">NVelocity</a> is the templating engine. And incidentally, if Telligent is reading this, it would be great if we could use a variant of Markup Translations on email output!</p>
<h4>The actual solution - SQLServer Triggers</h4>
<p>While I was in there looking at the binaries, I did eventually trace through to find that emails end up in a SQLServer table. I took at look at the tables and only one looked promising: <em>mg_EmailQueue</em>.</p>
<p>Inspecting the contents of this table as I created a new Blog Posts, this was indeed where emails go while they wait to be sent out. So, what if I "fix" the bad data as it enters the queue? It's a hack, but it would work.</p>
<h4>Replace on an NTEXT field</h4>
<p>The obvious solution would be to use REPLACE() in an AFTER INSERT trigger. Trying that, you get this error:</p>
<pre>Argument data type ntext is invalid for argument 1 of replace function.</pre>
<p>There is a slight problem in that the email field is of type <strong>NTEXT</strong>, and you cannot run the <strong>REPLACE()</strong> Transact-SQL function on <strong>NTEXT</strong> fields. Now, realistically, any email won't be the length of 1000 novels, much less a page or two, so it's safe to use the hack below (<a href="http://www.sidesofmarch.com/index.php/archive/2008/02/27/how-to-use-replace-within-ntext-columns-in-sql-server/" target="_blank">found here</a>, thank you Google and Sides of March) of casting to <strong>NVARCHAR(MAX)</strong> and then casting the output of <strong>REPLACE()</strong> back to <strong>NTEXT</strong> on our data. It probably doesn't perform very well, but for our community (we're licensed up to 200 people) it will do and perhaps in time Telligent will either get back to me with a better solution, or a hotfix if this is a bug (it smells like one).</p>
<h4>The final Trigger</h4>
<p>So here's the code for the final trigger. Our database is called <strong>_Telligent</strong> - you'll need to change that in the USE statements. You might also want to be more specific that just replacing the '<strong>=7E</strong>' with a blank string (I'm guessing the email is MIME encoded so "~" becomes "=7E").</p>
<pre class="brush: sql; title: ;">USE [_TelligentCommunity]
GO

IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[TelligentHacks_TidyTildeURLs]'))
DROP TRIGGER [dbo].[TelligentHacks_TidyTildeURLs]
GO

USE [_TelligentCommunity]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dbo].[TelligentHacks_TidyTildeURLs]
ON  [dbo].[mg_EmailQueue]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

UPDATE [dbo].[mg_EmailQueue]
SET EmailXml = cast(replace(cast(mgeq.EmailXml as nvarchar(max)), '=7E', '') as ntext)
FROM Inserted JOIN [dbo].[mg_EmailQueue] as mgeq
ON Inserted.EmailID=mgeq.EmailID;

END

GO</pre>
<h4>And there you have it</h4>
<p>It's painful, but it works and since we want to include the avatar in our email notifications, it's the only way. Again though, we learn some hard lessons:</p>
<ul>
<li>Telligent documentation is bad. In this case we at least had good email token doco, but no examples of using it or extending it (is it even possible?).</li>
<li>Not all Telligent functionality works (I'd say this is a bona-fide bug).</li>
<li>Telligent's forums are an unreliable way to get an answer.</li>
<li>My luck = even the workaround needs workarounds, viz. (cast(replace(cast())).</li>
<li>If Telligent change the MIME formatting, or introduce other AFTER INSERT triggers, our fix breaks. I try hard to integrate such a fix seamlessly, but we're in a closed system hooking on to scaly skin, so be prepared!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://geeknixta.com/blog/2010/08/20/telligent-mail-templates-and-avatarurl-tildes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Community Server .net Control names are useful!</title>
		<link>http://geeknixta.com/blog/2010/07/24/community-server-net-control-names-are-useful/</link>
		<comments>http://geeknixta.com/blog/2010/07/24/community-server-net-control-names-are-useful/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 02:03:30 +0000</pubDate>
		<dc:creator>geeknixta</dc:creator>
				<category><![CDATA[Community Server]]></category>
		<category><![CDATA[.Net Names]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Controls]]></category>
		<category><![CDATA[Markup Translations]]></category>
		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://geeknixta.com/blog/?p=27</guid>
		<description><![CDATA[.Net Control Names are useful for Markup Translations. Why did Telligent remove them from the documentation?]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style="float: right; margin-left: 8px; margin-bottom: 8px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FcAqcmr&amp;via=geeknixta&amp;text=Community%20Server%20.net%20Control%20names%20are%20useful%21&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Fgeeknixta.com%2Fblog%2F2010%2F07%2F24%2Fcommunity-server-net-control-names-are-useful%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://geeknixta.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>So why would Telligent remove them from <a href="http://telligent.com/support/telligent_evolution_platform/w/documentation/groups-widgets.aspx">the documentation</a>?</p>
<p>To modify a <strong>theme.config </strong>file for <a href="http://telligent.com/support/telligent_evolution_platform/w/documentation/3-create-and-customize-a-new-theme.aspx#MarkupTranslations">Markup Translation</a>, you need to know these .net Control Names if you want to target a specific control.</p>
<p><a href="http://geeknixta.com/blog/wp-content/uploads/2010/07/MarkupTranslation.png"><img class="size-full wp-image-37 alignnone" title="Markup Translation example." src="http://geeknixta.com/blog/wp-content/uploads/2010/07/MarkupTranslation.png" alt="" width="395" height="123" /></a></p>
<p>Take this example, which replaces the "Forum" text with "Q &amp; A" in the <em>Group - Application Navigation</em> widget.</p>
<pre class="brush: xml; title: ;">
&lt;Translation fragmentType=&quot;CommunityServer.Controls.ContentFragments.GroupApplicationNavigation, CommunityServer.Controls&quot;&gt;
  &lt;Match&gt;&lt;![CDATA[Forum]]&gt;&lt;/Match&gt;
  &lt;Replace&gt;&lt;![CDATA[Q &amp;amp; A]]&gt;&lt;/Replace&gt;
&lt;/Translation&gt;
</pre>
<p>Documentation for the various widgets available to you doesn't currently show you the .net Control Name. How can you find it out? <span id="more-27"></span>Scroll to the bottom of the article and go into the page history (they're all just Wiki pages). Anything dating from around Feb 2010 and earlier seems to have this information*.</p>
<p>Compare <a href="http://telligent.com/support/telligent_evolution_platform/w/documentation/groups-widgets.aspx">this page</a> (current as of writing), with <a href="http://telligent.com/support/telligent_evolution_platform/w/documentation/groups-widgets/revision/9.aspx">this one</a> (listed as Revision #8 in the history, but Revision #9 in the title bar!).</p>
<div id="attachment_39" class="wp-caption alignnone" style="width: 678px"><a href="http://geeknixta.com/blog/wp-content/uploads/2010/07/NetControlNamesDeleted.png"><img class="size-full wp-image-39" title="NetControlNamesDeleted" src="http://geeknixta.com/blog/wp-content/uploads/2010/07/NetControlNamesDeleted.png" alt="" width="668" height="275" /></a><p class="wp-caption-text">Wiki history showing .net Control Names deleted from the online documentation</p></div>
<p>In my experience, the Developer Documentation is pretty bad. Taking useful information like this <em>out </em>of the documentation beggars belief. Hopefully Telligent will point me at current documentation that consolidates this removed info, but I haven't found it yet. If I didn't know better**, I'd wonder whether they're trying to drum up extra consultancy work by making our jobs harder.</p>
<hr />* Telligent documentation is often shaky. The .net Control Names listed were occasionally truncated.<br />
** I often tend not to know better.</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknixta.com/blog/2010/07/24/community-server-net-control-names-are-useful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geeknixta begins his blog</title>
		<link>http://geeknixta.com/blog/2010/07/24/in-the-beginning/</link>
		<comments>http://geeknixta.com/blog/2010/07/24/in-the-beginning/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 21:13:03 +0000</pubDate>
		<dc:creator>geeknixta</dc:creator>
				<category><![CDATA[Community Server]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://geeknixta.com/blog/?p=6</guid>
		<description><![CDATA[This blog is here so that before I do kick the bucket I can share some of the knowledge that I've accrued during my long and various battles with technology, known also to some people as my "career".]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style="float: right; margin-left: 8px; margin-bottom: 8px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FcAqcmr&amp;via=geeknixta&amp;text=Geeknixta%20begins%20his%20blog&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Fgeeknixta.com%2Fblog%2F2010%2F07%2F24%2Fin-the-beginning%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://geeknixta.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Go on then, mock away. I've had blogs before. I can take your abuse.</p>
<p>Actually, I'm old and gray now, the ADF has taken my good looks and I probably can't take the abuse at all (it's got so nasty on the internets, too).</p>
<p>No, this blog is here so that before I do kick the bucket I can share some of the knowledge that I've accrued during my long and various battles with technology, known also to some people as my "career".</p>
<p>Freshest in my mind is Community Server which, though I'm a GIS developer, has been picking me apart over the past couple of months. I'm finally winning that battle and hope to share some good hints and tips that will get other CS newcomers off the ground quicker than I managed to.</p>
<p>There will doubtless be a lot of GIS, a great deal of iPhone and Mac and C# and Ruby on Rails also.</p>
<p>So, latch on to my RSS feed, kick back, and wait for my posts to fill up your Google Reader, dear reader. Er…</p>
<p>Thank you, and good morning.</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknixta.com/blog/2010/07/24/in-the-beginning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

