Securing WordPress

WordPress is probably the most popular choice for small businesses wanting to start with a simple website that they can quickly scale.

WordPress sites can be created for free on wordpress.com and as your business grows you can add tweaks like custom domains or indeed move off to your own hosted solution.

If you do administer your own wordpress you do have to be very careful to ensure that you keep your site secure.  Wordpress comes with many hundreds of plugins – and these are often the way that perpetrators can access your website and insert their content into your posts or features.  This is usually done automatically – so don’t always take this as a personal attack, merely as a way for criminals to generate money for themselves by hijacking your website for their own adversiting purposes.  The more successful your website becomes, the more traffic comes it’s way.  The more traffic means it becomes more attractive to those wanting to hijack your clicks.

So how do you secure your website against intrusion?  Well you learn the hard way to take security seriously but by all means do think about it carefully and if in any doubt use a professional service to secure your WordPress website.

If you’re doing it yourself though here are a few things you can do.

Ensure you have recent and regular backups

Harden your wordpress installation against attack

Ensure that your web server configuration is safe and secure

Don’t opt for auto update

Check your directory permissions and ownership

Coupons and Vouchers for Small Biz

What is VoucherThing?

VoucherThing is for your business

VoucherThing for merchants

VoucherThing lets you create voucher campaigns for your business from your iPad. No sign-up, no accounts, just your business and your vouchers your way.

Campaigns can be created and coupons distributed to customers and redeemed all through the VoucherThing for Merchants app. You can easily produce beautiful reports showing redemption rates, improve their campaigns, improve customer engagement and improve business.

VoucherThing provides a solution for merchants and customers. Customers can use the VoucherThing app to keep their voucher safe as well as locating nearby merchants.

VoucherThing for customers

VoucherThing for customers uses Apple’s innovative iBeacon technology in order to find local merchants. The two apps are location aware meaning that merchants can be made aware of potential VoucherThing customers, and customers can be find outlets that are offering coupons!

SEO and your mission statement

Build something, start a business, make a website, loads of people buy your stuff.  It’s simple isn’t it?

Or perhaps you start a business, you make a website to advertise your business but it either fails to ignite or bumbles along while your scramble for sales to better get your business out there.

So you rebuild your website and this time you think about what makes people want to shop with you.  You discover SEO and you realise that the advice that you’re being told is what you needed to hear when you were thinking about starting your business in the first place.

This is where I’m at now after having read this article from Yoast.  It’s a fantastic article as is just about everything Joost de Valk has to say on SEO and understanding your business in order to sell your business.

For me I feel like I’ve come full circle now and I’m honing in on what I want to say and what I want to do.  My business is split into on the one hand app consultancy and product design and on the other helping small businesses grow through technology.   SEO is can be about keyword research, carefully chosen cornerstone content and guest blogging but for me it’s more about understanding your motivation.  This is something I understand and I’ve talked about before.

Understand yourself, know thyself, and sell.

Golden Gameplay

I love this thread on Slashdot which pretty much sums up my thoughts on games and gaming in general.  The thread is inspired by this article which takes a view on the current state of the nation in gaming.  We all know what a huge business gaming has become in all aspects: in browser, on mobile, on console, on computer, on handheld.  The argument has always been that the more money comes into the business the more that gameplay and game longevity suffers.  This argument has been around as long as video games have.

My take is that big games companies are lazy, risk averse and profit-driven and that independents are so confused by the panoply of platforms they can target that they become paralysed by anxiety.  Additionally the third-party tools that aim to ease the confusion are the only true winners at the moment.  Either you need to be a focussed independent or a major label looking to try something new.

Now, this doesn’t always work.  Remember Mirror’s Edge?  And check out The Unfinished Swan.  Great looking games with great feel don’t always succeed at the box office.  Innovativation hardly ever assures success, gameplay is golden, and gold as we know is impossible to synthesise.  To make a great game today you must combine graphics, environment, interaction – find a balance – sprinkle on that fairy dust.

Software as a Fashion Statement

