<?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>Simon Cooper</title>
	<atom:link href="http://www.ramski.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ramski.co.uk</link>
	<description>Blogging about web developing</description>
	<lastBuildDate>Sun, 12 May 2013 17:37:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Why jQuery it?</title>
		<link>http://www.ramski.co.uk/jquery/</link>
		<comments>http://www.ramski.co.uk/jquery/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 16:18:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=12</guid>
		<description><![CDATA[It took me a while to get into using the jQuery library (http://jquery.com/). I found the slight differences between complex Javascript and PHP sytax just enough to confuse me, and having never really been one for event driven languages, so adding event listeners and managing triggers was baffling. Now though, I cannot understand how I [...]]]></description>
			<content:encoded><![CDATA[<p>It took me a while to get into using the jQuery library (<a href="http://jquery.com/">http://jquery.com/</a>). I found the slight differences between complex Javascript and PHP sytax just enough to confuse me, and having never really been one for event driven languages, so adding event listeners and managing triggers was baffling.</p>
<p>Now though, I cannot understand how I was programming <em>any</em> Javascript, let alone interactive interfaces without jQuery. For a start, being able to do<br />
$(&#8220;#element_id&#8221;)<br />
rather than the extremely long-winded and sometimes <a title="getElementById and IE6" href="http://verens.com/2005/03/18/getelementbyid-bug-in-ie6/" target="_blank">unreliable</a><br />
document.getElementById(&#8220;element_id&#8221;)<br />
is a Godsend.</p>
<p>My main experience in using jQuery came from the need to develop a complex interface to simulate Excel type features. These included highlighting cells in a table and calculating totals, averages and counts of the cell&#8217;s contents, hiding/showing/adding/removing columns and rows and advanced validation.</p>
<p>At the time, I loathed the project, but as with most projects like it, you end up learning so much more than on the projects you love. I will never forget that project &#8211; for its bad times and for the new love it gave me for jQuery!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC is not a file structure</title>
		<link>http://www.ramski.co.uk/mvc-is-not-a-file-structure/</link>
		<comments>http://www.ramski.co.uk/mvc-is-not-a-file-structure/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 21:41:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=102</guid>
		<description><![CDATA[Recently I&#8217;ve been seeing new projects laid out with a file structure attempting to dictate an MVC architecture, with model, view and controller folders. For many web applications though, this is much too limiting. It&#8217;s a structure that suggests that elements can be reused &#8211; could any element in the model folder use any element [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been seeing new projects laid out with a file structure attempting to dictate an MVC architecture, with model, view and controller folders. For many web applications though, this is much too limiting. It&#8217;s a structure that suggests that elements can be reused &#8211; could any element in the model folder use any element in the view folder? I suspect not. Implementations I&#8217;ve seen attempt the following structure (usually under model and view folders):<br />
/model/<br />
home.php<br />
login.php<br />
users.php<br />
/view<br />
home.php<br />
login.php<br />
users.php</p>
<p>Shared elements are suited to this structure, for example classes that output standard pages, or standard model functions, but I prefer file structures that allow for use cases per file. Generally I create each as a separate class, but I&#8217;d argue that a file as simple as this can be considered as MVC architecture.</p>
<p>function load($mode){<br />
/////////////////////<br />
// CONTROLLER<br />
switch($mode){<br />
case &#8220;printHash&#8221;: printMenu($_POST['toHash']); break;<br />
}<br />
}</p>
<p>function printHash($toHash){<br />
/////////////////////<br />
// MODEL<br />
$toHash = stripslashes($toHash);<br />
$hash = sha1($toHash);</p>
<p>/////////////////////<br />
// VIEW<br />
echo $toHash.&#8221;=&#8221;.$hash;<br />
}</p>
<p>Whilst at University I was taught too much about what MVC is rather than why and when it should be considered, and I think that other developers are suffering from the same tuition. The aim of an MVC architecture is to encourage independent development and testing and to present clean and logical code that is easy to maintain. If you can use MVC to achieve this then it does not matter how you structure your files.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/mvc-is-not-a-file-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doing it in front of them</title>
		<link>http://www.ramski.co.uk/doing-it-in-front-of-them/</link>
		<comments>http://www.ramski.co.uk/doing-it-in-front-of-them/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 11:30:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[the job]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=105</guid>
		<description><![CDATA[I like to think that Netready is a flexible company. It&#8217;s flexible in what it offers (there aren&#8217;t any standard packages products) and in pricing. Recently we&#8217;ve taken that a step further by flexing the planning process; when meeting with client to run through process flows we&#8217;ve taken a laptop and edited them right there [...]]]></description>
			<content:encoded><![CDATA[<p>I like to think that Netready is a flexible company. It&#8217;s flexible in what it offers (there aren&#8217;t any standard packages products) and in pricing. Recently we&#8217;ve taken that a step further by flexing the planning process; when meeting with client to run through process flows we&#8217;ve taken a laptop and edited them right there in front of them.</p>
<p>This is nothing ground breaking, and is probably done by any company who realises that decisions can be made quicker when meeting face-to-face and cutting out the process of sending files back and forth. I sat in a meeting room with the client and showed them screens we had developed for each use case of their project. If they didn&#8217;t like something I moved it, rearranged it or added notes regarding the inner workings.</p>
<p>Where this doesn&#8217;t work:<br />
Design work is creative, and something I withhold that generally the client should have very little input in. Clearly they have to set the foundations, which is usually involves them sending a couple of logos and saying &#8220;I&#8217;d like something engaging, fun and professional&#8221; (which every designer loves to hear, I&#8217;m sure). This is good in a way though, as it leaves the designer to do their thing and design. If a designer sat in with a meeting and allowed a client to dictate the layouts then there&#8217;s almost no point in there being a designer. I could do it instead: I have no creativity what-so-ever but I can follow instructions.</p>
<p>Where this does work:<br />
As mentioned above, flow charts and use cases analysis benefit from this sort of process. We also applied it to agreement of terms and conditions. My boss took his laptop to a meeting, opened up the terms and conditions of the proposed contract in Word, and both him and the client edited to suit both their perspectives. To do this over email and phone would have taken several days sending versioned files back and forth.</p>
<p>Customers like to see things being done, and there&#8217;s no better way than showing them what you&#8217;re doing than doing it in front of their eyes, following their own comments. So next time you&#8217;re changing a document think whether what you are doing will be the final version, and if not go and pay them a visit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/doing-it-in-front-of-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A wrong decision</title>
		<link>http://www.ramski.co.uk/a-wrong-decision/</link>
		<comments>http://www.ramski.co.uk/a-wrong-decision/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 13:50:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[management]]></category>
		<category><![CDATA[the job]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=93</guid>
		<description><![CDATA[For the first time on one of my projects a post-launch decision has meant that one of the major decisions we made during planning was completely wrong. The site was a content managed site which, to fit into the client&#8217;s budgets, we built on our budget system. Prior to launch it was decided that users [...]]]></description>
			<content:encoded><![CDATA[<p>For the first time on one of my projects a post-launch decision has meant that one of the major decisions we made during planning was completely wrong.</p>
<p>The site was a content managed site which, to fit into the client&#8217;s budgets, we built on our budget system. Prior to launch it was decided that users (of which there are a defined list of 100 or so) could log in and view &#8220;members only&#8221; content. This was fine, as it simply meant that some of the pages and menus on the site would be for authenticated users only. A few weeks after launch the brief changed, and the client now required the site to have separate content for each user, thereby requiring the system to have over 100 separate menus and 100 sets of pages.</p>
<p>Netready&#8217;s main content management system can handle this without any problems, but our alternative system is now struggling to handle a 1000% increase in the number of pages. The main victim of this is the client who has to use the bloated admin system.</p>
<p>I&#8217;m not sure how this could have been avoided. There is no way that we could have predicted that the members&#8217; area would suddenly need to be tailored to the level of each individual user. Similarly there is no way the client would have known, as their decisions are driven by a 3rd party board of directors. It is possible that the client did not explain our proposal fully to the board of decision makers (our proposal was very clear on what we would build). Or maybe it was simply one of those times where a project was rushed into when the client wasn&#8217;t fully aware of their needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/a-wrong-decision/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tinkering with technology</title>
		<link>http://www.ramski.co.uk/tinkering-with-technology/</link>
		<comments>http://www.ramski.co.uk/tinkering-with-technology/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 11:31:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=90</guid>
		<description><![CDATA[The best way to learn a new technology is to tinker with it, and for the developers I work with there are a lot of opportunities to tinker. I&#8217;ll admit that sometimes when they play with a new idea or try out something different it can slow a project down, but often it leads to [...]]]></description>
			<content:encoded><![CDATA[<p>The best way to learn a new technology is to tinker with it, and for the developers I work with there are a lot of opportunities to tinker. I&#8217;ll admit that sometimes when they play with a new idea or try out something different it can slow a project down, but often it leads to something quite useful for that project.</p>
<p>One example of a developer playing around was when he decided to use XLST to produce some standard HTML needed on a site. Setting up the parser and getting to grips with it took a while, but we now have a flexible way to manipulate our output.</p>
<p>I&#8217;m sure that somewhere in this there is an argument that possibly this option should have been considered at the planning stage of the project. However, spur of the moment ideas like this might not be visible from early on, which is why creative developers perform very well in this respect.</p>
<p>If your deadline isn&#8217;t looming branch out a bit and try something different. It may not be as successful as you hope, but you&#8217;ll always end up learning something new.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/tinkering-with-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I cut corners</title>
		<link>http://www.ramski.co.uk/i-cut-corners/</link>
		<comments>http://www.ramski.co.uk/i-cut-corners/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 12:36:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[management]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=69</guid>
		<description><![CDATA[I cut corners in some of the projects I work on. And clients know this, because I tell them. This situation happens when a project comes along and I quote a reasonable amount that includes setting aside time for project management, testing and generally not rushing development. The corner cutting starts when then client grimaces [...]]]></description>
			<content:encoded><![CDATA[<p>I cut corners in some of the projects I work on. And clients know this, because I tell them.</p>
<p>This situation happens when a project comes along and I quote a reasonable amount that includes setting aside time for project management, testing and generally not rushing development. The corner cutting starts when then client grimaces and says that their budget is around 20% less than my quote. &#8220;Can I get it down to such-a-such?&#8221; they ask, and I generally respond with &#8220;yes, but by dropping a few things&#8221;.</p>
<p>Sometimes features can be dropped, but often it&#8217;s the admin-side of things that get cut. Project management time is reduced so planning becomes less technical; some of the testing is handed over to the client to complete; development is sped up and simplified (flexibility for future development being the main victim).</p>
<p>There is an argument that this will cost the client more in the long run, and it is a valid argument in some cases. On many projects you can see where the benefit lies in investing in documentation, maintainable code and future proofing. But for others, if they don&#8217;t have the budget then the alternative to corner-cutting is to not do the project. This means lost business to us and no shiny new website for the client.</p>
<p>It is a difficult decision to make, especially as when I create a website I like to see it &#8220;done properly&#8221;, but I can hold my hand up and admit that I have said &#8220;just get it done whichever way is fastest.&#8221; because I know that was the right decision to give the client what they want within their budget.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/i-cut-corners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The most important client</title>
		<link>http://www.ramski.co.uk/the-most-important-client/</link>
		<comments>http://www.ramski.co.uk/the-most-important-client/#comments</comments>
		<pubDate>Fri, 27 May 2011 12:02:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[management]]></category>
		<category><![CDATA[the job]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=65</guid>
		<description><![CDATA[It takes a lot to step back and think &#8220;actually, in the grand scheme of everything that&#8217;s happening to everyone in the world, what I&#8217;m doing right now isn&#8217;t that important.&#8221; When someone is given a piece of work to do it&#8217;s difficult to think that for two reasons: 1) to think of that belittles [...]]]></description>
			<content:encoded><![CDATA[<p>It takes a lot to step back and think &#8220;actually, in the grand scheme of everything that&#8217;s happening to everyone in the world, what I&#8217;m doing right now isn&#8217;t that important.&#8221;</p>
<p>When someone is given a piece of work to do it&#8217;s difficult to think that for two reasons:<br />
1) to think of that belittles one&#8217;s role and self-importance<br />
and 2) the more time and effort one invests the more blinkered the importance becomes to oneself</p>
<p>There are some clients that believe they are your most important client, and therefore their project/query is sitting at the top of your to-do pile. Sometimes they are right &#8211; they are either a big client and so go straight to the top of the pile, or you&#8217;ve found a few minutes to do their relatively unimportant task and so it has made it to the top of your priorities; and sometimes they are wrong &#8211; their task is at the bottom of your &#8220;things I must do today&#8221; list.</p>
<p>Whichever way it is though, it&#8217;s best to let them think their query is as important to you as it is to them. People are self-centred, and I don&#8217;t mean that in a selfish way. If they have been given a task who are you to belittle their position or ignore their productivity? The difficulty comes when you have to appease them and yet keep stock of all that is happening in your workload. I find the best way to do this is to give a little when you can, and lie. Tell the client you are working on something even when you aren&#8217;t. The alternative would probably result in lost business, but a little lie here and there will keep them happy, and as long as you deliver when you say you will they&#8217;ll be happier still.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/the-most-important-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emails that make sense</title>
		<link>http://www.ramski.co.uk/emails-that-make-sense/</link>
		<comments>http://www.ramski.co.uk/emails-that-make-sense/#comments</comments>
		<pubDate>Fri, 20 May 2011 12:44:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[the job]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=67</guid>
		<description><![CDATA[I once wasted a few hours changing a website because a client sent an email asking me to change the &#8220;products page&#8221; of their site, rather than the &#8220;product&#8217;s page&#8221;. I changed the page listing their products, rather than the page that held details about each product. When they complained that we&#8217;d done the wrong [...]]]></description>
			<content:encoded><![CDATA[<p>I once wasted a few hours changing a website because a client sent an email asking me to change the &#8220;products page&#8221; of their site, rather than the &#8220;product&#8217;s page&#8221;. I changed the page listing their products, rather than the page that held details about each product. When they complained that we&#8217;d done the wrong thing we politely explained their mistake (ie when to use an apostrophe) and the importance of sending clear instructions to us. When reflecting on this I thought I&#8217;d share a list of a few things I have found that are worth doing when sending emails, in particular emails to clients.</p>
<ol>
<li>Pick a subject line that&#8217;s meaningful to the recipient &#8211; just &#8220;Meeting&#8221; isn&#8217;t that useful, something like &#8220;Website design meeting agenda&#8221;.</li>
<li>If you&#8217;re sending an email containing a list, use numbered lists rather than bullets. This will make it much easier when referencing the list&#8217;s points in subsequent phone calls.</li>
<li>Keep previous conversation history in your emails by replying to a received email rather than creating a blank email to send a response as it adds context to what you write.</li>
<li>Ensure any internal notes colleagues have added to emails are removed if they are for internal use only.</li>
<li>When receiving an email try to respond to it by the end of the following day, even if it just a message saying that their query is being looked into and that you&#8217;ll get back to them again.</li>
<li>When you reference a file you plan to attach to an email, attach the file right then &#8211; doing this will make it less likely that an attachment is forgotten!</li>
<li>Be clear when referencing files or website pages. As it&#8217;s an email you&#8217;re not going to waste any paper or ink by copy-n-pasting full file names or website addresses. Also, don&#8217;t be afraid to re-send information twice &#8211; if it&#8217;s easier for you to place information in an email again rather than have the recipient search through previous conversations you are only helping them.</li>
<li>Final one is an obvious one: re-read your email to make sure it makes sense and is spelt correctly. Unintelligible emails are a waste of time and bad spelling and grammar is unprofessional.</li>
</ol>
<p>I like to think that I stick to those points &#8211; looking through my Sent Items it looks like I do for most of the time. Point 5 is the hardest to stick to, as sometimes if an email seems low priority it is hard to respond when you have higher priority things to do first. Even so, it would do well to remember that replying promptly could save aggravation from the client in the long run, allowing you to concentrate on the higher priority tasks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/emails-that-make-sense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The responsibility of working remotely</title>
		<link>http://www.ramski.co.uk/the-responsibility-of-working-remotely/</link>
		<comments>http://www.ramski.co.uk/the-responsibility-of-working-remotely/#comments</comments>
		<pubDate>Fri, 13 May 2011 07:56:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[management]]></category>
		<category><![CDATA[the job]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=74</guid>
		<description><![CDATA[I recently read an article by Cal Evans in PHP&#124;Architect magazine (Feb 2011 &#8211; volume 10, issue 2) about Open Teams and the benefits of allowing developers to work remotely. The article was very well written and, amongst other things, discussed the pros and cons to managers and developers with what Evans referred to as [...]]]></description>
			<content:encoded><![CDATA[<p>I recently read an article by Cal Evans in PHP|Architect magazine (Feb 2011 &#8211; volume 10, issue 2) about Open Teams and the benefits of allowing developers to work remotely. The article was very well written and, amongst other things, discussed the pros and cons to managers and developers with what Evans referred to as the &#8220;privilege&#8221; of working remotely.</p>
<p>The article made points that remote working can be an extremely advantageous option to developers&#8217; and employers&#8217; productivity, well-being and finances. It also argued that if &#8220;your team leads won&#8217;t support remote working because they aren&#8217;t comfortable managing remote workers, get better managers.&#8221; This is a strong statement, but I particularly uphold the article&#8217;s own counter-argument: developers must prove they are responsible enough to deserve the privilege, or rather they must never show signs of being irresponsible and abusing the privilege.</p>
<p>A few months ago we missed a project deadline because the developer did not communicate their progress on the project whilst they were working from home. There may be a number of reasons why this happened (I have only managed a small team for two years), but in an attempt to aid communication on future projects remote working option has been withdrawn. This is because for the time being there are more advantages to us working as a team in the same physical location than separately. Eventually the option to work remotely will be offered again, and hopefully we&#8217;ll each have learnt from the previous time we worked remotely and from when we worked on opposite desks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/the-responsibility-of-working-remotely/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Placement Students</title>
		<link>http://www.ramski.co.uk/placement-students/</link>
		<comments>http://www.ramski.co.uk/placement-students/#comments</comments>
		<pubDate>Thu, 05 May 2011 18:26:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[the job]]></category>

		<guid isPermaLink="false">http://www.ramski.co.uk/?p=58</guid>
		<description><![CDATA[At the company I work for we have a placement student every year from De Montfort University; I was one of those placement students a few years ago. Whilst I was the student I didn&#8217;t realise it but the placement student is a strange sort of employee &#8211; knowledge and skillset is limited, experience in [...]]]></description>
			<content:encoded><![CDATA[<p>At the company I work for we have a placement student every year from De Montfort University; I was one of those placement students a few years ago.   Whilst I was the student I didn&#8217;t realise it but the placement student is a strange sort of employee &#8211; knowledge and skillset is limited, experience in managing workload is low and attitude towards the job can vary wildly. However, the advantages to the students are immense &#8211; a good yearly salary at a time in their life when most student&#8217;s are skint, massive amount of experience to be gained working on professional projects (usually with other skilled developers) and a lot of support from colleagues, managers and their University.</p>
<p>So what&#8217;s in it for the employer? I believe there are three main advantages. Firstly, a lower salaried employee. The wage our placement students earn is good for their level of experience, but because they are not expected to have the full responsibility of a permanent developer the salary is reduced. Secondly most students arrive brimming with new ideas, which they wish to try out on various tasks they are set. It&#8217;s a good way for a company to introduce new techniques, opinions and ideas into their practices. But I think the major advantage the company gains from employing a student is being able to give back a little to the industry. By taking on someone and investing time and money into them will mean that more developers will graduate with experience under their belt &#8211; which will hopefully benefit whichever company they end up working for, especially if it is the company that gave them the experience in the first place!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ramski.co.uk/placement-students/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
