<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>mo</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mo/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/mo/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/mo//437</id>
    <updated>2011-07-13T13:00:39Z</updated>
    <subtitle>mo @ #metacpan / irc.perl.org</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Exciting updates to MetaCPAN</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mo/2011/07/exciting-updates-to-metacpan.html" />
    <id>tag:blogs.perl.org,2011:/users/mo//437.1968</id>

    <published>2011-07-13T12:31:41Z</published>
    <updated>2011-07-13T13:00:39Z</updated>

    <summary>MetaCPAN went live with the switch over to Catalyst (previously we hadn&apos;t been using a framework at all) this morning. The main aim was to make it easier for people to contribute and also to extend. An unintended consequence was...</summary>
    <author>
        <name>mo</name>
        <uri>http://blog.netcubed.de</uri>
    </author>
    
    <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="metacpan" label="metacpan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mo/">
        <![CDATA[<p><a href="http://metacpan.org/">MetaCPAN</a> went live with the switch over to <a href="http://www.catalystframework.org/">Catalyst</a> (previously we hadn't been using a framework at all) this morning. </p>

<p>The main aim was to make it easier for people to contribute and also to extend. </p>

<p>An unintended consequence was a significant increase in speed. We've not delved into the details - but the lesson learned is that using something as established and polished as Catalyst really makes a big difference compared to putting something together from scratch. </p>

<p>We've also added an experimental 'Sign In' button - have a play! You can use either Twitter, Facebook, GitHub or PAUSE to log in. Once you have authenticated against PAUSE, you will be able to edit your author's profile page via the front-end.</p>

<center><img src="http://i.imgur.com/t3sR4.png"></center>]]>
        
    </content>
</entry>

<entry>
    <title>Introducing metacpan.org - A better search for the CPAN</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mo/2011/06/introducing-betametacpanorg---a-better-search-for-the-cpan.html" />
    <id>tag:blogs.perl.org,2011:/users/mo//437.1811</id>

    <published>2011-06-06T14:56:34Z</published>
    <updated>2011-06-06T17:41:11Z</updated>

    <summary>strong{font-weight:bold} em{font-style:italic;} I&apos;m very excited to announce the front end for MetaCPAN: metacpan.org. This is what you can expect from the new interface to the CPAN: New uploads instantly availableNew uploads to the CPAN are indexed within seconds. No more...</summary>
    <author>
        <name>mo</name>
        <uri>http://blog.netcubed.de</uri>
    </author>
    
    <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gsoc" label="gsoc" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="metacpan" label="metacpan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="search" label="search" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mo/">
        <![CDATA[<p><style>strong{font-weight:bold} em{font-style:italic;}</style></p>

<p>I'm very excited to announce the front end for MetaCPAN: <a href="http://beta.metacpan.org">metacpan.org</a>.  This is what you can expect from the new interface to the CPAN:<br />
<ul><br />
<li><strong>New uploads instantly available</strong><br>New uploads to the CPAN are indexed within seconds. No more waiting for new upload to appear on the search site. Check out <a href="http://beta.metacpan.org/recent">/recent</a></li><br />
<li><strong>Modern site layout</strong><br>The page layout leverages the extra space you have on widescreen displays. Instead of having all the information in a top-down manner, the page's layout is made up of up to three columns. Each is filled with information about the main resource.</li><br />
<li><strong>Limit search to distributions or authors</strong><br>Using the <code>distribution:</code> syntax, you can limit your search to a given distribution. Example: <a href="http://beta.metacpan.org/search?q=distribution%3AMoose+around">distribution:Moose around</a>. The same works for the <code>author:</code> tag. This functionality is embedded on various pages across MetaCPAN.</li><br />
<li><strong>Search snippets preview</strong><br>Search results include text fragments which contain the query. This helps to identify the results you were looking for.</li><br />
<li><strong>Search for mirrors near you</strong><br>The <a href="http://beta.metacpan.org/mirrors">/mirrors</a> page includes a map of all mirrors and allows for a for a search of mirrors close to you. Clicking on the "nearest" link will ask you browser for your current position and then sort the mirrors accordingly. You can also filter by protocol.</li><br />
<li><strong>Activity indicators</strong><br>Author and release pages contain an activity graph that shows the number of uploads by a given author or a given distribution over the past 24 month. This is very useful for evaluating whether a release is well maintained or if an author stopped releasing modules.</li><br />
<li><strong>Author's page includes metadata</strong><br>Each user can add <a href="https://github.com/CPAN-API/cpan-api/wiki/How-to-upload-author-meta-data">additional metadata</a> to her PAUSE account id by uploading a <code>author-1.0.json</code> file to her PAUSE directory. A good example is the page of <a href="http://beta.metacpan.org/author/DWHEELER">DWHEELER</a>. The page includes links to all of his online profiles and more.</li><br />
<li><strong>Advanced source code view</strong><br>Code snippets in the documentation are highlighted and names of modules are linked to its documentation. POD sections are collapsed and can be expanded. See the <a href="http://beta.metacpan.org/source/JESSE/perl-5.14.0/ext/Hash-Util/lib/Hash/Util.pm">source of Hash::Util</a> for an example.</li><br />
<li><strong>Feeling lucky?</strong><br>Generally users are only interested in the first result of a search. Clicking on the "I'm Feeling Lucky" button or hitting shift + enter will bring you directly to the first result. You can use this to add a search keyword to Firefox and others using this url: <code>beta.metacpan.org/search?lucky=%s</code>.</li><br />
<li><strong>Open Source</strong><br>Yes, it's open source. The github repository can be found <a href="https://github.com/CPAN-API/metacpan-web">here</a>. Patches are greatly appreciated. If you need any help to get started hacking, join us on #metacpan (irc.perl.org).</li><br />
</ul></p>

<p>There are still a lot of new <a href="https://www.pivotaltracker.com/projects/252059">features to come (icebox)</a> but the API as well as the front-end are now stable enough to be used by everyone else. Also, we've finally moved to a server that can hold the whole index in memory. We'd like to thank our first sponsor, <a href="http://speedchilli.com">speedchilli</a>, who are generously sponsoring our hosting and providing some seriously beefy hardware:</p>

<p><a href="http://speedchilli.com"><img src="http://beta.metacpan.org/static/images/speedchilli.png" align="right"></a><em>"We are a web solutions company providing hosting and open source consultancy.  We provide reliable, cost effective hosting for customers who require anything from a single dedicated server to a fully managed hosting solution. Being a business based around open source we feel it is important to give back to the community and are very happy to support the metacpan.org project."</em> - Stewart Hunt</p>

<p><strong>Please help us improve the CPAN experience</strong></p>

<p>We will track searches and analyze them to optimize the search results. If you come across odd search results, such as modules that shouldn't appear because they are outdated or modules that are missing from the results, please report them to us. We will do our best to fix them.</p>

<p>You can also contribute directly by <a href="https://github.com/CPAN-API/metacpan-web">forking</a> the project. Running the front-end doesn't require any heavy dependencies and is installed in less than a minute. You should also join #metacpan on irc.perl.org. It's a very active channel and new input is highly appreciated.</p>]]>
        
    </content>
</entry>

<entry>
    <title>GitHub-like activity indicator for authors and distributions</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mo/2011/05/github-like-activity-indicator-for-authors-and-distributions.html" />
    <id>tag:blogs.perl.org,2011:/users/mo//437.1730</id>

    <published>2011-05-06T09:08:09Z</published>
    <updated>2011-05-06T08:57:18Z</updated>

    <summary>(Note: open the post to see the indicators. blogs.perl.org doesn&apos;t show them on the summary page) Indexing the whole CPAN to the beta version of MetaCPAN just finished. Here is one example of what you can do with the data...</summary>
    <author>
        <name>mo</name>
        <uri>http://blog.netcubed.de</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mo/">
        <![CDATA[<p>(Note: open the post to see the indicators. blogs.perl.org doesn't show them on the summary page)</p>

<p>Indexing the whole CPAN to the beta version of MetaCPAN just finished. Here is one example of what you can do with the data available from MetaCPAN:</p>

<p><object data="http://beta.metacpan.org/activity?res=month&author=FLORA" width="170" height="22" type="image/svg+xml"></object></p>

<p>This is rafl's activity over the last 24 month. </p>

<p><object data="http://beta.metacpan.org/activity?res=month&distribution=Plack" width="170" height="22" type="image/svg+xml"></object></p>

<p>And the activity of the Plack distribution.</p>

<p>If you want to include these indicators on your homepage, copy paste the following code:</p>

<p><span style="font-weight: bold">For distributions:</span></p>

<p><code><br />
&lt;object data="http://beta.metacpan.org/activity?res=month&distribution=Plack" width="170" height="22" type="image/svg+xml" /&gt;<br />
</code></p>

<p><span style="font-weight: bold">For authors:</span></p>

<p><code><br />
&lt;object data="http://beta.metacpan.org/activity?res=month&author=FLORA" width="170" height="22" type="image/svg+xml" /&gt;<br />
</code></p>

<p>(Note: author name must be all upper-case)</p>

<p><span style="font-weight: bold">All uploads:</span></p>

<p><code><br />
&lt;object data="http://beta.metacpan.org/activity?res=month" width="170" height="22" type="image/svg+xml" /&gt;<br />
</code></p>

<p>Right now the width, height and number of month is hard-coded. Feel free to fork and fix that at <a href="https://github.com/CPAN-API/metacpan-web">https://github.com/CPAN-API/metacpan-web</a> (relevant files are template/activity.xml and lib/MetaCPAN/Web/Controller/Activity.pm).</p>]]>
        
    </content>
</entry>

<entry>
    <title>First week of GSoC and progress made with MetaCPAN</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mo/2011/05/first-week-of-gsoc-and-progress-made-with-metacpan.html" />
    <id>tag:blogs.perl.org,2011:/users/mo//437.1718</id>

    <published>2011-05-03T12:59:35Z</published>
    <updated>2011-05-03T13:22:00Z</updated>

    <summary>As you might have heard, my MetaCPAN project has been accepted for the Google Summer of Code. If you are unfamiliar with the proposal, you can find it here. The first few weeks are called the &quot;bonding period&quot;. In this...</summary>
    <author>
        <name>mo</name>
        <uri>http://blog.netcubed.de</uri>
    </author>
    
    <category term="cpan" label="cpan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gsoc" label="gsoc" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="metacpan" label="metacpan" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mo/">
        <![CDATA[<p>As you might have heard, my MetaCPAN project has been accepted for the Google Summer of Code. If you are unfamiliar with the proposal, you can find it <a href="http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/mo/1">here</a>.</p>

<p>The first few weeks are called the "bonding period". In this period the student is supposed to bond with their mentors and the community, read docs and get to know the project.</p>

<p>My tasks for this period are mainly to contact maintainers and author of CPAN Ratings, CPAN Testers and CPAN Vote to figure out how to include their data in the index. With CPAN Testers this was quite easy. They <a href="http://devel.cpantesters.org/">provide a SQLite database</a> that includes test results for each release on the CPAN. Unfortunately we were not yet able to contact Ask, who is maintaining the CPAN Ratings page. There is a CSV file that includes some data, but it's heavily aggregated and thus not very useful for MetaCPAN.</p>

<p>Also, the ElasticSearch schema has been set in stone. I don't expect any significant changes to the existing schema. I will, however, add new properties to it as new data becomes available (e.g. CPAN Testers etc.). You can find the current schema <a href="https://gist.github.com/942883">here</a>. Some examples: the latest Moose release can be found at <a href="http://api.beta.metacpan.org/release/Moose">http://api.beta.metacpan.org/release/Moose</a>. Information about the Moose module can be found at <a href="http://api.beta.metacpan.org/module/Moose">http://api.beta.metacpan.org/module/Moose</a> (it corresponds to the <i>file</i> mapping in the schema).</p>

<p>Next on the list is to get to know OAuth and think of a way how users can authenticate against MetaCPAN to enable services like tagging and following of authors and distributions.</p>

<p>If you want to join the discussion about MetaCPAN, its API and the front-end, feel free to join us on #metacpan / irc.perl.org.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Improving the CPAN experience (a GSoC summer tale)</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mo/2011/03/metacpan-call-for-features.html" />
    <id>tag:blogs.perl.org,2011:/users/mo//437.1556</id>

    <published>2011-03-20T10:33:36Z</published>
    <updated>2011-03-20T09:58:35Z</updated>

    <summary> What will MetaCPAN offer that other services don&#8217;t? Instant availability (new uploads are indexed within a minute) Personalisation - &#8220;follow your favourites&#8221; Searchable metadata Mashup of other CPAN related services Unified (REST) API Back-end for Android/iPhone apps, command line...</summary>
    <author>
        <name>mo</name>
        <uri>http://blog.netcubed.de</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mo/">
        <![CDATA[ <h1 style="font-size:18px">What will MetaCPAN offer that other services don&#8217;t?</h1>

<ul>
<li>Instant availability (new uploads are indexed within a minute)</li>
<li>Personalisation - &#8220;follow your favourites&#8221;</li>
<li>Searchable metadata</li>
<li>Mashup of other CPAN related services</li>
<li>Unified (REST) API</li>
<li>Back-end for Android/iPhone apps, command line tools etc.</li>
<li>MetaCPAN.local for companies</li>
<li>Includes BackPAN as well</li>
<li>Open-source and free</li>
</ul>

<h1 style="font-size:18px">Now what?</h1>

<h2 style="font-size:14px">Apply for <a href="http://www.google-melange.com/gsoc/program/home/google/gsoc2011">GSoC</a> to get this thing up and running</h2>

<p>MetaCPAN is being developed by a group of perl coders who have jobs and all kinds of stuff on their minds. This means it is hard to get the momentum up. I got very much infected by the idea of having an API to CPAN that everyone could use and a front-end that could eventually replace search.cpan.org. So I joined the MetaCPAN group and started coding. And since I&#8217;m still a student, GSoC is a great opportunity to delve even deeper into the guts of MetaCPAN and do some serious work.</p>

<h2 style="font-size:14px">Community feedback to complete proposal</h2>

<p>In order to finish my GSoC application I want to collect as much input as possible from the community. I compiled a list of features that I feel are nice to have and will improve the experience with CPAN. Though not all of them might be feasible or even desirable.</p>

<p>My application will consist of two subprojects. Improving the backend and writing a state-of-the art frontend. While <a href="http://search.metacpan.org">search.metacpan.org</a> is nice, it doesn&#8217;t add any additional functionality to search.cpan.org. I&#8217;d like to change that and leverage the power of metacpan.</p>

<h1 style="font-size:18px">Proposed Features</h1>

<h2 style="font-size:14px">Personalization</h2>

<ul>
<li>Follow your favorite Modules / Authors</li>
<li>Get instant notifications on updates</li>
<li>with a diff of the Changes file</li>
<li>Add discussions to modules</li>
<li>Tag modules as installed, broken, author unresponsive etc.</li>
<li>Add metadata to your own distribution
(e.g. &#8220;Looking for maintainer&#8221;, deprecated etc.) </li>
<li><a href="http://blog.urth.org/2010/11/my-programming-related-todo-list.html">&#8220;CPAN of trust&#8221;</a></li>
</ul>

<h2 style="font-size:14px">Improved search results</h2>

<p>Currently search.cpan.org does a decent job on searching. However, it can be improved.
For example it doesn&#8217;t show previews of the search results and the relevance of the
returned results is sometimes questionable.</p>

<h3>Evaluate third-party data</h3>

<p>The following resources can be used to adjust the scoring of search results:</p>

<ul>
<li>cpanvote</li>
<li>Kwalitee</li>
<li>CPAN Testers</li>
<li>CPAN Ratings</li>
</ul>

<h3>PageRank-like scoring</h3>

<p>Using the dependency chain, one can create a graph of modules and calculate a PageRank for each module. This will greatly enhance search results since modules with a high degree of centrality will be ranked higher.</p>

<h2 style="font-size:14px">Front-end</h2>

<ul>
<li>A full-text search that previews the relevant segments of the document</li>
<li>Optionally limit search to a release / distribution</li>
<li>Search for exact matches in the module name (autocompletion)</li>
<li>Search for authors based on email, name and pauseid</li>
<li>Exclude results with certain dependencies (e.g. modules using Moose or XS code)</li>
<li>Keyboard navigation and shortcuts for super fast and mouse-less browsing</li>
<li>Integrate <a href="http://grep.cpan.me/">grep.cpan.me</a></li>
<li>Rate distributions from inside the new front-end
no need to leave the page and re-login</li>
<li>and many many more features</li>
</ul>

<h2 style="font-size:14px">MetaCPAN for companies</h2>

<p>minicpan has made it easy for companies to take control over their local CPAN requirements, but they can&#8217;t search either their local minicpan, or their own internal code.</p>

<p>MetaCPAN.local:</p>

<ul>
<li>Will be a distribution that can be installed in your company network</li>
<li>With all the features of MetaCPAN</li>
<li>Add internal company modules to the index</li>
<li>Either index the company&#8217;s minicpan or fall back to the live CPAN</li>
<li>Every front-end developed for MetaCPAN will just work for
MetaCPAN.local too</li>
</ul>

<h2 style="font-size:14px">Documentation</h2>

<p>Nobody is going to use the MetaCPAN backend if there is no documentation which guides you through the basic steps of querying the metabase or setting up your own front-end.</p>

<h1 style="font-size:18px">Your Turn</h1>

<p>I&#8217;m very excited to hear your ideas. Please don&#8217;t think too much about implementation details. Let the developer in you rest for a moment and ask youself: </p>

<ul>
<li>What do I need to access CPAN more easily?</li>
<li>What information do I want to access through MetaCPAN?</li>
<li>What data is required to further improve tools like cpanm?</li>
<li>What am I missing from search.cpan.org?</li>
<li>Basically, what can MetaCPAN and its front-end do for you?</li>
</ul>]]>
        
    </content>
</entry>

</feed>
