<?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>Wed, 01 May 2013 12:40:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</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>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 [...]]]></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>7</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>1</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, [...]]]></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 [...]]]></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 [...]]]></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 [...]]]></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 [...]]]></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 [...]]]></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 [...]]]></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, [...]]]></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>
		<item>
		<title>SourceForge Inaccesible from China &#8211; UPDATED</title>
		<link>http://sourceforge.net/blog/sourceforge-inaccessible-from-china/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sourceforge-inaccessible-from-china</link>
		<comments>http://sourceforge.net/blog/sourceforge-inaccessible-from-china/#comments</comments>
		<pubDate>Fri, 10 Aug 2012 18:16:47 +0000</pubDate>
		<dc:creator>ctsai</dc:creator>
				<category><![CDATA[Site Status]]></category>
		<category><![CDATA[china]]></category>
		<category><![CDATA[sitestatus]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=7458</guid>
		<description><![CDATA[As of 2012-07-31, the SourceForge site has been generally inaccessible from China. We&#8217;ve taken some measures to try and restore service, however we&#8217;re still seeing connection reset errors in China. If anyone in our community has ideas or suggestions, please notify me via our SourceForge Community Team email address: communityteam@sourceforge.net UPDATE: We are now fully [...]]]></description>
				<content:encoded><![CDATA[<p>As of 2012-07-31, the <a title="SourceForge" href="http://sourceforge.net">SourceForge</a> site has been generally inaccessible from China. We&#8217;ve taken some measures to try and restore service, however we&#8217;re still seeing connection reset errors in China. If anyone in our community has ideas or suggestions, please notify me via our SourceForge Community Team email address: <a title="SourceForge Community Team" href="mailto://communityteam@sourceforge.net">communityteam@sourceforge.net</a></p>
<p>UPDATE: We are now fully accessible again from China.</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/sourceforge-inaccessible-from-china/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Hosted apps retirement</title>
		<link>http://sourceforge.net/blog/hosted-apps-retirement/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hosted-apps-retirement</link>
		<comments>http://sourceforge.net/blog/hosted-apps-retirement/#comments</comments>
		<pubDate>Tue, 19 Jun 2012 14:57:42 +0000</pubDate>
		<dc:creator>Community Team</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Site Status]]></category>
		<category><![CDATA[hostedapps]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[projectweb]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=7141</guid>
		<description><![CDATA[At SourceForge, we&#8217;re continually pushing the developer experience forward, trying to provide you with the tools and services that you need to develop on your projects. Sometimes this means that we need to retire a service that has outlived its usefulness, and is no longer maintainable. Today we&#8217;re announcing the end of life of the [...]]]></description>
				<content:encoded><![CDATA[<p>At SourceForge, we&#8217;re continually pushing the developer experience forward, trying to provide you with the tools and services that you need to develop on your projects.</p>
<p>Sometimes this means that we need to retire a service that has outlived its usefulness, and is no longer maintainable. Today we&#8217;re announcing the end of life of the <a href="https://sourceforge.net/apps/trac/sourceforge/wiki/Hosted%20Apps">Hosted Apps platform</a>. Effective immediately, we&#8217;re not allowing any new creation of Hosted Apps, and we’re asking you to migrate those hosted apps into your own <a href="”https://sourceforge.net/apps/trac/sourceforge/wiki/Project%20web”">project web space</a>.</p>
<p>Some of these apps were taken offline temporarily a few weeks ago, and two apps &#8211; WordPress and phpwebsite &#8211; remain offline.</p>
<p><strong>Hosted Apps will go offline permanently on <del>September 1, 2012.</del></strong> This gives you all Summer to plan and migrate your data. <strong>UPDATE:</strong> we&#8217;re pushing the date on this back. Move detail on the new timeline is on our <a href="https://sourceforge.net/p/forge/community-docs/Hosted%20Apps%20Retirement/">Hosted Apps Retirement information page</a>.</p>
<p>There&#8217;s a variety of reasons that this is necessary, but what they come down to is that the effort required to maintain this feature has come to outweigh the benefits. Furthermore, with a single installation of each of these apps, we weren’t able to offer you the flexibility of configuration, plugins, and themes that many projects wanted and expected.</p>
<p>For those of you that are using the Hosted App functionality, you can already get backups of that data for your own uses. That data is yours, not ours, and we want to be sure that you have a way to get it out.</p>
<p>For Classic projects, you can get a backup from: <code>Project Admin &gt; Features &gt; "Backups" row &gt; "Hosted Apps"</code></p>
<p>For new or upgraded projects, it’s in: <code>Admin &gt; Tools &gt; Hosted Apps, Admin Hosted Apps &gt; backup link.</code></p>
<p>At this time we have detailed migration documents for <a href="https://sourceforge.net/p/forge/community-docs/Migrating%20WP%20from%20Hosted%20Apps/">moving WordPress to your project web space</a>. Docs for the next most popular apps (phpBB, MediaWiki and Trac) will follow shortly. Because these were customized versions of these applications, there’s a few tricks in migrating your data.</p>
<p>One major aspect of this customization was the ability to authenticate against SourceForge.net accounts, and we’ll be adding OpenID support very soon in order to replace the functionality that you’d otherwise be losing here.</p>
<p>Also, our new Allura platform has many core features that were provided by the Hosted Apps platform. You can migrate your project to the new platform by going to <a href="https://sourceforge.net/p/upgrade/">https://sourceforge.net/p/upgrade/</a> and pressing the &#8220;Upgrade&#8221; button.</p>
<p>We also have <a href="https://sourceforge.net/p/forge/documentation/API%20-%20Beta/">a data API</a> which could be used to migrate your data directly to your upgraded SourceForge project. If you write such a migration script before we get around to it, <a href="mailto:communityteam@sourceforge.net"><strong>please</strong> let us know</a>.</p>
<p>We apologize for any inconvenience this causes you, but we&#8217;re confident that the time and resources that this frees up will allow us to move forward even more quickly on developing features to make project development even better. As always, please let us know if you have any comments or suggestions.</p>
<p>Please continue to check back for ongoing updates on this issue. We’ll be posting updated migration documents as soon as they are completed and tested, and we’ll continue to update you on the status of the OpenID implementation, as well as other features that will smooth the path of migration.</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/hosted-apps-retirement/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>Project Activity Stats Restored and Improved</title>
		<link>http://sourceforge.net/blog/project-activity-stats-restored-and-improved/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=project-activity-stats-restored-and-improved</link>
		<comments>http://sourceforge.net/blog/project-activity-stats-restored-and-improved/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 20:19:31 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Site Status]]></category>
		<category><![CDATA[project activity]]></category>
		<category><![CDATA[stats]]></category>

		<guid isPermaLink="false">http://sourceforge.net/blog/?p=5158</guid>
		<description><![CDATA[We are glad to announce that we have restored and overhauled the site stats for projects. Unlike our download stats, these include things like page visits, tracker hits, forum posts, etc. Let&#8217;s take a look: Improved UI: If you&#8217;re familiar with using our download stats, you&#8217;ll see that we&#8217;ve upgraded the stats system to have [...]]]></description>
				<content:encoded><![CDATA[<p>We are glad to announce that we have restored and overhauled the site stats for projects. Unlike our download stats, these include things like page visits, tracker hits, forum posts, etc. Let&#8217;s take a look:</p>
<div style="float:left; margins:10px"><a href="https://sourceforge.net/projects/pdfcreator/stats/traffic?dates=2011-08-01+to+2011-09-07"><img src="https://sourceforge.net/blog/communityhub/uploads/2011/09/project-statistics_-pdfcreator-300x152.jpg" alt="project-statistics_-pdfcreator" title="project-statistics_-pdfcreator" width="300" height="152" class="alignright size-medium wp-image-5161" /></a></div>
<div style="font-weight:bold">Improved UI:</div>
<p>If you&#8217;re familiar with using our download stats, you&#8217;ll see that we&#8217;ve upgraded the stats system to have a more consistent and clean look.</p>
<div style="font-weight:bold; clear: both;">Custom date reporting:</div>
<div style="float:right; margins:10px"><img src="https://sourceforge.net/blog/communityhub/uploads/2011/09/project-statistics_-allura-2-300x263.jpg" alt="project-statistics_-allura-2" title="project-statistics_-allura-2" width="300" height="263" class="alignright size-medium wp-image-5159"></div>
<p>You can show stats for any custom date range you choose. (Please note, historical data prior to April 1, 2011 is still available via the original interface, and is currently being imported into the new system).</p>
<div style="font-weight:bold">Improvements under the hood:</div>
<p>We have completely revamped the way our stats are calculated using our own homegrown open source project called <a href="https://sourceforge.net/p/zarkov/home/Home/">Zarkov</a>. You can expect to read more about this in an upcoming blog post, but in a nutshell, Zarkov is an event logger and aggregator we use internally. It&#8217;s written in Python and uses MongoDB.</p>
<div style="font-weight:bold">What&#8217;s next?</div>
<p>Currently, we are working on importing old data from before April 1, 2011 and tweaking the project rankings and sitewide stats (to include SCM data for Bazaar and Mercurial, and fixing a few minor bugs).</p>
<p>We greatly appreciate everyone&#8217;s patience while we make things better.  </p>
]]></content:encoded>
			<wfw:commentRss>http://sourceforge.net/blog/project-activity-stats-restored-and-improved/feed/</wfw:commentRss>
		<slash:comments>2</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-05-02 06:58:52 by W3 Total Cache --