<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Dan Poltawski</title>
    <link>http://blog.danpoltawski.co.uk/</link>
    <description></description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Mon, 30 Nov 2009 12:58:39 GMT</pubDate>

    <image>
        <url>http://blog.danpoltawski.co.uk/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Dan Poltawski - </title>
        <link>http://blog.danpoltawski.co.uk/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Czech Moodle Hackfest!</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-11-Czech-Moodle-Hackfest!.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-11-Czech-Moodle-Hackfest!.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=18</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    Its less than a week till 16 of us (moodle developers) meet up in the Czech Republic for the first &lt;a href=&#039;http://docs.moodle.org/en/Development:Czech_Hackfest_2009&#039;&gt;Moodle Hackfest!&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m really excited, the opportunity to to hack and plan together is a unique opportunity and something we tend to miss at moots as we chat to fellow Moodlers and find out what our users are interested in, drink Mojitos and don&#039;t get so much coding done!&lt;br /&gt;
&lt;br /&gt;
I had hoped to spend a &lt;a href=&#039;http://docs.moodle.org/en/Development:Czech_Hackfest_2009&#039;&gt;few weeks bug squashing&lt;/a&gt;, but sadly  my life got in the way.  &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
In any case i&#039;m very interested to hear what you love and hate about Moodle at the moment so the developer community can come up with ways to resolve your problems. If you hate moodle, please tell me why, how can we improve it?&lt;br /&gt;
&lt;br /&gt;
ps. please keep your fingers crossed, I&#039;ve spent months negotiating a new house which I am hoping to own the day I fly to prague! 
    </content:encoded>

    <pubDate>Sun, 29 Nov 2009 23:10:21 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-11-18.html</guid>
    <category>moodle</category>

</item>
<item>
    <title>Ubiquitous Moodle</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-09-Ubiquitous-Moodle.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-09-Ubiquitous-Moodle.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=17</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=17</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    Its not difficult for me to realise that Moodle is a popular global project - I work alongside the evidence every day; reading Moodle.org, fearing the volume of bugs which come into the tracker and in &lt;a href=&quot;http://www.cleo.net.uk&quot;&gt;CLEO&lt;/a&gt;, we recently surpassed 200,000 Moodle users. Buts its actually the small events in life which help me quantify this. &lt;br /&gt;
&lt;br /&gt;
When i&#039;m fortunate enough to go to Moodlemoots the international community of Moodlers is very evident and the passion is incredible.&lt;br /&gt;
&lt;br /&gt;
Often, i meet teachers at completely non-moodle related social events and discover they use Moodle.&lt;br /&gt;
&lt;br /&gt;
While i&#039;m cycling to work and pass children walking to school, I stop and realise these children are likely to be using Moodle now or some time in their future (such is the dominance of Moodle in our region).&lt;br /&gt;
&lt;br /&gt;
This week I discovered my old &lt;a href=&#039;http://en.wikipedia.org/wiki/Sixth_form_college&#039;&gt;Sixth Form College&lt;/a&gt; is starting to use Moodle. During my time at the college I got a passion for computer programming and also benefited enormously from my first exposure to online learning. I don&#039;t teach people (at least in the formal sense) and so this exposure certainly helps me understand the Moodle philosophy more than I would&#039;ve been able to without.&lt;br /&gt;
&lt;br /&gt;
One of the greatest things about working on this open source project is that my contributions hopefully go some way to benefiting all these users: The moodlers I meet at moots, the teacher I met one time at a party, the schoolchildren passing me on the way to work and the college which gave me many of the fundamentals which have helped me contribute to the project.  
    </content:encoded>

    <pubDate>Sun, 06 Sep 2009 10:28:38 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-09-17.html</guid>
    <category>moodle</category>

</item>
<item>
    <title>Turning my iPhone into a Moodle Server</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-06-Turning-my-iPhone-into-a-Moodle-Server.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-06-Turning-my-iPhone-into-a-Moodle-Server.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=15</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=15</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    Having ended up with a spare iPhone from a recent upgrade I decided to try jail-breaking the old one and see what software was out there away from the restrictions of the app store. I discovered that &lt;a href=&#039;http://www.lighttpd.net/&#039;&gt;lighttpd&lt;/a&gt;, &lt;a href=&#039;http://www.php.net&#039;&gt;php&lt;/a&gt; and &lt;a href=&#039;http://http://www.sqlite.org/&#039;&gt;sqlite&lt;/a&gt; were all available from the software repositories for download - these three combined are enough to run a Moodle server. So out the window went cleaning my flat and sensible tasks - I had to make my phone into a Moodle server! &lt;br /&gt;
