<?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>Tentacolor &#187; ossviewer</title>
	<atom:link href="http://tentacolor.com/tag/ossviewer/feed/" rel="self" type="application/rss+xml" />
	<link>http://tentacolor.com</link>
	<description></description>
	<lastBuildDate>Mon, 31 May 2010 20:40:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vote for Quiet Snapshots!</title>
		<link>http://tentacolor.com/2008/02/07/vote-for-quiet-snapshots/</link>
		<comments>http://tentacolor.com/2008/02/07/vote-for-quiet-snapshots/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 18:16:44 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Feature Ideas]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Wishes]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=235</guid>
		<description><![CDATA[Tired of *click-whirrrr*-ing your way through Second Life?

Help is here! Vote for VWR-2448 TO-DAY!
This message brought to you by the Ad Council for the Egregious Use of Bolding.
]]></description>
			<content:encoded><![CDATA[<p><strong>Tired</strong> of <strong>*click-whirrrr*-ing</strong> your way through <strong>Second Life</strong>?</p>
<p><a href="https://jira.secondlife.com/browse/VWR-2448"><img class="aligncenter" src='http://tentacolor.com/wp-content/uploads/2008/02/tired.jpg' alt='Tired…' /></a></p>
<p><span style="font-size: 130%"><strong>Help</strong> is <strong>here</strong>! <strong>Vote</strong> for <a href="https://jira.secondlife.com/browse/VWR-2448">VWR-2448</a> <strong>TO-DAY</strong>!</span></p>
<p><span style="font-size: 80%"><strong>This</strong> message <strong>brought</strong> to <strong>you</strong> by <strong>the</strong> Ad Council <strong>for</strong> the <strong>Egregious</strong> Use of <strong>Bolding</strong>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2008/02/07/vote-for-quiet-snapshots/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JIRA Issue States (Part 2 of 2)</title>
		<link>http://tentacolor.com/2007/12/19/jira-issue-states-part-2-of-2/</link>
		<comments>http://tentacolor.com/2007/12/19/jira-issue-states-part-2-of-2/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 02:47:32 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Guides, How-Tos & Tips]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=211</guid>
		<description><![CDATA[In Part 1, I talked about the different states a JIRA issue can have, as well as the different resolutions and what they mean. Today, I&#8217;ll walk you through the life of an issue, from the time it&#8217;s opened to the time it&#8217;s fixed and released. I&#8217;ll also talk about some of the challenges the [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://tentacolor.com/?p=210">Part 1</a>, I talked about the different states a JIRA issue can have, as well as the different resolutions and what they mean. Today, I&#8217;ll walk you through the life of an issue, from the time it&#8217;s opened to the time it&#8217;s fixed and released. I&#8217;ll also talk about some of the challenges the JIRA process faces as it turns from an inward-facing tool to be used by trained software developers, to an outward-facing tool to be used by the general public.</p>
<p><span id="more-211"></span></p>
<p>In theory, here&#8217;s how things are supposed to go:</p>
<ol>
<li>Someone opens a new issue. We&#8217;ll call that person the issue reporter. The issue is now Open.</li>
<li>People vote and comment and add more info.</li>
<li>A programmer (either a Linden or an open source volunteer) sees the issue and decides to tackle the job. The issue is now In Progress.</li>
<li>When the programmer is done working their voodoo, they upload a patch to the JIRA. The issue is now Resolved. Or maybe it&#8217;s still Open. Who knows?</li>
<li>A Linden with access to LL&#8217;s source code repository applies the patch and marks the issue as Resolved, with a resolution of &#8220;Fixed Internally&#8221;.</li>
<li>It&#8217;s compiled and examined and made sure it works and there don&#8217;t seem to be any bugs. This is called QA (Quality Assurance), and it can take a long time, because there are lots of issues to check. The issue has to wait in a queue until it can be looked at.</li>
<li>If it all checks out, eventually it will be released in a new version along with other fixes. Yay!</li>
<li>The issue reporter downloads the new version and makes sure the issue has really been addressed. If it has, they mark the issue as Fixed, and Close it. If not, they change it back to Open, and we go back to step 1.</li>
<li>Done!</li>
</ol>
<p>That&#8217;s how it&#8217;s <em>supposed</em> to go, anyway; or rather, as I said last time, my interpretation of it based on experience.</p>
<p>In practice, though, issues often don&#8217;t end up Closed. Instead, they linger as Resolved until a dutiful volunteer sifts through the hundreds (thousands?) of Resolved issues, marking off the ones that have been fixed. Often, issue reporters simply don&#8217;t realize they&#8217;re supposed to check back later to Close the issue.</p>
<p>As it happens, the Closed state isn&#8217;t used much. Maybe it&#8217;s the ambiguous difference between Resolved and Closed. Maybe it&#8217;s confusion about when it&#8217;s appropriate to Close an issue, and who is allowed to do it. Maybe it&#8217;s fear that Closing an issue is forever, as implied by <a href="http://wiki.secondlife.com/wiki/Issue_Tracker#Issue_States">the description of Closed</a> as &#8220;the final resting place&#8221; (it&#8217;s not forever; you can re-open Closed issues just like you can for Resolved issues). Maybe they don&#8217;t want to make the reporter angry by closing their issue.</p>
<p>Another contentious issue is the fact that voting is closed for Resolved issues, which (in my opinion) should not be the case. There are cases of high-profile bugs that are still ruining a lot of people&#8217;s SL experiences, but the fix seems to be stuck in QA limbo. Since issues are marked Resolved / Fixed Internally while going through the QA process, people can&#8217;t vote for it anymore. That means there could be hundreds of Residents who would have registered the fact that it affects them, but couldn&#8217;t. This prevents the number of voters reflecting the relative severity of the problem, a metric that could (and possibly should) be used to prioritize issues in the QA queue.</p>
<p>Fortunately, there are JIRA issues about the issues with JIRA (how delightfully recursive)! A lot of progress has already been made on improving JIRA, but there&#8217;s still more to do. To get you started, check out:</p>
<ul>
<li><a href="http://jira.secondlife.com/browse/WEB-194">WEB-194</a> (&#8220;Streamline and clarify JIRA reporting process for non-technical users&#8221;)</li>
<li><a href="http://jira.secondlife.com/browse/WEB-247">WEB-274</a> (&#8220;Change status labels for PJIRA&#8221;)</li>
<li><a href="http://jira.secondlife.com/browse/WEB-315">WEB-315</a> (&#8220;Meta Issue: LL JIRA Guidelines&#8221;)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/12/19/jira-issue-states-part-2-of-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JIRA Issue States (Part 1 of 2)</title>
		<link>http://tentacolor.com/2007/12/15/jira-issue-states-part-1-of-2/</link>
		<comments>http://tentacolor.com/2007/12/15/jira-issue-states-part-1-of-2/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 21:03:35 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Guides, How-Tos & Tips]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=210</guid>
		<description><![CDATA[If you used the SL Public JIRA (highly recommended for all Resis, it&#8217;s neat!) then you might be familiar with the various states an issue can have. But you might not really know what those states mean. 
What&#8217;s the difference between &#8220;Resolved&#8221; and &#8220;Closed&#8221;? When is something &#8220;Fixed&#8221;, and why do some issues seem to [...]]]></description>
			<content:encoded><![CDATA[<p>If you used the <a href="http://jira.secondlife.com">SL Public JIRA</a> (highly recommended for all Resis, it&#8217;s neat!) then you might be familiar with the various states an issue can have. But you might not really know what those states mean. </p>
<p>What&#8217;s the difference between &#8220;Resolved&#8221; and &#8220;Closed&#8221;? When is something &#8220;Fixed&#8221;, and why do some issues seem to get stuck in &#8220;Fixed Internally&#8221; for a long time? </p>
<p>Read on to find out!</p>
<p><span id="more-210"></span></p>
<p>Due to some confusing technical jargon that doesn&#8217;t make a lot of sense if you&#8217;re not used to them, the meanings of the various states aren&#8217;t immediately obviou. Here&#8217;s a list of the possible states that an issue can have right now:</p>
<ul>
<li><strong>Open</strong>: the normal state, people can vote and comment and post patches and such.</li>
<li><strong>In Progress</strong>: someone&#8217;s working on it, so never ye worry.</li>
<li><strong>Resolved</strong>: some sort of action has been taken to address the issue, but someone needs to confirm that it&#8217;s addressed, or it still needs to be released. Voting is closed, but you can comment or even re-open it.</li>
<li><strong>Closed</strong>: the issue has been solved and released, everything&#8217;s groovy, nothing more to be done. Voting is closed, but you can comment or re-open it.</li>
</ul>
<p>At least, that&#8217;s my interpretation of them, based in large part on <a href="http://wiki.secondlife.com/wiki/Issue_Tracker#Issue_States">this well-hidden blurb</a> on the SL wiki. There&#8217;s a lot of confusion about issue states, especially among users who aren&#8217;t used to issue tracking software and its weird jargon. </p>
<p>When someone says a problem has been &#8220;resolved&#8221;, that usually means the thing has been fixed. But wait, that&#8217;s what the &#8220;Closed&#8221; state means on JIRA! So what does &#8220;Resolved&#8221; mean, then? Is it the same as &#8220;Closed&#8221;? Why do they have both of them?! Arrrgh, so confusin&#8217;!</p>
<p>To make it even more confusifying, the &#8220;Resolved&#8221; state can mean lots of very different and unrelated things, depending on what the &#8220;resolution&#8221; is:</p>
<ul>
<li><strong>Fixed Internally</strong>: LL has fixed the issue (or applied a patch) in their internal source code repository, but it still needs to be reviewed to make sure everything&#8217;s good and it can be released.</li>
<li><strong>Fixed</strong>: the issue has been fixed and released. Yay!</li>
<li><strong>Won&#8217;t Finish</strong>: LL won&#8217;t fix the issue, for any number of reasons. Maybe it would break content, or make things really slow, or it just doesn&#8217;t fit within their grand vision.</li>
<li><strong>Duplicate</strong>: someone has already reported this same (or a very similar) issue earlier or with better info/repro, and you should comment/vote on the other issue instead.</li>
<li><strong>Needs More Info</strong>: the issue doesn&#8217;t have enough info, or it isn&#8217;t specific enough, for anyone to address the issue. E.g. &#8220;inventory is borked plz fix kthxbai&#8221; &lt;&#8211; needs moar infos!!</li>
<li><strong>Cannot Reproduce</strong>: the Linden who looked at this issue can&#8217;t make babies. Just kidding! It means they tried to make the bug happen so they could study it (and later try again to make sure it doesn&#8217;t happen up anymore), but they couldn&#8217;t. Repros are an important part of the process!</li>
<li><strong>Misfiled</strong>: this issue doesn&#8217;t belong on JIRA. Examples include &#8220;Halp I furgetted my password&#8221;, &#8220;I liek ponies&#8221;, and &#8220;LL sucks cuz there poopy heads&#8221;. These types of reports don&#8217;t help make SL better!</li>
</ul>
<p>But those labels can be confusing, too, hence me needing to explain what they mean. And some of them don&#8217;t really fit with the Resolved state: the &#8220;Fixed&#8221; resolution, for example, should really only go with the Closed issue state. But, the same list of resolutions is used for both Resolved and Closed, and there&#8217;s some overlap, so it&#8217;s fuzzy and ambiguous.</p>
<p>Tune in next time for an overview of the JIRA process flow, more JIRA quirks and weirdness, and some tips on making JIRA a better place!</p>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/12/15/jira-issue-states-part-1-of-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yes. Yes it would.</title>
		<link>http://tentacolor.com/2007/11/04/yes-yes-it-would/</link>
		<comments>http://tentacolor.com/2007/11/04/yes-yes-it-would/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 03:39:51 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[ossviewer]]></category>
		<category><![CDATA[silly]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=186</guid>
		<description><![CDATA[
void reload_vertex_shader(void *)
{
	//THIS WOULD BE AN AWESOME PLACE TO RELOAD SHADERS... just a thought	- DaveP
}

(Made me chuckle. From indra/newview/llviewermenu.cpp in the SL client source.)
]]></description>
			<content:encoded><![CDATA[<p><code>
<pre>void reload_vertex_shader(void *)
{
	//THIS WOULD BE AN AWESOME PLACE TO RELOAD SHADERS... just a thought	- DaveP
}</pre>
<p></code></p>
<p>(Made me chuckle. From indra/newview/llviewermenu.cpp in the SL client source.)</p>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/11/04/yes-yes-it-would/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Monster functions: LLManipTranslate::handleHover</title>
		<link>http://tentacolor.com/2007/07/21/monster-functions-llmaniptranslatehandlehover/</link>
		<comments>http://tentacolor.com/2007/07/21/monster-functions-llmaniptranslatehandlehover/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 02:36:36 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Gripes]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=153</guid>
		<description><![CDATA[It starts off innocently enough:
BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
{
    // Translation tool only works if mouse button is down.
    // Bail out if mouse not down.
    if( !hasMouseCapture() )
    {

Three hundred ninety-six lines later, we come to the end of the [...]]]></description>
			<content:encoded><![CDATA[<p>It starts off innocently enough:</p>
<pre>BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
{
    // Translation tool only works if mouse button is down.
    // Bail out if mouse not down.
    if( !hasMouseCapture() )
    {
</pre>
<p><strong>Three hundred ninety-six lines later</strong>, we come to the end of the function:</p>
<pre>    dialog_refresh_all();		// ??? is this necessary?
&nbsp;
    lldebugst(LLERR_USER_INPUT) << "hover handled by LLManipTranslate (active)" << llendl;
    gViewerWindow->setCursor(UI_CURSOR_TOOLTRANSLATE);
    return TRUE;
}
</pre>
<p>One function.</p>
<p>Over 400 lines long.</p>
<p>Not intimidating enough for you? Here&#8217;s a sample of what some of those lines look like:</p>
<pre>            // snap to planar grid
            LLVector3 cursor_point_agent = gAgent.getPosAgentFromGlobal(cursor_point_global);
            LLVector3 camera_plane_projection = gCamera->getAtAxis();
            camera_plane_projection -= projected_vec(camera_plane_projection, mManipNormal);
            camera_plane_projection.normVec();
            LLVector3 camera_projected_dir = camera_plane_projection;
            camera_plane_projection.rotVec(~mGridRotation);
</pre>
<p>This is one of those functions that makes your eyes go blurry and your head start to hurt until you curl up into fetal position and question the existence of a merciful god.</p>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/07/21/monster-functions-llmaniptranslatehandlehover/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Observations about 1.17.1</title>
		<link>http://tentacolor.com/2007/06/26/observations-about-1171/</link>
		<comments>http://tentacolor.com/2007/06/26/observations-about-1171/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 23:29:20 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Building]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=139</guid>
		<description><![CDATA[
At first, I didn&#8217;t think the pie-menu-edit crash affected me, but I was able to crash when I tried the repro on the PJIRA.
Just reading that there was a new crash when entering edit mode was enough to make my stomach tense up with anticipated guilt. I had a Victor Frankenstein moment: what sort of [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>At first, I didn&#8217;t think the <a href="http://blog.secondlife.com/2007/06/26/intermittent-crashes-reported-from-selecting-edit-in-the-pie-menu/">pie-menu-edit crash</a> affected me, but I was able to crash when I tried <a href="https://jira.secondlife.com/browse/VWR-1369">the repro on the PJIRA</a>.</li>
<li>Just reading that there was a new crash when entering edit mode was enough to make my stomach tense up with anticipated guilt. I had a Victor Frankenstein moment: <em>what sort of monster have I created and unleashed upon the world?</em> Fortunately, I haven&#8217;t seen anything to suggest that it&#8217;s directly related to my patch. Phew.</li>
<li>In this version, I can walk and fly around with the edit window still open! It doesn&#8217;t close (and thus forget what I had selected) just because my avatar moves anymore! Yay!</li>
<li>Even when I uncheck <q>Client > Character > Character Tests > Go Away/AFK When Idle</q>, my avatar slumps over when I minimize the viewer or switch to a different virtual desktop (which effectively minimizes the viewer). In previous versions, my avatar would stay upright and respirating. This is a <em>disaster</em>: now people will be able to see how little attention I&#8217;m paying to what they are saying! (Seriously, though, I do a lot of multitasking between windows, so I hope this gets fixed soon.)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/06/26/observations-about-1171/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New &#8220;Edit Linked Parts&#8221; Menu Item!</title>
		<link>http://tentacolor.com/2007/06/25/new-edit-linked-parts-menu-item/</link>
		<comments>http://tentacolor.com/2007/06/25/new-edit-linked-parts-menu-item/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 04:12:09 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Building]]></category>
		<category><![CDATA[Feature Ideas]]></category>
		<category><![CDATA[Guides, How-Tos & Tips]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=137</guid>
		<description><![CDATA[
You might notice a new entry in the Tools menu for SL 1.17.1.0: Edit Linked Parts!
That&#8217;s right, the feature I added back in March and submitted to the JIRA has now made its way into the official client release! The menu item works just like the checkbox in the Build/Edit floater, allowing you to switch [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src='http://tentacolor.com/wp-content/uploads/2007/06/editlinkedparts.png' alt='“Edit Linked Parts” Menu Item (new in 1.17.1.0!)' /></p>
<p>You might notice a new entry in the <q>Tools</q> menu for SL 1.17.1.0: Edit Linked Parts!</p>
<p>That&#8217;s right, the feature I <a href="http://tentacolor.com/?p=84">added back in March</a> and submitted to the JIRA has now made its way into the official client release! The menu item works just like the checkbox in the Build/Edit floater, allowing you to switch between editing whole linked sets of prims, or editing the individual members.</p>
<p>Not good enough? You want <em>more</em>?</p>
<p>Well then how about I tell you guys how you can add your very own <strong>keyboard shortcut</strong>&#8230; in just <em>3 easy steps?</em></p>
<ol>
<li>Open the <tt>Second Life/skins/xui/en-us/menu_viewer.xml</tt> file in your favorite text or XML editor.</li>
<li>Go down to line 695 (or do a search for &#8220;Edit Linked Parts&#8221;) where it says <code>shortcut=""</code>, and type in your shortcut between the quotation marks! For example, to bind it to Shift-L, you&#8217;d type in <code>shift|L</code>!</li>
<li>(Re)start Second Life, and enjoy!</li>
</ol>
<p>A word about the format for shortcuts: Put the modifier keys first, separated by the pipe character, | (Shift-Backslash, above the Enter key). The standard order for modifiers is <code>control|alt|shift</code>, but I&#8217;m not sure the order matters too much. For Macs, &#8220;control&#8221; means the Command key.</p>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/06/25/new-edit-linked-parts-menu-item/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Project #2: Show &#8216;Profile Cut&#8217; for Box &amp; Friends</title>
		<link>http://tentacolor.com/2007/03/10/project-2-show-profile-cut-for-box-friends/</link>
		<comments>http://tentacolor.com/2007/03/10/project-2-show-profile-cut-for-box-friends/#comments</comments>
		<pubDate>Sun, 11 Mar 2007 05:43:41 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Adventures]]></category>
		<category><![CDATA[Feature Ideas]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Passions]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=85</guid>
		<description><![CDATA[Goal: Make the &#8220;Profile Cut Begin and End&#8221; spinners visible in the Edit window while editing a Box, Cylinder, or Prism. Currently it only shows up for Torus, Tube, and Ring (and under the name &#8220;Dimple&#8221; for Sphere), but the setting does have a useful effect on Box &#038; friends. I also wanted it to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Goal:</strong> Make the &#8220;Profile Cut Begin and End&#8221; spinners visible in the Edit window while editing a Box, Cylinder, or Prism. Currently it only shows up for Torus, Tube, and Ring (and under the name &#8220;Dimple&#8221; for Sphere), but the setting does have a useful effect on Box &#038; friends. I also wanted it to only show up when I turn on the <a href="http://tentacolor.com/?p=82">the &#8220;AdvancedMode&#8221; preference that I added</a>.</p>
<p><span id="more-85"></span></p>
<p><strong>Obstacles:</strong> Few. Mostly just making any sense of the <strong>gigantic</strong> almost-totally uncommented functions.</p>
<p><strong>How to accomplish the goal:</strong></p>
<ol>
<li>Modify LLPanelObject::getState(), around line 816 of &#8216;indra/newview/llpanelobject.cpp&#8217; (the file that controls the Object tab of the Edit window), to make the &#8216;advanced_cut_visible&#8217; variable TRUE if Advanced Mode is enabled.</li>
</ol>
<p><strong>Rewards:</strong> It is now much more convenient to torture Box &#038; friends to make them very thin. No need to swap to other prim types to do the job!</p>
<p><strong>Required knowledge:</strong></p>
<ul>
<li>How preferences work (for Advanced Mode)</li>
<li>How XUI works</li>
</ul>
<p>I&#8217;m <em>already done</em> with this feature. It was pretty easy to add! (I&#8217;m totally on a roll today!)</p>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/03/10/project-2-show-profile-cut-for-box-friends/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Project #1: Keyboard Toggle &#8220;Edit Linked Parts&#8221;</title>
		<link>http://tentacolor.com/2007/03/10/project-1-keyboard-toggle-edit-linked-parts/</link>
		<comments>http://tentacolor.com/2007/03/10/project-1-keyboard-toggle-edit-linked-parts/#comments</comments>
		<pubDate>Sat, 10 Mar 2007 22:38:52 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Adventures]]></category>
		<category><![CDATA[Feature Ideas]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Passions]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=84</guid>
		<description><![CDATA[Goal: Add a keyboard toggle for the &#8220;Edit Linked Parts&#8221; checkbox in the Edit window. I&#8217;ll also probably add a menu entry for it in the Tools menu as part of that process.

Obstacles: The preference for &#8220;Edit Linked Parts&#8221; is actually saved as the opposite of that: &#8220;SelectLinkedSet&#8221;. When the ELP checkbox is on, that [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Goal:</strong> Add a keyboard toggle for the &#8220;Edit Linked Parts&#8221; checkbox in the Edit window. I&#8217;ll also probably add a menu entry for it in the Tools menu as part of that process.</p>
<p><span id="more-84"></span></p>
<p><strong>Obstacles:</strong> The preference for &#8220;Edit Linked Parts&#8221; is actually saved as the opposite of that: &#8220;SelectLinkedSet&#8221;. When the ELP checkbox is <em>on</em>, that means the SLS preference is <em>off</em>. This means there must necessarily be an extra layer of code between the checkbox and the preference, in order to do everything oppositely.</p>
<p><strong>How to accomplish the goal:</strong></p>
<ol>
<li>Convert &#8220;SelectLinkedSet&#8221; preference to a new &#8220;EditLinkedParts&#8221; preference.</li>
<li>Update all the code in the viewer that depends on SLS, to make them depend on ELP instead. Don&#8217;t forget to correct for the non-oppositeness.</li>
<li>Change the &#8220;Edit Linked Parts&#8221; checkbox to use the LLUICtrlFactory to access ELP.</li>
<li>Add a menu entry with a key binding to the Tools menu to toggle ELP.*</li>
</ol>
<p>* I might be able to add a key binding without adding the new menu entry, but I don&#8217;t currently know how to do that, and the menu entry is a good thing anyway.</p>
<p><strong>Rewards:</strong> The building process will be much faster and more fluid!</p>
<p><strong>Required knowledge:</strong></p>
<ul>
<li>How XUI keyboard shortcuts work. (<a href="http://tentacolor.com/?p=23">Check!</a>)</li>
<li>How XUI Menus work. (<a href="http://tentacolor.com/?p=27">Check!</a>)</li>
<li>How Preferences work. (<a href="http://tentacolor.com/?p=82">Check!</a>)</li>
<li>How LLUICtrlFactory works.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/03/10/project-1-keyboard-toggle-edit-linked-parts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>I like to share what I learn!</title>
		<link>http://tentacolor.com/2007/03/10/i-like-to-share-what-i-learn/</link>
		<comments>http://tentacolor.com/2007/03/10/i-like-to-share-what-i-learn/#comments</comments>
		<pubDate>Sat, 10 Mar 2007 08:12:40 +0000</pubDate>
		<dc:creator>Jacek Antonelli</dc:creator>
				<category><![CDATA[Guides, How-Tos & Tips]]></category>
		<category><![CDATA[ossviewer]]></category>

		<guid isPermaLink="false">http://tentacolor.com/?p=82</guid>
		<description><![CDATA[Open source is all about sharing what we learn! I have been helped in the past by this wonderful process, and I have found that it gives me warm fuzzy feelings inside to help keep it going by being helpful and sharing with the world! Yay! Hugs for everyone!

So, since I have been spending a [...]]]></description>
			<content:encoded><![CDATA[<p>Open source is all about sharing what we learn! I have been helped in the past by this wonderful process, and I have found that it gives me warm fuzzy feelings inside to help keep it going by being helpful and sharing with the world! Yay! Hugs for everyone!</p>
<p><span id="more-82"></span></p>
<p>So, since I have been spending a fair bit of my time during the past couple days digging around the code related to Second Life viewer client user preferences, I&#8217;m sharing what I found out, to help those who come after me! Thus I present to you a guide for Second Life viewer code hackers (i.e. programmers): <a href="http://wiki.secondlife.com/wiki/How_preferences_work">How Preferences Work</a>! I hope I have saved some other people a little bit of work that they would have to do to gather the knowledge in that guide!</p>
<p>By the way, you might be curious about the purpose behind my researching how preferences work! Here is what&#8217;s floating around in my head: &#8220;Advanced Mode&#8221;, a preference that advanced SL users can turn on to get rid of some of the crutches and barriers that have been built into the tools to protect the newbies from themselves. Stuff like how &#8220;Transparency&#8221; only goes up to 90% in the edit tool, even though it&#8217;s trivial to <a href="http://tentacolor.com/?p=25">make it go up to fully transparent</a>. It&#8217;ll also act as a global toggle for any features that I add that a) significantly modify the way existing things systems work, and/or b) probably shouldn&#8217;t be enabled by default for all users.</p>
]]></content:encoded>
			<wfw:commentRss>http://tentacolor.com/2007/03/10/i-like-to-share-what-i-learn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
