<?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>Maltpress</title> <atom:link href="http://www.maltpress.co.uk/feed/" rel="self" type="application/rss+xml" /><link>http://www.maltpress.co.uk</link> <description>Wordpress developer, copywriter, web consultant</description> <lastBuildDate>Thu, 02 May 2013 16:43:58 +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>How I work</title><link>http://www.maltpress.co.uk/2013/05/how-i-work/</link> <comments>http://www.maltpress.co.uk/2013/05/how-i-work/#comments</comments> <pubDate>Thu, 02 May 2013 16:43:58 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=1026</guid> <description><![CDATA[I got asked the other day how I did something. This is rare. Normally people are wowed by the design and take the tech for granted, which is great: if it runs smoothly enough to take it for granted I&#8217;ve done my job well. But I did get asked how I code and what I [...]]]></description> <content:encoded><![CDATA[<p>I got asked the other day how I did something. This is rare. Normally people are wowed by the design and take the tech for granted, which is great: if it runs smoothly enough to take it for granted I&#8217;ve done my job well. But I did get asked how I code and what I use and in replying I realised a couple of things: just how much software is involved in making and testing a site, and just how much open source stuff I use.</p><p>First up, here&#8217;s a look at my work space:</p><p><img
class="alignleft size-medium wp-image-1027" title="075" src="http://www.maltpress.co.uk/wp-content/uploads/075-300x224.jpg" alt="" width="300" height="224" /> It&#8217;s a mess, isn&#8217;t it? Sorry.</p><p>I use a fairly standard Windows 7 PC with two monitors. The main, widescreen monitor is used for code while the right-hand, smaller, thunder-fly infested hand-me-down is used for testing/previews while I work, or for email, or for music, or anything which isn&#8217;t requiring full attention.</p><p>The big headphones are for working evenings and late nights, so I don&#8217;t disturb the neighbours or &#8211; more importantly &#8211; my other half with weird hipster electro-jazz fusion music (or more likely The Beach Boys). That big white blob thing is a speaker. Most of the day I listen to 6 Music until 4pm (I like Steve Lamacq but for some reason can&#8217;t listen while working) and then it&#8217;s iTunes or Spotify.</p><p>The wine case is a book shelf containing my little black books &#8211; a hand-written WordPress coding manual, a hand-written JavaScript snippet library, and various other instruction manuals (O&#8217;Reilly PHP and HTML5 books). All the paper is very very important business things. Finally, the blotter is what I use to collect cake crumbs and also for doing complicated maths or pseudo code on when I&#8217;m working out how to do things.</p><p>In terms of software, I use <a
href="https://netbeans.org/" target="_blank">NetBeans IDE</a> for code. The PHP bundle is all I really need, as I don&#8217;t use the debugging tools &#8211; although I probably should. I use XAMPP to serve files on my PC but also have an old PC running Ubuntu as a local server (it also does print server stuff) and &#8211; when I get a new power supply after the puppy ate the last one &#8211; I use a Raspberry Pi as a DNS server. Uploading is done with FileZilla, DB connections with HeidiSQL, shell access with PuttY.</p><p>Testing is done on FireFox (with Firebug and FirePHP), Chrome (standard developer tools plus Google Analytics extension), Safari, Opera, IE9, <a
href="http://my-debugbar.com/wiki/IETester/HomePage" target="_blank">IE Tester</a>, a virtual machine running XP and IE8, a Google Nexus 7, an iPhone, and a cranky old Mac running the iOS SDK (veeeery slowly). I have IE10 on a laptop, but rarely have to test in it as it&#8217;s actually pretty good.</p><p>Slicing designs is done with Photoshop &#8211; an old version, but it&#8217;s too expensive to upgrade &#8211; sometimes The GIMP and when I&#8217;m working on a laptop Photoshop Elements with the Elements+ extension to allow ungrouping of layers.</p><p>Version control is done with Tortoise SVN and is hosted with <a
href="http://beanstalkapp.com" target="_blank">Beanstalk</a> which is excellent.</p><p>Project management is done in my head at the moment but I&#8217;m working on a WordPress-based intranet/CRM/project management system which will sit on my local server. Accounting uses Xero, a cloud-based service which is amazing.</p><p>Finally, email is done with Gmail and Thunderbird, the occasional document is done with Open Office, and breaks come courtesy of very rare forays into Minecraft and more common games of &#8220;chase the naughty puppy around the garden to stop her rolling in bird mess&#8221;.</p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2013/05/how-i-work/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Reporting bugs</title><link>http://www.maltpress.co.uk/2013/02/reporting-bugs/</link> <comments>http://www.maltpress.co.uk/2013/02/reporting-bugs/#comments</comments> <pubDate>Mon, 04 Feb 2013 20:41:31 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=1024</guid> <description><![CDATA[Bugs. They happen on every site. It&#8217;s impossible to avoid them. But with the right reporting, you can get them fixed quickly and cleanly, and your developer will thank you for it. Here&#8217;s how to make the process easier for everyone involved: 1. Do it twice Sometimes when you try something and it doesn&#8217;t work, [...]]]></description> <content:encoded><![CDATA[<p>Bugs. They happen on every site. It&#8217;s impossible to avoid them. But with the right reporting, you can get them fixed quickly and cleanly, and your developer will thank you for it. Here&#8217;s how to make the process easier for everyone involved:</p><p><strong>1. Do it twice</strong></p><p>Sometimes when you try something and it doesn&#8217;t work, the first response is to fire off an email to your developer. &#8220;This thing isn&#8217;t working!&#8221; you shout in all-caps. &#8220;Fix it!&#8221;. The developer has a look and it&#8217;s working fine &#8211; and this is the biggest time killer there is. We&#8217;re inclined to believe you when you say something doesn&#8217;t work. We&#8217;ll try to make it not work as well. We&#8217;ll try every browser we have access to &#8211; dusting off old laptops in the process &#8211; and keep going until we can break it like you did. Finally we give up and email you back admitting defeat only to find that the first time you tried it a field was left empty or the wrong button clicked. Try it twice before you report it <em>just to be sure</em>.</p><p><strong>1a. Hard refresh</strong></p><p>Often, the error comes from caching &#8211; pages being stored on your computer or with your ISP. When we say we&#8217;ve fixed a style error and you can&#8217;t see that it&#8217;s fixed, try a hard refresh, which reloads the page without using any caches. On a PC, that&#8217;s Ctrl + f5 on most browsers. Then try it again.</p><p><strong>2. Tell us everything you can</strong></p><p>Lots of things can affect the way a website works. The browser you&#8217;re using is the main one, but lots of other things matter too. When you report a bug, make sure you include the following:</p><ul><li>What browser &#8211; and what version of that browser &#8211; are you using? Is it Internet Explorer 8 (which is probably the cause of the issue!)? FireFox? Safari? If it&#8217;s Internet Explorer, do you have &#8220;compatibility mode&#8221; turned on?</li><li>What operating system are you using? Are you on a Mac or PC or an obscure Linux box? On a phone or tablet?</li><li>What screen resolution are you using?</li></ul><p>Also, simply saying &#8220;there&#8217;s an error&#8221; isn&#8217;t helpful. What is the error? Does it give you a message you can send us? Is it a 404 page not found? Is it a 500 Internal Server Error? Is it just a blank screen? Is there a pop-up with an error? Even if the error means nothing to you, copy and paste it into an email with all the other information you send.</p><p><strong>3. Take a screenshot</strong></p><p>Taking a screenshot can immediately tell us almost everything I&#8217;ve listed above &#8211; the browser, your operating system, the error you&#8217;re seeing.</p><p><strong>4. What steps did you take?</strong></p><p>If you can tell us what you did immediately in the run-up to the error occurring, we can replicate what you did and have a better chance of making it happen ourselves. If you&#8217;ve filled in a form, what fields did you include and which did you skip? Have you inserted an image into a page? Did you copy some text from Word before pasting it in to something? If you&#8217;ve tried putting a file or image on a website, what&#8217;s the file? How big is it? Can you send it to us?</p><p><strong>5. Send a link</strong></p><p>I&#8217;ve lost track of the number of errors I&#8217;ve had reported as simply &#8220;a page on my site didn&#8217;t work&#8221;. OK&#8230;. which page? On which site? Send a link to the page which isn&#8217;t working. If it&#8217;s an admin page in WordPress or other system, you can still send a link to it &#8211; even if we can&#8217;t access a page directly by clicking that link, there&#8217;s a load of information we can still get from that link.</p><p>The more information you can provide your developer, the quicker we can get it fixed. Remember that an email trail of error reports can be much, much more helpful than a phone call, because you can include exact error messages and images, and it&#8217;s not open to interpretation. You also have a record of when you&#8217;ve reported an error, and we have a record of when we&#8217;ve responded to you.</p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2013/02/reporting-bugs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Another open letter to BT&#8217;s CEO</title><link>http://www.maltpress.co.uk/2012/07/another-open-letter-to-bts-ceo/</link> <comments>http://www.maltpress.co.uk/2012/07/another-open-letter-to-bts-ceo/#comments</comments> <pubDate>Thu, 26 Jul 2012 14:29:47 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=1016</guid> <description><![CDATA[Mr Livingstone, (cc. Jonathan Djanogly MP, Andrew Lansley MP, Chi Onwurah MP, Juliette Garside, Guardian Telecoms Correspondent, Cambridge Evening News news desk) I&#8217;m writing to you again about the way my complaint has been handled by your company. I&#8217;m really not happy it&#8217;s come to this. I did think that one your high-level escalation team [...]]]></description> <content:encoded><![CDATA[<p>Mr Livingstone, (cc. Jonathan Djanogly MP, Andrew  Lansley MP, Chi Onwurah MP, Juliette Garside, Guardian Telecoms  Correspondent, Cambridge Evening News news desk)</p><p>I&#8217;m writing to you again about the way my complaint has been handled by  your company. I&#8217;m really not happy it&#8217;s come to this. I did think that  one your high-level escalation team were on the case, things might get  sorted, but I&#8217;ve been plagued by your company&#8217;s incompetence time and  again since my last email to you.</p><p>Your company is fundamentally flawed in the way it deals with customers.  Departments do not communicate with each other. Your terms and  conditions clauses about liability for line faults and &#8220;it&#8217;s an estimated speed&#8221; are rolled out for every  complaint, even when the complaint has gone beyond this. You complaint  handling process is frustrating at best and opaque and further damages  trust in your brand at worst. Beyond this, BT continues to have a  monopoly over the supply of rural broadband which means you get away  with it.</p><p>The reason I&#8217;m copying my local MP Jonathan Djanogly, Andrew  Lansley (who&#8217;s recently given his support to a campaign to improve  broadband provision in our neighbouring constituency) and Labour MP Chi  Onwurah in on this email &#8211; is that the &#8220;possible&#8221; monopoly over  superfast broadband already exists in rural &#8220;normal&#8221; broadband  provision, and to some extent in all broadband provision.</p><p>When I first became a business customer of BT I didn&#8217;t want to go with  your company. Lots of people I know have had bad service. I&#8217;d been OK as  a consumer customer, but there was nothing special and I wanted to try  another supplier. Your competitors told me, though, that they&#8217;d be more  expensive and unable to match the speeds you&#8217;d give because they were  forced to rent lines owned by you and that your company makes sure they  own and operate more lines from each exchange than competitors. I let  this slide and grudgingly went with you.</p><p>I got on OK with this, but I was on the edge of Cambridge, opposite the  Science Park, right next to a new business park, so that&#8217;s to be  expected.</p><p>Now I&#8217;ve moved BT is the only option (don&#8217;t get me started, by the way,  about the way your customers need to renew their contract term &#8211; in the  case of businesses for 2 years &#8211; any time they move premises. That&#8217;s  quite a sneaky way to lock people in, isn&#8217;t it?). Virgin? Can&#8217;t offer  the speed you offer, cost twice as much, and I need to pay you line  rental anyway. Every other supplier the same. Because your competitors  need to cover the cost of equipment and service from BT Wholesale. The  only other solutions are a 3G dongle &#8211; which offers comparable speed and  cost but limits usage and is much harder to network a house with &#8211; or  satellite, which might start to get near the speed at a push and again  places heavy limits on usage.</p><p>BT have a monopoly because of Openreach and BT Wholesale. Obviously one  central body is required for infrastructure maintenance and provision:  but the fact that this central body is owned and operated by one of the  main suppliers of services which rely on this infrastructure means that  other operators can only compete on BT&#8217;s terms. Ofcom have already  forced you to cut what you&#8217;re charging competitors, so you know you&#8217;ve  got a monopoly: <a
href="http://www.theregister.co.uk/2012/03/07/ofcom_openreach_price_fall/"> http://www.theregister.co.uk/2012/03/07/ofcom_openreach_price_fall/</a>. The  only way a UK rural consumer or business can get landline internet  provision requires BT to be paid at some point. Which explains why you  don&#8217;t care what happens to your customers and whether we leave or not.  Whatever happens, you get paid.</p><p>BT&#8217;s monopoly doesn&#8217;t just affect big businesses like Virgin. It affects  small businesses like mine. BT&#8217;s monopoly means I can&#8217;t get out of the  contract I&#8217;m stuck in without losing lots of money. It means BT can get  away with insulting offers of &#8220;goodwill&#8221; gestures when their flawed  procedures lose us money.</p><p>I&#8217;ll tell you my story as an example of how BT have cost me money. Mr  Livingstone, you know some of this. To the various MPs I&#8217;ve included in  this email, I&#8217;m sorry it&#8217;s long, but it&#8217;s relevant to either your  constituencies or your work with UK broadband provision and it&#8217;s a  direct example of the damage BT are doing to UK business.</p><p>I moved from my previous office. I checked my new postcode online and  your online checker told me I&#8217;d get a speed of between 4Mbps and 8Mbps  (it&#8217;s actually gone up over the last week from 3.5Mbps) with an expected  speed of 6Mbps. You can see this here: <a
href="http://www.productsandservices.bt.com/consumerProducts/displayCategory.do?categoryId=CON-TOTAL-BB-R1">http://www.productsandservices.bt.com/consumerProducts/displayCategory.do?categoryId=CON-TOTAL-BB-R1</a> using my postcode of PE28 9NG. House number is 9.</p><p>I rang your sales team and got the same estimate. They emailed me with that estimate to confirm it.</p><p>A week later -after the move was agreed with you, my letting agents, my  partner &#8211; they emailed me again and said the estimate was now about  4.5Mbps.</p><p>Then it was installed and the speed was 1.5Mbps. I rang to see if there  was a fault on the line. I was told there was and that this would be  fixed. By the end of that week, when I was told it was fixed, the speed  was the same. The engineer I spoke to told me that the line would never  be stable at higher speeds and that&#8217;s the best I could get.</p><p>Many people would leave it at this. However, I&#8217;d just moved my home and  my business on the basis of what I was told in terms of broadband speed.  People at BT have said to me &#8220;well, no-one makes that kind of move  based on an estimate like that&#8221;. Really? People do this all the time. I  was expecting the initial 6Mbps I was quoted to be more like 4Mbps and  that was fine. Don&#8217;t forget, your website says the minimum would be  4Mbps. I had no way of getting a more accurate estimate than this. How  else are people supposed to make these decisions?</p><p>I&#8217;d like to point you at the ASA&#8217;s help note on advertising broadband  speeds: <a
href="http://www.asa.org.uk/Resource-Centre/Hot-Topics/~/media/Files/CAP/Help%20notes%20new/speed%20claims.ashx">http://www.asa.org.uk/Resource-Centre/Hot-Topics/~/media/Files/CAP/Help%20notes%20new/speed%20claims.ashx</a> and in particular this quote:</p><p><em>&#8220;The CPRs require that advertising must not contain misleading  claims, or omit material information, to the extent that the  advertisements are likely to affect adversely consumers’ transactional  decisions about products. The effect on consumers is considered from the  point of view of the average consumer. The average consumer is assumed  to be reasonably well-informed, reasonably observant and circumspect. If  an advertisement is targeted at a particular group of people, it is  considered from the point of view of the average member of that group.</em></p><p><em>The BPRs protect businesses targeted by business-to-business  advertising. The BPRs state that an advertisement is misleading if it  deceives the traders to whom it is addressed and is therefore likely to  affect their economic behaviour.&#8221;</em></p><p>I am an average or above average consumer when it comes to broadband. I run websites. I know a bit about connecting to the web.</p><p>I also want to point out this: had I been a consumer, not a business  customer, the situation would have been the same. Had I thought &#8211; as a  resident &#8211; that the broadband speed I would get in this house would be  1.5Mbps &#8211; I would have ended my contract with you when it expired and  found an alternative provider. The fact I&#8217;m a business customer is  irrelevant to my complaint.</p><p>So I complained. I wrote to you, Mr Livingstone, after being told  several times nothing could be done, although I was offered the chance  to leave my contract early with no penalty. Very kind, considering your  monopoly over broadband.</p><p>BT, in effect, tell customers that regardless of what we&#8217;re paying,  regardless of what you say you&#8217;ll give us, can give us whatever service  they like. Imagine another business running like this. Imagine I offered  to build a website for someone with 100 pages and a contact form, we  sign a contract based on this, and I deliver 10 pages and no contact  form. Imagine I then tell my customer that what I offer is only really  an estimate and if they don&#8217;t like it they can go somewhere else, except  everyone else pays me a cut anyway.</p><p>So I complained. I took it as high as I could. Trading Standards, BT,  writing to my MP, Twitter, I blogged about it  (<a
href="http://www.maltpress.co.uk/2012/07/an-open-letter-to-bts-chief-executive/">http://www.maltpress.co.uk/2012/07/an-open-letter-to-bts-chief-executive/</a>).  I was contacted by your high-level escalation team and an engineer  started working on the case. This is where things start to get even  worse: suddenly the contradictions start.</p><ul><li>The engineer told me that the line was, actually, more than capable of  supporting the speed I&#8217;d been quoted, and that the previous engineer  was wrong. Great!</li><li>Some work was done. Faults were found and fixed. Days passed.</li><li>I was called and offered a &#8220;goodwill&#8221; gesture of three months&#8217; free  line rental. That&#8217;s what you offer new customers, I&#8217;ve just discovered.  It didn&#8217;t even cover the cost of calling you to get the issue sorted. I  turned this down and was told a deadlock letter would be sent.</li><li>I was also told on this call that if I rely on broadband (doesn&#8217;t  every business?) that the BT Business package probably wasn&#8217;t good  enough for me. So you&#8217;re selling a product which isn&#8217;t fit for purpose?</li><li>I was called again by the engineer working on my case. He explained  various stops on the line had now been removed and that the speed would  settle but was pretty much right now &#8211; at 5.5Mbps. He also told me that I  shouldn&#8217;t have been called earlier and offered any &#8220;goodwill&#8221; because  the case was still open.</li><li>I was called on Monday of this week by the engineer to check that the speed was still stable. It was. The case was closed.</li><li>Today I received a call about the complaint. I was offered 3 months&#8217;  free line rental AND three months&#8217; free broadband. This just about  covers the cost of calling you to sort the issue. Again, I refused.</li><li>The earlier &#8220;our business package isn&#8217;t good enough for a business&#8221;  slip was explained as &#8220;this service is on a contended line, you&#8217;d be  better with a dedicated one&#8221;. It was fine before. Sharing the line out  of business hours is fine for me. What I have a problem with is being  told 1.5Mbps was the maximum I could expect and that BT consider this to  be OK. Also, there&#8217;s no way I&#8217;d pay more for a line than I am now when  you can&#8217;t even get this one right.</li><li>I was also told on this call that when I made the initial complaint  the line was in the stabilisation period and that the speed would have  increased to what I now have anyway. This directly contradicts being  told by the high-level escalation team engineer that blocks had been  removed from the line because they&#8217;d been looking at it more closely. It  contradicts what I was told by the original engineer when he told me  1.5Mbps &#8211; 2Mbps was the best I could expect. It also implies that my  complaint has been for nothing; that this whole issue is my fault. It&#8217;s  not. It&#8217;s down to the incompetence of BT&#8217;s staff and systems.</li></ul><p>The &#8220;goodwill&#8221; gestures I&#8217;ve been offered have been insulting. You have  cost my business money. I have lost wages over this. My business has  been put in peril. You fall back on &#8220;estimated speeds&#8221;. You remind me  that compensation for lines being down is only limited to months-worth  of free line rental, depending on the time that there is a fault on the  line.</p><p>I continue to contend that this is not the point. Had anyone at any  point told me that the line would settle and the speed would increase to  5.5Mbps I wouldn&#8217;t mind. I have lost time and money because the line  was slow, yes, but most time and money has been lost trying to get this  fixed.</p><p>I have been repeatedly mis-informed: mis-informed about the speed I can  expect, mis-informed about it being fixed and the speed I am getting is  &#8220;final&#8221;. Unless I had taken the time to get my complaint escalated I  would not be receiving the speed I am now receiving. It&#8217;s not now a  terrible speed. If someone had managed to fix the original fault in the  first place without all this trouble on my part to escalate, I&#8217;d not  even expect a &#8220;goodwill&#8221; gesture.</p><p>This is not about there being faults on the line. This is about being  told lies, repeatedly. This is about needing to spend huge amounts of  time and money to get a straight answer from you. This is about your  departments not talking to each other, about members of your staff and  your processes causing me to spend &#8211; at last count &#8211; at least 3 working  days trying to fix this. Your offer of &#8220;goodwill&#8221; and your disclaimer  about not being liable for business disruption is based on faulty lines  causing that disruption. As I said, it&#8217;s not completely the faulty lines  causing the disruption: it&#8217;s the fact that your company is unwilling to  accept those faults exist unless I spend so much time complaining about  it. My losses are directly due to negligence on your part. Speed is not  the issue here: the issue is appalling service and repeated lies.</p><p>Your poor service directly impacts people&#8217;s lives.  Every hour I spend on hold to you is an hour that night I need to work  to make up lost time. The week I was without broadband because you moved  the goalposts on installing it was a week I&#8217;ve had to make up over  weekends. I don&#8217;t want to keep complaining: I&#8217;m tired, I&#8217;m upset at the  damage this is doing to my business. I have better things to do than  feel so frustrated and unhappy because I&#8217;ve been treated so badly. This  business is my life, and when you damage my business I lose sleep, I  suffer stress. I&#8217;ve seen less of my partner since we moved in than I  used to before &#8211; because I&#8217;ve been working all night trying to make up  lost time. And I&#8217;m not doing too badly from this, comparatively. I have  no doubt businesses have been completely destroyed by events set in  motion by your company. I have no doubt there are people out there  emotionally less able to cope for whatever reason who are getting awful  service from you because you seem content to provide service not based  on what you offer or what we pay but what we&#8217;re willing to work to get  by complaining.</p><p>Your complaints process is also seriously damaged by your refusal to  offer any follow-up. You carry out &#8220;root cause analysis&#8221; but offer your  customers no feedback or follow-up on this. The overwhelming attitude I  have been faced with is &#8220;have the offer we give new customers &#8211; you&#8217;re  paying us for 2 years now anyway &#8211; shut up, leave us alone, we have  nothing more to do with this&#8221;. I have no trust in BT. Your brand has  been damaged beyond repair for me now. BT to me means lies,  incompetence, negligence: why should I believe my complaint will make  any difference when there is no transparency about what happens next?</p><p>You will be sending me a deadlock letter, because I still find your  offer &#8211; as I said, it&#8217;s what you offer new customers anyway &#8211; an  absolute insult. I will be taking this further. I will be contacting  OfCom and the communications ombudsman. I will continue to tweet, I will  continue to blog, and I will continue to tell people I know that BT is a  company crippled by poor systems and service and that they do not care  about consumers. You&#8217;ve proved that to me.</p><p>I expect a reasonable offer of compensation. Alternatively, I will  invoice you for the time I have lost dealing with this complaint. After  all, it seems you would be unaware of the issues on my line had I not  taken it further than my initial complaint.</p><p>I also expect an explanation of how you will be avoiding this in future.  How will you avoid customers being left out of pocket because you are  complacent enough to give people a flawed service unless they complain  directly to you, Mr Livingstone?</p><p>I will also be exploring avenues to raise awareness of the monopoly BT  hold over rural broadband services and ways I can help the fight to end  this. Your company has the potential to help the UK become a  world-leader in entrepreneurism and small business or to throttle competition and small companies. At the moment, you seem content with  the latter.</p><p>Adam Maltpress</p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2012/07/another-open-letter-to-bts-ceo/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>An open letter to BT&#8217;s Chief Executive</title><link>http://www.maltpress.co.uk/2012/07/an-open-letter-to-bts-chief-executive/</link> <comments>http://www.maltpress.co.uk/2012/07/an-open-letter-to-bts-chief-executive/#comments</comments> <pubDate>Fri, 06 Jul 2012 18:05:36 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=1013</guid> <description><![CDATA[Dear Mr Livingstone, I am writing to you in order to complain about an appalling level of service I have recently received from BT. I think you should be made aware of the ways in which your company&#8217;s poor service, monopoly over rural broadband services, and constant miss-selling of broadband services impact not only on [...]]]></description> <content:encoded><![CDATA[<p><span
style="font-family: Arial;">Dear Mr Livingstone,</p><p>I am writing to you in order to complain about an appalling level of  service I have recently received from BT. I think you should be made  aware of the ways in which your company&#8217;s poor service, monopoly over  rural broadband services, and constant miss-selling of broadband  services impact not only on small businesses but also the lives of real  people.</p><p>Before I start, I would like to point out one thing: the people I have  spoken to, as individuals, have been sympathetic, helpful where they can  be, and held back by your company&#8217;s systems. This is not about  individual blame. I am angry and incredibly upset &#8211; as you&#8217;ll see  shortly this situation has a major financial and emotional impact on  both myself and my partner &#8211; but I am angry and upset with your company,  not with your staff.</p><p>I am a freelance web developer. The Internet has been my only source of  income for six years now; two years ago I moved from working in the  kitchen of a shared house to my own little office space. I had a BT  Business line; speeds were good (the last test I did gave me a figure of  6.7Mbps), and I was happy there.</p><p>Recently, however, I met someone, started a relationship, and decided it  was time to move out of house shares and in with one person. In order  to do this and to be close to her place of work I needed to move out of  my office. This was a very big move for me, but we found a house we both  fell in love with. It had room enough to put my office in one of the  bedrooms. Before we paid any deposit, I checked online to see what the  expected broadband speed would be: after all, I would be running a web  development company from here. Your website told me &#8220;between 3.5Mbps and  8.5Mbps, expected to be 6Mbps&#8221;. Great! In fact, you can still see this  figure if you use my postcode on your site to check the speed &#8211; it&#8217;s  PE28 9NG. Number 9.</p><p>When I called your business mover&#8217;s team the person I spoke to confirmed  this expected speed and gave me an installation date of 25/6/2012 &#8211; the  Monday after we moved in. This would mean no lost business time, and as  I&#8217;m incredibly busy at the moment, that&#8217;s a good thing. I got an email  to this effect dated 6/6/2012 and the order number </span>BOS 13686690 (in case you&#8217;d like to check what you promised me). At this point I was happy.</p><p>However, 6 days later I got a new email telling me the connection would  happen a week later, on 2/7/2012 &#8211; not good, as I would now be losing a  week&#8217;s work, and that now the estimated maximum speed would be 4.5Mbps.  The order number for this was BOS 13699074. I can send copies of the  emails to the relevant parties if needed.</p><p>Now, I&#8217;m not a network administrator or anything &#8211; I code &#8211; but I&#8217;m not  stupid. I know your estimates are bumped up a bit and rely on being  right next to an exchange and having the best house wiring possible. I  accepted initially that 6Mbps meant 4-5 in reality (even if you said it  was an &#8220;estimated actual speed&#8221;) and I was fine with that. I also knew  that 4.5 might be closer to 3 and I wasn&#8217;t happy but it&#8217;s not an  unworkable connection. Pretty terrible matched against comparative  services in other countries, thanks to BT&#8217;s lack of investment in the  fibreoptic network when they should have been investing, but still: I  could just about work with that, and the village we moved to is  beautiful.</p><p>At this point, however, other issues arise. You would be charging me a  £99 connection fee for premises which had been connected until a couple  of days earlier, meaning you somehow manage to send an engineer to  physically disconnect a property in days but can&#8217;t reverse that process  for a couple of weeks; I wasn&#8217;t happy about this but figured it was par  for the course. I complained out of principle &#8211; it seems an unfair,  illogical and poorly organised system which wastes your time and money.  But even this wasn&#8217;t a deal-breaker.</p><p>Then there was the contact. I was asked for a main contact number for  all calls, and a secondary one in case I couldn&#8217;t be reached. I gave you  my dad&#8217;s mobile number. You called him and not me. He told you he was  the secondary number. You called and texted both him *and* me. We told  you again his was the secondary number. You called him again. Then you  called me. Then I got an automated call at 8am. Not one of these calls  or texts gave me any information other than that the engineer would come  at the allotted time. Very annoying. Still not anything to get too  worked up about, right?</p><p>Then the engineer came. He was nice, efficient (to the point of making  me wonder why a 20 minute job costs your customers £99) and finally got  me online. I sorted through the 314 client emails I had from the week  you&#8217;d left me without a business. I noticed things were slow and dropped  out now and then. I figured it would settle overnight.</p><p>The next day I checked the speed again and it was around 1.3Mbps. This  is not the sort of speed a web developer can work with. It&#8217;s certainly  not a speed for which I am willing to pay the same as when I was getting  speeds of 6-7Mbps. I called your technical team. After the usual  turning things on and off, trying filters and sockets and so on, the  engineer ran a 2 minute test and discovered a fault at the exchange. I&#8217;m  still not sure why this test isn&#8217;t run as soon as a line is connected,  if not before: if it&#8217;s an exchange issue, surely it&#8217;s not dependent on  the line being connected?</p><p>I was told that the issue would be fixed in 72 hours and after that the  line would be achieving its full potential. I waited, and checked this  morning and the speed was the same: 1.3Mbps. I called the technical team  again, and this is where the main problem arises: <strong>I was then told  that this was correct, that the speed would be unlikely to increase, and  that the line could only really support 2.5Mbps workable speed maximum</strong>.  The 4.5Mbps speed was possible but only with quality degredation to the  point that it would be throttled, making it a theoretical limit only.</p><p>I had based my move to this location on a lie. I was told  that I would  be getting a broadband speed of 6Mbps or thereabouts and once I was told  that I stopped looking for anywhere else to live and work. I signed a  contract on a house to rent based on the information I was given by your  systems, which is false; which can be proven to be false easily by your  own systems, which were not checked. I changed not only my business but  also my personal life based on the information I was given and <strong>people do this sort of thing every day</strong>. The accuracy of your systems determines where people move their offices and homes.</p><p>I have lost an awful lot of money. I lost a full week&#8217;s work because the  connection date was moved: that&#8217;s at least £1000 in billable hours I&#8217;m  now having to make up by working overnight and weekends. I have invested  in infrastructure &#8211; routers, switches, ethernet over powerline adapters  (before these are blamed, I have been testing the speed directly from  the router). That&#8217;s another £100. And now I&#8217;m expected to pay for  broadband which is not fit for purpose. 1.3Mbps doesn&#8217;t even reach the  2Mbps OfCom class as &#8220;broadband&#8221;. How can I run my business here, now?  How can I afford to break contract on this house? How can I afford to  rent an office somewhere else? Had I been given accurate information at  the outset I would not be living or working here.</p><p>It turns out the only way to get a workable speed is to use a 3G  connection provided by 3. This gives me a speed of around 5Mbps. How is  it a wireless provider can give me a faster speed than a company who  owns and runs the majority of the country&#8217;s broadband infrastructure?  How can you advertise &#8220;award winning broadband&#8221; and &#8220;lightning speeds&#8221;  when you are so much slower than &#8211; effectively &#8211; a mobile phone?</p><p>BT seems to pride itself on support for British business, and for small  business, and you said as much in your recent interview with The Bottom  Line on the BBC on 2 March. You said we should stop looking negatively  at Britain&#8217;s achievements. Frankly it&#8217;s hard not to when this kind of  thing happens. Your company&#8217;s processes and systems have <strong>changed my life</strong> &#8211; and changed it negatively. What started as a move into a house I love  has now become incredibly uncertain and risks the future growth of my  business.</p><p>You effectively have a monopoly on rural broadband provision: by owning  exchanges and infrastructure, and leasing lines to other suppliers,  there is no way for them to price services to villages such as this one  in a competitive way. I want more than anything to move to another  supplier, like Virgin: but they were honest with me that the speed was  terrible and their costs for this service would be high for what I would  receive. Your much vaunted &#8220;BT Infinity&#8221; service is attempting to play  catch-up with other countries whose infrastructure has far better  investment and who offer much faster speeds &#8211; and it&#8217;s still unavailable  in far too many places. One of the many operators I spoke to today  suggested I wait for this to be connected but couldn&#8217;t give me a date,  conceding eventually that it might be a year or more away.</p><p>The Government and companies such as yours make lots of noise about  teleworking, a low-carbon economy, entrepreneurship, home working and  the like. Things only possible with good broadband provision. And yet  those of us trying to achieve those things are frustrated by your lack  of service, your monopoly, and your outdated infrastructure &#8211; things  which are hindering small businesses across the country. Worse than  this, you are selling people untruths: businesses and individuals are  making decisions to move to places or take jobs, trying to do those  things we are being encouraged to do, based on the information you give  them <strong>and that information is false.</strong></p><p>As you can see, I am deeply unhappy and very angry with the way I have  been treated. I have cancelled by line with you. If I can, I will never  use BT again: I will certainly be telling everyone I can not to. I have  contacted Trading Standards and complained; this email is copied in to  my MP. I will be contacting the communications ombudsman. I have also  contacted a technology journalist friend and I am making extensive use  of Twitter to raise awareness that you are miss-selling broadband  speeds. I will be posting a copy of this email to my own blog.</p><p>I don&#8217;t know what you can do for me, but I do at least expect a reply to  this email and a better understanding of how this happened and what you  will be doing to stop it happening again. As I said above, use my  postcode to see what you&#8217;re estimating the speed for this address to be.  You are still selling people the lie which I believed when I made the  decision to move here. Please stop it.</p><p>Regards,</p><p>Adam Maltpress</p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2012/07/an-open-letter-to-bts-chief-executive/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>How to buy your website, part IX &#8211; the big finish</title><link>http://www.maltpress.co.uk/2012/06/how-to-buy-your-website-part-ix-the-big-finish/</link> <comments>http://www.maltpress.co.uk/2012/06/how-to-buy-your-website-part-ix-the-big-finish/#comments</comments> <pubDate>Thu, 07 Jun 2012 13:38:38 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=1008</guid> <description><![CDATA[Another long-overdue post, thanks to loads of lovely work coming in and keeping me very busy. This time &#8211; and for the final time &#8211; we&#8217;ll be discussing how to launch your website now it&#8217;s complete, and what the difference between a hard and soft launch is. As ever, you can see all previous parts [...]]]></description> <content:encoded><![CDATA[<p><em>Another long-overdue post, thanks to loads of lovely work coming in and keeping me very busy. This time &#8211; and for the final time &#8211; we&#8217;ll be discussing how to launch your website now it&#8217;s complete, and what the difference between a hard and soft launch is. <a
title="How to buy your website – the full guide" href="http://www.maltpress.co.uk/guide/">As ever, you can see all previous parts of the series here.</a><br
/> </em></p><p>There are a couple of ways to know you&#8217;re getting to the end of a project: firstly, you&#8217;ll be approaching the date you agreed with your supplier (or may have gone past it slightly if things have changed dramatically); secondly, your site will be pretty much complete.</p><p>A quick note on this, however. Sometimes &#8211; quite often, in fact &#8211; getting your site &#8220;good enough&#8221; is good enough. By which I mean perfection is an impossible goal and not worth the extra time and cost. You&#8217;ll always have things you think could be slightly better, elements you wish worked a little smoother, things you needed to compromise to keep within time and budget. This is normal. You&#8217;ll never have things exactly how you want them &#8211; and you&#8217;ll be so close to the project at this stage that you&#8217;ll find it very hard to look at it fresh and say &#8220;yes, this is the right site for our clients&#8221;. Someone looking at it new may well see it and think it&#8217;s the most perfect website ever.</p><p>At this stage you&#8217;re also entering into a law of diminishing returns. The more changes you make, the more they&#8217;ll cost and the less overall impact it&#8217;ll have. The exact shade of a button might take hours of back-and-forth to get right but what you get out of it is minimal. Learn to let go a little and, if you can, get a completely fresh set of eyes on the site.</p><h2>Now go!</h2><p>OK &#8211; you&#8217;re happy. The time has come to launch. What&#8217;s the process involved?</p><ol><li>You agree with the developer that it&#8217;s time to launch. At this point, you should stop any changes you might be making to content. Any changes you make between telling the developer you&#8217;re ready and the developer telling you it&#8217;s live will probably be lost forever.</li><li>The developer takes a full backup of your staging server. This includes database and all the files. It&#8217;s not a difficult process, but it can be quite drawn out: moving files around can just take time (and might kill your developer&#8217;s internet connection for a while, so sometimes they&#8217;ll insist this happens overnight).</li><li>The developer moves the full site to your live server. There are a couple of ways this might happen:<ol><li>If you&#8217;ve already got a site and it&#8217;s on the same server, everything is moved over except the main index.asp, index.php or index.html file, which is first renamed and then moved. It&#8217;s this file which determines the home page and &#8211; for server-side scripting (ASP and PHP) usually makes the whole site work.</li><li>If it&#8217;s a brand new site, everything is a bit easier &#8211; things are just moved over and tested as appropriate. It only really goes &#8220;live&#8221; when you start telling people it&#8217;s there.</li><li>If it&#8217;s a replacement site and on a new server, everything is moved over and tested, often using something called a &#8220;hosts&#8221; file. This file tricks your computer into thinking the old site has moved to a new server.</li></ol></li><li>The database is moved. This is a bit like moving normal files, but often needs the developer to run some scripts to update settings. If you were to look at the site while this process is happening, you might see some things working but others completely broken: this is normal.</li><li>The new site is tested. Once it exactly mirrors your test server, it&#8217;s ready to go. Your developer may send you new login details for the content management system.</li><li>Now it&#8217;s time to make it live. Again, there are a couple of ways this can be done:<ol><li>If it&#8217;s a new site on an old server, it&#8217;s just a case of renaming the main index file.</li><li>If it&#8217;s a brand new site, by this stage it&#8217;s live.</li><li>If it&#8217;s a replacement site on a new server, the domain name needs to be pointed to the right IP address. Although this is a simple procedure &#8211; it&#8217;s clicking a couple of boxes on a website &#8211; the actual process can take anything from a couple of hours to a couple of days as the change trickles through the internet.</li></ol></li></ol><p>And there we have it. Your site is live! But that&#8217;s not really a launch&#8230;</p><h2>Insert NASA-type punning headline here</h2><p>Actually having your site running on a server isn&#8217;t a launch, exactly. Google will start indexing it now but it can take months before it&#8217;s properly listed in search results. People aren&#8217;t going to know about your site until you actually tell them &#8211; whether that&#8217;s by email, by sending them a letter, by putting up posters or however else you communicate with them.</p><p>If you&#8217;re replacing an existing site, you don&#8217;t have to think about this as much. Your search engine rankings might fluctuate a little but &#8211; if the site&#8217;s been well built &#8211; they won&#8217;t drop off completely.</p><p>If it&#8217;s a brand new site, though, you&#8217;ll need to do a proper launch. There are two stages: soft launch and hard launch.</p><p>A soft launch is, in effect, what you&#8217;ve just done: making the site live. For a soft launch, you should tell a few &#8211; and only a few &#8211; people that the site is live and canvass opinions. At this stage you&#8217;re testing the site with real people, checking that the live server is working as expected, and slowly increasing the number of visitors you get to make sure it&#8217;s all holding up. You can tweak the content and make any last changes you might want to.</p><p>A hard launch is the proper scary day you let the entire world know your site is live. Generally, you should wait until you&#8217;ve let the site bed in for a while after soft launch before you do this. Iron out any issues you might find, take feedback from your initial testers, and then make it properly live.</p><p>If you&#8217;ve got a big site or something where you&#8217;re expecting lots of people to do something (like filling in a form), then hard launch can still be a test of your site&#8217;s ability to stand up to punishment. Most small business sites will be fine, but you&#8217;ll know all too well of sites which launch with a big fanfare only to stop working after 20 minutes because the server can&#8217;t hold up to it. If you&#8217;re managing a big project and you know that a launch email will go out to 100,000 people at 11am on Monday morning, talk to your host in plenty of time about how to keep things running smoothly. A sudden spike in users on a site is, in effect, what&#8217;s known as a DDOS (distributed denial of service) attack &#8211; a way to take down a website by bombarding it. If your hosts aren&#8217;t expecting a spike, they might take the site down to protect you. Also, a launch announcement can use all your server&#8217;s bandwidth for a month in one go&#8230; and there&#8217;s no point paying every month for enough to deal with the launch spike. Talk to your hosts and make arrangements.</p><p>The best thing about doing a soft and hard launch is that it adds a bit of a buffer to your site build. The hard launch &#8211; which probably needs a lot of planning, print preparation, PR activity and so on &#8211; can be booked well in advance. If issues arise and mean launch is pushed back, you just move the soft launch closer to the hard launch (within reason) without needing to do undo all the preparation you&#8217;ve done for hard launch. Having this buffer makes project management far simpler and cheaper.</p><p><em>So there we have it &#8211; buying your website from start to finish. Hopefully you&#8217;ve found the series handy and will be applying some of the lessons to your own web projects in future. If you&#8217;ve got any questions, <a
title="Contact" href="http://www.maltpress.co.uk/contact/">please get in touch</a> &#8211; and remember that if you need someone to deliver this kind of project, just ask! I will be compiling all these articles into one e-book at some point soon, so check back or check my <a
href="http://twitter.com/maltpress">twitter stream</a> for details.</em></p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2012/06/how-to-buy-your-website-part-ix-the-big-finish/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Add custom meta to home page only</title><link>http://www.maltpress.co.uk/2012/03/add-custom-meta-to-home-page-only/</link> <comments>http://www.maltpress.co.uk/2012/03/add-custom-meta-to-home-page-only/#comments</comments> <pubDate>Fri, 09 Mar 2012 16:40:13 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=1005</guid> <description><![CDATA[So&#8230; you want to add a custom meta box, but it&#8217;s only relevant to the home page: so you don&#8217;t want it cluttering the rest of your WP back-end and confusing your users. How do you do it? Simple. Assuming you&#8217;re using a static page as the home page, try this: function only_home_settings() { // [...]]]></description> <content:encoded><![CDATA[<p>So&#8230; you want to add a custom meta box, but it&#8217;s only relevant to the home page: so you don&#8217;t want it cluttering the rest of your WP back-end and confusing your users.</p><p>How do you do it?</p><p>Simple. Assuming you&#8217;re using a static page as the home page, try this:</p><p><code>function only_home_settings() {<br
/> // only add this meta box to the page selected as front page:<br
/> global $post;<br
/> $frontpage_id = get_option('page_on_front');<br
/> if($post-&gt;ID == $frontpage_id):<br
/> add_meta_box('Home', 'Home:', 'only_home_form', 'page', 'side', 'core');<br
/> endif;<br
/> }</p><p>// other meta box bits (form function and save function)</p><p>add_action( 'add_meta_boxes', 'only_home_settings' ); // ...add the action as normal, as well as other add_actions for this meta</code></p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2012/03/add-custom-meta-to-home-page-only/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Forcing PDFs to download in WordPress</title><link>http://www.maltpress.co.uk/2011/12/forcing-pdfs-to-download-in-wordpress/</link> <comments>http://www.maltpress.co.uk/2011/12/forcing-pdfs-to-download-in-wordpress/#comments</comments> <pubDate>Sat, 03 Dec 2011 18:18:51 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=997</guid> <description><![CDATA[What a browser does with different files is very much up to the browser, and for the most part that&#8217;s exactly the way it should be. It&#8217;s up to the user how they deal with downloads, and you should really have users who know to right-click and choose &#8220;save file as&#8230;&#8221; or similar when they&#8217;re [...]]]></description> <content:encoded><![CDATA[<p>What a browser does with different files is very much up to the browser, and for the most part that&#8217;s exactly the way it should be. It&#8217;s up to the user how they deal with downloads, and you should really have users who know to right-click and choose &#8220;save file as&#8230;&#8221; or similar when they&#8217;re confronted with a download link.</p><p>It&#8217;s not always that simple, though. Sometimes your client (or you) is going to want users to download a PDF rather than open it in a browser window (which is the default position for most browsers) &#8211; especially if it&#8217;s a big PDF. Really big files are going to take an age to open in the browser and may well stop you doing anything else while they load.</p><p>Of course, the best way to get around this is, again, simple and gives the user choice: tell the user how big the file is (you can use something along the lines of <code>filesize( get_attached_file( $post-&gt;ID ) );</code> in the appropriate place) and let them pick what to do.</p><p>But, again, you might not want to do this. For any number of reasons. So what do you do?</p><p>The easiest option is to use a .htaccess file in your uploads folder <a
href="http://www.thingy-ma-jig.co.uk/comment/7045" target="_blank">with rules like these</a>. But from time to time this won&#8217;t work: IIS servers, some other kind of server settings. I recently came across this issue on WP Engine hosting, but neither they nor I know completely why just yet. So what&#8217;s the other solution?</p><p>First up, you&#8217;ll need to create a template or loop for the attachment itself, and link to this using <code>get_attachment_link($attachment-&gt;ID);</code> (possibly with some kind of checking so this only happens for PDF files) &#8211; you can put your loop into your normal template structure using:</p><p><code>if(is_attachment()):<br
/> get_template_part('loop', 'download');<br
/> endif;</code></p><p>In your normal single.php file, of course.</p><p>Now, in your loop-download.php file, you can do a normal loop, but this time include a hidden iFrame where the attachment itself will go. As the source of the iFrame, you&#8217;ll want to link back to the attachment itself, but this time add a query string saying something like <code>"forcedownload=true"</code> to the address (we&#8217;ll get to that in a second):</p><p><code>&lt;iframe src="&lt;?php the_permalink(); ?&gt;?forcedownload=true" width="1" height="1"&gt;&lt;/iframe&gt;</code></p><p>(You&#8217;ll need to hide this iFrame with your CSS, or you may end up with a little square on the page).</p><p>Right &#8211; you&#8217;re done with the attachment pages now. Let&#8217;s move on to header.php.</p><p>At the very top of this file (any spaces may well cause a &#8220;headers already sent&#8221; error) you&#8217;ll need to put the following:</p><p><code>&lt;?php<br
/> if(is_attachment() &amp;&amp; $_GET['forcedownload'] == 'true'):<br
/> header('Content-type: application/pdf');<br
/> header('Content-Disposition: attachment; filename="download.pdf"');<br
/> readfile(get_post_meta( get_the_ID(), '_wp_attached_file', true ));<br
/> endif;<br
/> ?&gt;</code></p><p>What we&#8217;re doing here is first checking that we&#8217;re on an attachment page and then checking that the query string is set&#8230; if we don&#8217;t do this, the download will start when we click the download link, and we won&#8217;t get the &#8220;if your download doesn&#8217;t start&#8230;&#8221; bit. By loading the attachment template <em>first</em>, then loading it into itself and forcing this version to download, we get to see whatever you&#8217;ve put in the attachment template as well as the download dialogue. This could be anything in addition to the &#8220;if your download doesn&#8217;t start&#8230;&#8221; text &#8211; perhaps a link to related downloads or something like that.</p><p>You might need to add some extra checks for different file types if you want to do them in different ways, and always be careful of your images linking to attachment pages&#8230; if you do this (and WordPress will do this by default) you may well run into some odd behaviours unless you check the attachment file type before sending those headers.</p><p>Let me know if you use this code by leaving me a comment!</p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2011/12/forcing-pdfs-to-download-in-wordpress/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>A big update</title><link>http://www.maltpress.co.uk/2011/09/a-big-update/</link> <comments>http://www.maltpress.co.uk/2011/09/a-big-update/#comments</comments> <pubDate>Mon, 19 Sep 2011 08:00:24 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[maltpress]]></category> <category><![CDATA[growth]]></category> <category><![CDATA[news]]></category> <category><![CDATA[staff]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=954</guid> <description><![CDATA[I&#8217;ve been working for myself now for nearly five years. It was November 2006 I first registered for VAT, having done a bit of freelancing for a little while before that. I&#8217;ve loved every minute of what I&#8217;ve been doing since and it&#8217;s going from strength to strength. I&#8217;ve learned more than I thought possible [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: center;"><img
class="aligncenter size-full wp-image-956" title="celebrate" src="http://www.maltpress.co.uk/wp-content/uploads/celebrate.jpg" alt="" width="622" height="249" /></p><p>I&#8217;ve been working for myself now for nearly five years. It was November 2006 I first registered for VAT, having done a bit of freelancing for a little while before that. I&#8217;ve loved every minute of what I&#8217;ve been doing since and it&#8217;s going from strength to strength. I&#8217;ve learned more than I thought possible and continue to do so. I never thought I&#8217;d fall in love with any software, let alone a content management system, but WordPress and I have ended up having an amazing and fulfilling relationship, albeit with the occassional argument about (metaphorical, PHP-based) toothpaste lids.</p><p>I&#8217;d like to say thank you to all the people who&#8217;ve supported me through the past five years;  clients, suppliers, people I&#8217;ve met through networking (not least those  at Cam Creative), friends (Lucy &amp; Matt, Josie, Tracy, Nat and Michael especially, at  various times), family, attractive waitresses at CB2, and those random strangers who pop up every now and then to give you help.</p><p>Over the last couple of months I&#8217;ve become extremely busy; lots of really exciting projects, including a couple of youth projects (one of which is the return of the brilliant <a
href="http://www.nexttopboss.co.uk">Next Top Boss</a>). I love being busy, of course, but this has gone to extremes and has meant far too many all-nighters, worked weekends and missed opportunities. On the plus side, I can get back into a pair of trousers I had given up as lost some time ago.</p><p>On the negative side, it&#8217;s meant a bit of a slip in the standard of service I can offer, which has been very difficult for me to deal with. I&#8217;m not happy if I can&#8217;t respond to your calls and questions as soon as they come in, and I can only apologise to those of you who I&#8217;ve not been able to do that for just recently. I hate working like that.</p><p>For that reason, I&#8217;m starting to make some big changes to Maltpress; we&#8217;re going to be going Limited, hopefully early in 2012, although perhaps timed around the start of the financial year. We&#8217;re also taking on some help.</p><h2>Say hello to Clara!</h2><p><a
title="Clara Bear" href="http://www.maltpress.co.uk/about/clara-bear/">Clara Bear</a> is a very, very (scarily) talented developer I&#8217;ve known for 20 years or more, and is one of the few people I really trust to be able to produce the sort of work our clients deserve. She&#8217;ll be working with us on a freelance basis while she takes care of her lovely little son Sam.</p><p>Maltpress gets talent and greater capacity; you, our clients, get even better service, excellent WordPress (and other) development, and the same sense of fun and attention to detail you&#8217;ve come to expect. Clara&#8217;s poised and ready to take on some big projects I&#8217;m working on securing at the moment, and is also ready for anything new you might want to talk about. We&#8217;re especially keen to talk to people about pushing WordPress to the limit; using the excellent existing content management capabilities to produce some really cutting edge work. Combined with the brilliant design work of Mario at <a
href="http://www.jdjcreative.co.uk/">JDJ Creative,</a> the hosting and infrastructure work of <a
href="http://mdkwm.co.uk/">MDK Web and Media</a>, and the other excellent freelance designers, developers, writers and consultants in our network, we feel ready to take on any WordPress project you might want to throw at us.</p><p>We&#8217;re also very aware that there are those of you with bigger requirements; not just web development or content, but also wider communications projects you might want to talk about. For that, we&#8217;re incredibly happy to continue working with <a
href="http://www.thefoundryhouse.com/">The Foundry House</a>, stunningly good providers of PR and communications services with some very exciting social media experience and ideas.</p><p>I&#8217;m also trying to think of ways to formalise the role of my dad, Andy, who&#8217;s been helping keep me sane with some paperwork in the run up to his retirement.It&#8217;ll probably involve paperwork, helping us become Limited, and helping me respond to you as quickly as I used to when I started out (and as quickly as you deserve).</p><p>All this extra capacity means I can take on far bigger projects, but I don&#8217;t  want to neglect the little projects for start-ups (especially  creatives) around Cambridge which I do for the love of the work.</p><p>What I haven&#8217;t told Dad or Clara yet is that in five years&#8217; time they have to get tattoos like mine.</p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2011/09/a-big-update/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>How to buy your website, part VIII &#8211; more management</title><link>http://www.maltpress.co.uk/2011/09/how-to-buy-your-website-part-viii-more-management/</link> <comments>http://www.maltpress.co.uk/2011/09/how-to-buy-your-website-part-viii-more-management/#comments</comments> <pubDate>Fri, 16 Sep 2011 11:15:29 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[Uncategorized]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=945</guid> <description><![CDATA[Wow &#8211; it&#8217;s been a long time coming, hasn&#8217;t it? I&#8217;ve been off actually doing what I&#8217;ve been telling you all about &#8211; for the most part! Sometimes we all slip up, so I&#8217;ll tell you about that now. As ever, you can see all the previous parts of the series here. So last time [...]]]></description> <content:encoded><![CDATA[<p><em>Wow &#8211; it&#8217;s been a long time coming, hasn&#8217;t it? I&#8217;ve been off actually doing what I&#8217;ve been telling you all about &#8211; for the most part! Sometimes we all slip up, so I&#8217;ll tell you about that now. As ever, you can see <a
title="How to buy your website – the full guide" href="http://www.maltpress.co.uk/guide/">all the previous parts of the series here</a>.</em></p><p>So last time we talked a bit about time management, and why Gantt charts &#8211; even simple ones &#8211; are a lot handier than you might think. But how do you actually do the doing? It&#8217;s not just enough to send your Gantt to your supplier and leave them to it &#8211; you also need to make sure you know what&#8217;s going on.</p><h2>The good</h2><p>A good web developer will send you regular updates on progress. Make sure you check with them at the outset how they deal with this sort of thing. It might be enough that they just email if they&#8217;re going to miss a milestone; it depends how time-critical your project is, how much you trust the supplier, and so on. If you don&#8217;t know them that well, agree with them at the outset that they&#8217;ll email you every Friday morning (for example) with an update on what&#8217;s done and what&#8217;s next. A lot of the time they&#8217;ll work hard for a while and have nothing you can really see &#8211; loads of technical set-up work, for example, which doesn&#8217;t show on the front end. Getting updates can put your mind at rest that things are actually happening.</p><p>You might be working with a couple of suppliers at the same time, in which case it&#8217;s (possibly) your job as project manager to make sure they all know what&#8217;s going on. There&#8217;s nothing worse as a developer than to expect a design, plan your workload around it, and then not hear anything about it for a week or more because the designer fell off his trendy scooter and no-one told you. If you&#8217;re managing the project, get everyone involved to email you their updates on the Thursday, then send the pertinent updates to everyone on the Friday morning.</p><h2>The bad</h2><p>You&#8217;ll get some developers &#8211; good developers, good workers &#8211; who slip up. We all do it. I did it recently; I took on a job which was interesting but had no budget, and because it had no budget I got complacent about project management, didn&#8217;t spec it, and it soon got out of hand. The natural reaction to this as a developer is to cut off communication, bury yourself in the work as much as possible, and try to push it through as quickly as possible, which I did; we all ended up getting really frustrated with each other for no reason, and a simple project took twice as long and caused twice as much heartache as it needed to.</p><p>Burying ourselves in the work is great in many respects, because it means that we&#8217;re actually doing it for you and want it cleared out of the way. But from your point of view, you&#8217;ve made one or two changes &#8211; which seem to you to be quite minor &#8211; and now your developer is in a strop and ignoring you. Shutting off communication also means that we don&#8217;t get the chance to discuss those bits of the project which are causing us issues &#8211; bits that you might not even be that tied to. When we&#8217;re trying to finish a project we can be of the mindset that &#8220;damn it &#8211; I&#8217;ll just do this extra thing and get it out of the way&#8221; when really we should be telling you the impact it will have.</p><p>Don&#8217;t panic; but don&#8217;t let us get away with it. The best thing to do with a quiet developer is to call them, on a landline if they have one, or on a number you&#8217;ve not called them from before if not (otherwise we see the number and suddenly we&#8217;re in a meeting&#8230;). Don&#8217;t get annoyed or upset; we&#8217;re working on it (hopefully). But do remind us of our commitment to you, ask if there&#8217;s anything you can do, if the spec is clear, and what the updated plan is. See if there&#8217;s anything we need which might help. Often, some real content &#8211; a product, an article, a content page &#8211; is a brilliant thing to send through because it lets us see what you want in context, and it reminds us that we&#8217;re actually working on someone&#8217;s business, not an anonymous project.</p><h2>The ugly</h2><p>There are, of course, those projects which reach a point which becomes impossible to salvage. Maybe your designer has overpromised &#8211; which can be a common cause of delays &#8211; or has taken on another project with a bigger budget which, sadly, has a bit more weight when it comes to deadlines (although in reality clearing the smaller projects first is a better way of working). Maybe they&#8217;ve utterly misinterpreted your brief, or just don&#8217;t care. Whatever the cause, if a project is dragging for months, or the changes you send through just aren&#8217;t done, tt might be time to sack your supplier.</p><p>First up, think carefully about whether it&#8217;s possible to salvage it. If it&#8217;s an agency, talk to your account manager or the owner and see if they know what&#8217;s up; it could be that they don&#8217;t, and can put someone else on your project or just have one big push to finish you off. Agency owners should care about all clients, big or small, because they know about reputation and repeat business; people working for agencies can often lose sight of the fact they&#8217;re working for a business which needs to care for customers. They just turn up, code, go home.</p><p>If it&#8217;s an individual, talk to them, and see what the issue is. If it&#8217;s a genuine problem they have no control over &#8211; bereavement, personal issues and so on &#8211; then discuss if there&#8217;s anyone else they know who could help out, and ask them to bill for what they&#8217;ve done so far and hand it all over (this might require some handover documentation).</p><p>It could be that all the project needs is a bit of clarity. Most developers won&#8217;t take kindly to the idea of coming in and sitting with them as they make changes; it&#8217;s too easy to say &#8220;oh, just try that font a little bigger&#8230; now smaller&#8230; now purple&#8230; now take the swearing out&#8230;&#8221;. What does help, though, is a clear end point. Make a list of all the things which are needed in order to get to a point that you&#8217;re happy enough with the project to move on. Refer back to the original functional spec. Set a clear deadline &#8211; first a deadline to get your developer&#8217;s agreement on what&#8217;s left and if anything is not possible, then a deadline to get things done. If they say something isn&#8217;t possible but it was in the original spec, explain that it was promised and that you&#8217;d appreciate that coming off the final bill. Make sure you check that what you&#8217;re asking in this final list actually was in the original spec; if not, then you really shouldn&#8217;t be upset that it&#8217;s not done by the deadline. Of course, by not adding to the spec in the first place you can &#8211; hopefully &#8211; avoid this situation. Always remember: the functional spec is the most important document in the project and is the final word.</p><p>If the issue is just that they&#8217;re rubbish and don&#8217;t care, and it&#8217;s clear nothing is ever going to get finished, try not to be too angry. Explain carefully what&#8217;s missing; calmly tell them that you&#8217;ve decided that it&#8217;s better for both of you if you move on and find another supplier; get everything you can from the supplier in order that you can hand it over to someone else. If they&#8217;re not prepared to give you any of the code, assets or work they&#8217;ve done then (with legal advice if possible &#8211; try the Citizen&#8217;s Advice Bureau or Business Link) you probably shouldn&#8217;t pay them. If they do hand over what&#8217;s been done so far, then pay for what&#8217;s been done, but don&#8217;t feel you have to pay the full project cost if the full project isn&#8217;t done.</p><p>Then draw a line under it and move on. Small business is an emotional thing. We put our hearts into what we do; when others let us down it&#8217;s easy to feel very angry and upset and hurt, and while this is perfectly justified, it won&#8217;t help you. Bad suppliers won&#8217;t prosper in the long run. Warn people off them by all means, but don&#8217;t try to get revenge; life is too short. Find a good supplier, spec it all clearly, and get it done.</p><p><em>Next time we&#8217;ll wrap up by talking about launching a site and what you can expect; we&#8217;ll also go through the ideas of soft and hard launches and why publicising a website launch can be a bad, bad idea. And also a good idea.</em></p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2011/09/how-to-buy-your-website-part-viii-more-management/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Just a quicky&#8230; WordPress custom nav walkers</title><link>http://www.maltpress.co.uk/2011/09/just-a-quicky-wordpress-custom-nav-walkers/</link> <comments>http://www.maltpress.co.uk/2011/09/just-a-quicky-wordpress-custom-nav-walkers/#comments</comments> <pubDate>Tue, 13 Sep 2011 16:00:50 +0000</pubDate> <dc:creator>Adam</dc:creator> <category><![CDATA[code]]></category> <guid
isPermaLink="false">http://www.maltpress.co.uk/?p=939</guid> <description><![CDATA[Normal service will resume soon, hopefully, after an upcoming big announcement. H2BYW will be finished &#8211; there&#8217;s probably one episode left. But I&#8217;ve not had time to think for a while. One of the reasons is an awful lot of WordPress dev work, and I&#8217;m hoping to share some of the fancy stuff I&#8217;ve been [...]]]></description> <content:encoded><![CDATA[<p>Normal service will resume soon, hopefully, after an upcoming big announcement. H2BYW will be finished &#8211; there&#8217;s probably one episode left. But I&#8217;ve not had time to think for a while.</p><p>One of the reasons is an awful lot of WordPress dev work, and I&#8217;m hoping to share some of the fancy stuff I&#8217;ve been doing soon (the one site I know I can shout about is utterly beautiful, and does brilliant things). To keep you tantalised, I came across an issue today which is probably reasonably common but for which Google didn&#8217;t seem to want to help.</p><p>If you&#8217;re doing a navigation menu and calling it with wp_nav_menu you may well want to separate each menu item with a character; I seem to remember many acccessibility guidelines suggesting menu items be separated by a non-linking, non-css &#8220;divider&#8221; (i.e. a character not a border-left or border-right). Now, one way to do this would be to use css, an :after pseudo-element, and the &#8220;content&#8221; property&#8230; but that&#8217;s not supported by early IE (bleurgh!) and is a bit silly, accessibility-wise, because although it is actually popping a character in, it&#8217;s reliant on a stylesheet being loaded, so it won&#8217;t work for screen readers, etc.</p><p>You could do it with Javascript, too; but again, accessibility-wise, this isn&#8217;t a great solution, and the less Javascript you can do the better; it&#8217;s less future-proof, more prone to bugs (if your Javascript is anything like mine, that is) and again can be turned off by the end user.</p><h2>The solution: custom walkers.</h2><p>A custom walker basically takes the normal menu walker class (the thing which reads through the menu items and decides how to display them) and adapts it to your own crazy whims. In this case, we want to get rid of the standard WordPress &lt;li&gt; elements and replace them with a pipe, but only between each nav item, not either side, so it looks like:</p><p>Home | Another | Third item | Final</p><p>So here&#8217;s how:</p><p>First: register your menu in the functions.php file for your theme (here I&#8217;m creating a footer menu):</p><pre>register_nav_menu('footer_navigation', 'Footer navigation');</pre><p>Second: add the menu items, calling your new walker class, to the place you want them:</p><pre>$footer_args = array(
  'theme_location'  =&gt; 'footer_navigation',
  'container'       =&gt; 'nav',
  'container_id'    =&gt; 'footerNav',
  'depth' =&gt; '1',
  'walker' =&gt; new Footernav_Walker
 );</pre><p>wp_nav_menu($footer_args);</p><p>Finally: extend the normal walker class to create your Footernav_Walker (or whatever you call it) &#8211; see <a