If you believe some of what you read then the Microsoft hardware and software launches are all about blurring lines. Lines between leisure and business, lines between gaming and working, lines between using a computer and having fun with a gadget. We are being sold a tablet that is touted to be as useful as a laptop, we are being sold a development platform that is somewhat consistent across consumer and business desktops, laptops, tablets and also mobile technology. As technologists we have no idea if any of this will work yet as developers we are enthralled but slightly scared at the consequences of these fundamental changes, as realists we doubt that Microsoft can pull it all off but as historians we we can be sure that things have now changed forever in the consumer electronics marketplace. Gone are the days that we would agonise over the specs and wonder about the longevity of our hardware devices be they desktop, laptop or mobile. We no longer care much for battery life, for upgradeability, for the number of ports it has got, for the extended warranty. We, as computers users, as smartphone users, are now software consumers. As consumers we demand fashionable gadgets that can display our fashionable software fashionably. And once our hardware has died or is too slow we will buy the next one and either transfer all our software or, possibly preferrably, just start from scratch accumulating more software on our new gadget.

Perhaps you’ll give your old gadget to the kids and they will be happy enough with while it can run the fashionable software they want it to run and after that, pass it on. The software creators in this world are vastly outnumbered by the consumers – so if you really want to reach out in this gadget obsessed age – try a little creativity.

The Cosseted Programmer

It appears we have come to a juncture in information technology where the sheer weight of data is forcing us to draft everybody into the ranks.  Over the years there have been multiple plays to gamify programming – make it cool – make it understandable – rather have people just stare dumbly at that results and prod occasional buttons.  Our limbic system flinching in response to sounds and colourful 3D shapes was previously considered satisfactorily.  Now we are encouraged to buy virtual stuff inside other stuff to make our experience more valuable.  And it works – because unlike pharmaceuticals – these things aren’t licensed and our kids are hooked into them from an early age.

 

And it’s no longer enough to just consume these goodies – we’re also taught to create.  Creation is cool.  Photos, videos, blogs, apps.  It’s a self perpetuating cycle of creation – no destruction, just additive, endless piling upon piling of bits into bytes into terabytes into hard disks in drawers and burned onto disks and stored away never to be looked at again.  The world may soon fill up soon like the Stross/Doctorow dystopia planned and we’ll be forced into living in the Clouds ourselves or turn the solar system into one big computer.  Our bodies slumped in the corner of our living rooms while the substrates fill up with our souls emancipated by the combined efforts of humanity – from east to west – working together to abstract our lives away from a flawed meatspace.

 

So there are these guys like Bret and Light table guy and Anonymous Game Framework Guy who probably all live on the West Coast in the sunshine and think purely in terms of web servers, big data, shiny tablets, closed feedback loops and turning everyone into a developer.  And that is all well and good and also sometimes I think like that and the world is all shiny and exciting – but there is somehow a missing element here.  Our thoughts turn to the lack of boredom thanks to smartphones.  The gap between waking and sleeping where we’re not sharing our lives with each other or silently just consuming others thoughts or the thoughts of machines.  How many of those twitter people you’re reading are actual people typing stuff and thinking stuff?   Are we even paying attention enough to pass our own Turing Test?

 

A lot of effort, direction and money is being spent/burned/created/transferred in order to capture and inspire developers.  To draft a few inferior souls into the wake of conglomerates who have spotted our Achille’s heel and are making us all believers of a doctrine whose only basis is that inaction and not thinking of anything better to do is a good reason to glance down and lose ourselves again in our hand held worlds.  At the same time as these real businesses – ones that provide a service and get a payment for that service – are making a lot of money out of this shuffling around we are held fascinated in the glow of the Gorilla[R] glass.  We are marking time.  This developer for all, creator for all – as I read it this week the ‘democratizing’ of the development landscape – is no such thing.  And despite these tools being wonderful and in their own way addictive (so that one can become addicted to simply learning more development tools) occasionally it’s just nice to sit around and do something worthwhile and with merit rather than worrying about what technology it needs to use in order to attract the most attention.

Keeping Busy

Sometimes your first thought is your best one. Well this was definitely the case last week as I continued to struggle with getting the Syntax Highlighter working in an elegant fashion with the main GUI thread. In the end – threading was the solution. I perform some quick and dirty highlighting in the main thread which immediately updates the screen and then I also kick off a background job to highlight the rest of the file which is off screen. This works well and works seamlessly allowing on screen edits to pop up immediately and also meaning that paging up and down through the file gives a consistent look to the highlighting with no additonal calculation required. This backgrounding mechanism for syntax highlighting will also lend well to API lookups when we get to that.

