<?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>Toby&#039;s Technical Ramblings &#187; Development</title> <atom:link href="http://tosbourn.com/tag/development/feed/" rel="self" type="application/rss+xml" /><link>http://tosbourn.com</link> <description>A web development blog.</description> <lastBuildDate>Mon, 06 Feb 2012 15:08:08 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Managing a Facebook development project.</title><link>http://tosbourn.com/2011/10/development/managing-a-facebook-development-project/</link> <comments>http://tosbourn.com/2011/10/development/managing-a-facebook-development-project/#comments</comments> <pubDate>Sat, 15 Oct 2011 17:26:56 +0000</pubDate> <dc:creator>Toby</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[Facebook]]></category><guid
isPermaLink="false">http://tosbourn.com/?p=614</guid> <description><![CDATA[Recently in work we hit an issue where we needed access to an historic customised Facebook page.  We had access to the code but not access to admin section of the Facebook App. I am sure we aren&#8217;t the only company this has happened to, so I figured I would write some thoughts on how [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://d2aucw19zh6gg9.cloudfront.net/wp-content/uploads/2011/10/facebookdevelopers.png?9d7bd4"><img
class="alignright size-medium wp-image-616" title="facebookdevelopers" src="http://d2aucw19zh6gg9.cloudfront.net/wp-content/uploads/2011/10/facebookdevelopers-300x197.png?9d7bd4" alt="" width="300" height="197" /></a>Recently in work we hit an issue where we needed access to an historic customised Facebook page.  We had access to the code but not access to admin section of the Facebook App.</p><p>I am sure we aren&#8217;t the only company this has happened to, so I figured I would write some thoughts on how I think this should best be handled.  For the sake of brevity I will only discuss how developers should be managed, I will ignore testers or anyone else for now, I will also only be talking about looking after the Facebook App on Facebook, not the development work behind the scenes.</p><p>Facebook Apps carry with them the notion of roles, currently there are 5 of them, which you can read more about in the <a
href="http://developers.facebook.com/docs/ApplicationSecurity/" target="_blank">Application Security section of the Facebook Developer Documentation</a>. For the purposes of what I am discussing today we are only really interested in the <strong>Administrator role</strong> and the <strong>Developer Role</strong>.</p><p>The difference between these roles is basically that Developers can&#8217;t add others to the App or reset / delete information about the App whilst administrators can.</p><p>The other thing that Facebook Apps carry with them is a (new) notion of <a
href="http://developers.facebook.com/blog/post/531" target="_blank">Groups</a>, this allows you to assign multiple users to a group and then assign the group to specific roles within the App.</p><p>Armed with these ideas my solution is very simple, first you need to set up two groups;</p><ul><li>Senior Developers</li><li>Developers</li></ul><p>Unless you have a massive development team I would suggest keeping the Senior Developer group for one or two people who will be in charge of creating new Facebook Apps and administering them.  They don&#8217;t even need to be technical people, but I think they should be someone who it is generally accepted has a long future with the company.</p><p>All other developers that need to look at Facebook Apps should go into the Developers group (including anyone listed as a Senior Developer).</p><p>Then for each App you should assign the Senior Developer group the role of Administrator, and the Developer group the role of Developer.  Facebook requires that at least one actual person be kept as Administrator, I would suggest maybe a business manager role for this.</p><p>So long as both groups are kept up to date administering the access of individual Apps will be a breeze, just add new developers when they join and remove them when they leave.  The Senior Developer role is slightly trickier only because if you have two and they both leave around the same time you will need someone outside of the &#8216;Facebook team&#8217; to remind them to appoint new users to the group.</p><p>That is really all there is to it.  Would love to hear your thoughts on how you manage it yourself.</p><p
style="text-align: right;"><strong>Last edited 18/10/2011<br
/> Added in information about needing one actual user in the admin field.<br
/> </strong></p> ]]></content:encoded> <wfw:commentRss>http://tosbourn.com/2011/10/development/managing-a-facebook-development-project/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>InFrame &#8211; Dynamic iFrame creation with jQuery</title><link>http://tosbourn.com/2009/11/development/inframe-dynamic-iframe-creation-with-jquery/</link> <comments>http://tosbourn.com/2009/11/development/inframe-dynamic-iframe-creation-with-jquery/#comments</comments> <pubDate>Fri, 27 Nov 2009 22:27:18 +0000</pubDate> <dc:creator>Toby</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[iFrame]]></category> <category><![CDATA[jQuery]]></category><guid
isPermaLink="false">http://www.tosbourn.com/?p=195</guid> <description><![CDATA[jQuery spends a lot of time impressing the shit out of me, one example of it doing it recently is with Vile Work&#8217;s inFrame (one person has reported an issue with this site and viruses, I cannot replicate though.). What this plugin does is capture any links containing a certain class and instead of having [...]]]></description> <content:encoded><![CDATA[<p>jQuery spends a lot of time impressing the shit out of me, one example of it doing it recently is with <a
href="http://www.vileworks.com/inframe-keep-the-demos-inside-the-page-with-jquery">Vile Work&#8217;s inFrame</a> (one person has reported an issue with this site and viruses, I cannot replicate though.).</p><p>What this plugin does is capture any links containing a certain class and instead of having them display in the current window it will create an iFrame on the fly for the content to display into.</p><p>We all know that iFrames are bad because they hide stuff from crawlers and different accessibility tools, however one of the really smart things about this is that because it looks for links of a certain class anyone coming along without JavaScript installed (say, a search engine for example) will just follow the link as normal with no negative effect.</p><p>I can see loads of potential uses for this tool and look forward to playing with it in an actual project.</p><p>Here is it in action.</p><p><a
class="inframe" href="http://www.istwitterup.com">Is twitter up?</a></p><p>Cool, huh?</p> ]]></content:encoded> <wfw:commentRss>http://tosbourn.com/2009/11/development/inframe-dynamic-iframe-creation-with-jquery/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Online resources for web development</title><link>http://tosbourn.com/2009/11/development/online-resources-for-web-development/</link> <comments>http://tosbourn.com/2009/11/development/online-resources-for-web-development/#comments</comments> <pubDate>Tue, 24 Nov 2009 12:11:23 +0000</pubDate> <dc:creator>Toby</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[Web Stuff]]></category> <category><![CDATA[Resources]]></category><guid
isPermaLink="false">http://www.tosbourn.com/?p=192</guid> <description><![CDATA[Here are a selection of online resources that I use when developing.  Some I use far too often, and some I have to say I use far too little! This list is by no means comprehensive, and I will be updating it over time. I am always on the look out for new sites like [...]]]></description> <content:encoded><![CDATA[<p>Here are a selection of online resources that I use when developing.  Some I use far too often, and some I have to say I use far too little!</p><p>This list is by no means comprehensive, and I will be updating it over time.</p><p>I am always on the look out for new sites like these, so please feel free to comment this post with your suggestions.</p><p><strong><a
href="http://codingforums.com">codingforums.com</a></strong><br
/> I am a bit of a sucker for forums and have found this one to have a good bunch of people behind it, they are willing to help and very welcoming.</p><p><strong><a
href="http://php.net">php.net</a></strong><br
/> Self explanatory really, the docs on this site tell you how each and every PHP method should be used with some excellent community based examples.</p><p><strong><a
href="http://stackoverflow.com">stackoverflow.com</a></strong><br
/> Think of a free version of Experts Exchange aimed directly at programmers and about 10 times better, that is what Stack Overflow is.  Sign up for a free account and ask questions (from the very very simple, to the very very complex, all levels are catered for).</p><p><strong><a
href="http://tizag.com">tizag.com</a></strong><br
/> A very basic tutorial website covering a range of languages, for when you have a bit of a brain freeze and know the solution is way too simple to ask for help!</p><p><strong><a
href="http://validator.w3.org/">validator.w3.org</a></strong><br
/> Valid HTML is happy HTML (you can also validate your CSS there too).</p><p><strong><a
href="http://w3schools.com">w3schools.com</a></strong><br
/> Much like Tizag only much more established.</p> ]]></content:encoded> <wfw:commentRss>http://tosbourn.com/2009/11/development/online-resources-for-web-development/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Exploring Built In Functions</title><link>http://tosbourn.com/2009/11/development/exploring-built-in-functions/</link> <comments>http://tosbourn.com/2009/11/development/exploring-built-in-functions/#comments</comments> <pubDate>Thu, 19 Nov 2009 00:12:02 +0000</pubDate> <dc:creator>Toby</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[Functions]]></category><guid
isPermaLink="false">http://www.tosbourn.com/?p=186</guid> <description><![CDATA[An issue I have been pondering lately is how much time to dedicate to trawling through programming language manuals and doc files looking for built in functions to perform a particular task. Obviously there are some functions that you can pretty much take for granted will be provided for by the language, an example would [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignright size-medium wp-image-189" title="Screenshot" src="http://d2aucw19zh6gg9.cloudfront.net/wp-content/uploads/2009/11/Screenshot-300x261.png?9d7bd4" alt="Screenshot" width="300" height="261" />An issue I have been pondering lately is how much time to dedicate to trawling through programming language manuals and doc files looking for built in functions to perform a particular task.</p><p>Obviously there are some functions that you can pretty much take for granted will be provided for by the language, an example would be returning the size of the array.  We know that each language might have slightly different terminology for performing this basic task but we also know it should be there and is most likely going to be easy to find &#8211; a very quick google will tell you what you need to know and you can carry on with your life.</p><p>But what about some of the more fiddly functions?  An example would be the large array*<sup>1</sup> of functions you can call in PHP to do some fairly cool stuff to arrays and I know that the majority of these functions are not going to be available in say JavaScript.  Normally I would have a quick google and if nothing immediately jumps out at me and I know I have a rough idea of how to recreate this bit of code then I will just go ahead and write it myself.  I think there are a few pros and cons to what I do.</p><p>Pros;</p><ul><li>I get to think about the best way to make these functions.</li><li>I get to create the function exactly how I want.</li><li>I get to create!</li><li>I am not wasting time searching for something that may not exist.</li></ul><p>Cons;</p><ul><li>It is generally going to be slower to write it from scratch than it would be to spend some more time digging about to find the appropriate function.</li><li>I am not fully getting my teeth into the language or taking benefit from its internal libraries.</li><li>If there is an in built method already in place, I am sure it is going to be far more optimised for the task than my method is*<sup>2</sup></li></ul><p>Lets now say that we have looked through the manual for the language and done some googling and we are pretty confident that a function doesn&#8217;t exist natively, it seems to me that we then have a couple of choices; we can see if someone else has created similar methods/libraries/functions or we can create them ourselves.  Obviously there are pros and cons to finding someone else&#8217;s.</p><p>Pros;</p><ul><li>Can be quicker.</li><li>Already documented.</li><li>Sometimes there is community support</li></ul><p>Cons;</p><ul><li>It will never do 100% what you want it to do.</li><li>You will never learn how to solve the problem for yourself (but if there is a solution, then is it worth you solving it again?)</li></ul><p>The pros and cons for creating it yourself is pretty much the reverse of the above!</p><p>I guess what I am asking, in a rather round about way, is how much time do you spending searching for a pre-built solution against writing your own?</p><blockquote><p>*<sup>1</sup> &#8211; Do you see what I did there? An array of functions? Har har har!!<br
/> *<sup>2</sup> &#8211; Actually, I am not convinced this is true, most in built functions have to be fairly generic, I can streamline my functions to do what I want them to do, but for example I know that creating a function to return the size of an array is going to be less efficient at run time than using sizeof(), no matter what awesome stuff I do within that method.</p></blockquote> ]]></content:encoded> <wfw:commentRss>http://tosbourn.com/2009/11/development/exploring-built-in-functions/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Damn this guy can wireframe!</title><link>http://tosbourn.com/2009/09/design/damn-this-guy-can-wireframe/</link> <comments>http://tosbourn.com/2009/09/design/damn-this-guy-can-wireframe/#comments</comments> <pubDate>Sat, 05 Sep 2009 22:46:02 +0000</pubDate> <dc:creator>Toby</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Development]]></category> <category><![CDATA[Clay Parker Jones]]></category> <category><![CDATA[Designbit]]></category> <category><![CDATA[Wireframe]]></category><guid
isPermaLink="false">http://www.tosbourn.com/?p=114</guid> <description><![CDATA[Wireframing is something that both designers and developers should really learn how to do well, a good wireframe could potentially save you a lot of time when it comes to immediately chucking out bad ideas and it also helps to bring the client in early on in the process. Knocking up a wireframe (as you [...]]]></description> <content:encoded><![CDATA[<p>Wireframing is something that both designers and developers should really learn how to do well, a good wireframe could potentially save you a lot of time when it comes to immediately chucking out bad ideas and it also helps to bring the client in early on in the process. Knocking up a wireframe (as you are about to see) can be an incredibly quick task and it gives you something you can take to the client for early feedback and opinion.</p><p>There are plenty of tools out there for wireframing, my personal choice is <a
href="http://www.balsamiq.com/">Balsamiq</a>; whilst it has been dismissed by a lot of designers due to the childish nature of the sketches I love it because as a complete novice at design I can quickly and easily put my thoughts onto paper.</p><p>Anyway, watch this video and be impressed at the speed at which Clay Parker Jones has knocked out this design (and enjoy the music too, nothing wrong with a bit of MJ!)</p><p><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowfullscreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1842848&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed
type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=1842848&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p><a
href="http://vimeo.com/1842848">How to Wireframe</a> from <a
href="http://vimeo.com/exitcreative">Clay Parker Jones</a> on <a
href="http://vimeo.com">Vimeo</a>.</p><p>Thanks to <a
href="http://designbit.co.uk/2009/09/02/how-to-wireframe/">Designbit</a> for posting this video originally.</p> ]]></content:encoded> <wfw:commentRss>http://tosbourn.com/2009/09/design/damn-this-guy-can-wireframe/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Browser History Fix (Ajax)</title><link>http://tosbourn.com/2009/08/development/browser-history-fix-ajax/</link> <comments>http://tosbourn.com/2009/08/development/browser-history-fix-ajax/#comments</comments> <pubDate>Thu, 06 Aug 2009 11:00:15 +0000</pubDate> <dc:creator>Toby</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[Ajax]]></category><guid
isPermaLink="false">http://www.tosbourn.com/?p=81</guid> <description><![CDATA[Anyone who has developed a website that uses AJAX for a large chunk of the site will know the fear of the user hitting the back button when they really shouldn&#8217;t be (damn crazy users, thinking they can just do stuff whenever they feel like it!) Hopefully this small script that came from Martin Ivonov&#8217;s [...]]]></description> <content:encoded><![CDATA[<p>Anyone who has developed a website that uses AJAX for a large chunk of the site will know the fear of the user hitting the back button when they really shouldn&#8217;t be (damn crazy users, thinking they can just do stuff whenever they feel like it!)</p><p>Hopefully this <a
href="http://acidmartin.wordpress.com/2009/08/05/fixing-the-browser-history-back-and-forward-buttons-in-ajax-websites/">small script</a> that came from <a
href="http://acidmartin.wordpress.com">Martin Ivonov&#8217;s Blog</a> will calm some of that fear.</p><p>I haven&#8217;t had chance to properly play with the code yet, but it looks very promising and could take away a lot of headaches in the future.  When I do get time to have a proper play, I will post up the results.</p> ]]></content:encoded> <wfw:commentRss>http://tosbourn.com/2009/08/development/browser-history-fix-ajax/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PHP Whitespace/Comment Removal</title><link>http://tosbourn.com/2009/07/development/php-whitespacecomment-removal/</link> <comments>http://tosbourn.com/2009/07/development/php-whitespacecomment-removal/#comments</comments> <pubDate>Thu, 23 Jul 2009 14:42:51 +0000</pubDate> <dc:creator>Toby</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[Charles Reace]]></category> <category><![CDATA[Obfuscation]]></category> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://www.tosbourn.com/?p=94</guid> <description><![CDATA[Here is a handy script that removes whitespace and comments from PHP code and it came via the rather excellent technical blog by Charles Reace. Whilst I would argue that whitespace and comments don&#8217;t account for any real noticeable performance drop I guess it is good practice to perform obfuscation on any code that will [...]]]></description> <content:encoded><![CDATA[<p>Here is a handy script that <a
href="http://www.charles-reace.com/blog/2009/07/22/strip-comments-and-white-space-from-php-file/">removes whitespace and comments</a> from PHP code and it came via the rather excellent technical blog by <a
href="http://www.charles-reace.com/">Charles Reace</a>.</p><p>Whilst I would argue that whitespace and comments don&#8217;t account for any real noticeable performance drop I guess it is good practice to perform obfuscation on any code that will be going into production, you do it with your JavaScript and CSS, so why not your PHP?</p> ]]></content:encoded> <wfw:commentRss>http://tosbourn.com/2009/07/development/php-whitespacecomment-removal/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: tosbourn.com @ 2012-02-07 03:37:20 by W3 Total Cache -->
