<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>
<channel>
<title>Solution Grove Blog</title>
<link>http://www.solutiongrove.com/blogger/</link>
<description>Solution Grove Blog</description>
<generator>OpenACS 5.0</generator>
<lastBuildDate>Mon, 23 Jan 2012 14:06:20 GMT</lastBuildDate>
<image>
<title>Solution Grove Blog</title>
<url>http://www.solutiongrove.com/resources/lars-blogger/sgrove.jpg</url>
<link>http://www.solutiongrove.com/blogger/</link>
<width>145</width>
<height>100</height>
</image>
<item>
<title>Setting up a Khan Academy Development Evironment on Debian 6</title>
<link>http://www.solutiongrove.com/blogger/2012/01/23/setting-up-a-khan-academy-development-evironment-on-debian-6</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2012/01/23/setting-up-a-khan-academy-development-evironment-on-debian-6</guid>
<description>The Khan Academy platform is Open Source and you can setup your own custom installation, or contribute to Khan Academy platform development by setting up your very own development environment.

I have setup the Khan Academy platform development environment on Debian 6 and Ubuntu 11.04 so far.

I'll concentrate on Debian 6.

First setup a new install of Debian 6, or use an existing install. There are a few software requirements. 

If you don't already have them install the basics:


...</description>
<content:encoded><![CDATA[<div style="display:block;text-align:center;font-size:0.8em;float:left;padding:0 10px 10px 0;"><img src="http://www.solutiongrove.com/image/1649774/1649774_ka-deb.png" border="0"></div>The <a href="http://www.khanacademy.org/">Khan Academy</a> platform is Open Source and you can setup your own custom installation, or contribute to Khan Academy platform development by setting up your very own development environment.

I have setup the Khan Academy platform development environment on Debian 6 and Ubuntu 11.04 so far.

I'll concentrate on Debian 6.

First setup a new install of Debian 6, or use an existing install. There are a few software requirements. 

If you don't already have them install the basics:

<pre>
apt-get install build-essential unzip python 2.5 python-setuptools python2.6-dev python-dulwich 
</pre>

You need mecurial 1.8 so add the backports repository. Add 
<pre>
deb http://backports.debian.org/debian-backports squeeze-backports main
</pre>
to /etc/apt/sources.list and run
<pre>
apt-get update
</pre>
Now install mecurial 1.8
<pre>
apt-get install -t squeeze-backports mercurial
</pre>
Now install hg-git using easy_install for python
<pre>
easy_intsall hg-git
</pre>

Once you have all the basic requirements you'll need the Google Appengine SDK for Python. Get the latest version here: http://code.google.com/appengine/downloads.html

The latest as of this writing is 1.6.1.
<pre>
wget http://googleappengine.googlecode.com/files/google_appengine_1.6.1.zip
unzip google_appengine_1.6.1.zip
</pre>

Now get the Khan Academy code

<pre>
hg clone https://khanacademy.kilnhg.com/Repo/Website/Group/stable
</pre>

This will put the code in a directory called stable, rename it if you like so you can find it easily.

Edit the app.yaml file and change application: to your app name. Change version: to 1. You can use any short name for the application name. If you have setup an app on Google Appengine already you'll use that name, but you can run the platform locally with any short name.

Now you can startup the python webserver replace APP_PATH with the path to the Khan Academy code (named stable if you didn't change it).
<pre>
python2.5 google_appengine/google/appengine/tools/dev_appserver.py KA_CODE_PATH
</pre>

You can now load the sample data so you have something to look at:

<pre>
cd KA_CODE_PATH/sample_data
python2.5 sample_data.py -a PATH_TO_GOOGLE_APP_ENGINE/appcfg.py -ulocalhost:8080 -a dev~APPNAME
</pre>
This command must be run from the sample_data directory under the KA code base. NOTE the appname in app.yaml needs to be preceeded by dev~ using the latest version of the SDK.

This will take a while to run. After that try visiting http://localhost:8080/ to see you new Khan Academy development installation.
]]></content:encoded>
<pubDate>Mon, 23 Jan 2012 14:06:20 GMT</pubDate>
</item>
<item>
<title>Wolfram Conference on Computer Based Math or How to Disrupt Assessment</title>
<link>http://www.solutiongrove.com/blogger/2011/12/21/wolfram-conference-on-computer-based-math-or-how-to-disrupt-assessment</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/12/21/wolfram-conference-on-computer-based-math-or-how-to-disrupt-assessment</guid>
<description>I recently attended Conrad Wolfram&amp;rsquo;s conference on computer based math (http://www.computerbasedmath.org/).&amp;nbsp; People from all over the world gathered to give examples and discuss how to improve math education.&amp;nbsp; Conrad was quite actively involved, not just giving the keynote and closing remarks but asking questions and actively participating in the room the full two days.&amp;nbsp; He clearly cares deeply and was listening carefully to decide what to do next.
&amp;nbsp;
Being a bit of ...</description>
<content:encoded><![CDATA[<div style="display:block;text-align:center;font-size:0.8em;float:right;padding:0 0 10px 15px;"><img src="http://www.solutiongrove.com/image/1643628/1643628_badge-home.png" border="0"><br>(photo by <a href="http://www.computerbasedmath.org/">Computer Based Math</a>)</div>I recently attended Conrad Wolfram&rsquo;s conference on computer based math (<a href="http://www.computerbasedmath.org/">http://www.computerbasedmath.org/</a>).&nbsp; People from all over the world gathered to give examples and discuss how to improve math education.&nbsp; Conrad was quite actively involved, not just giving the keynote and closing remarks but asking questions and actively participating in the room the full two days.&nbsp; He clearly cares deeply and was listening carefully to decide what to do next.<br />
&nbsp;<br />
Being a bit of a &ldquo;gamifier&rdquo; these days, I made up my own imaginary game for this conference: A contest, where each invited participant had to create a plan for what Conrad Wolfram should do next, given his goals and beliefs and resources.&nbsp; Note, as far as I know no one else is playing this game, nor is there a prize, but if someone else wants to play please post a link to your entry in the comments. :)<br />
&nbsp;<br />
Conrad Wolfram does an eloquent job of laying out his goals in his TED talk, which has been viewed by millions of people.&nbsp; If you haven&rsquo;t seen it, please watch it now before reading any further. (<a href="http://www.computerbasedmath.org/resources/reforming-math-curriculum-with-computers.html">http://www.computerbasedmath.org/resources/reforming-math-curriculum-with-computers.html</a>)<br />
&nbsp;<br />
<strong>What do I think Conrad Wolfram should do? </strong><br />
<br />
I suggest Wolfram should focus on disrupting high stakes assessment by creating a new assessment.&nbsp; In addition, he should initially aim for the use of his new assessment by corporations hiring young adults for entry level jobs.<br />
&nbsp;<br />
<strong>Why Assessment? </strong><br />
&nbsp;<br />
In the conference, both the presenters in front of the room and the front line educators I talked to during break agreed that assessment was the tail wagging the dog of math education.&nbsp; They teach to the test and the students are motivated to learn because they need to pass high stakes tests. Parents see test scores as critical for their child&rsquo;s success and administrators and governments use test scores as a measure of success.&nbsp;&nbsp; People may say they hate the tests but all the reward and motivation processes are tied to the tests.&nbsp; Change the assessment and people will change how they teach and learn.<br />
<br />
<strong>How can the Assessments be changed?</strong><br />
&nbsp;<br />
The conference was attended by about 150 people. I would say almost everyone agreed with the majority of Conrad&rsquo;s TED talk.&nbsp; However, even in this friendly room, by the end of the first day, many people were noticing that in a conference about how important it was for people to be able to interpret and manipulate real world data, no data was being presented, only anecdotes.&nbsp; This was explicitly stated in some of the talks the second day.<br />
&nbsp;<br />
Thus one of the conclusions I draw from this conference was that Wolfram needs to present data to be taken seriously.&nbsp; Because of who he is and what he is trying to promote he will be held to a higher standard on having data to support his thesis, and the world of education in general is working to become more data driven.<br />
&nbsp;<br />
During one of the breaks I asked Conrad why he didn&rsquo;t mine the vast wealth of existing assessment data to support his proposals.&nbsp; He said that the current assessments are so thoroughly focused on the wrong thing that he is worried that using that data will result in the wrong conclusions.&nbsp; That is, if the tests are built to test computational skill, and you teach people how to use math to solve real world problems with computers, the results of the test of computational skills may quite likely go down.&nbsp; Thus he is concerned that using existing test data may damn his curriculum ideas.<br />
&nbsp;<br />
<strong>How can good Data be collected?</strong><br />
<br />
There were quite a few people focused on assessment attending the invitational conference, so clearly Conrad and the organizers know that assessment is a hugely important piece of the puzzle.&nbsp; But if you believe all the current high stakes tests are rubbish, how do you disrupt the mature, highly bureaucratic, regulated existing big business that is high stakes tests?&nbsp; No one will accept Wolfram&rsquo;s new assessment without good data.&nbsp; What organization or country will take the risk to both give and teach to these new unproven assessment instruments so that data can be collected?<br />
&nbsp;<br />
<strong>Disrupting High Stakes Testing</strong> &nbsp;<br />
<br />
Let&rsquo;s take a look at high stakes tests through the lens of Christensen&rsquo;s theory of Disruptive Technology.&nbsp; Christensen says that disruptive technologies are first adopted by people who are not consumers of the current dominant technology.&nbsp; The new technology does not start out better for everyone; it starts out the better, or often for some minor reason, the only choice for some subsegment of consumers who are not currently using the dominant technology.<br />
&nbsp;<br />
Who are the consumers of high stakes math tests? The students?&nbsp; They take the tests, and in some cases pay for them, but they aren&rsquo;t paying because they want the scores, they are paying as part of the cost of applying for educational opportunities.&nbsp;&nbsp; Thus arguably the consumers, and certainly the users, of the data generated by high stakes testing are currently educational institutions and governments.&nbsp; Educational institutions use the scores to decide who to admit and government agencies at various levels use them to attempt to evaluate their government funded schools.&nbsp; There are probably a few other uses but this seems to me to be most of the uses of the test scores.&nbsp; &nbsp;<br />
&nbsp;<br />
There is another group that, like colleges, expends significant resources to sort young adults -- Employers.&nbsp; They try to use grades, diplomas and certificates, interviews and sometimes test scores to decide who they are going to hire. &nbsp;<br />
<br />
Conrad&rsquo;s thesis is (and I agree) that his wider definition of Math skills matches what employers need better than the educational system&rsquo;s focus on computation.&nbsp; He is also CEO of a corporation and has better access to other CEOs then most educational reformers.&nbsp; I suggest he can use these connections to find partners who are large global employers and convince them to invest their resources into giving this new assessment to people before they hire them.&nbsp; This would allow large scale data collection and allow the assessment creators to work on fine tuning an assessment that correlates to work place success.<br />
<br />
With compelling data sets and the incentive of having large global employers saying this a test they care about the results of when hiring, I think schools and governments would have the political cover to teach to these tests, and change the laws to allow the existing high stakes testing to be changed.<br />
<br />
Not an easy task and a plan that will take years, but I do think this is a plan consistent with Conrad Wolfram's goals and beliefs and one that he is in a uniquely good position to implement.<br />
<br />
Good luck!&nbsp; 
]]></content:encoded>
<pubDate>Wed, 21 Dec 2011 19:19:30 GMT</pubDate>
</item>
<item>
<title>Quickly Collect Anayltics With Piwik and Elgg</title>
<link>http://www.solutiongrove.com/blogger/2011/12/13/quickly-collect-anayltics-with-piwik-and-elgg</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/12/13/quickly-collect-anayltics-with-piwik-and-elgg</guid>
<description>Cash Costello posted a great tutorial to quickly get Elgg collecting stats with Piwik by creating a new simple plugin to extend the analytics view.

We are using Piwik with some Elgg sites and we do this in a similar way by using a plugin that holds all the custom code for that particular site. 

Piwik is a great open source tool that lets you collect statistics similar to Google Analytics and also allows customization and integration. We have done some custom integration with Piwik and El...</description>
<content:encoded><![CDATA[Cash Costello posted a <a href="http://cashcostello.com/blog/2010/04/piwik-and-elgg.html">great tutorial to quickly get Elgg collecting stats with Piwik</a> by creating a new simple plugin to extend the analytics view.

We are using Piwik with some Elgg sites and we do this in a similar way by using a plugin that holds all the custom code for that particular site. 

<a href="http://piwik.org/">Piwik</a> is a great open source tool that lets you collect statistics similar to Google Analytics and also allows customization and integration. We have done some custom integration with Piwik and Elgg via the Piwik plugin API.]]></content:encoded>
<pubDate>Tue, 13 Dec 2011 16:27:10 GMT</pubDate>
</item>
<item>
<title>Piwik - DIY Analytics and Integration</title>
<link>http://www.solutiongrove.com/blogger/2011/11/14/piwik-diy-analytics-and-integration</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/11/14/piwik-diy-analytics-and-integration</guid>
<description>Piwik is an Open Source web analytics platform. This gives you similar statistics as Google Analytics with full control over all aspects of the data collection and reporting.

Piwik gives you a huge amount of control over the collection and display of statistics and has a great plugin API for customization and integration. I used this to do some direct integration with Elgg. This allowed me to build reports based on specific inteactions within Elgg, and to collect stats such as most active u...</description>
<content:encoded><![CDATA[<div style="display:block;text-align:center;font-size:0.8em;float:left;padding:0 10px 10px 0;"><img src="http://www.solutiongrove.com/image/1637205/1637205_Piwik-?-Web-Analytics-Reports-.png" border="0"></div><a href="http://piwik.org/">Piwik</a> is an Open Source web analytics platform. This gives you similar statistics as Google Analytics with full control over all aspects of the data collection and reporting.

Piwik gives you a huge amount of control over the collection and display of statistics and has a great plugin API for customization and integration. I used this to do some direct integration with <a href="http://www.elgg.org/">Elgg</a>. This allowed me to build reports based on specific inteactions within Elgg, and to collect stats such as most active users, most interesting content, and to build client specific reports for user activity.

Piwik also allows embedding the reports and graphs within another web page, so I was able to integrate the Piwik reports along with custom report data generated within the Elgg platform to show the analytics within a custom Elgg administraive user interface. The user experience for Elgg administrators allows them to view all the analytics without leaving Elgg or using another login.

Piwik offers great potential for intergration and custom analytics for any web platform.]]></content:encoded>
<pubDate>Mon, 14 Nov 2011 15:11:27 GMT</pubDate>
</item>
<item>
<title>jQuery File Upload</title>
<link>http://www.solutiongrove.com/blogger/2011/11/01/jquery-file-upload</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/11/01/jquery-file-upload</guid>
<description>There are many enhanced HTML/Javascript/Ajax/Flash file upload widgets you can use. The landscape is constantly changing and the newer widgets are offering interesting new features based on HTML 5 on browsers where it is available.

I have reviewed two options, Jquery File Upload and Plupload. I decided on Jquery File Upload due to its greater simplicity and ease of customization. 

Jquery File Upload is a jQuery UI plugin, which takes advantage of HTML 5 features where available, while st...</description>
<content:encoded><![CDATA[<div style="display:block;text-align:center;font-size:0.8em;float:right;padding:0 0 10px 15px;"><img src="http://www.solutiongrove.com/image/1634009/1634009_1320156894_upload.png" border="0"></div>There are many enhanced HTML/Javascript/Ajax/Flash file upload widgets you can use. The landscape is constantly changing and the newer widgets are offering interesting new features based on HTML 5 on browsers where it is available.

I have reviewed two options, <a href="http://aquantum-demo.appspot.com/file-upload">Jquery File Upload</a> and <a href="http://www.plupload.com/">Plupload</a>. I decided on Jquery File Upload due to its greater simplicity and ease of customization. 

<a href="http://aquantum-demo.appspot.com/file-upload">Jquery File Upload</a> is a jQuery UI plugin, which takes advantage of HTML 5 features where available, while still offering an acceptable user experience on browsers that do not support HTML 5 file upload yet. The <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Plugin-extensions">jQuery UI Plugin design is very straightforward to extend and override the default behavior</a>, and produces very clean code. If you want the easiest to integrate, and extend, use Jquery File Upload.

<a href="http://www.plupload.com/index.php">Plupload</a> is very feature-rich, and can include Flash, Silverlight, and Browserplus plugins to support the most rich features on the widest range of platforms including image resizing, upload progress, and chunked uploading. Plupload also has a similar extend/overide design that you can use to customize the widget. An experienced Javascript developer will be able to fully customize this widget. 

The future of file upload usability is looking good, as more browsers support HTML 5 file upload the file upload widgets will be even better.]]></content:encoded>
<pubDate>Tue, 01 Nov 2011 15:03:05 GMT</pubDate>
</item>
<item>
<title>Moodle 2 OAuth-based Single Sign-On to Wordpress and Elgg</title>
<link>http://www.solutiongrove.com/blogger/2011/10/13/moodle-2-oauth-based-single-sign-on-to-wordpress-and-elgg</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/10/13/moodle-2-oauth-based-single-sign-on-to-wordpress-and-elgg</guid>
<description>
We recently upgraded our Moodle 1.9 clients to Moodle 2.1.&amp;nbsp; One of our clients also uses Wordpress with their students as a portfolio platform.&amp;nbsp; As part of the upgrade, the client wanted us to develop a Single Sign-On solution between Moodle and Wordpress where the students on Moodle just need to click a link and they will be automatically logged in to their Wordpress subsite.&amp;nbsp; Moodle would be the authentication authority so automatic account creation on the Wordpress side is ...</description>
<content:encoded><![CDATA[<p>
We recently upgraded our Moodle 1.9 clients to Moodle 2.1.&nbsp; One of our clients also uses Wordpress with their students as a portfolio platform.&nbsp; As part of the upgrade, the client wanted us to develop a Single Sign-On solution between Moodle and Wordpress where the students on Moodle just need to click a link and they will be automatically logged in to their Wordpress subsite.&nbsp; Moodle would be the authentication authority so automatic account creation on the Wordpress side is also a requirement if no corresponding account exists yet on Wordpress.<br />
<br />
We've done several SSO implementations before on Moodle 1.9&nbsp; based on Moodle's MNET.&nbsp; But MNET will soon to be discontinued so we needed another solution that will be easily supported by Moodle.&nbsp; I've read that Moodle 2 is going to take the OAuth route but that it's not ready yet.&nbsp; Therefore I decided to&nbsp; write a basic OAuth server implementation for Moodle 2 and a corresponding OAuth consumer client for Wordpress.&nbsp; Hopefully, when Moodle 2's OAuth replacement for MNET is mature enough, the scripts to move our clients to this implementation are easy enough to create.<br />
<br />
One of our&nbsp; other clients was using the Moodle 1.9 MNET implementation to SSO with Elgg.&nbsp; I was able to code an Elgg OAuth consumer plugin as well which is able to communicate with the same Moodle OAuth server so this allowed us to upgrade all of our Moodle 1.9 installs to the newer Moodle 2.1 and still retain the SSO functionality to different platforms that they require.<br />
<br />
I've provided a tarball of the code implementation <a href="/blogger-downloads/download/sg-oauth-for-moodle2.tar.gz?file%5fid=1630303">here</a> in case this sort of implementation is useful to you.&nbsp; This includes the Moodle 2 OAuth server plugin, the consumer client plugin for Elgg 1.7 and the consumer client plugin for Wordpress.&nbsp; The wordpress plugin has been tested and runs on Wordpress 3.0.5 but the code is straightforward enough that it might work without modifications on later Wordpress versions.&nbsp; If you want to SSO to another platform but still want to use Moodle 2 as your identity provider then you can still use the server implementation of this code and write your own consumer client implementation.
</p>
<p>
<a href="/blogger-downloads/download/sg-oauth-for-moodle2.tar.gz?file%5fid=1630303">Download the code</a>. 
</p>
]]></content:encoded>
<pubDate>Fri, 14 Oct 2011 02:57:03 GMT</pubDate>
</item>
<item>
<title>Notes on Upgrading to Moodle 2.1.x</title>
<link>http://www.solutiongrove.com/blogger/2011/10/03/notes-on-upgrading-to-moodle-2-1-x</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/10/03/notes-on-upgrading-to-moodle-2-1-x</guid>
<description>We've recently upgraded several sites running on Moodle 1.9.x to 2.1.x.&amp;nbsp; The underlying code between these versions are miles apart but the moodle upgrade code does a good job of keeping the process simple and straightforward.&amp;nbsp; The upgrade procedure is similar to how one upgrades to a newer point version (e.g. 1.9.2 to 1.9.3).&amp;nbsp; It's basically replacing the old code with a new one and logging in as an admin and visiting the site url.&amp;nbsp; Here are some notes to remember.

	Alw...</description>
<content:encoded><![CDATA[<div style="display:block;text-align:center;font-size:0.8em;float:right;padding:0 0 10px 15px;"><img src="http://www.solutiongrove.com/image/1628916/1628916_moodle-logo.gif" border="0"><br>(photo by <a href="http://moodle.org">Moodle</a>)</div>We've recently upgraded several sites running on Moodle 1.9.x to 2.1.x.&nbsp; The underlying code between these versions are miles apart but the moodle upgrade code does a good job of keeping the process simple and straightforward.&nbsp; The upgrade procedure is similar to how one upgrades to a newer point version (e.g. 1.9.2 to 1.9.3).&nbsp; It's basically replacing the old code with a new one and logging in as an admin and visiting the site url.&nbsp; Here are some notes to remember.<br />
<ol>
	<li>Always check beforehand if the 3rd-party modules you have installed have newer versions that are compatible with 2.1.&nbsp; If there's none then they will be disabled so this might affect your decision to upgrade if these plugins are important to be enabled in your instance.&nbsp; If you're ok with them being disabled after the upgrade but still want to use them in the future then it can be upgraded separately once they have proper upgrade scripts.<br />
	&nbsp;</li>
	<li>There may be some some Moodle 1.9 core modules that were phased out and not being maintained anymore for 2.x so you'll need to plan for those as well before you deploy. An example of this is the journal plugin which has been officially discontinued but still being maintained under contrib.&nbsp; Some plugins like exercise are not being maintained anymore since the newer code now recommends the use of assignment and workshop modules instead.<br />
	&nbsp;</li>
	<li>Moodle 1.9 themes are not compatible with 2.1 so you'll need to use one of the included themes or look for one that supports Moodle 2 (<a href="http://moodle.org/themes" target="_blank">http://moodle.org/themes</a>).&nbsp; If you need to use elements in your current theme then it's probably better to copy an included stock theme to your own theme folder and start modifying the copied theme.&nbsp; The Moodle 2 themes are highly configurable so that helps a lot.<br />
	&nbsp;</li>
	<li>Don't forget to copy over to the config.php file your setting for &quot;passwordsaltmain&quot; if it's present or you'll not be able to login.<br />
	&nbsp;</li>
	<li>This is a given.&nbsp; Make sure you test the upgrade first on a copy of your data before doing the actual upgrade.&nbsp; And when you do the upgrade make sure you backup your database as well as your data repository.&nbsp; Moodle 2 upgrades the structure of the moodle data directory so it's important that you have a copy of the old format in case you want to revert.<br />
	&nbsp;</li>
	<li>After the core upgrade there are some additional tasks related to the system (e.g. converting to your database tables to innodb format) that you may need to do.&nbsp; Most of these will be displayed in your admin notifications screen.<br />
	&nbsp;</li>
	<li>Moodle 2 now makes use of a repositories file system and this is one of the major difference from Moodle 1.&nbsp; It could be a little confusing to use when one is accustomed to the old one so you may want to train your teachers/instructors on how to use this system.<br />
	&nbsp;</li>
	<li>IMS repository support is not yet quite there for Moodle 2 so this is something to consider if you are using one.<br />
	&nbsp;</li>
</ol>
This is not in any way complete but these are the more common ones to consider when doing the upgrade.&nbsp; Hopefully you'll have a smooth and flawless process once it's your time to upgrade.
]]></content:encoded>
<pubDate>Mon, 03 Oct 2011 17:09:38 GMT</pubDate>
</item>
<item>
<title>Jquery Create Event</title>
<link>http://www.solutiongrove.com/blogger/2011/09/28/jquery-create-event</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/09/28/jquery-create-event</guid>
<description>The jQuery live event handler can monitor the DOM for changes and add event handlers to those elements that match a selector. It can not bind a function that fires when the DOM changes to check if a specific element has been added. Often when you need to work with third-party code, you might need to wait for an element to be added as the result of an Ajax request.

In this case you can use the create-event plugin. You can bind the create event to the eventual parent element where a new eleme...</description>
<content:encoded><![CDATA[The jQuery live event handler can monitor the DOM for changes and add event handlers to those elements that match a selector. It can not bind a function that fires when the DOM changes to check if a specific element has been added. Often when you need to work with third-party code, you might need to wait for an element to be added as the result of an Ajax request.

In this case you can use the create-event plugin. You can bind the create event to the eventual parent element where a new element will be created and trigger whatever code you need that relies on the new element's existence.

You can use this to add a plugin or just run some code:

<pre>
// when a new div.foo element enters the DOM, call somePlugin() on it.
$("div.foo").live("create", function(){
	$(this).somePlugin();
});
</pre>

<pre>
// when a new div.foo element enters the DOM, trigger some code.
$("div.foo").live("create", function(){
	$(this).addClass('bar');
        $(this).css('width','100%');
});
</pre>
]]></content:encoded>
<pubDate>Wed, 28 Sep 2011 17:52:13 GMT</pubDate>
</item>
<item>
<title>Fetching all global variables with Javascript</title>
<link>http://www.solutiongrove.com/blogger/2011/09/28/fetching-all-global-variables-with-javascript</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/09/28/fetching-all-global-variables-with-javascript</guid>
<description>I was trying to debug a 3rd-party script, and analyze its behavior to extend it without modifying the original code. The original code was obfuscated since it requires a license agreement. 

All of the functions and variable names were obfuscated so it was difficult to determine exactly what was going on. It was clear there were some data structures containing the information that drove the script behavior but I did not know their names.

So I needed to search through the global namespace ...</description>
<content:encoded><![CDATA[<div style="display:block;text-align:center;font-size:0.8em;float:left;padding:0 10px 10px 0;"><img src="http://www.solutiongrove.com/image/1627990/1627990_window.png" border="0"></div>I was trying to debug a 3rd-party script, and analyze its behavior to extend it without modifying the original code. The original code was obfuscated since it requires a license agreement. 

All of the functions and variable names were obfuscated so it was difficult to determine exactly what was going on. It was clear there were some data structures containing the information that drove the script behavior but I did not know their names.

So I needed to search through the global namespace to track down the variables I needed to access to extend the script behavior. I searched around google and there are a few different solutions.

<ul>
<li>Fetching all global variables into an array: http://stackoverflow.com/questions/2226007/fetching-all-javascript-global-variables-in-a-page
- This works if you need to access the variables programatically</li>
<li>If you are using Google Chrome console or Firefox with Firebug console you can just type

window

which will show the window object in the console. You can then click he DOMwindow object shown to expand and see all the window properties and browse through them.</li>
</ul> ]]></content:encoded>
<pubDate>Wed, 28 Sep 2011 15:52:26 GMT</pubDate>
</item>
<item>
<title>Simple, Beautiful Tooltips with JQuery Tools</title>
<link>http://www.solutiongrove.com/blogger/2011/09/20/simple-beautiful-tooltips-with-jquery-tools</link>
<guid isPermaLink="true">http://www.solutiongrove.com/blogger/2011/09/20/simple-beautiful-tooltips-with-jquery-tools</guid>
<description>A quick search will turn up many JQuery plugins that can produce a tooltip effect for your web site. The trick is narrowing this down, and finding the one that is the most effective, and productive solution.

My research lead me to JQuery Tools, an add-on library for JQuery that contains the Tooltip effect, along with several other useful UI elements such as forms, overlays, tabs, scrollable, along with mousehweel and back button control.

I like the JQuery Tools tooltip because it is very...</description>
<content:encoded><![CDATA[<div style="display:block;text-align:center;font-size:0.8em;float:right;padding:0 0 10px 15px;"><img src="http://www.solutiongrove.com/image/1625254/1625254_Screenshot-Using_any_HTML_inside_the_tooltip_-_Google_Chrome2.png" border="0"></div>A quick search will turn up many <a href="http://plugins.jquery.com/">JQuery plugins</a> that can produce a tooltip effect for your web site. The trick is narrowing this down, and finding the one that is the most effective, and productive solution.

My research lead me to <a href="http://flowplayer.org/tools/index.html">JQuery Tools</a>, an add-on library for JQuery that contains the <a href="http://flowplayer.org/tools/tooltip/index.html">Tooltip effect</a>, along with several other useful UI elements such as forms, overlays, tabs, scrollable, along with mousehweel and back button control.

I like the JQuery Tools tooltip because it is very simple, and can be added easily on page load, or added to dynamically created elements. In addition you can dynamically locate the tooltip depending on the relative location of the mouse and the browser window. The tooltips also can easily contain any HTML content and be populated from a span or div related to the trigger element.

The Jquery Tools library is from the makers of the <a href="http://flowplayer.org/index.html">Flowplayer multimedia embed library</a>.]]></content:encoded>
<pubDate>Tue, 20 Sep 2011 19:56:15 GMT</pubDate>
</item>
</channel>
</rss>


