<?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>MMISoftware Blog &#187; php</title>
	<atom:link href="http://www.mmisoftware.co.uk/weblog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mmisoftware.co.uk/weblog</link>
	<description>News and views of Mac OS X and iPhone Programming</description>
	<lastBuildDate>Fri, 07 Oct 2011 00:22:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WordPress, Twitter and oauth</title>
		<link>http://www.mmisoftware.co.uk/weblog/2010/09/01/wordpress-twitter-and-oauth/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2010/09/01/wordpress-twitter-and-oauth/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 14:17:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[applecripts]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twurl]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2010/09/01/wordpress-twitter-and-oauth/</guid>
		<description><![CDATA[Twitter has finally turned off all basic authentication and gone over to using oauth. I knew this was coming, I had no excuse to wait to upgrade various Twitter scripts used by MMISoftware, and also the plugins on the range of blogs we host, but I did. So, what did I learn? First, don&#8217;t wait [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2010%2F09%2F01%2Fwordpress-twitter-and-oauth%2F&amp;via=mmisoftware&amp;text=Wordpress%2C+Twitter+and+oauth&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2010%2F09%2F01%2Fwordpress-twitter-and-oauth%2F"  class="twitter-share-button">Tweet</a></div><p>Twitter has finally turned off all basic authentication and gone over to using oauth.  I knew this was coming, I had no excuse to wait to upgrade various Twitter scripts used by <a href="http://mmisoftware.co.uk">MMISoftware</a>, and also the plugins on the range of blogs we host, but I did.  So, what did I learn?</p>

<p><span id="more-619"></span>
First, don&#8217;t wait until the last minute!</p>

<p><strong>Upgrading Applescripts:</strong>  This was interesting.  In basic authentication you could just use curl, but with oath this was not the case.  It turns out the solution was (for me) to use <a href="http://github.com/marcel/twurl/">twurl</a> &#8211; <a href="http://github.com/marcel/twurl/">source</a>. The <a href="http://github.com/marcel/twurl/">twurl</a> site does a good job of explaining the process. Basically, install twurl (in terminal) with:</p>

<p><code>sudo gem install twurl</code></p>

<p>and then authorise twurl with:</p>

<p><code>$ twurl authorize --consumer-key the-key --consumer-secret the-secret</code></p>

<p>Where <em>the-key</em> and <em>the-secret</em> are obtained from the <a href="http://dev.twitter.com/">Twitter Developer</a> site, and are specific for your Twitter account.</p>

<p>Once <em>the-key</em> and <em>the-secret</em> are added to twurl you are prompted for a pin that is obtained via the <a href="http://dev.twitter.com/">Twitter Developer</a> site.  All fairly straight forward.</p>

<p>To use twurl from the command-line you just type:</p>

<p><code>twurl -d "status=This is a twurl test" /1/statuses/update.xml</code></p>

<p>which will post &#8216;This is a twurl test&#8217; to the Twitter account you used to set up twurl on the <a href="http://dev.twitter.com/">Twitter Developer</a> site.</p>

<p>You can then use twurl in your AppleScript by using a &#8216;do shell script&#8217;. For example:</p>

<p><code>set results to do shell script "twurl -d " &amp; twitter_status &amp; " /1/statuses/update.xml"</code></p>

<p>where twitter_status could be &#8216;status=Testing twurl with a location&amp;lat=37.7821120598956&amp;long=-122.400612831116&#8242;, which would &#8216;geolocate&#8217; (geocode) the Twitter post &#8216;Testing twurl with a location&#8217; with the latitude and longitude coordinates 37.7821120598956 and -122.400612831116, respectively.</p>

<p><strong>Upgrading the blogs:</strong> I use the excellent Twitter Tools By <a href="http://crowdfavorite.com/wordpress/plugins/twitter-tools/">Crowd Favorite</a>, these work great.  Twitter Tools post tweets of new blog posts, and log tweets back to your blog.  This all worked great with basic authentication and version 2.4 seems to work very well with oauth. Crowd Favorite have done a very good job with their instructions to walk you through the process of getting your site registered at <a href="http://dev.twitter.com/">Twitter Developer</a>, and getting all the various keys and tokens needed to get oauth working.  Thanks&#8230;.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2010%2F09%2F01%2Fwordpress-twitter-and-oauth%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2010/09/01/wordpress-twitter-and-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Student File Upload system (electronic submission)</title>
		<link>http://www.mmisoftware.co.uk/weblog/2009/03/28/student-file-upload-system-electronic-submission/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2009/03/28/student-file-upload-system-electronic-submission/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 22:08:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2009/03/28/student-file-upload-system-electronic-submission/</guid>
		<description><![CDATA[This was an interesting project, which ran over last summer. The problem: Students need to be able to submit files (essays etc.) on-line Files need to be named with a unique student id assigned by the system Students need to be emailed a reminder and a unique url for the upload Staff need to be [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2009%2F03%2F28%2Fstudent-file-upload-system-electronic-submission%2F&amp;via=mmisoftware&amp;text=Student+File+Upload+system+%28electronic+submission%29&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2009%2F03%2F28%2Fstudent-file-upload-system-electronic-submission%2F"  class="twitter-share-button">Tweet</a></div><p>This was an interesting project, which ran over last summer.</p>

<p><span id="more-310"></span>
The problem:</p>

<p>Students need to be able to submit files (essays etc.) on-line<br />
Files need to be named with a unique student id assigned by the system<br />
Students need to be emailed a reminder and a unique url for the upload<br />
Staff need to be able to track which students have uploaded, and when<br />
Staff need to be able to email students that have failed to submit</p>

<p>So, the upload system used a combination of php and MySQL with students being sent email reminders by a cron script. As files are uploaded the system automatically changes the file name to the unique ID.</p>

<p>The staff get to view (track) uploads using an AJAX driven website, which they can use to automatically email students that have failed to submit.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2009%2F03%2F28%2Fstudent-file-upload-system-electronic-submission%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2009/03/28/student-file-upload-system-electronic-submission/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On-line assessment system</title>
		<link>http://www.mmisoftware.co.uk/weblog/2009/03/28/on-line-assessment-system/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2009/03/28/on-line-assessment-system/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 21:16:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2009/03/28/on-line-assessment-system/</guid>
		<description><![CDATA[This was a big project during the summer of 2008. I can&#8217;t say who the work was for, but I can post about what the system does. The requirements: An online system that can be used by students to take tests Tests had to be open for an extended period of time Tests (in version [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2009%2F03%2F28%2Fon-line-assessment-system%2F&amp;via=mmisoftware&amp;text=On-line+assessment+system&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2009%2F03%2F28%2Fon-line-assessment-system%2F"  class="twitter-share-button">Tweet</a></div><p>This was a big project during the summer of 2008.  I can&#8217;t say who the work was for, but I can post about what the system does.</p>

<p><span id="more-307"></span>
The requirements:</p>

<ul>
<li>An online system that can be used by students to take tests  </li>
<li>Tests had to be open for an extended period of time  </li>
<li>Tests (in version 1) had to consist of multiple choice, and numeric input  </li>
<li>Students had be able to login and out and answer questions when and where they wanted during the test period  </li>
<li>Once the test period was over students had to be able to login and get their marks and feedback  </li>
<li>Copies of the test had to be downloadable for emailing to students  </li>
<li>Marks had to be available for input into another system  </li>
<li>All student/system interactions had to be logged and tracked.  </li>
<li>System had to be &#8216;extensible&#8217;, i.e. version 2 can be developed later.</li>
</ul>

<p>So, the system was written using php for the front end and MySQL for the database.  The web interface uses AJAX.</p>

<p>It was decided to use AJAX so that once a student answered a question the result was immediately sent to the database, so if there was a power outage, or the student forgot to save their text results, the answers were still captured.  On the whole this has worked well, but some students using &#8216;older&#8217; browsers from home (you know the sort of browser I mean!) had problems with the use of AJAX. However, as the system as built in error checking (i.e. nightly cross check between the server log for the day and the database state) these problems were dealt with.</p>

<p>There was no easy solution for &#8216;emailing&#8217; out a copy (a pdf was required) of the results.  In the end a compromise was reached when an html &#8216;dump&#8217; from a test session was generated and this was converted to a pdf file using AppleScript and then the system mailed the results to the students.</p>

<p>The final product worked very well,and the clients were pleased.  And this summer I am back to write version 2&#8230;.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2009%2F03%2F28%2Fon-line-assessment-system%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2009/03/28/on-line-assessment-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X 10.5 (Leopard) &#8211; Webserver (Apache), MySQL and php</title>
		<link>http://www.mmisoftware.co.uk/weblog/2007/10/28/mac-os-x-105-leopard-webserver-apache-mysql-and-php/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2007/10/28/mac-os-x-105-leopard-webserver-apache-mysql-and-php/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 20:23:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[10.5]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[leopard]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2007/10/28/mac-os-x-105-leopard-webserver-apache-mysql-and-php/</guid>
		<description><![CDATA[I have just got around to checking out some of my php/MySQL websites I have on my MacBook after upgrading to Mac OS X 10.5 (Leopard). And the good news is everything appears to work, but a few tweaks were needed. After upgrading to Mac OS X 10.5 (Leopard) the webserver was turned off (security?). [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F10%2F28%2Fmac-os-x-105-leopard-webserver-apache-mysql-and-php%2F&amp;via=mmisoftware&amp;text=Mac+OS+X+10.5+%28Leopard%29+-+Webserver+%28Apache%29%2C+MySQL+and+php&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F10%2F28%2Fmac-os-x-105-leopard-webserver-apache-mysql-and-php%2F"  class="twitter-share-button">Tweet</a></div><p>I have just got around to checking out some of my php/MySQL websites I have on my MacBook after upgrading to <a type=amzn asin="B000FK88JK" >Mac OS X 10.5</a> (Leopard).  And the good news is everything appears to work, but a few tweaks were needed.</p>

<p><span id="more-259"></span>
After upgrading to <a type=amzn asin="B000FK88JK" >Mac OS X 10.5</a> (Leopard) the webserver was turned off (security?).  Turning it back on was a easy, System Preferences > Sharing, click on &#8216;Web Sharing&#8217;.  However, after turning on Apache was no longer pointing to my &#8216;Site&#8217; folder on http://localhost, but a directory called /Library/WebServer/Documents &#8211; most annoying. Plus, php was dead&#8230;.</p>

<p>To get things working I had to change three lines in the httpd.conf file (<strong>After I had made a back up of it!</strong>), which is located at /private/etc/apache2/httpd.conf .</p>

<p><strong>Change 1 to get php working:</strong></p>

<p>Change line 114 from:</p>

<p>&#35;LoadModule php5_module        libexec/apache2/libphp5.so</p>

<p>to:</p>

<p>LoadModule php5_module        libexec/apache2/libphp5.so</p>

<p>(i.e. remove the hash/pound sign at the start)</p>

<p><strong>Change 2 to get Apache &#8216;pointing&#8217; at my &#8216;Sites&#8217; folder</strong></p>

<p>Change line 163 from:</p>

<p>DocumentRoot &#8220;/Library/WebServer/Documents&#8221;</p>

<p>to:</p>

<p>DocumentRoot &#8220;/Users/my-home-user-folder/Sites&#8221;</p>

<p>Where my-home-user-folder is the name of my home folder.</p>

<p><strong>Change 3 to get Apache &#8216;pointing&#8217; at my &#8216;Sites&#8217; folder</strong></p>

<p>(If you don&#8217;t do this you will be given a 403 &#8211; Insufficient User Privileges for Access)</p>

<p>Change line 190 from:</p>

<p>Directory &#8220;/Library/WebServer/Documents&#8221;</p>

<p>to:</p>

<p>Directory &#8220;/Users/my-home-user-folder/Sites&#8221;</p>

<p>Where my-home-user-folder is the name of my home folder.</p>

<p>Finally, you may wish to change any other occurrence of /Library/WebServer/Documents to /Users/my-home-user-folder/Sites if you use an CGI scripts in you home sites directory.</p>

<p><strong>Finally, restart Apache from System Preferences.</strong></p>

<p>MySQL seems to be working fine (I am using version 5), and CocoaMySQL is working&#8230;  great!</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F10%2F28%2Fmac-os-x-105-leopard-webserver-apache-mysql-and-php%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2007/10/28/mac-os-x-105-leopard-webserver-apache-mysql-and-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog update</title>
		<link>http://www.mmisoftware.co.uk/weblog/2007/04/15/blog-update/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2007/04/15/blog-update/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 21:57:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[AuctionAds]]></category>
		<category><![CDATA[ebay]]></category>
		<category><![CDATA[geo-sensitive]]></category>
		<category><![CDATA[geo-targeted]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[thesnowsite.com]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2007/04/15/blog-update/</guid>
		<description><![CDATA[A quick post about the blog&#8230; As you can see, the blog has undergone an update, and there are two major changes. The most obvious change is the move from a centralised view, to placing all the text on the left. The reason for this move is so that advertisements can be placed on the [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F04%2F15%2Fblog-update%2F&amp;via=mmisoftware&amp;text=Blog+update&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F04%2F15%2Fblog-update%2F"  class="twitter-share-button">Tweet</a></div><p>A quick post about the blog&#8230;  As you can see, the blog has undergone an update, and there are two major changes.</p>

<p><span id="more-217"></span>
The most obvious change is the move from a centralised view, to placing all the text on the left.  The reason for this move is so that advertisements can be placed on the right (the blog is now carrying advertisements in an attempt to off-set development costs).</p>

<p>The second change, which is less obvious at first glance, is the addition of &#8216;tags&#8217; to the blog posts.</p>

<p><strong>Tags</strong>:  These are good news for the reader as they link the blog posts by keywords.  If you click on a keyword listed in the <strong>Site Search Tags:</strong> at the end of the post you will be taken to a list of articles that are also tagged with that word.  Basically it is another way to find material in the blog.</p>

<p>As mentioned in some earlier posts (see a list of earlier <a href="http://www.mmisoftware.co.uk/weblog/index.php?tag=textmate">posts</a> &#8211; see, aren&#8217;t tags great?) I now use <a href="http://macromates.com/">TextMate</a> to write blog posts in &#8216;<a href="http://daringfireball.net/projects/markdown/">markdown</a>&#8216;, that are then handles on the server using <a href="http://wordpress.org">WordPress</a>.  With <a href="http://macromates.com/">TextMate</a> and <a href="http://wordpress.org">WordPress</a> there are some great tools for adding tags/keywords to posts.</p>

<p>Basically I am using Ultimate Tag Warrior (<a href="http://www.neato.co.nz/ultimate-tag-warrior/">UTW</a>) and a <a href="http://macromates.com/">TextMate</a> bundle.</p>

<p><strong>WordPress</strong>: On the server I have installed Ultimate Tag Warrior (<a href="http://www.neato.co.nz/ultimate-tag-warrior/">UTW site</a>).  This manages the tags and can be used through the &#8216;dashboard&#8217; of <a href="http://wordpress.org">WordPress</a>. One &#8216;neat&#8217; feature is it can even suggest tags for a post.</p>

<p><strong>TextMate</strong>: To <a href="http://macromates.com/">TextMate</a> I have added the AutoTag Bundle from <a href="http://blog.circlesixdesign.com/download/utw-rpc-autotag/">Circle Six Design</a>. This bundle allows <a href="http://macromates.com/">Textmate</a> to retrieve <a href="http://www.neato.co.nz/ultimate-tag-warrior/">UTW</a> tags from the <a href="http://www.neato.co.nz/ultimate-tag-warrior/">UTW</a> database stored in the <a href="http://wordpress.org">WordPress</a> blog.  The bundle can also make use of the &#8216;suggest tags for a post&#8217; feature of <a href="http://www.neato.co.nz/ultimate-tag-warrior/">UTW</a>, via <a href="http://macromates.com/">Textmate</a>.</p>

<p>Another &#8216;positive&#8217; of the tagging is these keywords can be used to &#8216;target&#8217; the <a href="http://rover.ebay.com/rover/1/711-1751-2978-3/1?aid=5902068&#038;pid=2160733" target="_top">eBay</a><img src="http://www.lduhtrp.net/image-2160733-5902068" width="1" height="1" border="0"/> ads that are now on the right hand side of the screen.</p>

<p><center>
<a href="http://rover.ebay.com/rover/1/711-1751-2978-69/1?aid=5377629&#038;pid=2160733" target="_top">
<img src="http://www.lduhtrp.net/image-2160733-5377629" width="468" height="60" alt="Sell your item on eBay!" border="0"/></a>
</center></p>

<p>In this case, the &#8216;keywords&#8217; are being taken from the <a href="http://www.neato.co.nz/ultimate-tag-warrior/">UTW</a> tag database and then &#8216;inserted&#8217; (using php) into an <a href="http://rover.ebay.com/rover/1/711-1751-2978-3/1?aid=5902068&#038;pid=2160733" target="_top">eBay</a><img src="http://www.lduhtrp.net/image-2160733-5902068" width="1" height="1" border="0"/> script provided by <a href="http://www.auctionads.com/refer_337a1695e27331774625">AuctionAds</a>.  (The &#8216;service&#8217;/script provided by <a href="http://www.auctionads.com/refer_337a1695e27331774625">AuctionAds</a> is not &#8216;context-sensitive&#8217; and keywords are added &#8216;manually&#8217; to the Javascript variable &#8216;<em>auctionads_ad_kw</em>&#8216;, however, with a simple bit of code this variable can be generated &#8216;on-the-fly&#8217;, using php, as the page loads.)</p>

<p>BTW, one thing that readers won&#8217;t notice, unless you view the blog from different countries, is that the ads displayed are &#8216;geo-senstitive&#8217; (&#8216;geo-targeted&#8217;).  No information is collected (or stored) by <a href="http://www.mmisoftware.co.uk">MMISoftware</a>, but when a page is requested a php script grabs the IP address and then does a &#8216;reverse-lookup&#8217;, using an <a href="http://www.mmisoftware.co.uk">MMISoftware</a> database, to find the country of origin for the address.  At present ads are only targeted for the UK and US, with plans to add other countries at a later date (if you are reading this in a country that is not the UK or US then the ads default to the US).</p>

<p>P.S.  This update/change to the <a href="http://www.mmisoftware.co.uk/weblog/">MMISoftware Blog</a> was driven, in part, by having to do the same for the <a href="http://www.thesnowsite.com/snowlog">thesnowsite blog</a>.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F04%2F15%2Fblog-update%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2007/04/15/blog-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another update to theSnowSite.com</title>
		<link>http://www.mmisoftware.co.uk/weblog/2007/02/26/another-update-to-thesnowsitecom/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2007/02/26/another-update-to-thesnowsitecom/#comments</comments>
		<pubDate>Mon, 26 Feb 2007 23:59:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[geotag]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ski]]></category>
		<category><![CDATA[thesnowsite.com]]></category>
		<category><![CDATA[webpages]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2007/02/26/another-update-to-thesnowsitecom/</guid>
		<description><![CDATA[Another update of theSnowSite. This one was minor&#8230; The update addressed a number of problems, the main one being that a last minute change to the code on the main page caused a failure of the content to display correctly in Internet Explorer (never use &#8216;description&#8217; as an id value on an AJAX site!). This [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F02%2F26%2Fanother-update-to-thesnowsitecom%2F&amp;via=mmisoftware&amp;text=Another+update+to+theSnowSite.com&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F02%2F26%2Fanother-update-to-thesnowsitecom%2F"  class="twitter-share-button">Tweet</a></div><p>Another update of <a href="http://www.thesnowsite.com">theSnowSite</a>.  This one was minor&#8230;</p>

<p><span id="more-187"></span>
The update addressed a number of problems, the main one being that a last minute change to the code on the main page caused a failure of the content to display correctly in Internet Explorer (never use &#8216;description&#8217; as an id value on an AJAX site!). This was difficult to track down as I first thought it was caused by some stray code that was getting added to the page such as:</p>

<pre><code>function SymError()
{
  return true;
}
window.onerror = SymError;
</code></pre>

<p>and</p>

<pre><code>window.onerror = SymError;
var SymRealWinOpen = window.open;

function SymWinOpen(url, name, attributes)
{
    return (new Object());
}

window.open = SymWinOpen;
</code></pre>

<p>and</p>

<pre><code>var SymRealOnLoad;
var SymRealOnUnload;

function SymOnUnload()
{
    window.open = SymWinOpen;
    if(SymRealOnUnload != null)
    SymRealOnUnload();
}

function SymOnLoad()
{
    if(SymRealOnLoad != null)
    SymRealOnLoad();
    window.open = SymRealWinOpen;
    SymRealOnUnload = window.onunload;
    window.onunload = SymOnUnload;
}

SymRealOnLoad = window.onload;
window.onload = SymOnLoad;
</code></pre>

<p>It was somewhat confusing as to where this code was coming from, anyway, a quick search of the net with <a href="http://www.google.com/search?q=symerror">http://www.google.com/search?q=symerror</a> showed that the problem was with Norton Internet Security from <a href="http://www.symantecstore.com/">Symantec</a> and is part of their so called &#8216;ad/pop-up blocker&#8217; solution.  What a joke, what a terrible way to deal with a problem (Safari on the Mac handles things much better, as does <a href="http://www.mozilla.com/">Firefox</a> (windows and Mac))!</p>

<p>Anyway, after disabling the Norton Internet Security software the problem still existed&#8230;  therefore there was another problem, and after some work it turned out to be the use of &#8216;description&#8217; as an id for a <em>div</em> tag. Only in Internet Explorer that could be a problem..</p>

<p>Also, a number of changes were made to the database so that certain entries now display correctly.</p>

<p>And finally, some changes have been made to the way the main page loads, namely it now identifies the country of origin of the user and then starts the map at that country.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2007%2F02%2F26%2Fanother-update-to-thesnowsitecom%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2007/02/26/another-update-to-thesnowsitecom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Long time &#8211; no post!</title>
		<link>http://www.mmisoftware.co.uk/weblog/2005/11/06/long-time-no-post/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2005/11/06/long-time-no-post/#comments</comments>
		<pubDate>Sun, 06 Nov 2005 18:04:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[courtparkproperties.com]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2005/11/06/long-time-no-post/</guid>
		<description><![CDATA[MMISoftware has been very busy on a number of projects. MMI have been working closely with Court Park Properties to develop their website. We are also working with the company to develop specialised &#8216;in-house&#8217; software for use in the property development trade. In addition, MMI has been working very hard since March 2005 on an [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F11%2F06%2Flong-time-no-post%2F&amp;via=mmisoftware&amp;text=Long+time+-+no+post%21&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F11%2F06%2Flong-time-no-post%2F"  class="twitter-share-button">Tweet</a></div><p>
<a href="http://www.mmisoftware.co.uk">MMISoftware</a> has been very busy on a number of projects.
</p>

<p>
MMI have been working closely with <a href="http://www.courtparkproperties.com/">Court Park Properties</a> to develop their website.  We are also working with the company to develop specialised &#8216;in-house&#8217; software for use in the property development trade.
</p>

<p>
In addition, <a href="http://www.mmisoftware.co.uk">MMI</a> has been working very hard since March 2005 on an exciting new website project.  The site is being developed in php and MySQL, and will also lead to a number of &#8216;stand-alone&#8217; Mac OS X programs. Can&#8217;t say anything more about this project at the moment&#8230;. but watch this space!  (This explains why updates to existing programs have not been coming along and why nothing much has been said on this blog!)
</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F11%2F06%2Flong-time-no-post%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2005/11/06/long-time-no-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MMISoftware and Quartz</title>
		<link>http://www.mmisoftware.co.uk/weblog/2005/05/08/mmisoftware-and-quartz/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2005/05/08/mmisoftware-and-quartz/#comments</comments>
		<pubDate>Sun, 08 May 2005 21:10:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[quartz]]></category>
		<category><![CDATA[Quartz-Finances]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2005/05/08/mmisoftware-and-quartz/</guid>
		<description><![CDATA[Besides writing software for Mac OS X MMISoftware also develops websites for companies. Over the past few months MMI has been working with Quartz Finances Ltd to develop their new website. Part of the project was to develop an online financial calculator called CheckLease. This turned out to be an interesting problem&#8230;. When Quartz described [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F05%2F08%2Fmmisoftware-and-quartz%2F&amp;via=mmisoftware&amp;text=MMISoftware+and+Quartz&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F05%2F08%2Fmmisoftware-and-quartz%2F"  class="twitter-share-button">Tweet</a></div><p>
Besides writing software for Mac OS X <a href="http://www.mmisoftware.co.uk">MMISoftware</a> also develops websites for companies.
</p>

<p>
Over the past few months MMI has been working with <a href="http://www.qrtz.co.uk/">Quartz Finances Ltd</a> to develop their new website.   Part of the project was to develop an online financial calculator called <a href="http://www.qrtz.co.uk/checklease/index.php">CheckLease</a>.  This turned out to be an interesting problem&#8230;.
</p>

<p><span id="more-103"></span></p>

<p>
When <a href="http://www.qrtz.co.uk/">Quartz</a> described the calculator it sounded fairly simple.  The first working model in Excel was simple, however, the calculator grew in to a very complicated project. 
</p>

<p>
The <a href="http://www.qrtz.co.uk/checklease/index.php">calculator</a> has been written in php, it works for three different currencies and includes a series of data checks on the inputs and online help.  The results are then e-mailed to the person using the calculator.
</p>

<p>
What does the <a href="http://www.qrtz.co.uk/checklease/index.php">calculator</a> do?  Well, as it says on the <a href="http://www.qrtz.co.uk/">Quartz</a> site:
</p>

<p style="text-indent:20pt;">
<em>&#8220;CheckLease provides a free online evaluation of financing proposals, primarily for public sector organisations such as schools, NHS trusts, local authorities and other government agencies.&#8221; </em>
</p>

<p>
<em>
<br /></em>So now you know&#8230;..
</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F05%2F08%2Fmmisoftware-and-quartz%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2005/05/08/mmisoftware-and-quartz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog changes&#8230;.</title>
		<link>http://www.mmisoftware.co.uk/weblog/2005/04/22/blog-changes/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2005/04/22/blog-changes/#comments</comments>
		<pubDate>Sat, 23 Apr 2005 00:13:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[mac.com]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2005/04/22/blog-changes/</guid>
		<description><![CDATA[As you may have noticed, if you have been here before, the blog has changed! Originally the blog was hosted over at mac.com but was moved to this location in February 2005. The move came about due to some hosting problems over at mac.com and because it was thought it was better to have the [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F04%2F22%2Fblog-changes%2F&amp;via=mmisoftware&amp;text=Blog+changes....&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F04%2F22%2Fblog-changes%2F"  class="twitter-share-button">Tweet</a></div><p>
As you may have noticed, if you have been here before, the blog has changed!
</p>

<p>
Originally the blog was hosted over at mac.com but was moved to this location in February 2005.  The move came about due to some hosting problems over at mac.com and because it was thought it was better to have the blog at the same site as the <a href="http://www.mmisoftware.co.uk">MMISoftware</a> website.
</p>

<p>
The blog was written using <a href="http://www.lifli.com/Products/iBlog/main.htm">iBlog</a>.  The program works &#8216;as described on the tin&#8217;, however, it was always a bit limiting in the html that could be created and in the design of the eventual blog.
</p>

<p><span id="more-92"></span></p>

<p>
After some looking around it was decided to use <a href="http://wordpress.org/">wordpress</a> and <a href="http://ecto.kung-foo.tv/">ecto</a>.
</p>

<p>
<a href="http://wordpress.org/">wordpress</a> is a php and MySQL system.  This fits in well with current, and future, work at <a href="http://www.mmisoftware.co.uk">MMISoftware</a>.  Installation of <a href="http://wordpress.org/">wordpress</a> was snap.  Never had an easier install.  Took less that 5 minutes (php and MySQL were already up and running).
</p>

<p>
All blog entries can be created and edited in wordpress.  However, this is like a little step back in time as all the entries have to be hand-coded in html.  An alternative solution is to use <a href="http://ecto.kung-foo.tv/">ecto</a> which has a WYSIWYG editor and also has the advantage that entries can be created and edited whilst offline.
</p>

<p>
One problem was how to get the entries out of <a href="http://www.lifli.com/Products/iBlog/main.htm">iBlog</a>.  The solution turned out to be <a href="http://www.tyborg.com/agitprop/">Agitprop</a>.  This program, which is freeware, did a pretty good job.
</p>

<ol>
<li>Follow the instructions with <a href="http://www.tyborg.com/agitprop/">Agitprop</a> and extract the entries from <a href="http://www.lifli.com/Products/iBlog/main.htm">iBlog</a>.</li>
<li>Move the resulting entry file and image file over to the webserver (used <a href="http://www.interarchy.com/main/">Interarchy</a> for the transfer &#8211; a great program from Stairways)</li>
<li>Follow the instructions with wordpress to load the entries.</li>
<li>Use ecto to clean up any transfers that didn&#8217;t quite work.</li>
</ol>

<p>
In fact a number of the entries needed a bit of work as my attempts to get around the html limitations in iBlog had caused some problems with the processing by Agitprop.  The entries were cleaned up using <a href="http://www.barebones.com/index.shtml">BBEdit</a> and <a href="http://www.apple.com/macosx/features/applescript/">Applescript</a>.
</p>

<p>
There is also a new RSS feed which is at http://www.mmisoftware.co.uk/weblog/wp-rss2.php
</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F04%2F22%2Fblog-changes%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2005/04/22/blog-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quiet&#8230;</title>
		<link>http://www.mmisoftware.co.uk/weblog/2005/03/25/quiet/</link>
		<comments>http://www.mmisoftware.co.uk/weblog/2005/03/25/quiet/#comments</comments>
		<pubDate>Fri, 25 Mar 2005 17:20:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[icalmaker]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[quartz]]></category>
		<category><![CDATA[Quartz-Finances]]></category>
		<category><![CDATA[st-anton]]></category>

		<guid isPermaLink="false">http://www.mmisoftware.co.uk/weblog/2005/03/25/quiet/</guid>
		<description><![CDATA[Quiet&#8230;. Too quiet&#8230;. Yep, no post to the blog for some time! Reason? Well, I have been busy coding for a new project (more on that in later posts), developing version 2 of iCalMaker, and working on a website for Quartz. The main Quartz site has been up for awhile, but I have been working [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F03%2F25%2Fquiet%2F&amp;via=mmisoftware&amp;text=Quiet...&amp;related=mmisoftware&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F03%2F25%2Fquiet%2F"  class="twitter-share-button">Tweet</a></div><div>
Quiet&#8230;.  Too quiet&#8230;.
</div>

<p>
Yep, no post to the blog for some time!
</p>

<p>
Reason?  Well, I have been busy coding for a new project (more on that in later posts), developing version 2 of <a href="http://www.mmisoftware.co.uk/pages/icm.html">iCalMaker</a>, and working on a website for <a href="http://www.qrtz.co.uk/">Quartz</a>.  The main <a href="http://www.qrtz.co.uk/">Quartz</a> site has been up for awhile, but I have been working with <a href="http://www.qrtz.co.uk/">Quartz</a> to develop a new online calculator.  The calculator should be up and running in a few weeks.  It has been a major project!  All produced in php.
</p>

<p>
Also, I have been away on holiday.
</p>

<p>
A week long break to St Anton in Austria for skiing.  Had a fantastic time. Conditions were great, but the weather was awful!  We only had 1.5 days of sunshine, the rest of the time it snowed, and snowed, and snowed.  I have posted a few pictures online and they can be found <a href="http://www.mmisoftware.co.uk/2005/stanton/morris/">here</a>.  I also had my usual post-ski cold, which turned in to something really nasty this time!
</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mmisoftware.co.uk%2Fweblog%2F2005%2F03%2F25%2Fquiet%2F" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mmisoftware.co.uk/weblog/2005/03/25/quiet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Content Delivery Network via Rackspace Cloud Files: c0003336.cdn2.cloudfiles.rackspacecloud.com

Served from: www.mmisoftware.co.uk @ 2012-02-08 19:40:06 -->