I’m overdue for some new videos and of course as soon as I start thinking about putting together a demo I find all sorts of interesting issues and problems. So we’ll see what happens this week. We’re edging through summer and I’m no nearer to either getting the Rosegarden for Windows build finalised or adding the Kinect support back in to Friendlier – I’ve not even had time to play with the last Kinect for Windows SDK released in June. Time flies and I want both of those things sorted before September and before I have to start thinking about Windows 8 and tablet support.

Thoughts of an Independent Software Vendor

I’ve been building and selling code for a few years now and this is usually as a part time thing alongside something else I’m already doing (i.e. a proper job or having a family). A few years ago I launched a company called Fervent Software which sold Studio to Go! I then launched a company called QuantockSoft which sold a product called TemperDB and I’ve just started a new company called Xyglo which has just started selling some software called Friendlier.

When you’re bringing a product to market (*) and you can only devote part of your time to it due to other commitments, there are many factors you have to weigh up. Some of these relate to the limited time you have, some of them are applicable to all ISVs. First and foremost you need to determine if there is a market for your product – that’s pretty important! Secondly you must decide if what you’re trying to build is achievable with the amount of spare time you have – also important. Thirdly you need to know how to spend your time – when to code and when to spend time on designing and when you have market or promote your piece of software. And finally and most importantly you need to know when to get it out of the door and actually start selling the thing.

Of course all of these steps are potentially perilous. If you’ve come up with something that is innovative then how do you know there is a market for it? As a small independent you don’t have the resources to have a focus group – and anyway have you even defined a core market? So maybe you’re taking a risk on the product or perhaps you’re launching a product to compete with an established player. In that case how do you ensure that you differentiate with that player and still get your voice heard? Secondly are you being realistic about how long it will take to build your software? If you have plenty of spare time and energy then this might be less of a concern, but if you have a family or other commitments be sure to work these in to your planning. Thirdly – and this is actually the best part – remember that you are the boss now. So when it comes to scheduling when you do stuff you can chop and change. If something is becoming a drag in your coding then give it up for a while and do some website stuff, or draw a logo, or write a press release or do some market research. Remember that all the effort you’re putting in is pushing the product in the right direction so don’t dismiss non-coding hours as non-productive ones. Even talking about your ideas with people counts as working – just don’t let them necessarily talk you out of it!

So let’s say you’ve got to that point when you want to release your software on the world but you’re still wracked with indecision. Is it ready? Is it good enough? Is it the right price? Will anybody want it? The only way you’ll find out is by pressing the button and getting it out of the door. If you get that far then there is no better feeling. So good luck.

(* I started writing this with the intention of saying how much easier it had got to build and release software regarding the tools, the payment providers, the website hosters etc. I’ve not got that far this time but I’ll get on to that at a later date. Also we need to talk about App Store vs truly Independent.)

Get Real Coders

The next time you’re asked to do a coding test in a job interview, ask them why? If your potential new bosses aren’t able to determine from your CV and from talking to you what level of experience and understanding you have then you probably don’t want to be working for them in the first place. Take it from me, they’re just trying to fill headcount – this is fine if you just need a job (because let’s face it, sometimes you just need a job right?), but if you want a career then forget about them or at least as them “Why?”

I’ve had lots of interviews and I’ve given lots of interviews. I’ve never given anyone a coding test and I never will give anyone a coding test. The attribute that every coder must have is honesty – honesty to themselves firstly and realising that you are fallible as well as honesty to others and realising that what you build affects other coders, users and everyone who will come into contact with your solution. Having a nice portfolio is useful, having experience is perfect, but honesty about yourself and your abilities is more important to me.

Spending an hour telling someone who is really not that interested in hearing it what polymorphism is, or the difference between an abstract class and an interface is a waste of everyone’s time. Do they not know themselves? What are they trying to prove by having you tell them? How does this help you fulfill the dead-end job they’ve got lined up for you?

Don’t spend the rest of your life working for idiots. One of these days I’ll be hiring.