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

<channel>
	<title>eLibrary</title>
	<atom:link href="http://openelibrary.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://openelibrary.org</link>
	<description>The documents organizer</description>
	<lastBuildDate>Mon, 13 Feb 2012 12:15:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SQLiteVariable &#8211; Preserve variables in the sqlite DB</title>
		<link>http://openelibrary.org/development/sqlitevariable-preserve-variables-in-the-sqlite-db/</link>
		<comments>http://openelibrary.org/development/sqlitevariable-preserve-variables-in-the-sqlite-db/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 20:14:42 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://openelibrary.org/?p=613</guid>
		<description><![CDATA[Here I will describe how I added a simple functionality to sqlite that allowed me to use persistent variables in the sqlite database file. I used it in eLibrary to verify to what version the database belonged to. And the usage if very simple:]]></description>
			<content:encoded><![CDATA[<p>Here I will describe how I added a simple functionality to sqlite that allowed me to use persistent variables in the sqlite database file.</p>
<p>I used it in eLibrary to verify to what version the database belonged to.</p>
<pre class="brush: plain; title: ; notranslate">
namespace System.Data.SQLite
{
    public class SQLiteVariable
    {
        /// &lt;summary&gt;
        /// Initializes a new instance of the &lt;see cref=&quot;SQLiteVariable&quot;/&gt; class.
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;name&quot;&gt;The variable name.&lt;/param&gt;
        public SQLiteVariable(string name)
            : this(null, name)
        { }
        /// &lt;summary&gt;
        /// Initializes a new instance of the &lt;see cref=&quot;SQLiteVariable&quot;/&gt; class.
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;connection&quot;&gt;The database connection to be used.&lt;/param&gt;
        /// &lt;param name=&quot;name&quot;&gt;The variable name.&lt;/param&gt;
        public SQLiteVariable(SQLiteConnection connection, string name)
        {
            Connection = connection;
            Name = name;
        }

        /// &lt;summary&gt;
        /// The table name used for storing the database variables
        /// &lt;/summary&gt;
        private const string VariablesTable = &quot;__GlobalDatabaseVariablesTable&quot;;

        /// &lt;summary&gt;
        /// Gets or sets the SQLite database connection.
        /// &lt;/summary&gt;
        /// &lt;value&gt;The connection.&lt;/value&gt;
        public SQLiteConnection Connection { get; set; }

        /// &lt;summary&gt;
        /// Gets the SQLite variable name.
        /// &lt;/summary&gt;
        /// &lt;value&gt;The name.&lt;/value&gt;
        public string Name { get; private set; }

        /// &lt;summary&gt;
        /// Gets or sets the SQLite variable value.
        /// &lt;/summary&gt;
        /// &lt;value&gt;The value.&lt;/value&gt;
        public string Value
        {
            get
            {
                CheckEnviornemnt();
                var cmd = new SQLiteCommand(Connection)
                {
                    CommandText = &quot;SELECT Value FROM &quot; + VariablesTable + &quot; WHERE Key=@VarName&quot;
                };
                cmd.Parameters.Add(new SQLiteParameter(&quot;@VarName&quot;, Name));
                var returnValue = cmd.ExecuteScalar();
                return returnValue as string;
            }
            set
            {
                CheckEnviornemnt();
                // Assume the variable exists and do an update
                var cmd = new SQLiteCommand(Connection)
                {
                    CommandText = &quot;INSERT OR REPLACE INTO &quot; + VariablesTable + &quot; (Key, Value) VALUES(@VarName, @Value)&quot;
                };
                cmd.Parameters.Add(new SQLiteParameter(&quot;@Value&quot;, value));
                cmd.Parameters.Add(new SQLiteParameter(&quot;@VarName&quot;, Name));
                var count = cmd.ExecuteNonQuery();
            }
        }

        private void CheckEnviornemnt()
        {
            if (Connection == null) throw new InvalidOperationException(&quot;No connection is associated with this variable&quot;);
            var cmd = new SQLiteCommand(Connection)
            {
                CommandText = &quot;CREATE TABLE IF NOT EXISTS &quot; + VariablesTable + &quot; (Key VARCHAR(30) PRIMARY KEY, Value VARCHAR(256));&quot;
            };
            cmd.ExecuteNonQuery();
        }
    }
}
</pre>
<p>And the usage if very simple:</p>
<pre class="brush: plain; title: ; notranslate">
var dbVersion = new SQLiteVariable(db_connection, &quot;DbVersion&quot;);
dbVersion.Value = &quot;3.1.0&quot;;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/development/sqlitevariable-preserve-variables-in-the-sqlite-db/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piwik Custom Data Tracking</title>
		<link>http://openelibrary.org/development/piwik-custom-data-tracking/</link>
		<comments>http://openelibrary.org/development/piwik-custom-data-tracking/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 15:05:54 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[piwik]]></category>

		<guid isPermaLink="false">http://openelibrary.org/?p=402</guid>
		<description><![CDATA[An article explaining how to extend the Piwik platform for display custom data in graphs]]></description>
			<content:encoded><![CDATA[<p><img src="http://openelibrary.org/wp-content/uploads/2011/07/piwik-logo-header.png" alt="" title="piwik-logo-header" width="127" height="50" class="alignleft size-full wp-image-513" />In this post I will describe how I used the excellent open source engine <a href="http://www.piwik.org">Piwik</a> for tracking my own custom data. Piwik is a platform for tracking and displaying website analytics. I use it to track the traffic of eLibrary, so I thought, why not also use it to monitor my own data?</p>
<p>My goal is to display the evolution graph of my registered and active users, over time. In addition, I want the data to be in correltation with the selected date&#8217;s period (day, week, etc.)</p>
<p>So, I&#8217;ll start by showing the end result:<br />
<a href="http://openelibrary.org/wp-content/uploads/2011/07/piwik_users_evolution.png" rel="lightbox"><img src="http://openelibrary.org/wp-content/uploads/2011/07/piwik_users_evolution-300x99.png" alt="" title="piwik: users evolution" width="600" class="alignnone size-medium wp-image-512" /></a></p>
<h2>Data Source</h2>
<p>The data I want to display comes from several tables, hosted on a different database than the Piwik&#8217;s one.<br />
I will describe what I did with one table, <strong>registered_users</strong>, as the concept for other tables is very similar.</p>
<p>The table structure is as follows:</p>
<pre>mysql> desc registered_users;
+------------+--------------+------+-----+---------------------+----------------+
| Field      | Type         | Null | Key | Default             | Extra          |
+------------+--------------+------+-----+---------------------+----------------+
| when       | datetime     | NO   |     | 0000-00-00 00:00:00 |                |
| email      | text         | NO   |     | NULL                |                |
| can_use    | tinyint(1)   | YES  |     | 0                   |                |
| valid      | tinyint(1)   | YES  |     | 0                   |                |
| activation | varchar(40)  | YES  |     | NULL                |                |
| idx        | int(11)      | NO   | PRI | NULL                | auto_increment |
+------------+--------------+------+-----+---------------------+----------------+</pre>
<p>Now, to create graph, we need a list of values and dates, so I started with this query:</p>
<pre class="brush: sql; title: ; notranslate">
SELECTDATE_FORMAT(`when`, '%Y-%m-%d'), COUNT(idx)
FROM registered_users
WHERE `when` &gt;= ? AND `when` &lt;= ?
GROUP BY DATE_FORMAT(`when`, '%Y-%m-%d')
ORDER BY DATE_FORMAT(`when`, '%Y-%m-%d') DESC
</pre>
<p>But the output lacked dates with 0 values, so I created another table, <strong>calendar</strong>:</p>
<pre class="brush: sql; title: ; notranslate">
CREATE TABLE `calendar` (
    `datefield` date DEFAULT NULL
)
</pre>
<p>And I filled it with values using the following code:</p>
<pre class="brush: php; title: fill_calendar.php; notranslate">
#!/usr/bin/php
&lt;?php
echo &quot;Starting\n&quot;;

$mysqli = new mysqli(&quot;localhost&quot;, &quot;dont&quot;,  &quot;think&quot;, &quot;so&quot;);

$start_date = '2006-01-01';
$check_date = $start_date;
$end_date = '2015-01-01';

while ($check_date != $end_date) {
        $check_date = date (&quot;Y-m-d&quot;, strtotime (&quot;+1 day&quot;, strtotime($check_date)));
        $query = &quot;INSERT INTO calendar (datefield) VALUES('$check_date');&quot;;
        #echo &quot;$query\n&quot;;
        $mysqli-&gt;real_query($query);
}
echo &quot;Done\n&quot;;
?&gt;
</pre>
<p>So, the polished query would be:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT datefield, COUNT(idx)
FROM calendar LEFT JOIN registered_users
		ON datefield = DATE_FORMAT(`when`, '%Y-%m-%d')
WHERE datefield &gt;= ? AND datefield &lt;= ?
group by datefield
ORDER BY datefield ASC
</pre>
<h2>Creating a New Piwik Plugin</h2>
<p>There are two ways to create a plugin. The first would be to write everything from scratch, good luck with that one. The second would be to duplicate the example plugin that comes with the framework.<br />
I used the ExampleUI as the basis for my plugin, as it was the most convenient to work with.</p>
<p>Start by running the following commands from the shell to duplicate the plugin, and make sure it can run.</p>
<pre class="brush: bash; title: ; notranslate">cd piwik/plugins
cp -R ExampleUI eLibrary
cd eLibrary
mv ExampleUI.php eLibrary.php
# Rename the classes from ExampleUI to eLibrary
sed -i s/ExampleUI/eLibrary/ API.php
sed -i s/ExampleUI/eLibrary/ Controller.php
sed -i s/ExampleUI/eLibrary/ eLibrary.php
</pre>
<p>To check everything is ready for the next step, enable the plugin in the setting menu (<i>Settings->Plugins</i>).</p>
<h2>Pouring Content Into the Plugin</h2>
<p>We start by adding our new menu to the master file (<strong>eLibrary.php</strong>).<br />
Find the <strong>addMenus</strong> function, and add your own button:</p>
<pre class="brush: php; title: eLibrary.php; notranslate">
        function addMenus()
        {
                $menus = array(
                        'Users Evolution' =&gt; 'myEvolutionGraph', /* My menu button */
                );
                ...
</pre>
<p>The above code basically referenced the menu item with title &#8220;Users Evolution&#8221; to the (currently) undefined function <strong>myEvolutionGraph</strong>.</p>
<p>Next, we edit the <strong>Controller.php</strong>, and add the function we just referenced <strong>myEvolutionGraph</strong>.</p>
<pre class="brush: php; title: Controller.php; notranslate">
        function myEvolutionGraph()
        {
                echo &quot;&lt;/pre&gt;&lt;h2&gt;Users Evolution&lt;/h2&gt;&lt;pre&gt;&quot;;

		// Create the graph view, and get the data from eLibrary.getUsersEvolution
                $view = $this-&gt;getLastUnitGraph($this-&gt;pluginName, __FUNCTION__, 'eLibrary.getUsersEvolution');

                // Choose which columns to display, and their order
                $view-&gt;setColumnsToDisplay( array('active', 'registered') );

                // Set labels for the graphs displayed
                $view-&gt;setColumnTranslation('active', &quot;Active Users&quot;);
                $view-&gt;setColumnTranslation('registered', &quot;Registered Users&quot;);

                return $this-&gt;renderView($view);

        }
</pre>
<p>We just defined the controller for displaying the graph. The data is received by calling the function <strong>getUsersEvolution</strong>, so let&#8217;s write it.</p>
<p>Sticking to the Piwik standard, we define <strong>getUsersEvolution</strong> in the <strong>API.php</strong> file.<br />
The principle idea behind that data fetching, is that we return a table, with several rows. The column that will be used as the X axis is named <strong>label</strong>, and the rest of the columns will be different curves on the Y axis.<br />
The function receives two variables, which are used to define the periods of the displayed data ($period), and the final date displayed ($date).<br />
Next, I define the queries, but in a slightly different way than previously discussed. This is because I don&#8217;t want to display a value per date, but rather a value per dates range, or period.<br />
So i defined the queries to summarize the values for a specific period, and I iterate over the sub-periods using the Piwik API.</p>
<pre class="brush: php; title: API.php; notranslate">
        public function getUsersEvolution($date, $period)
        {
                $period = new Piwik_Period_Range($period, $date);

				// The first query, returns the sum of registered users per date range
                $query1 = &quot;SELECT SUM(CC) FROM (SELECT datefield, COUNT(idx) As CC
                        FROM calendar LEFT JOIN registered_users ON datefield = DATE_FORMAT(`when`, '%Y-%m-%d')
                        WHERE datefield &gt;= ? AND datefield &lt;= ?
                        group by datefield
                        ORDER BY datefield ASC) AS AA&quot;;

				// The second query, returns the sum of active users per date range
                $query2 = &quot;SELECT SUM(CC) FROM (SELECT datefield, COUNT(distinct guid) As CC
                        FROM calendar LEFT JOIN activity ON datefield = DATE_FORMAT(`when`, '%Y-%m-%d')
                        WHERE datefield &gt;= ? AND datefield &lt;= ?
                        group by datefield
                        ORDER BY datefield ASC) AS AA&quot;;

				// Set my DB connection
                $mysqli = new mysqli(&quot;localhost&quot;, &quot;dont&quot;,  &quot;think&quot;, &quot;so&quot;);

				// Create the data table
                $dataTable = new Piwik_DataTable();

				// Itereate over the sub-periods
                foreach($period-&gt;getSubperiods() as $subPeriod)
                {
						// Get the start and finish dates of each sub-period
                        $dateStart = $subPeriod-&gt;getDateStart()-&gt;toString('Y-m-d'); // eg. &quot;2009-04-01&quot;
                        $dateEnd = $subPeriod-&gt;getDateEnd()-&gt;toString('Y-m-d'); // eg. &quot;2009-04-30&quot;

                        $stmt=$mysqli-&gt;prepare($query1);
                        $stmt-&gt;bind_param(&quot;ss&quot;, $dateStart, $dateEnd);
                        $result = $stmt-&gt;execute();
                        $stmt-&gt;bind_result($countRegistered);
                        $stmt-&gt;fetch();
                        $stmt-&gt;close();

                        $stmt=$mysqli-&gt;prepare($query2);
                        $stmt-&gt;bind_param(&quot;ss&quot;, $dateStart, $dateEnd);
                        $result = $stmt-&gt;execute();
                        $stmt-&gt;bind_result($countActive);
                        $stmt-&gt;fetch();
                        $stmt-&gt;close();

						// Add a row to table, with all the desired columns
                        $row1 = new Piwik_DataTable_Row();
                        $dataTable-&gt;addRowFromSimpleArray( array('registered' =&gt; $countRegistered , 'active' =&gt; $countActive ,  'label' =&gt; $subPeriod-&gt;getLocalizedShortString(), 'date' =&gt; $subPeriod) );
                }
                $mysqli-&gt;close();

                return $dataTable;
        }
</pre>
<p>That&#8217;s is, now the plugins should work and display the desired data. The same concepts could be used to display several graphs on the same page, by adding more to the $view defined in the controller.<br />
In addition, we can use the data table we created to display pie charts, tables, etc. Just go over the ExampleUI plugin for more ideas.</p>
<h2>Making a Widget</h2>
<p>We created our nice little evolution graph, and it&#8217;s so useful that we want to display it on the dashboard. So we start by adding a widget to the plugin.</p>
<p>In the master page (<strong>eLibrary.php</strong>) edit the function <strong>getListHooksRegistered</strong> and add the function <strong>addWidgets</strong>:</p>
<pre class="brush: php; title: eLibrary.php; notranslate">
        function getListHooksRegistered()
        {
                $hooks = array(
                        'WidgetsList.add' =&gt; 'addWidgets', /* Add this line*/
                        'Menu.add' =&gt; 'addMenus',
                );
                return $hooks;
        }

        // Add this function
        function addWidgets()
        {
                Piwik_AddWidget('eLibrary', 'Users', 'eLibrary', 'myEvolutionGraph');
        }
</pre>
<p>Now you can add the graph to the dashboard. You&#8217;ll find it under <i>Dashboard->Add a widget->eLibrary->Users</i>.</p>
<p>Notice that there is a problem with the labels on the X axis &#8211; there are too many so they overlap. The proper value would be a label for every 7 points, rather then the default label for every 2 points. Currently this is still a problem for me, as I haven&#8217;t found a way to fix it. If I do, I&#8217;ll let you know.</p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/development/piwik-custom-data-tracking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Alpha version released</title>
		<link>http://openelibrary.org/news/alpha-version-released/</link>
		<comments>http://openelibrary.org/news/alpha-version-released/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 21:41:07 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://openelibrary.org/?p=405</guid>
		<description><![CDATA[We have just released the alpha of version 3!]]></description>
			<content:encoded><![CDATA[<p><a href="http://openelibrary.org/news/alpha-version-released/attachment/alpha_version_3/" rel="attachment wp-att-439"><img src="http://openelibrary.org/wp-content/uploads/2011/07/alpha_version_3-150x150.png" alt="" title="Alpha version 3" width="150" height="150" class="alignleft size-thumbnail wp-image-439" /></a></p>
<p>We have just released the alpha of version 3!<br />
It should be very stable, as most of the bugs have been fixed and some nice features have been added.</p>
<p><a class="button" title="Download Now" href="https://sourceforge.net/projects/ebooklibrary/files/Testing/TestBuild_07_07_2011.msi/download">Download Now</a><br />
<div class="clear"></div></p>
<h3>Major changes</h3>
<p><div class="icon-list icon-check"></p>
<ul>
<li>Added the amazon harvester &#8211; so you can switch between google and amazon</li>
<li>Added export options</li>
<li>Added notification and error bars</li>
<li>Added context menus</li>
<li>Restored the old internal web server</li>
</ul>
<p></div><!-- .icon-list (end) --></p>
<h3>Bug Fixes</h3>
<p><div class="icon-list icon-delete"></p>
<ul>
<li>Removing new tags of unsaved books</li>
<li>Removing deleted authors from authors list</li>
<li>Fixed some compilation errors</li>
</ul>
<p></div><!-- .icon-list (end) --><br />
Any comments and ideas would be greatly appreciated.<br />
As always, if you find any bugs in the installation process or while using eLibary, please let us know (<a href="support/report-a-bug">report bugs</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/news/alpha-version-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Our new website</title>
		<link>http://openelibrary.org/news/our-new-website/</link>
		<comments>http://openelibrary.org/news/our-new-website/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 03:06:31 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://openelibrary.org/wordpress/?p=279</guid>
		<description><![CDATA[As you can see, eLibrary's website has undergone a face-lift or two]]></description>
			<content:encoded><![CDATA[<p><div class="frame alignleft"><a href="http://openelibrary.org/news/our-new-website/attachment/website_screenshot/" rel="attachment wp-att-280"><img src="http://openelibrary.org/wp-content/uploads/2011/06/website_screenshot-178x300.png" alt="" title="website_screenshot" width="80" class="alignnone size-medium wp-image-280" /></a></div><!-- .frame (end) --></p>
<p>As you can see, eLibrary&#8217;s website went out and got itself a face-lift.<br />
There are still a few loose ends to tie as some of the help pages are being updated and other information pages are still to be added.</p>
<p>We&#8217;d love to hear your thoughts and ideas on the new website and what you&#8217;d like to see in it.</p>
<p>This new face of the eLibrary website is just in time to welcome the upcoming version 3 of eLibrary.<br />
You can already download the alpha version <a href="http://sourceforge.net/projects/ebooklibrary/files/Testing/TestBuild_07_07_2011.msi/download">here</a> and check it out for yourself. Let us know what you think!</p>
<p>The eLibrary Team</p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/news/our-new-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A new test version released.</title>
		<link>http://openelibrary.org/news/a-new-test-version-released/</link>
		<comments>http://openelibrary.org/news/a-new-test-version-released/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 18:27:16 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://openelibrary.org/wordpress/?p=169</guid>
		<description><![CDATA[A new test version has been released.]]></description>
			<content:encoded><![CDATA[<p>A new test version has been released.<br />
Very stable, with most of the planned features implemented.</p>
<p><a class="button" title="Download Now" href="http://sourceforge.net/projects/ebooklibrary/files/Testing/TestBuild_07_02_11.rar/download">Download Now</a></p>
<h3>Major changes</h3>
<p><div class="icon-list icon-check"></p>
<ul>
<li>Add/Remove tags from book page</li>
<li>Switched folder view to lazy-load</li>
<li>Moved search bar</li>
<li>Set the final layout of the help page</li>
<li>Added buttons to Home ribbon</li>
<li>Remade sort and view buttons</li>
<li>Fixed a bug of recursively adding book after rename (when the file already exists)</li>
</ul>
<p></div><!-- .icon-list (end) --></p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/news/a-new-test-version-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where to go next</title>
		<link>http://openelibrary.org/uncategorized/where-to-go-next/</link>
		<comments>http://openelibrary.org/uncategorized/where-to-go-next/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 16:46:39 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://openelibrary.org/wordpress/?guid=7a144a5faa22f23be4f3e86143fce7ec</guid>
		<description><![CDATA[Fill our survey on where to take eLibrary further]]></description>
			<content:encoded><![CDATA[<p>We are rapidly working on the next version, due early next month. It will address all the open bugs and features requests, as well as add some cool new features. After its release, there are many possible directions, we would like to hear from you &#8211; our users, so please fill in our survey::<br /><a href="http://www.surveymonkey.com/s/SPMNVBC">http://www.surveymonkey.com/s/SPMNVBC</a></p>
<p>Thanks,<br />The eLibrary Team.</p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/uncategorized/where-to-go-next/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improved translation interface</title>
		<link>http://openelibrary.org/uncategorized/improved-translation-interface/</link>
		<comments>http://openelibrary.org/uncategorized/improved-translation-interface/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 02:34:42 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://openelibrary.org/wordpress/?guid=6828e4d912993f5127dd1ea4f69c044f</guid>
		<description><![CDATA[For all those users who volounteered to translate eLibrary to other languages. We just set-up an account on <a href="http://99translations.com/projects/135">http://99translations.com/projects/135</a> where you can go and create the localization you offered]]></description>
			<content:encoded><![CDATA[<p>For all those users who volounteered to translate eLibrary to other languages. We just set-up an account on 99translations.com:<br /><a href="http://99translations.com/projects/135">http://99translations.com/projects/135</a><br />Where you can go and create the localization you offered</p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/uncategorized/improved-translation-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sourceforge blogged on us</title>
		<link>http://openelibrary.org/press-release/100/</link>
		<comments>http://openelibrary.org/press-release/100/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 15:49:54 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[Press Release]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://openelibrary.org/wordpress/?p=100</guid>
		<description><![CDATA[Source Forge posted an article on eLibrary]]></description>
			<content:encoded><![CDATA[<p>Lee Schlesinger from Source Forge posted a blog on eLibrary.</p>
<p>Here is the article&#8217;s content:</p>
<hr />
<p>eLibrary is a free, full-featured ebook organizer<br />
Posted on Wednesday, October 7th, 2009 by leeschlesinger<br />
Category: General<br />
â€œMy goal is to make eLibrary into more than just another organizer â€“ to make eLibrary a one-stop shop for all ebook-related needs, including syncing with various readers, format conversion, an ebook viewer, and more.â€ So says Amir Shaked, creator of the eLibrary ebook organizer application.</p>
<p>&nbsp;</p>
<p>Normally I interview project leaders for these blog entries, but Amir essentially wrote this piece himself:</p>
<p>This project was born out of my own personal need to easily manage and tag my ebooks. Other organizers I looked up were commercial or didnâ€™t have the organizing features I wanted. When I first uploaded the project to SF.net I hadnâ€™t thought it would attract much interest, but more and more people downloaded it, requested features, and offered to help. So I decided to expand the project further, released more improvements, and maintained a close interaction with users who reported errors and suggested features.</p>
<p>One of the strongest features of eLibrary is the ISBN guesser, which attempts to locate the bookâ€™s ISBN (International Standard Book Number) by scanning the bookâ€™s text for the ISBN, checking the filename, or looking it up in Amazon and Google. All this is done automatically, so that in order to add a book, all that is required of the user is to drag a file into eLibrary in order to catalogue it.</p>
<p>The latest eLibrary release includes a highly improved user interface and a few more cataloguing options. Also, the metadata is downloaded from the Google Books service, so that a bookâ€™s downloaded info also includes auto-tagging and the bookâ€™s description. Another nice feature is the web interface, enabling users to both view their library and access the file.</p>
<p>eLibrary is developed using Visual Studio 2008. The main language is C#, with .Net 2.0 compliance. I am sticking to .Net 2.0 so that in the future I can port it to Mono. I also created a website to host the online help for the project: http://www.openelibrary.org</p>
<p>When I thought about creating this project as an open source one, SF.net seemed like the perfect place. I have been using the site for as long as it has existed, and the services it offers to projects were all I needed. It has proved to be a worthwhile decision, since SF.net brings 95% of the traffic and downloads to eLibrary.</p>
<p>In hope to expand the project further, I recently posted a â€œhelp wantedâ€ ad in the SF.net community. I am looking for C# developers, designers, content editors, and translators. Anyone interested in helping can contact me via the SF.net forums, tracker, or email.</p>
<p>You can read the original article here: <a href="http://sourceforge.net/community/elibrary-is-a-free-full-featured-ebook-organizer/">http://sourceforge.net/community/elibrary-is-a-free-full-featured-ebook-organizer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/press-release/100/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eLibrary SVN fixed</title>
		<link>http://openelibrary.org/uncategorized/elibrary-svn-fixed/</link>
		<comments>http://openelibrary.org/uncategorized/elibrary-svn-fixed/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 23:19:46 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://openelibrary.org/wordpress/?guid=aacd996535bc2c28c19a07b7f9da48a2</guid>
		<description><![CDATA[The corrupted SVN project was fixed.Source code can once again be downloaded and compiled.After checkout open the eLibrary solution under &#34;eLibrary/Public Code&#34; directorySorry for this issue.]]></description>
			<content:encoded><![CDATA[<p>The corrupted SVN project was fixed.<br />Source code can once again be downloaded and compiled.</p>
<p>After checkout open the eLibrary solution under &quot;eLibrary/Public Code&quot; directory</p>
<p>Sorry for this issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/uncategorized/elibrary-svn-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Version 2.5.10 released</title>
		<link>http://openelibrary.org/news/version-2-5-10-released/</link>
		<comments>http://openelibrary.org/news/version-2-5-10-released/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 16:02:12 +0000</pubDate>
		<dc:creator>amirshk</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://openelibrary.org/wordpress/?guid=5d686f506cc16413c64b6ee54df755b9</guid>
		<description><![CDATA[The eLibrary Project is an eBook organizer with tagging and search capabilities.It automatically downloads the book's cover image and info from the web, and displays them in a friendly user interface.New version includes:* Tabbed split UI allowing to v...]]></description>
			<content:encoded><![CDATA[<p>The eLibrary Project is an eBook organizer with tagging and search capabilities.<br />It automatically downloads the book&#8217;s cover image and info from the web, and displays them in a friendly user interface.</p>
<p>New version includes:<br />* Tabbed split UI allowing to view several books<br />* New concept: default file for book, so Shift+Double Click will open<br />the default viewer and DoubleClick will open the eLibrary book info.<br />* Books browsing according to authors and publisher<br />* More data retrieved and without limit<br />* Automatic book tagging via google books project<br />* MRU books and latest searches<br />* Easier tags managment vie drag&amp;drop and shortcuts</p>
<p>Several bug fixes:<br />* Multi-User issues<br />* Non english characters in tags and filenames<br />* And more.</p>
<p>Download: <a href="http://sourceforge.net/projects/ebooklibrary/files/Install/2.5.10/eLibrary_2_5_10.msi/download">http://sourceforge.net/projects/ebooklibrary/files/Install/2.5.10/eLibrary_2_5_10.msi/download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://openelibrary.org/news/version-2-5-10-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

