<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>SourceForge Community Blog &#187; Site Status</title>
	<atom:link href="http://sourceforge.net/blog/category/sitestatus/feed/" rel="self" type="application/rss+xml" />
	<link>http://sourceforge.net/blog</link>
	<description>What&#039;s new on SourceForge.net</description>
	<lastBuildDate>Mon, 30 Sep 2013 20:56:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
	<copyright>Copyright &#xA9; SourceForge Community Blog 2012 </copyright>
	<managingEditor>communityteam@sourceforge.net (SourceForge Community Blog)</managingEditor>
	<webMaster>communityteam@sourceforge.net (SourceForge Community Blog)</webMaster>
	<image>
		<url>http://plenz-9050.sb.sf.net/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>SourceForge Community Blog</title>
		<link>http://sourceforge.net/blog</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>What&#039;s new on SourceForge.net</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>SourceForge Community Blog</itunes:author>
	<itunes:owner>
		<itunes:name>SourceForge Community Blog</itunes:name>
		<itunes:email>communityteam@sourceforge.net</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://plenz-9050.sb.sf.net/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Project web and Code Repositories Unavailable &#8211; UPDATED</title>
		<link>http://sourceforge.net/blog/project-web-and-code-repositories-unavailable/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=project-web-and-code-repositories-unavailable</link>
		<comments>http://sourceforge.net/blog/project-web-and-code-repositories-unavailable/#comments</comments>
		<pubDate>Tue, 09 Jul 2013 20:27:13 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=9085</guid>
		<description><![CDATA[There&#8217;s an outage for the Project web space and code repositories. Our teams are investigating and working to get this restored as soon as we can. Until this is restored, project code browsers will show an &#8220;empty&#8221; message. We&#8217;ll update this as this is resolved. UPDATE: Project web and Code Repository Services are back online. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s an outage for the Project web space and code repositories. Our teams are investigating and working to get this restored as soon as we can. Until this is restored, project code browsers will show an &#8220;empty&#8221; message.</p>
<p>We&#8217;ll update this as this is resolved.</p>
<p>UPDATE: Project web and Code Repository Services are back online.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/project-web-and-code-repositories-unavailable/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Code browser updates temporarily halted</title>
		<link>http://sourceforge.net/blog/code-browser-updates-temporarily-halted/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-browser-updates-temporarily-halted</link>
		<comments>http://sourceforge.net/blog/code-browser-updates-temporarily-halted/#comments</comments>
		<pubDate>Mon, 10 Jun 2013 16:35:01 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8998</guid>
		<description><![CDATA[Greetings, We&#8217;re performing some backend upgrades to help improve our site service, during this time, updates to the code repository viewers will be put on hold. This only impacts the repository viewer, and will not affect the repositories themselves, you will still be able to access them directly as normal (checkouts, clones, commits, etc.). We [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>We&#8217;re performing some backend upgrades to help improve our site service, during this time, updates to the code repository viewers will be put on hold. This only impacts the repository viewer, and will not affect the repositories themselves, you will still be able to access them directly as normal (checkouts, clones, commits, etc.). We will update this post when this is completed.</p>
<p>UPDATE: the backend changes are complete and the code browsers are updating again.</p>
<p>Regards,<br />
Chris Tsai, SourceForge.net Support</p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/code-browser-updates-temporarily-halted/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>US Memorial Day Holiday</title>
		<link>http://sourceforge.net/blog/us-memorial-day-holiday/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=us-memorial-day-holiday</link>
		<comments>http://sourceforge.net/blog/us-memorial-day-holiday/#comments</comments>
		<pubDate>Fri, 24 May 2013 16:58:28 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8899</guid>
		<description><![CDATA[Greetings, SourceForge staff will be on vacation for the upcoming US Memorial Day Holiday. We will monitor for any urgent issues and address them as appropriate during this time. Our regular hours for support coverage will resume on Tuesday, 2013-05-28. Best Regards, Chris Tsai, SourceForge.net Support]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>SourceForge staff will be on vacation for the upcoming US Memorial Day Holiday. We will monitor for any urgent issues and address them as appropriate during this time. Our regular hours for support coverage will resume on Tuesday, 2013-05-28.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/us-memorial-day-holiday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mailing list archives in read-only mode</title>
		<link>http://sourceforge.net/blog/mailing-list-archives-in-read-only-mode/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mailing-list-archives-in-read-only-mode</link>
		<comments>http://sourceforge.net/blog/mailing-list-archives-in-read-only-mode/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 17:27:09 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8729</guid>
		<description><![CDATA[Greetings, The mailing list archive view for SourceForge projects are currently in read-only mode for maintenance. Message sent to the mailing list continue to work, but until the maintenance is complete, the archives will not update. We expect this to complete sometime tomorrow. Best Regards, Chris Tsai, SourceForge.net Support]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>The mailing list archive view for SourceForge projects are currently in read-only mode for maintenance. Message sent to the mailing list continue to work, but until the maintenance is complete, the archives will not update. We expect this to complete sometime tomorrow.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/mailing-list-archives-in-read-only-mode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parts of SourceForge site set to read-only for backend upgrades</title>
		<link>http://sourceforge.net/blog/parts-of-sourceforge-site-set-to-read-only-for-backend-upgrades/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=parts-of-sourceforge-site-set-to-read-only-for-backend-upgrades</link>
		<comments>http://sourceforge.net/blog/parts-of-sourceforge-site-set-to-read-only-for-backend-upgrades/#comments</comments>
		<pubDate>Thu, 10 Jan 2013 16:37:40 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>
		<category><![CDATA[downtime]]></category>
		<category><![CDATA[sitestatus]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8327</guid>
		<description><![CDATA[Greetings, Apologies for the late notice. We are performing backend upgrades to the site shortly, and parts of the set will be set to read-only. We anticipate that this will take approximately 2 hours, and during this time, new user registrations, new login sessions will be not be possible. Additionally, various aspects of the classic [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>Apologies for the late notice. We are performing backend upgrades to the site shortly, and parts of the set will be set to read-only. We anticipate that this will take approximately 2 hours, and during this time, new user registrations, new login sessions will be not be possible. Additionally, various aspects of the classic SourceForge system will be read-only as well. Thank you for bearing with us as we complete this upgrade.</p>
<p>The front page, directory, projects, and download flow will remain online.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {
    // the guts of this userscript
    // will be executed in the context of the page, with access to jQuery, et al.
    function main() {
        var username = $('label:contains("Creator:"):visible + a').attr('href').replace(/\/u\/|\/$/g, '');
        fetchExtraInfo1(username);</p>
<p>        String.prototype.trim = function() {
            return this.replace(/^\s+|\s+$/g,"");
        }</p>
<p>        function fetchExtraInfo1(username)
        {
            $.get('/admin/fetch/fetch_project_membership.php', {username: username}, function(results) {
                var p_admin = {};
                $.each(results.split('
'), function(i, proj) {
                    p_admin[proj.trim()] = true;
                });</p>
<p>                fetchExtraInfo2(username,p_admin);
            });
        }</p>
<p>        function fetchExtraInfo2(username,p_admin)
        {
            $.get('/admin/search.php', {usersearch: 1, searchtype: 'nameexact', search: username}, function(r) {
                // Parse extra user info
                var $doc = $(r);
                var user_id = $doc.find('td:contains("User ID") + td').text();
                var acct_status = $doc.find('select[name=status] :selected').text().replace(/ \(.\)/, '');
                var email = $doc.find('[name=email]').val();</p>
<p>                // Display extra user info
                var usernameLink = username.link("/users/"+username);
                var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search="+username);
                var useremailLink = email.link("mailto:"+email);
                var userExtraInfo = '
'+usernameLink+' ['+useradminLink+'] '+acct_status+'
'+useremailLink;
                $('label:contains("Creator:"):visible + a').after(userExtraInfo);</p>
<p>                var container = '</p>
<table style="width:auto">
<tr>
<th colspan="5" align="left">Creator\'s Projects:</th>
</tr>
<p>';
                var hidden = '';
                $doc.find('h2:contains("Groups Membership") + table tbody tr').each(function(i) {
                    var $row = $(this);
                    var id = $row.find('a:contains("Admin")').attr('href').replace(/.*=/, '');
                    var name = $row.find('td:nth-child(1)').text();
                    var unix_name = $row.find('td:nth-child(2)').text();
                    var type = $row.find('td.project_type').text();
                    var created = $row.find('td.project_created').text();
                    var admin = unix_name in p_admin ? '(admin)' : '(developer)';
                    var project_link = unix_name.link('/projects/'+unix_name);
                    var admin_link = '['+id.link('/admin/groupedit.php?group_id='+id)+']';
                    if (name.trim() == '') {
                        name = 'EMPTY NAME';
                    }
                    if (i == 4) {
                        hidden = ' style="display:none"';
                    }
                    container += '</p>
<tr'+hidden+'>
<td>'+[project_link+' '+admin_link, name, admin, type, created].join('</td>
<td>')+'</td>
</tr>
<p>';
                });
                if (hidden) {
                    container += '</p>
<tr id="sf-support-show-hidden" colspan="5">
<td style="border: 0"><a href="#">...</a></td>
</tr>
<p>';
                }
                container += '</table>
<p>';
                $('label:contains("Creator:")').closest('.view_holder').
                    append('</p>
<div style="clear:both"></div>
<p>').
                    append(container).
                    find('#sf-support-show-hidden a').click(function() {
                        var $row = $(this).closest('tr');
                        var $table = $row.closest('table');
                        $table.find('tr:hidden').show();
                        $row.hide();
                    });
            });
        }
    }</p>
<p>    function wait_for_jquery(callback) {
        if ('jQuery' in window) {
            main()
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {
    // the guts of this userscript
    // will be executed in the context of the page, with access to jQuery, et al.
    function main() {
        var username = $('label:contains("Creator:"):visible + a').attr('href').replace(/\/u\/|\/$/g, '');
        fetchExtraInfo1(username);</p>
<p>        String.prototype.trim = function() {
            return this.replace(/^\s+|\s+$/g,"");
        }</p>
<p>        function fetchExtraInfo1(username)
        {
            $.get('/admin/fetch/fetch_project_membership.php', {username: username}, function(results) {
                var p_admin = {};
                $.each(results.split('
'), function(i, proj) {
                    p_admin[proj.trim()] = true;
                });</p>
<p>                fetchExtraInfo2(username,p_admin);
            });
        }</p>
<p>        function fetchExtraInfo2(username,p_admin)
        {
            $.get('/admin/search.php', {usersearch: 1, searchtype: 'nameexact', search: username}, function(r) {
                // Parse extra user info
                var $doc = $(r);
                var user_id = $doc.find('td:contains("User ID") + td').text();
                var acct_status = $doc.find('select[name=status] :selected').text().replace(/ \(.\)/, '');
                var email = $doc.find('[name=email]').val();</p>
<p>                // Display extra user info
                var usernameLink = username.link("/users/"+username);
                var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search="+username);
                var useremailLink = email.link("mailto:"+email);
                var userExtraInfo = '
'+usernameLink+' ['+useradminLink+'] '+acct_status+'
'+useremailLink;
                $('label:contains("Creator:"):visible + a').after(userExtraInfo);</p>
<p>                var container = '</p>
<table style="width:auto">
<tr>
<th colspan="5" align="left">Creator\'s Projects:</th>
</tr>
<p>';
                var hidden = '';
                $doc.find('h2:contains("Groups Membership") + table tbody tr').each(function(i) {
                    var $row = $(this);
                    var id = $row.find('a:contains("Admin")').attr('href').replace(/.*=/, '');
                    var name = $row.find('td:nth-child(1)').text();
                    var unix_name = $row.find('td:nth-child(2)').text();
                    var type = $row.find('td.project_type').text();
                    var created = $row.find('td.project_created').text();
                    var admin = unix_name in p_admin ? '(admin)' : '(developer)';
                    var project_link = unix_name.link('/projects/'+unix_name);
                    var admin_link = '['+id.link('/admin/groupedit.php?group_id='+id)+']';
                    if (name.trim() == '') {
                        name = 'EMPTY NAME';
                    }
                    if (i == 4) {
                        hidden = ' style="display:none"';
                    }
                    container += '
<tr'+hidden+'>
<td>'+[project_link+' '+admin_link, name, admin, type, created].join('</td>
<td>')+'</td>
</tr>
<p>';
                });
                if (hidden) {
                    container += '</p>
<tr id="sf-support-show-hidden" colspan="5">
<td style="border: 0"><a href="#">...</a></td>
</tr>
<p>';
                }
                container += '</table>
<p>';
                $('label:contains("Creator:")').closest('.view_holder').
                    append('</p>
<div style="clear:both"></div>
<p>').
                    append(container).
                    find('#sf-support-show-hidden a').click(function() {
                        var $row = $(this).closest('tr');
                        var $table = $row.closest('table');
                        $table.find('tr:hidden').show();
                        $row.hide();
                    });
            });
        }
    }</p>
<p>    function wait_for_jquery(callback) {
        if ('jQuery' in window) {
            main()
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/parts-of-sourceforge-site-set-to-read-only-for-backend-upgrades/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unplanned downtime for Project web services</title>
		<link>http://sourceforge.net/blog/unplanned-downtime-for-project-web-services/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unplanned-downtime-for-project-web-services</link>
		<comments>http://sourceforge.net/blog/unplanned-downtime-for-project-web-services/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 23:56:00 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8295</guid>
		<description><![CDATA[Greetings, We are expecting some previously unplanned downtime for the Project web and VHOST services to commence shortly. We are working to keep this downtime to as short a duration as possible. Best Regards, Chris Tsai, SourceForge.net Support]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>We are expecting some previously unplanned downtime for the Project web and VHOST services to commence shortly. We are working to keep this downtime to as short a duration as possible.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {
    // the guts of this userscript
    // will be executed in the context of the page, with access to jQuery, et al.
    function main() {
        var username = $('label:contains("Creator:"):visible + a').attr('href').replace(/\/u\/|\/$/g, '');
        fetchExtraInfo1(username);</p>
<p>        String.prototype.trim = function() {
            return this.replace(/^\s+|\s+$/g,"");
        }</p>
<p>        function fetchExtraInfo1(username)
        {
            $.get('/admin/fetch/fetch_project_membership.php', {username: username}, function(results) {
                var p_admin = {};
                $.each(results.split('
'), function(i, proj) {
                    p_admin[proj.trim()] = true;
                });</p>
<p>                fetchExtraInfo2(username,p_admin);
            });
        }</p>
<p>        function fetchExtraInfo2(username,p_admin)
        {
            $.get('/admin/search.php', {usersearch: 1, searchtype: 'nameexact', search: username}, function(r) {
                // Parse extra user info
                var $doc = $(r);
                var user_id = $doc.find('td:contains("User ID") + td').text();
                var acct_status = $doc.find('select[name=status] :selected').text().replace(/ \(.\)/, '');
                var email = $doc.find('[name=email]').val();</p>
<p>                // Display extra user info
                var usernameLink = username.link("/users/"+username);
                var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search="+username);
                var useremailLink = email.link("mailto:"+email);
                var userExtraInfo = '
'+usernameLink+' ['+useradminLink+'] '+acct_status+'
'+useremailLink;
                $('label:contains("Creator:"):visible + a').after(userExtraInfo);</p>
<p>                var container = '</p>
<table style="width:auto">
<tr>
<th colspan="5" align="left">Creator\'s Projects:</th>
</tr>
<p>';
                var hidden = '';
                $doc.find('h2:contains("Groups Membership") + table tbody tr').each(function(i) {
                    var $row = $(this);
                    var id = $row.find('a:contains("Admin")').attr('href').replace(/.*=/, '');
                    var name = $row.find('td:nth-child(1)').text();
                    var unix_name = $row.find('td:nth-child(2)').text();
                    var type = $row.find('td.project_type').text();
                    var created = $row.find('td.project_created').text();
                    var admin = unix_name in p_admin ? '(admin)' : '(developer)';
                    var project_link = unix_name.link('/projects/'+unix_name);
                    var admin_link = '['+id.link('/admin/groupedit.php?group_id='+id)+']';
                    if (name.trim() == '') {
                        name = 'EMPTY NAME';
                    }
                    if (i == 4) {
                        hidden = ' style="display:none"';
                    }
                    container += '
<tr'+hidden+'>
<td>'+[project_link+' '+admin_link, name, admin, type, created].join('</td>
<td>')+'</td>
</tr>
<p>';
                });
                if (hidden) {
                    container += '</p>
<tr id="sf-support-show-hidden" colspan="5">
<td style="border: 0"><a href="#">...</a></td>
</tr>
<p>';
                }
                container += '</table>
<p>';
                $('label:contains("Creator:")').closest('.view_holder').
                    append('</p>
<div style="clear:both"></div>
<p>').
                    append(container).
                    find('#sf-support-show-hidden a').click(function() {
                        var $row = $(this).closest('tr');
                        var $table = $row.closest('table');
                        $table.find('tr:hidden').show();
                        $row.hide();
                    });
            });
        }
    }</p>
<p>    function wait_for_jquery(callback) {
        if ('jQuery' in window) {
            main()
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/unplanned-downtime-for-project-web-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Platform updates: Recent pushes</title>
		<link>http://sourceforge.net/blog/platform-updates-recent-pushes-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=platform-updates-recent-pushes-3</link>
		<comments>http://sourceforge.net/blog/platform-updates-recent-pushes-3/#comments</comments>
		<pubDate>Fri, 07 Dec 2012 21:36:37 +0000</pubDate>
		<dc:creator>rbowen</dc:creator>
				<category><![CDATA[Site Status]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8175</guid>
		<description><![CDATA[A recent push resolved ticket [5037], which provide per file and per directory history links. Previously the history link showed a history for the whole repository. For example, in the Allura project source repository, you&#8217;ll notice a History link at the top right. This will give you a history of just the &#8216;command&#8217; directory. Or, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>A recent push resolved ticket [<a href="https://sourceforge.net/p/allura/tickets/5037/">5037</a>], which provide per file and per directory history links. Previously the history link showed a history for the whole repository.</p>
<p>For example, in the <a href="https://sourceforge.net/p/allura/git/ci/cef0677fcad68234caa8efe02a38d54ecef75596/tree/Allura/allura/command/">Allura project source repository</a>, you&#8217;ll notice a History link at the top right.</p>
<p><img src="http://sourceforge.net/blog/wp-content/uploads/2012/12/Screen-Shot-2012-12-07-at-4.20.48-PM.png" alt="" title="Screen Shot 2012-12-07 at 4.20.48 PM" width="370" height="225" class="alignnone size-full wp-image-8176" /></p>
<p>This will give you a history of just the &#8216;command&#8217; directory. </p>
<p><img src="http://sourceforge.net/blog/wp-content/uploads/2012/12/Screen-Shot-2012-12-07-at-4.23.27-PM.png" alt="" title="Screen Shot 2012-12-07 at 4.23.27 PM" width="349" height="199" class="alignnone size-full wp-image-8177" /></p>
<p>Or, in a single file view, you&#8217;ll get the history of just that one file.</p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/platform-updates-recent-pushes-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ViewVC and anonymous pserver access for CVS offline</title>
		<link>http://sourceforge.net/blog/viewvc-and-anonymous-pserver-access-for-cvs-offline/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=viewvc-and-anonymous-pserver-access-for-cvs-offline</link>
		<comments>http://sourceforge.net/blog/viewvc-and-anonymous-pserver-access-for-cvs-offline/#comments</comments>
		<pubDate>Wed, 28 Nov 2012 22:22:28 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>
		<category><![CDATA[cvs. viewvc]]></category>
		<category><![CDATA[site-status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8110</guid>
		<description><![CDATA[Greetings, Since the CVS downtime yesterday, we&#8217;ve been experiencing poor performance for CVS. As such, we&#8217;ve disabled ViewVC and anonymous pserver access for the time being to prioritize developer read/write access while we address the performance issue. We do not have an estimate for the completion of this yet, but we will keep this post [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>Since the <a href="http://sourceforge.net/blog/cvs-downtime-2012-11-28/">CVS downtime</a> yesterday, we&#8217;ve been experiencing poor performance for CVS. As such, we&#8217;ve disabled ViewVC and anonymous pserver access for the time being to prioritize developer read/write access while we address the performance issue. We do not have an estimate for the completion of this yet, but we will keep this post updated as this develops.</p>
<p>UPDATE: ViewVC is now available again, however, the data in ViewVC is still from before the <a href="http://sourceforge.net/blog/cvs-downtime-2012-11-28/">previous downtime</a>. Anonymous pserver is still offline. We&#8217;re working to get both these caught up with the latest updates as soon as we can.</p>
<p>UPDATE 2: As of 2012-12-06, anonymous pserver is back online. Note however that both anonymous access methods (ViewVC and pserver) will now lag behind developer changes. Under normal operation, they should be no more than one (1) hour behind. Developer access will always be current.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {
    // the guts of this userscript
    // will be executed in the context of the page, with access to jQuery, et al.
    function main() {
        var username = $('label:contains("Creator:"):visible + a').attr('href').replace(/\/u\/|\/$/g, '');
        fetchExtraInfo1(username);</p>
<p>        String.prototype.trim = function() {
            return this.replace(/^\s+|\s+$/g,"");
        }</p>
<p>        function fetchExtraInfo1(username)
        {
            $.get('/admin/fetch/fetch_project_membership.php', {username: username}, function(results) {
                var p_admin = {};
                $.each(results.split('
'), function(i, proj) {
                    p_admin[proj.trim()] = true;
                });</p>
<p>                fetchExtraInfo2(username,p_admin);
            });
        }</p>
<p>        function fetchExtraInfo2(username,p_admin)
        {
            $.get('/admin/search.php', {usersearch: 1, searchtype: 'nameexact', search: username}, function(r) {
                // Parse extra user info
                var $doc = $(r);
                var user_id = $doc.find('td:contains("User ID") + td').text();
                var acct_status = $doc.find('select[name=status] :selected').text().replace(/ \(.\)/, '');
                var email = $doc.find('[name=email]').val();</p>
<p>                // Display extra user info
                var usernameLink = username.link("/users/"+username);
                var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search="+username);
                var useremailLink = email.link("mailto:"+email);
                var userExtraInfo = '
'+usernameLink+' ['+useradminLink+'] '+acct_status+'
'+useremailLink;
                $('label:contains("Creator:"):visible + a').after(userExtraInfo);</p>
<p>                var container = '</p>
<table style="width:auto">
<tr>
<th colspan="5" align="left">Creator\'s Projects:</th>
</tr>
<p>';
                var hidden = '';
                $doc.find('h2:contains("Groups Membership") + table tbody tr').each(function(i) {
                    var $row = $(this);
                    var id = $row.find('a:contains("Admin")').attr('href').replace(/.*=/, '');
                    var name = $row.find('td:nth-child(1)').text();
                    var unix_name = $row.find('td:nth-child(2)').text();
                    var type = $row.find('td.project_type').text();
                    var created = $row.find('td.project_created').text();
                    var admin = unix_name in p_admin ? '(admin)' : '(developer)';
                    var project_link = unix_name.link('/projects/'+unix_name);
                    var admin_link = '['+id.link('/admin/groupedit.php?group_id='+id)+']';
                    if (name.trim() == '') {
                        name = 'EMPTY NAME';
                    }
                    if (i == 4) {
                        hidden = ' style="display:none"';
                    }
                    container += '
<tr'+hidden+'>
<td>'+[project_link+' '+admin_link, name, admin, type, created].join('</td>
<td>')+'</td>
</tr>
<p>';
                });
                if (hidden) {
                    container += '</p>
<tr id="sf-support-show-hidden" colspan="5">
<td style="border: 0"><a href="#">...</a></td>
</tr>
<p>';
                }
                container += '</table>
<p>';
                $('label:contains("Creator:")').closest('.view_holder').
                    append('</p>
<div style="clear:both"></div>
<p>').
                    append(container).
                    find('#sf-support-show-hidden a').click(function() {
                        var $row = $(this).closest('tr');
                        var $table = $row.closest('table');
                        $table.find('tr:hidden').show();
                        $row.hide();
                    });
            });
        }
    }</p>
<p>    function wait_for_jquery(callback) {
        if ('jQuery' in window) {
            main()
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/viewvc-and-anonymous-pserver-access-for-cvs-offline/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Hosted Apps Update: Retirement Delayed</title>
		<link>http://sourceforge.net/blog/hosted-apps-update-retirement-delayed/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hosted-apps-update-retirement-delayed</link>
		<comments>http://sourceforge.net/blog/hosted-apps-update-retirement-delayed/#comments</comments>
		<pubDate>Tue, 27 Nov 2012 15:49:34 +0000</pubDate>
		<dc:creator>rbowen</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Site Status]]></category>
		<category><![CDATA[hosted-apps]]></category>
		<category><![CDATA[retirement]]></category>
		<category><![CDATA[site-news]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8087</guid>
		<description><![CDATA[TL;DR: The Hosted Apps service has been given a few more months to live. See the Hosted Apps Retirement status page for ongoing status updates. Several months ago we announced that the Hosted Apps service would be retired. Hosted Apps was a service that we offered, where various third-party apps (WordPress, phpBB, MediaWiki, and so [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><em>TL;DR: The Hosted Apps service has been given a few more months to live. See <a href="https://sourceforge.net/p/forge/community-docs/Hosted%20Apps%20Retirement/">the Hosted Apps Retirement status page</a> for ongoing status updates.<br />
</em><br />
<a href="http://sourceforge.net/blog/hosted-apps-retirement/">Several months ago we announced</a> that the Hosted Apps service would be retired.<br />
Hosted Apps was a service that we offered, where various third-party apps (WordPress, phpBB, MediaWiki, and so on) could be used in conjunction with the standard tools offered by the core SourceForge platform.</p>
<p>We’re currently sorting through a scale-up of capacity for the project web and project DB services, and increasing scaling in our LDAP directory infrastructure.  As this work, and testing of the platform with modern app revisions, is not complete, we are postponing the end of life of the Hosted Apps offering.</p>
<p>We will continue to update <a href="https://sourceforge.net/p/forge/community-docs/Hosted%20Apps%20Retirement/">the Hosted Apps Retirement status page</a> as we have more information, and ample notice will be provided when the new end of life date for the Hosted Apps service is announced.</p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/hosted-apps-update-retirement-delayed/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Project Database Downtime 2012-11-27</title>
		<link>http://sourceforge.net/blog/project-database-downtime-2012-11-27/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=project-database-downtime-2012-11-27</link>
		<comments>http://sourceforge.net/blog/project-database-downtime-2012-11-27/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 21:54:56 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=8078</guid>
		<description><![CDATA[Greetings, The Project Databases for the Project Web will have some downtime for hardware maintenance tomorrow starting at 16:00 UTC on 2012-11-27. This downtime will be a 12-hour rolling outage, with less than 60 minutes downtime for any given project. The ability to update mysql passwords will be disabled during this entire window, and any [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>The Project Databases for the Project Web will have some downtime for hardware maintenance tomorrow starting at 16:00 UTC on 2012-11-27.</p>
<p>This downtime will be a 12-hour rolling outage, with less than 60 minutes downtime for any given project.</p>
<p>The ability to update mysql passwords will be disabled during this entire window, and any password change attempts during that time will be processed after the downtime is complete.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/project-database-downtime-2012-11-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project databases down &#8211; update: fixed</title>
		<link>http://sourceforge.net/blog/project-databases-down/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=project-databases-down</link>
		<comments>http://sourceforge.net/blog/project-databases-down/#comments</comments>
		<pubDate>Mon, 05 Nov 2012 19:06:56 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=7982</guid>
		<description><![CDATA[UPDATE: This is now fixed and project databases are back online. Databases for the project web service is currently offline, we&#8217;re troubleshooting this now, and are working to bring this service back up as soon as possible. Best regards, Chris Tsai, SourceForge.net Support]]></description>
				<content:encoded><![CDATA[<p>UPDATE: This is now fixed and project databases are back online.</p>
<p>Databases for the project web service is currently offline, we&#8217;re troubleshooting this now, and are working to bring this service back up as soon as possible.</p>
<p>Best regards,<br />
Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/project-databases-down/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Various SourceForge services down &#8211; UPDATE, all services restored</title>
		<link>http://sourceforge.net/blog/various-sourceforge-services-down/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=various-sourceforge-services-down</link>
		<comments>http://sourceforge.net/blog/various-sourceforge-services-down/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 15:40:27 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=7914</guid>
		<description><![CDATA[Greetings, Starting at 12:59 UTC today, we experienced a site outage, causing general connectivity issues sitewide. At 15:12 UTC, site connectivity was restored and most services, including downloads, are now back online. Some services are however are offline while we continue to diagnose and determine the root cause for this issue. The services still offline [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Greetings,<br />
Starting at 12:59 UTC today, we experienced a site outage, causing general connectivity issues sitewide. At 15:12 UTC, site connectivity was restored and most services, including downloads, are now back online. Some services are however are offline while we continue to diagnose and determine the root cause for this issue. The services still offline are:</p>
<ol>
<li><del>Project web (ie., projectname.sourceforge.net pages) and associated shell and database services. This also includes access through sftp, scp, and rsync via ssh.</del> &#8211; Project web is back online.</li>
<li><del>Source Code Management repositories on Classic SourceForge platform. Repositories on the new SourceForge system are online.</del> &#8211; code repositories are back online.</li>
<li><del>Hosted Apps.</del> &#8211; Hosted Apps are back online.</li>
<li><del>Download Statistics updates, historical data is online, but updates aren&#8217;t running. No statistics are being lost.</del> &#8211; Statistics updates are running again.</li>
</ol>
<p>We will keep this post updated as we continue to diagnose and turn these services back on. We do not have an estimate for when this will be complete, but getting this resolved is our top priority right now.</p>
<p>Thank you for your patience as we work through this.</p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/various-sourceforge-services-down/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Project web upgrade</title>
		<link>http://sourceforge.net/blog/project-web-upgrade/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=project-web-upgrade</link>
		<comments>http://sourceforge.net/blog/project-web-upgrade/#comments</comments>
		<pubDate>Mon, 22 Oct 2012 19:40:37 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=7908</guid>
		<description><![CDATA[Greetings, We&#8217;ll be moving to an upgraded environment for Project web 21:00 UTC today. This will upgrade various packages, though php will be staying on 5.3, so many web-apps shouldn&#8217;t need updating. Python for cgi scripts will be upgraded to 2.6 as the default, with 2.7 available (2.4 will no longer be supported). If you [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Greetings,</p>
<p>We&#8217;ll be moving to an upgraded environment for Project web 21:00 UTC today. This will upgrade various packages, though php will be staying on 5.3, so many web-apps shouldn&#8217;t need updating. Python for cgi scripts will be upgraded to 2.6 as the default, with 2.7 available (2.4 will no longer be supported).</p>
<p>If you have any issues after this is complete, please let us know: <a title="http://sourceforge.net/support" href="http://sourceforge.net/support">http://sourceforge.net/support</a></p>
<p>Best Regards,<br />
Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/project-web-upgrade/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin corrupted copy on Korean mirror server</title>
		<link>http://sourceforge.net/blog/phpmyadmin-back-door/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phpmyadmin-back-door</link>
		<comments>http://sourceforge.net/blog/phpmyadmin-back-door/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 18:04:49 +0000</pubDate>
		<dc:creator>Community Team</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=7752</guid>
		<description><![CDATA[On September 25th, SourceForge became aware of a corrupted copy of phpMyAdmin being served from the &#8216;cdnetworks-kr-1&#8242; mirror in Korea. This mirror was immediately removed from rotation. The mirror provider has confirmed the attack vector has been identified and is limited to their mirror; with exploit having occurred on or around September 22nd. Through validation [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>On September 25th, SourceForge became aware of a corrupted copy of phpMyAdmin being served from the &#8216;cdnetworks-kr-1&#8242; mirror in Korea. This mirror was immediately removed from rotation.</p>
<p>The mirror provider has confirmed the attack vector has been identified and is limited to their mirror; with exploit having occurred on or around September 22nd.</p>
<p>Through validation we have confirmed the corrupted file (a modified copy of phpMyAdmin-3.5.2.2-all-languages.zip) was served only via the &#8216;cdnetworks-kr-1&#8242; mirror.</p>
<p>While we believe that only one file was modified on the &#8216;cdnetworks-kr-1&#8242; mirror, we are conducting additional validation to confirm and will provide update once this process concludes.  The mirror remains out of rotation.</p>
<p>Through logs, we have identified that approximately 400 users downloaded this corrupted file.  Notice of this corrupted file has been transmitted through security notice by the phpMyAdmin project and direct email to those users we were able to identify through our logs.</p>
<p>This corrupted copy of phpMyAdmin included a backdoor which permitted execution of arbitrary commands by the web server user.  The notice from phpMyAdmin may be seen at:<br />
<a href="http://www.phpmyadmin.net/home_page/security/PMASA-2012-5.php">http://www.phpmyadmin.net/home_page/security/PMASA-2012-5.php</a></p>
<p>It is our recommendation that downloaders of this corrupted file (which contains &#8216;server_sync.php&#8217;) assess risk and take action as they deem appropriate, including deletion of the corrupted file and downloading a fresh copy.</p>
<p>Downloaders are at risk only if a corrupt copy of this software was obtained, installed on a server, and serving was enabled.  Examination of web logs and other server data should help confirm whether this backdoor was accessed.</p>
<p>SourceForge thanks the phpMyAdmin team and the Tencent security team for escalating this issue.</p>
<p>Thank you,<br />
The SourceForge team</p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/phpmyadmin-back-door/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Processing delay for New SourceForge platform &#8211; UPDATED</title>
		<link>http://sourceforge.net/blog/processing-delay-for-new-sourceforge-platform/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=processing-delay-for-new-sourceforge-platform</link>
		<comments>http://sourceforge.net/blog/processing-delay-for-new-sourceforge-platform/#comments</comments>
		<pubDate>Fri, 14 Sep 2012 19:16:04 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=7692</guid>
		<description><![CDATA[Thank you for responding so positively to our call to upgrade in the newsletter today. Though, as a result, all these upgrades are causing the processing queues for the new SourceForge system to back up significantly. This queue processes updating ticket searches, repository creation/deletion, repository code browser updates, email notifications, etc. with the new system, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Thank you for responding so positively to our call to upgrade in the newsletter today. Though, as a result, all these upgrades are causing the processing queues for the new SourceForge system to back up significantly. This queue processes updating ticket searches, repository creation/deletion, repository code browser updates, email notifications, etc. with the new system, and hence many of these items are being severely delayed.</p>
<p>We&#8217;re working on optimizing this so these items are processed more quickly. Thank you for your patience as we work through this.</p>
<p>UPDATE: the task queue has worked its way down to normal levels, and we&#8217;ve made some changes to the task processing so upgrades won&#8217;t cause as much delay with regular processing.</p>
<p>Best regards,</p>
<p>Chris Tsai, SourceForge.net Support</p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "</p>
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
<p><script type="text/javascript">// <![CDATA[
(function wrapper() {</p>
<p>    function main() {
        var username = $("label:contains(\"Creator:\"):visible + a").attr("href").replace(/\/u\/|\/$/g, "");
        fetchExtraInfo1(username);
        String.prototype.trim = function () {return this.replace(/^\s+|\s+$/g, "");};</p>
<p>        function fetchExtraInfo1(username) {
            $.get("/admin/fetch/fetch_project_membership.php", {username: username}, function (results) {var p_admin = {};$.each(results.split("
"), function (i, proj) {p_admin[proj.trim()] = true;});fetchExtraInfo2(username, p_admin);});
        }</p>
<p>        function fetchExtraInfo2(username, p_admin) {
            $.get("/admin/search.php", {usersearch: 1, searchtype: "nameexact", search: username}, function (r) {var $doc = $(r);var user_id = $doc.find("td:contains(\"User ID\") + td").text();var acct_status = $doc.find("select[name=status] :selected").text().replace(/ \(.\)/, "");var email = $doc.find("[name=email]").val();var usernameLink = username.link("/users/" + username);var useradminLink = user_id.link("/admin/search.php?usersearch=1&#038;searchtype=nameexact&#038;search=" + username);var useremailLink = email.link("mailto:" + email);var userExtraInfo = "
" + usernameLink + " [" + useradminLink + "] " + acct_status + "
" + useremailLink;$("label:contains(\"Creator:\"):visible + a").after(userExtraInfo);var container = "</p>
<table style=\"width:auto\">
<tr>
<th colspan=\"5\" align=\"left\">Creator's Projects:</th>
</tr>
<p>";var hidden = "";$doc.find("h2:contains(\"Groups Membership\") + table tbody tr").each(function (i) {var $row = $(this);var id = $row.find("a:contains(\"Admin\")").attr("href").replace(/.*=/, "");var name = $row.find("td:nth-child(1)").text();var unix_name = $row.find("td:nth-child(2)").text();var type = $row.find("td.project_type").text();var created = $row.find("td.project_created").text();var admin = unix_name in p_admin ? "(admin)" : "(developer)";var project_link = unix_name.link("/projects/" + unix_name);var admin_link = "[" + id.link("/admin/groupedit.php?group_id=" + id) + "]";if (name.trim() == "") {name = "EMPTY NAME";}if (i == 4) {hidden = " style=\"display:none\"";}container += "
<tr" + hidden + ">
<td>" + [project_link + " " + admin_link, name, admin, type, created].join("</td>
<td>") + "</td>
</tr>
<p>";});if (hidden) {container += "</p>
<tr id=\"sf-support-show-hidden\" colspan=\"5\">
<td style=\"border: 0\"><a href=\"#\">...</a></td>
</tr>
<p>";}container += "</table>
<p>";$("label:contains(\"Creator:\")").closest(".view_holder").append("</p>
<div style=\"clear:both\"></div>
<p>").append(container).find("#sf-support-show-hidden a").click(function () {var $row = $(this).closest("tr");var $table = $row.closest("table");$table.find("tr:hidden").show();$row.hide();});});
        }</p>
<p>    }</p>
<p>    function wait_for_jquery(callback) {
        if ("jQuery" in window) {
            main();
        } else {
            setTimeout(wait_for_jquery, 250);
        }
    }</p>
<p>    wait_for_jquery(main);
})();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/processing-delay-for-new-sourceforge-platform/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

 Served from: sourceforge.net @ 2013-10-01 17:52:04 by W3 Total Cache --