href="http://wordpress.stackexchange.com/questions/14037/menu-items-description/14039#14039" target="_blank">http://wordpress.stackexchange.com/questions/14037/menu-items-description/14039#14039</a> for loads more info and the original code:</p><pre>class Footernav_Walker extends Walker_Nav_Menu
{
 /**
 * Start the element output.
 *
 * @param  string $output Passed by reference. Used to append additional content.
 * @param  object $item   Menu item data object.
 * @param  int $depth     Depth of menu item. May be used for padding.
 * @param  array $args    Additional strings.
 * @return void
 */
 function start_el(&amp;$output, $item, $depth, $args)
 {
  if ( ! empty ($item-&gt;title) ) {
   $classes     = empty ( $item-&gt;classes ) ? array () : (array) $item-&gt;classes;
   $class_names = join(
   ' '
   ,   apply_filters(
   'nav_menu_css_class'
   ,   array_filter( $classes ), $item
   )
  );
  ! empty ( $class_names )
  and $class_names = '';
  $attributes  = '';
  ! empty( $item-&gt;attr_title )
  and $attributes .= ' title="'  . esc_attr( $item-&gt;attr_title ) .'"';
  ! empty( $item-&gt;target )
  and $attributes .= ' target="' . esc_attr( $item-&gt;target     ) .'"';
  ! empty( $item-&gt;xfn )
  and $attributes .= ' rel="'    . esc_attr( $item-&gt;xfn        ) .'"';
  ! empty( $item-&gt;url )
  and $attributes .= ' href="'   . esc_attr( $item-&gt;url        ) .'"';
  $title =
  apply_filters( 'the_title', $item-&gt;title, $item-&gt;ID );
  $item_output = $args-&gt;before;
  // the following if... statement basically ignores the first menu item
  // (so we don't start the list with a pipe):
  if($item-&gt;menu_order&gt;=2) {
    $item_output .= ' | '; }
    $item_output .= "&lt;a $attributes&gt;"
    . $args-&gt;link_before
    . $title
    . '&lt;/a&gt;'
    . $args-&gt;link_after
    . $args-&gt;after;
    // Since $output is called by reference we don't need to return anything.
    $output .= apply_filters(
    'walker_nav_menu_start_el'
    ,   $item_output
    ,   $item
    ,   $depth
    ,   $args
    );
   }  
 }
}</pre><p>Ta da! Job&#8217;s a goodun&#8217;.</p> ]]></content:encoded> <wfw:commentRss>http://www.maltpress.co.uk/2011/09/just-a-quicky-wordpress-custom-nav-walkers/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>