&lt;br /&gt;
&lt;img src=&#039;http://blog.danpoltawski.co.uk/uploads/IMG_0002.PNG&#039; alt=&#039;moodle license screen on iphone&#039; align=&#039;right&#039; style=&quot;float:right; margin: 0px 0px 15px 15px;&quot;&gt;&lt;br /&gt;
Getting the software for moodle installed and configured was relatively painless, the &#039;cydia&#039; software installer appears to use &lt;a href=&#039;http://en.wikipedia.org/wiki/Dpkg&#039;&gt;dpkg&lt;/a&gt; under the hood, so I installed openssh server and apt through the gui installer and then sshed onto the phone to do the work with a full size keyboard and the moodle server was up and running quite quickly. (More details for configuration below). &lt;br /&gt;
&lt;br /&gt;
Sqlite is a really interesting technology which seems to be making its way into a lot of software and I was quite interested to see Moodle support for lightweight testing sorts of applications and it has made its way into Moodle thanks to the great work of Andrei Bautu in &lt;a href=&#039;http://docs.moodle.org/en/Student_projects/SQLite&#039;&gt;his GSOC project&lt;/a&gt; last year. It only exists in the highly unstable Moodle 2.0 development branch so I needed to install this on my iPhone. Development is moving incredibly fast in the Moodle 2.0 branch so I was not at all suprised to see that the sqlite driver was not working. &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; It took a bit of time to find out what the major issue with the driver as it was a silent error. But I eventually found and fixed the major issue.&lt;br /&gt;
&lt;br /&gt;
Sadly, despite successfully installing and passing most of the database unit tests on my development machine with sqlite, some database queries were continuing to cause the iPhone server issues. I spent some bit of time improving the sqlite driver to show more debugging information and get to the bottom of the issue. &lt;br /&gt;
&lt;br /&gt;
After a lot of debugging and irritation, it seems that the sqlite library version (3.3.7) linked to from php has a bug/incompatibility which means it does not like queries like:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
SELECT student.id FROM mdl_user student JOIN (SELECT ra.userid FROM mdl_role_assignments ra) roles ON student.id = roles.userid&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
It&#039;ll report: SQLSTATE[HY000]: General error: 1 no such column: roles.userid&lt;br /&gt;
Where as it will work fine with something like:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
SELECT student.id FROM mdl_user student JOIN (SELECT userid FROM mdl_role_assignments ra) roles ON student.id = roles.userid&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
(That was a simple example to try and find the problem - the SQL we have in moodle is a lot more complex that that). &lt;br /&gt;
&lt;br /&gt;
To confuse matters, the sqlite command line tool I was using to test on the phone itself was a newer version (3.6.12), which works absolutely fine with both queries. The same was true on my development machine, which meant that I could install with sqlite succesfully everywhere but the iPhone itself. &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; I assume the php version has been linked to the iPhone OS version - but I am too lazy to check/do something about it!&lt;br /&gt;
&lt;br /&gt;
While I don&#039;t yet have a working moodle server install running on the phone itself, the exercise in improving the sqlite driver has been really useful. I&#039;ve updated the driver &lt;a href=&#039;http://cvs.moodle.org/moodle/lib/dml/&#039;&gt;in CVS&lt;/a&gt;, on recent sqlite versions it is only currently failing 9 of 1298 tests. (CEIL and SUBSTR being the major issues - but they are only used for stats and the admin healthcheck) so its really looking like a really useful option for those situations where a full-grown database server is overkill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ve &lt;a href=&#039;http://www.youtube.com/watch?v=H4zjoHaBi0o&#039;&gt;put a video&lt;/a&gt; of the (disapointing) install on youtube and you can find details of the various bits of configuration below.&lt;br /&gt;
&lt;br /&gt;
&lt;object width=&quot;560&quot; height=&quot;340&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/H4zjoHaBi0o&amp;hl=en&amp;fs=1&amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/H4zjoHaBi0o&amp;hl=en&amp;fs=1&amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;560&quot; height=&quot;340&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Configuration Details&lt;/strong&gt;&lt;br /&gt;
I love apt &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
apt-get install lighttpd php sqlite3 git&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
I&#039;ve never configured lighttpd before, but a quick search for configuring with php and I made a very simple config with /etc/lighttpd/lighttpd.conf and /etc/lighttpd/mod_fastcgi.conf&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
JB-Phone:~ root# cat /etc/lighttpd/lighttpd.conf &lt;br /&gt;
include &quot;mod_fastcgi.conf&quot;&lt;br /&gt;
server.document-root = &quot;/htdocs/moodle&quot;&lt;br /&gt;
server.port = 80&lt;br /&gt;
server.tag =&quot;lighttpd&quot;&lt;br /&gt;
server.errorlog            = &quot;/htdocs/log/error.log&quot;&lt;br /&gt;
accesslog.filename         = &quot;/htdocs/log/access.log&quot;&lt;br /&gt;
server.modules              = (&lt;br /&gt;
&quot;mod_access&quot;,&lt;br /&gt;
&quot;mod_accesslog&quot;,&lt;br /&gt;
&quot;mod_fastcgi&quot;,&lt;br /&gt;
&quot;mod_rewrite&quot;,&lt;br /&gt;
&quot;mod_auth&quot;,&lt;br /&gt;
&quot;mod_fastcgi&quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
index-file.names = ( &quot;index.html&quot;, &quot;index.php&quot; )&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# cat /etc/lighttpd/mod_fastcgi.conf &lt;br /&gt;
fastcgi.server = ( &quot;.php&quot; =&gt;&lt;br /&gt;
        ( &quot;localhost&quot; =&gt;&lt;br /&gt;
                (&lt;br /&gt;
                &quot;bin-path&quot; =&gt; &quot;/usr/bin/php-cgi&quot;,&lt;br /&gt;
                &quot;socket&quot; =&gt; &quot;/tmp/php.socket&quot;&lt;br /&gt;
                )&lt;br /&gt;
        )&lt;br /&gt;
)&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
And started the webserver manually with:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
lighttpd -f /etc/lighttpd/lighttpd.conf&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
I created the /htdocs/ directories - and git cloned moodle into /htdocs/moodle and created the moodle config file as mentioned in the sqlite moodle docs:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$CFG-&gt;prefix = &#039;mdl_&#039;; // prefix to use for all table namesV&lt;br /&gt;
$CFG-&gt;dbtype = &#039;sqlite3&#039;;&lt;br /&gt;
$CFG-&gt;dblibrary = &#039;pdo&#039;;&lt;br /&gt;
$CFG-&gt;dbhost = &#039;localhost&#039;;// leave dbhost to localhost (or blank) to store the database file in Moodle data directory&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Oh and I was also naughty and made the &#039;zip&#039; php extension an optional item (as it wasn&#039;t in the packed php version):&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
diff --git a/admin/environment.xml b/admin/environment.xml&lt;br /&gt;
index e15a33b..94ed8f2 100644&lt;br /&gt;
--- a/admin/environment.xml&lt;br /&gt;
+++ b/admin/environment.xml&lt;br /&gt;
@@ -262,7 +262,7 @@&lt;br /&gt;
           &amp;lt;ON_ERROR message=&amp;quot;ctyperequired&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/FEEDBACK&amp;gt;&lt;br /&gt;
       &amp;lt;/PHP_EXTENSION&amp;gt;&lt;br /&gt;
-      &amp;lt;PHP_EXTENSION name=&amp;quot;zip&amp;quot; level=&amp;quot;required&amp;quot;&amp;gt;&lt;br /&gt;
+      &amp;lt;PHP_EXTENSION name=&amp;quot;zip&amp;quot; level=&amp;quot;optional&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;FEEDBACK&amp;gt;&lt;br /&gt;
           &amp;lt;ON_ERROR message=&amp;quot;ziprequired&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/FEEDBACK&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;img src=&#039;http://blog.danpoltawski.co.uk/uploads/IMG_0007.PNG&#039; alt=&#039;database error&#039;&gt; 
    </content:encoded>

    <pubDate>Sat, 27 Jun 2009 21:27:59 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-06-15.html</guid>
    <category>iphone</category>
<category>moodle</category>

</item>
<item>
    <title>Secrets of Learning Moodle Development!</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-05-Secrets-of-Learning-Moodle-Development!.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-05-Secrets-of-Learning-Moodle-Development!.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=13</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    At a moodle developer meeting recently, some developers were asking if a mentoring scheme could be started up for new developers who wish to get into moodle development. Unfortunately, there just aren&#039;t enough hands on deck with time to manage to do the mentoring for something like this, despite the obvious long term benefits.&lt;br /&gt;
&lt;br /&gt;
I suspect we will always be on an uphill battle to improve our documentation and resources (like many things in life, documentation isn&#039;t very exciting or give instant payoffs to our users), but there are some resources which should be very useful to new developers: &lt;a href=&#039;http://dev.moodle.org&#039;&gt;dev.moodle.org&lt;/a&gt;, &lt;a href=&#039;http://docs.moodle.org/&#039;&gt;Moodle Docs&lt;/a&gt; and of course the forums of &lt;a href=&#039;http://moodle.org&#039;&gt;moodle.org&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
When I think back to how I have learnt about various aspects of moodle development i&#039;ve not really used many of those resources very much, instead i&#039;ve been lead by the constructivist approach! My journey into moodle development started in &lt;a href=&#039;http://tracker.moodle.org/browse/MDL-6784&#039;&gt;MDL-6784&lt;/a&gt;, this was my second bug report, first patch and first accepted patch into moodle! Since this first patch i&#039;ve reported/fixed/watched/contributed to many many moodle bugs and I think this is &lt;em&gt;my secret&lt;/em&gt; to moodle development! &lt;br /&gt;
&lt;br /&gt;
Of course this is really no secret at all, the code and bugs are open for everyone to see.  But I believe that spending time finding, reproducing and resolving bug reports gives new developers an invaluable insight into various aspects - which libraries do what, what are the caeats of x, how to fix y and where to go looking for future bugs! By watching bug reports, seeing comments, reviewing patches and fixes commited slowly your knowledge of moodle wil become massive, despite a lack of dedicated mentor!&lt;br /&gt;
&lt;br /&gt;
I do have a few general tips for moodle debugging which I i&#039;d like to share (and apologise as they feel &#039;obvious&#039; to me)!&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;You&#039;ve set debugging  to DEBUG_DEVELOPER, right?!&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;print_object() is basically print_r with whitespace and I use it at least 1000 times a day[1]. Its not just for objects &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; Print statement debugging might not be sexy but its essential and useful&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;debugging() prints a stack trace - why wouldn&#039;t you use it!&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;grep backwards for lang strings! (grep &#039;my error message&#039;, find the lang string name (myerrormessage) and then grep for that)&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;I die() lots.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;We have CVS history and bug numbers for a reason! Look at CVS history of a file and bug numbers/linked issues!&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Keeping up to speed with CVS history is a really useful exercise, if time consuming&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
I often wonder if I would still be in moodleland if my first patch was not reviewed as speedily as it was, I think probably not. In which case how do we ensure potential contributors such as myself don&#039;t get lost in our workloads and we encourage new contributors!? Its interesting to consider. &lt;br /&gt;
&lt;br /&gt;
If you are a new contributor please don&#039;t be put off by lack of review, pester us and ensure your work is reviewed because moodle is really great place to work! You could look at some other bugs while you are waiting &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m off hoidaying - see you all soon!&lt;br /&gt;
&lt;br /&gt;
[1] I also exaggerate 100s of times a day too. 
    </content:encoded>

    <pubDate>Wed, 27 May 2009 23:04:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-05-13.html</guid>
    <category>moodle</category>

</item>
<item>
    <title>Moodle Administrator Settings</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-05-Moodle-Administrator-Settings.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-05-Moodle-Administrator-Settings.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=14</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=14</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    I&#039;m really privileged to be a mentor for Google Summer of Code with Moodle again this year! If you&#039;ve not heard of google summer of code before the basic premise is that google fund university students to work on open source software over the duration of their summer break. The idea is to get more contributors into open source software and moodle is a proud participant to this great scheme. The great slogan is &#039;flip bytes not burgers!&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&#039;http://she.geek.nz/&#039;&gt;Penny&lt;/a&gt; and I are really excited to be mentoring &lt;a href=&#039;http://moodlegsoc2009.blogspot.com/&#039;&gt;Christopher Waclawik&lt;/a&gt; in his project to make XML administrative settings for moodle.  We&#039;re just coming to the end of the community bonding period, developing the specification for the project and moving towards the start of coding, but of course we still need absolute community involvement!&lt;br /&gt;
&lt;br /&gt;
Moodlers, imagine the prospect of installing moodle, choosing your local language and default settings which fit best with how you would like your moodle to be setup. This is one of the great aims of the project!&lt;br /&gt;
&lt;br /&gt;
The advantages of these defaults have perhaps best shown themselves to me in the lively discussions which took place recently about grades over 100%. This concept of grades over 100% doesn&#039;t seem to have spread much further than the in the USA, many outside the USA can&#039;t understand the concept and indeed the original release Moodle 1.9 didn&#039;t support this concept at all. Functionality has now been implemented in moodle to allow this - but it is not default. This choice makes sense to many but those who feel like this functionality is essential - like many localised settings in moodle its impossible to get the perfect defaults for all scenarios - this is really where I see these defaults fitting in.&lt;br /&gt;
&lt;br /&gt;
In my own day job we are frequently overriding moodle defaults to fit more with our localised environment (UK schools) so I realy can envisage the advantages of these for institutions rolling out moodle. But what perhaps I think is the most exciting element of this project is that it doesn&#039;t have to be exclusive, we could all create &#039;dans awesome moodle settings&#039; moodle settings, share them amongst oursleves and satisfy our local preferences or legsilsative obligations. This power of templates might help to combat the misconception that moodle doesn&#039;t fit &#039;x senario&#039;.&lt;br /&gt;
&lt;br /&gt;
Please contribute your thoughts to Chris&#039; project specificaton, point out areas we&#039;ve forgoten and other improvements we&#039;ve missed! This is the great thing about open source, we&#039;re hoping for you all to become involved and become invaluable resource to us all!&lt;br /&gt;
&lt;br /&gt;
See the progress in &lt;a href=&#039;http://tracker.moodle.org/browse/MDL-18548&#039;&gt;MDL-18548&lt;/a&gt;, &lt;a href=&#039;http://docs.moodle.org/en/Development:XML_Administrator_Settings&#039;&gt;Development:XML_Administrator_Settings&lt;/a&gt; and in the forums. 
    </content:encoded>

    <pubDate>Tue, 26 May 2009 00:49:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-05-14.html</guid>
    <category>moodle</category>

</item>
<item>
    <title>Abusing the Moodle Repository API with Guardian Open Platform</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-04-Abusing-the-Moodle-Repository-API-with-Guardian-Open-Platform.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-04-Abusing-the-Moodle-Repository-API-with-Guardian-Open-Platform.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=12</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    I read about the launch of the &lt;a href=&#039;http://www.guardian.co.uk/open-platform&#039;&gt;Guardian Open Platform&lt;/a&gt; and immediately thought it was cool, later considering how awesome it might be for teachers trying to find resources to support their teaching - I wanted to play. The prospect of a teacher having access to search and embed all the content which was made available from the guardian sounded great &amp;amp; seemed like a job for a Moodle 2.0 respository plugin - so I applied for an API key.&lt;br /&gt;
&lt;br /&gt;
Last week my request for an API key was finally accepted and I spent an hour or so playing with the API last night.  My first thought when reading about Guardian open platform was the prospect of using it to find and embed images. Unfortunately the platform doesn&#039;t explicitly support images at this time, and videos are supported only as a link to the source page. This means that it didn&#039;t explicitly fit with the way other repo plugins work. The guardian platform does support the full body of text articles being retrieved and so I created a very hacky plugin which would return the body of an article in the same way youtube video links are embeded with the youtube plugin. This was mostly pointless other than for my own satisfaction as there is nothing to receive this in the editor properly without copy and paste. It seems like its probably an abuse of the repository API to not retrieve files, but it was fun to play with it.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&#039;http://blog.danpoltawski.co.uk/uploads/guardian_moodle_api.png&#039; alt=&#039;guardian open platform in moodle&#039; /&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure if the repository API is the appropriate place for embedding this content and there are significant barriers with the guardian license terms for this to be a useable plugin. The license terms for the platform wouldn&#039;t necessarily suit teaching at this time (content shouldn&#039;t be stored for more than 24 hours - though it would be fine to re-request it), but of course  this shouldn&#039;t be a blocker to see if the technology would work. A lot of educational institutes have access to newspaper content via means such as lexis nexis and i&#039;m sure a potential licensing solution for education could be developed, so its fun to play with.&lt;br /&gt;
&lt;br /&gt;
On a technical level I used the &lt;a href=&#039;http://code.google.com/p/openplatform-php/&#039;&gt;openplatform-php&lt;/a&gt; library which guardian provide and I didn&#039;t really like. I didn&#039;t like it as it generated php warnings a plenty, and I wasn&#039;t feeling particularly motivated to rewrite all these bits, so I hacked each one I came across away in a really crappy way. The really short source code (respository.php is the only actual moodle source) can &lt;a href=&#039;http://git.danpoltawski.co.uk/?p=moodle.git;a=commitdiff;h=d565478a3f9c473634897ec25c6b7e14a5de3d9d&#039;&gt;be found in my git repo.&lt;/a&gt; Though its not that useful (as I say, just hacking in an hour) and amongst other things doesn&#039;t deal with problems of requesting content daily according to the license terms. Even so, fun to play with open apis and integrate.&lt;br /&gt;
&lt;br /&gt;
Simon Willison gave a &lt;a href=&#039;http://simonwillison.net/2009/Mar/10/openplatform/&#039;&gt;great introduction&lt;/a&gt; to the whole platform, including the data store - which is equally cool. 
    </content:encoded>

    <pubDate>Fri, 03 Apr 2009 22:36:21 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-04-12.html</guid>
    <category>guardian</category>
<category>guardian open platform</category>
<category>moodle</category>
<category>repository</category>

</item>
<item>
    <title>Moodle in Google Summer of Code 2009</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-03-Moodle-in-Google-Summer-of-Code-2009.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-03-Moodle-in-Google-Summer-of-Code-2009.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=11</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=11</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    Great news, Moodle &lt;a href=&#039;http://socghop.appspot.com/program/accepted_orgs/google/gsoc2009&#039;&gt;has been accepted&lt;/a&gt; into &lt;a href=&#039;http://socghop.appspot.com/&#039;&gt;Google Summer of Code 2009&lt;/a&gt;! Great work everyone, especially as there are for less slots for projects than last year. Lets try and come up with some more great project ideas and thank &lt;a href=&#039;http://moodle.org/blog/index.php?userid=24152&#039;&gt;Helen&lt;/a&gt; for all her work in submitting our application and keeping us all organised as ever! 
    </content:encoded>

    <pubDate>Wed, 18 Mar 2009 19:50:23 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-03-11.html</guid>
    <category>moodle</category>
<category>summer of code</category>

</item>
<item>
    <title>Google Docs Repository Plugin</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-03-Google-Docs-Repository-Plugin.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-03-Google-Docs-Repository-Plugin.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=9</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=9</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    When I &lt;a href=&#039;http://blog.danpoltawski.co.uk/archives/2008-12-Moodle-2.0-and-Googley-Plugins.html&#039;&gt;last updated&lt;/a&gt; on the status of the Google Docs Repository/Portfolio plugins for Moodle 2.0, I mentioned that it wasn&#039;t possible to download documents from Google and this meant it wasn&#039;t really possible to make a repository plugin. &lt;br /&gt;
&lt;br /&gt;
A few weeks ago Google &lt;a href=&#039;http://googledataapis.blogspot.com/2009/02/start-downloads.html&#039;&gt;updated their API&lt;/a&gt; to allow for applications to download documents, so today I found some time to update and commit the plugin into Moodle 2.0 &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;. &lt;br /&gt;
&lt;br /&gt;
At the moment it&#039;s not possible for users to choose which format to export their document as, but the Google API allows exports in in a &lt;a href=&#039;http://code.google.com/apis/documents/docs/2.0/developers_guide_protocol.html#DownloadingDocsAndPresentations&#039;&gt;variety of formats&lt;/a&gt;. I&#039;m hoping to work with Dongsheng to work out how we can let users choose which format they wish to export their document in on a per-file or per-user basis. The plugin also needs folder support adding.&lt;br /&gt;
&lt;br /&gt;
As always, please test and file bugs in the tracker. &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&#039;http://blog.danpoltawski.co.uk/uploads/googledocs_screenshot.png&#039; alt=&#039;googledocs moodle repository plugin&#039; /&gt; 
    </content:encoded>

    <pubDate>Sun, 08 Mar 2009 18:02:29 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-03-9.html</guid>
    <category>google api</category>
<category>google docs</category>
<category>moodle</category>

</item>
<item>
    <title>Working for Free?</title>
    <link>http://blog.danpoltawski.co.uk/archives/2009-02-Working-for-Free.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2009-02-Working-for-Free.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=8</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=8</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    I came across this &lt;a href=&#039;http://csdl.computer.org/comp/proceedings/hicss/2001/0981/07/09817014.pdf&#039;&gt;interesting paper&lt;/a&gt; on the motivations of developers contributing to Open Source projects a few weeks ago - I&#039;ve finally got round to reading it &amp;amp; it does to seem to cover all the main motivational areas I could think of and have experienced.  Though i was quite surprised that there was such a high percentage of developers paid to work on OSS seven years ago!&lt;br /&gt;
&lt;br /&gt;
One element that I don&#039;t think was stressed enough in the paper was how the stimulating environment of an open source community itself is a motivating factor. I find that people who contribute to open source software tend to be highly motivated and passionate about what they do (not surprising really, since they are contributing..). This makes for a great environment to challenge and learn from each other, which is really hard to match in any other situation. 
    </content:encoded>

    <pubDate>Thu, 19 Feb 2009 23:10:38 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2009-02-8.html</guid>
    <category>moodle</category>
<category>open source</category>

</item>
<item>
    <title>Moodle in Debian</title>
    <link>http://blog.danpoltawski.co.uk/archives/2008-12-Moodle-in-Debian.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2008-12-Moodle-in-Debian.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    Over the past few weeks, i&#039;ve been working with &lt;a href=&#039;http://feeding.cloud.geek.nz/&#039;&gt;Francois&lt;/a&gt;, &lt;a href=&#039;http://she.geek.nz/&#039;&gt;Penny&lt;/a&gt; and Matt to take over maintaining the moodle package for Debian. Unfortunately the previous maintainer could not keep up with maintenance since some time ago, and the &lt;a href=&#039;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=494642&#039;&gt;package was orphaned&lt;/a&gt; (awaiting someone else to take over caring for the package). Penny invited me to get involved &amp;amp; we&#039;ve been hard at work since: Producing a huge &lt;a href=&#039;http://www.debian.org/security/2008/dsa-1691&#039;&gt;security update&lt;/a&gt; to debian stable, getting moodle accepted &lt;a href=&#039;http://packages.debian.org/lenny/moodle&#039;&gt;into lenny&lt;/a&gt; - the next version of debian (by fixing outstanding bugs which blocked it from being accepted) and getting on top of the debian bugs which were outstanding.&lt;br /&gt;
&lt;br /&gt;
Unfortunately debian was in freeze stage for lenny when we took on maintaining moodle, so we could not upgrade the version from 1.8.2 (however this is much better than 1.6 which is currently in debian stable). Its great to keep moodle in debian  with security support and a lot of thanks is owed to Francois Marrier (the debian developer who has taken this on) to make this happen. I&#039;m hopeful i&#039;ll be able to buy francois a drink in thanks sometime soon. &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Personally, I use Debian in my leisure &amp;amp; working life extensively (indeed, its the platform we use to provide moodle for 1000 schools), its a project close to my heart (and saves me so much time) so i&#039;m really pleased to be able to contribute back to debian (as well as moodle). I have been interested in getting involved with debian for quite some time - doing this as part of the moodle packaging team is a great way to begin to get involved.&lt;br /&gt;
&lt;br /&gt;
I&#039;m confident that the moodle community will benefit from increased exposure of debian bug reports and the closer exposure of perspectives of upstream distribution packagers will also help the moodle development community. &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Tue, 23 Dec 2008 21:17:22 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2008-12-7.html</guid>
    <category>debian</category>
<category>moodle</category>

</item>
<item>
    <title>Moodle &amp; Mojitos </title>
    <link>http://blog.danpoltawski.co.uk/archives/2008-12-Moodle-Mojitos.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2008-12-Moodle-Mojitos.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=5</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=5</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    &lt;a href=http://en.wikipedia.org/wiki/Mojito&#039;&gt;&lt;img src=&#039;http://blog.danpoltawski.co.uk/uploads/Mojito.jpg&#039; alt=&#039;http://en.wikipedia.org/wiki/File:Mojito.jpg&#039; style=&quot;float:right; margin: 10px 0px 0px 15px;&quot; /&gt;&lt;/a&gt; I was just reporting &lt;a href=&#039;http://tracker.moodle.org/browse/MDLSITE-594&#039;&gt;MDLSITE-594&lt;/a&gt; and I noticed &lt;a href=&#039;http://moodle.org/tag/index.php?tag=mojitos&#039;&gt;Mojtos&lt;/a&gt; in Martins profile interests. Mojitos have become somewhat of a moot tradition which i&#039;ve also come to appreciate! In the &lt;i&gt;current economic climate&lt;/i&gt; -  its probably the most stable moodle development currency! &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/tongue.png&quot; alt=&quot;:-P&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; &lt;br /&gt;
&lt;br /&gt;
So who is responsible for introducing the moodle&#039;s premier cocktail &amp;amp; is there more to it than the first two shared letters? &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 18 Dec 2008 21:31:08 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2008-12-5.html</guid>
    <category>mojito</category>
<category>moodle</category>
<category>moodlemoot</category>

</item>
<item>
    <title>Rewriting history with git</title>
    <link>http://blog.danpoltawski.co.uk/archives/2008-12-Rewriting-history-with-git.html</link>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2008-12-Rewriting-history-with-git.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=4</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    On my home laptop I use git for personal projects and company projects, when using git I try to use the appropriate email address for task. [1]&lt;br /&gt;
&lt;br /&gt;
On a project I was working on today I managed to forget to do this and made 20 commits in the wrong email address. Git is an incredibly versitile tool and I frequently find i&#039;m restricted not by what it can do, but my knowledge of the tool which will help me! In this case it was &lt;a href=&#039;http://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html&#039;&gt;git-filter-branch&lt;/a&gt;, which lets you rewrite history, in seconds.&lt;br /&gt;
&lt;br /&gt;
I used the following to rewrite my email address from work to my personal email address&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
git-filter-branch --env-filter \&lt;br /&gt;
&#039;if [ &quot;$GIT_AUTHOR_EMAIL&quot; = &quot;dan@work&quot; ];&lt;br /&gt;
then&lt;br /&gt;
     export GIT_AUTHOR_EMAIL=&quot;dan@personal&quot;&lt;br /&gt;
fi&#039;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
[1] Easily achieved by setting my work email in the global .gitconfig and per-repoistory config overrides for exceptions on personal projects (in the minority)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Edit:&lt;/b&gt;I forgot about the git committer field though, doh! 
    </content:encoded>

    <pubDate>Tue, 16 Dec 2008 23:34:05 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2008-12-4.html</guid>
    <category>git</category>
<category>tips</category>

</item>
<item>
    <title>7 Years of Moodle Development in 7 Minutes</title>
    <link>http://blog.danpoltawski.co.uk/archives/2008-12-7-Years-of-Moodle-Development-in-7-Minutes.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2008-12-7-Years-of-Moodle-Development-in-7-Minutes.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=3</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    I came across &lt;a href=&#039;http://vis.cs.ucdavis.edu/~ogawa/codeswarm/&#039;&gt;code_swarm&lt;/a&gt; and couldn&#039;t resist &lt;a href=&#039;http://vimeo.com/2405525&#039;&gt;trying it out&lt;/a&gt;, its cool to see the progression as more contributors come on board over the years..&lt;br /&gt;
&lt;br /&gt;
&lt;object width=&quot;400&quot; height=&quot;302&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=2405525&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00adef&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=2405525&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00adef&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;400&quot; height=&quot;302&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href=&quot;http://vimeo.com/2405525&quot;&gt;7 Years of Moodle Development&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user995207&quot;&gt;Dan Poltawski&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Tue, 02 Dec 2008 14:59:38 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2008-12-3.html</guid>
    <category>code_swarm</category>
<category>moodle</category>

</item>
<item>
    <title>Moodle 2.0 and Googley Plugins</title>
    <link>http://blog.danpoltawski.co.uk/archives/2008-12-Moodle-2.0-and-Googley-Plugins.html</link>
            <category>moodle</category>
    
    <comments>http://blog.danpoltawski.co.uk/archives/2008-12-Moodle-2.0-and-Googley-Plugins.html#comments</comments>
    <wfw:comment>http://blog.danpoltawski.co.uk/wfwcomment.php?cid=1</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.danpoltawski.co.uk/rss.php?version=2.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    

    <author>nospam@example.com (Dan Poltawski)</author>
    <content:encoded>
    &lt;img src=&quot;http://blog.danpoltawski.co.uk/uploads/picasa_reposcreenshot.png&quot; alt=&quot;Early screenshot of Picasa Web Albums with Picasa Plugin&quot; style=&quot;float:right; margin: 0px 0px 15px 15px;&quot; /&gt; One of the many major features in the &lt;a href=&quot;http://docs.moodle.org/en/Roadmap&quot; title=&quot;Moodle 2.0 Roadmap&quot;&gt;Moodle 2.0 Roadmap&lt;/a&gt; is an overhaul to handling of the files in Moodle. The Portfolio (push from moodle) &amp;amp; Repository (pull to moodle) API&#039;s allow for external systems to interact with Moodle and bring exciting new possibilities!&lt;br /&gt;
&lt;br /&gt;
A few months back when &lt;a href=&#039;http://she.geek.nz/&#039;&gt;Penny&lt;/a&gt; and the &lt;a href=&#039;http://moodle.com/hq&#039;&gt;gang in Australia&lt;/a&gt; were working toward getting a stabilised API, I decided to test them out and try to develop plugins for Google Docs during a free weekend. I was really pleased about how easy the plugins were to develop and found the process very productive - I used the api in a slightly different way to existing plugins which allowed for additional testing and we collaboratively improved things. &lt;br /&gt;
&lt;br /&gt;
The Google API&#039;s are pretty simple to get to grips with - whilst there is a &lt;a href=&#039;http://framework.zend.com/download/gdata/&#039;&gt;mammoth zend php library&lt;/a&gt; which will interact with google already, I wrote my own since I didn&#039;t think we really wanted that much bloat in Moodle. All in all it was quite a fun experience, and I got mostly working portfolio and repository plugins with very little work. &lt;br /&gt;
&lt;br /&gt;
Unfortunately with the repository plugin, &#039;mostly working&#039; was as far as I could get.. I could browse my Google Docs from Moodle, narrow down documents by text searches of the document contents and even delete the documents if I wanted - but not download the document into Moodle. Which made the plugin largely useless.. There are a &lt;a href=&quot;http://code.google.com/p/gdata-issues/issues/detail?id=35&quot;&gt;few&lt;/a&gt; open &lt;a href=&quot;http://code.google.com/p/gdata-issues/issues/detail?id=70&quot;&gt;bugs&lt;/a&gt; for this and it seems google are working on a solution, but for the time being its a little bit frustrating. There is a workaround using a different method of authentication but i&#039;ve not yet got that to work either.&lt;br /&gt;
&lt;br /&gt;
At the time I didn&#039;t commit my plugins to moodle and left them in my own git repository as I wasn&#039;t happy with this situation, I also wanted to investigate if &lt;a href=&#039;http://oauth.net/&#039;&gt;OAuth&lt;/a&gt; was worth using and rapidly became busy with other things.&lt;br /&gt;
&lt;br /&gt;
This weekend I finally got some time to work on this again and get some of the work into moodle core.&lt;br /&gt;
&lt;br /&gt;
For authentication, i&#039;ve created the plugins using &lt;a href=&#039;http://code.google.com/apis/accounts/docs/AuthSub.html&#039;&gt;Google&#039;s AuthSub&lt;/a&gt; (whilst keeping it pluggable), which still seems to be the best way of authenticating users for Moodle because:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;It doesn&#039;t require any administrator setup (registering, adding API keys/certificates etc)&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;It doesn&#039;t make the user enter their google username and password anywhere other than google (I feel very strongly that this is security practice we should be encouraging)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
OAuth looks pretty good and useful for authenticating with multiple services, but it&#039;d require &lt;a href=&#039;http://code.google.com/apis/gdata/articles/oauth.html#Registration&#039;&gt;a considerable amount&lt;/a&gt; of administrator setup which I was keen to avoid in favour of the plugins being used &lt;img src=&quot;http://blog.danpoltawski.co.uk/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
After a bit of tidying up and updating to match the recent moodle developments I&#039;ve now commited the Google Docs Portfolio plugin. It allows images and documents to be exported to Google Documents in a basic manner. I&#039;ve not found a solution to the google docs repository saving problem, but i&#039;ve created &lt;a href=&#039;http://git.danpoltawski.co.uk/?p=moodle.git;a=commitdiff;h=39fba8f46a423b3ebccf1b435420e22cd48f7524&#039;&gt;a prototype&lt;/a&gt; which will just insert links to google documents (rather than embedding the content).&lt;br /&gt;
&lt;br /&gt;
As the Google API&#039;s are pretty consistent, most of the work I did creating a library for Google Docs could be used to create plugins for Picasa Web Albums in very little time, so i&#039;ve also created plugins for Picasa too and these allow both import and export from Moodle to Picasa. It should be reasonably simple to make other googley plugins by expanding &lt;a href=&#039;http://cvs.moodle.org/moodle/lib/googleapi.php&#039;&gt;lib/googleapi.php&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve made a hacky &lt;a href=&#039;http://uk.youtube.com/watch?v=bDCK4_1i4Is&#039;&gt;little screencast&lt;/a&gt; to show off these features at this early stage:&lt;br /&gt;
&lt;br /&gt;
&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/bDCK4_1i4Is&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/bDCK4_1i4Is&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 01 Dec 2008 18:12:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.danpoltawski.co.uk/archives/2008-12-1.html</guid>
    <category>development</category>
<category>google api</category>
<category>moodle</category>
<category>picasa</category>

</item>

</channel>
</rss>