Filming talks at smaller meet-ups

Mark Wilkinson speaking at WordPress Cheltenham

Yesterday I was pleased to speak at the WordPress Cheltenham group. My talk was all how to write extensible WordPress code. I actively speak and have spoken at a number of these local events and something I wanted to explore was filming to talks to put up on the web. Here is how I did it and the kit that I used.

Why film the talks

Primarily because I want to be able to place them on our website over at Highrise Digital, or even on this blog so that people can view them there. Any local attendees that could not make the meetup on that date can then look back at them in order to hopefully get something out of them.

Why on at smaller meetups

Well not necessarily but the larger ‘conferences’, notably WordCamps that I have spoken to, more often than not film the talks anyway. However, if I know that is not taking place then I would happily film at larger events too in this way.

The kit I used

First of all the thing that makes this possible (well not possible but a lot easier) is some screen recording software. Most will do what I need, but as I used Screen Flow I am going to mention that here. It enables me to capture a video feed of my presenting screen (my slides), an audio feed from my computer, or in this case a mic connected to my computer and finally a video feed from a webcam. This means I can then stitch these together in an edit to produce the final video.

The Webcam

I opted for the very good quality and fairly inexpensive Logitech C920 HD Pro Webcam. It records a great quality picture in full HD and easily mounts to a tripod.

Logictech HD Pro C920 webcam image
A great quality webcam for a good price – HD Pro C920

The Mic

I used will use a simple Lavalier microphone plugged into the headphone port on my MacBook. In my first attempt it didn’t record from this microphone but I think that is because unplugged and plugged in the camera just before I started recording and I think it selected a different microphone from the above camera instead.

Tripod

I use an Amazon Basics tripod which does the trick although it would be good if it was a little higher. However, I can also put it on a table or desk.

The first outcome

The first attempt at this setup us below. As you can hear it did not pick up the correct Mic, but hopefully I can correct that next time and make it better. Maybe some lighting would also help.

A New Chapter – Beyond Freelancing

Last year I spoke at WordCamp Manchester about freelancing. The talk went down well and I enjoyed sharing my experiences of finally being an established freelancer. Fast forward nearly 6 months and I am no longer freelancing. Today I can introduce my new business, in partnership with Keith Devon, we have launched Highrise Digital Ltd.

A New WordPress Agency

I have worked with Keith for 18 months now, as a freelancer on a number of projects. We met at the WordPress London Meetup in September 2014 where I spoke about my development setup. At the time Keith was on the lookout for freelancers to help him with projects that he had at the time.

We worked really well together with complementary skills sets. Keith very much more front-end focused and me liking to work in the back-end of WordPress. The projects we worked on were a great success and it became obvious that we should go into business together at the back-end of 2015.

So Highrise Digital Ltd was born on February 5th 2016, when we incorporated the business and set things up officially. We spent much of the early part of the discussions deciding what to call the business and agreeing on some branding. You can find out about this, on this post Keith wrote about the experience.

The last few weeks have been extremely busy getting the business setup and in the right place to trade correctly. However it is very exciting and I look forward to working with Keith for many years to come on lots of exciting WordPress projects!

Admin Customisations for a 1-Page WordPress Site

Recently I was tasked with creating a fairly straight forward 1 page website in WordPress. It was one of those sites with the different sections and the main navigation scrolls you down to the correct section. The trouble was that for such as a simple website the admin experience was very complicated. Therefore I set about trying to make the admin more like the front end – more simple. Here is how I got on.

I have blogged and spoken about admin customisations before and those people that know and have worked with me know that it is something I both enjoy working with and something I feel is a little underdone at times with many WordPress websites. We spend all our time focussing on the front-end (which is not a bad thing in itself) but little time thinking about the experience for the person or people that have to manage the website.

The site that was in question is shown below and was designed by the team at Pixel Junction.

c-capital

First a little bit about the setup I used with the website. As everything was on 1-page it kind of makes sense to me to make everything editable from within a page in WordPress. Therefore I created a page titled home and then set this as the front page under Settings > Reading.

The first step was then to edit the post edit screen for this page to better reflect the front end of the site.

The page itself was separated in four sections:

  • Header with background image including the navigation
  • Services section,
  • Contact us section
  • Footer area.

Therefore I went about creating these in the backend.

To do this I used the excellent Custom Meta Boxes library/framework/plugin by Human Made (although there are a lot of other alternatives out there!). This allows me to quickly add additional meta boxes on the post edit screen, in order to better reflect the front-end. I could then add fields into these meta boxes which I could pull through to the front end rather than having the traditional content box. Below is what this page’s edit screen looks like:

1 Page Post Edit Screen Customised

Inside each of the meta boxes I could then add the custom fields necessary for the front end. Below shows the header content section expended.

Post meta (Custom Fields) can be displayed inside each meta box.

In this post I won’t go into how these fields are pulled through onto the front end, other than to say that all of the data in these meta boxes is stored as post meta for this page and therefore using the get_post_meta() function allows us to do this.

The next issue to tackle was the menus in the admin. I wanted to end up with the following menu items in the left in the WordPress admin to clean things up and little removing menus that would not be needed:

  • Dashboard – which was actually my custom dashboard using my WP Basis plugin
  • Media
  • Forms – the site would use Gravity Forms for the contact form
  • Content – this would be a link straight to the page edit screen for our front page
  • Menus
  • Users
  • Site Options – I was using the options framework plugin to provide a few additional details such as telephone number etc. although could actually have added them to the page itself on second thoughts!

To do this I needed to do some admin menu modifications. I won’t go into great detail here as I have written before on altering the WordPress admin menus. Using the techniques outlined in that article I was able to add a menu titled content that went straight to my front page edit screen, remove some menus and add some others such as Menus which just went straight to the WordPress menu management page usually found under appearance. I was then left with this:

A new WordPress admin menu for a 1 page site.

The final thing to do was to make it so that when the user logged in, they were taken straight to the page edit screen for the front page as this is where most of the content for the site is. This can be done easily by utilising the login_redirect filter and setting the location of the redirect to the same link as the new content menu.

This all works very well but there is one more thing to do and that resolves around capabilities. Normally next to the “Edit Page” title on the page edit screen there is an “Add New” link. This would allow the user to add new pages. However we don’t want them adding new pages and causing confusion. Therefore we can utilise WordPress’s capabilities and remove the capability of adding new pages.

To do this in my example I used the filters included in my WP Basis plugin, however you can do this using the user_has_cap filter. The capability to remove is the edit_pages capability. This will ensure that the add new link is removed.

So there we have it a better front and back-end experience for not much extra work. I would love to hear your thoughts and comments about how you do something similar.

A Year into Being a WordPress Freelancer

Just over a year ago now, I quit my full-time, well paid job as a secondary school teacher to become a full-time (well nearly!) WordPress developer. You can read more about the decision I took at the time here. So a year on from that decision how has it all gone?

The story continues pretty much in the few days and weeks after I had resigned. I was looking at another local school’s website, I can’t remember why now but I happened to click on the vacancies page and there was an advertisement for a teacher of Computing for 1 day per week – perfect I thought. I had wanted to go part-time in the first place to ease the transition between careers, but for one reason and another it was not going to happen. Therefore I applied for this job, teaching year 7 and 8 students a bit of ICT and computing such as Scratch and Python. I thoroughly enjoyed this teaching but more about that later.

My biggest worry about quitting my job was simple really. Would I get enough work in order to pay the bills. With a small family to provide for it was alway the biggest concern. I had been chatting to friends and family and colleagues in teaching, all of which encouraged me that I would be fine and I should just go for it – they were right.

I think that is the first lesson to be learned here really. Sometimes there is no right or wrong time to do something like this, you have to just go with your gut, bite the bullet and do what you think is right. I came the conclusion that if I was thinking about this so much, it must be the right decision. Also I must add, having the support of your wife/partner really helped and I thank her for that a lot. She was always very supportive and pushed me to give it a go.

Getting Clients

Having already worked for a number of years freelancing part-time, looking back I perhaps should not have worried about this as much as I did.

I already had a base and now I could offer those clients and other agencies I did work for much more time and a wider range of offerings that I could before.

I did also do some marketing in the form of speaking at conferences, although that was not my sole reason for doing this. I first spoke at WordCamp Sheffield in April 2014 and have spoken at a number of WordCamps and local meet-ups thereafter. Speaking is good to let people know who you are and what you do, but perhaps more importantly it helps you learn. To talk to people about something means you need to know it well and therefore the research and preparation you do around a topic helps your career development too.

Getting clients has not turned out to be as problematic as I thought and I have had work on throughout the last year. There have been leaner times that others but overall I have had a steady stream. Lets hope that continues.

I think something that you learn more and more and remember for each client that you work with is that you want them to continue being your client (most of the time!) and therefore treat them as though you do.

Running a Business

This was nothing new to me really in terms of I was not changing from being a the sole-trader that I already was from being a part-time freelancer. However there are some things that I have learnt.

desk-laptop-book

The running of your business takes much more time than I ever thought it would do. Writing and sending invoices, communicating with clients, attending meet-ups and WordCamps and other marketing related stuff all take time. This is time that you are not earning and therefore you need to consider this carefully.

Think carefully about how many actual billable hours you can work in a day, week, month and year and then you need to adjust how much you charge for actual work in order to accommodate this.

Working Environment

One of the things that I was insistent on when I went full-time was that I wanted to work from home rather than getting an office somewhere or perhaps a shared work-space. However as I have found out working from home does have its difficulties.

My Desk in my Home Office
My Desk in my Home Office

When you first start because you are at home for the first few days it is hard to remove all the distractions of being in the house and get on fully with your work. However I found this easy to overcome after a week or two and now when I am in my office working, focusing is no problem.

For other family members living in the house this has been less easy. My children for example are always popping to ask this and this and still to this day I have not managed to train them well enough to leave me be during work time. My wife, although considerably better than the children does have the tendency to say thinks like “Can you just put the drying in the dryer?” usually when I am knee deep into something complicated!

However all of that is getting better and I have plans this year to do some work on my work space at home to make it easier to work in etc.

So what next?

Who knows I guess… A year on and things have changed again for me. I am no longer teaching at all, as my position of teaching for 1-day was never a permanent thing. In fact I have enough work on to not continue with that which was always the plan anyway.

This past year has absolutely flown by and I look forward to the next year in freelance and the opportunities that it brings – it has been amazing 🙂

#wpsundaysupporthour

A month or two ago I had the pleasure of spending a day with other WordPress developers, designers and users at the WorcdCamp Manchester Contributor Day. As I have been working with WordPress for over 7 years now, and now earn my living from the software I think it is about time that I start giving back to the project. As part of this I intend, as often as I can to undergo a WordPress Sunday Support Hour.

It can be quite daunting thinking about contributing to the project. Most people think of contributing as offering up some code that will eventually appear in core and then be used by millions of people worldwide. As a developer this is something that I would love to do eventually, but I have to say, if I am honest that the process of contributing core code I found quite difficult. This is not because of a lack of support. Mike Little and Tom Wilmot where kind enough to help me get a local development environment setup on my Mac but I found it hard to just get started with contributing bug fixes and testing patches.

Therefore I went looking for other ways in which to contribute. The make.wordpress.org resource is a good place to start if you are looking to contribute. It lists all the areas and how to get started. The one that stood out to me, as an educator was the support section. Surely I could help people out in the support forums?

Well, I headed on over there last weekend and found myself assisting others with their queries and giving something back to those that needed help. It was very rewarding and I finally thought that I was achieving something on my road to WordPress contribution. I sent this tweets just before I started:

I was amazed at how popular it was. 27 retweets, 9 favourites and 2 replies. Doesn’t sound much perhaps but that has got  to be one of my most, it not most popular tweet.

Therefore I have decided that I am going to offer my skills in the wordpress.org support forums for 1 hour every Sunday (or as much as I can) in what I am hashtagging as #wpsundaysupporthour. So why not get involved and do the same?

Alter The WordPress Tag Cloud Widget Output

WordPress provides a handy little widget where you can add your sites tags to a widgetised area and then are shown a tag cloud type format. However the output of this tag cloud cannot be controlled, like it can with the wp_tag_cloud() function. Having wanted to change the output I set about trying to achieve this. In this post I will outlined how to alter the output of the tag cloud widget in WordPress.

tag-cloud

The key to altering such things as this is to follow the WordPress golden rule which is never to edit the core files. Therefore to overcome this problem we need to look at the core files themselves for code which will allow us to manipulate the output of the widget without actually altering the core code.

Looking in the wp-includes folder of WordPress core we see a file named default-widgets.php. It is in this file where the Tag Cloud widget code is sourced. Looking at the code we can see that WordPress applies a filter to the arguments it supplies to the wp_tag_cloud() function. This filter is named widget_tag_cloud_args.

Therefore we can use this to manipulate the output of the tag cloud before it is outputted to the browser. The example below allows us (for example) to set the max and min font size for tags outputted.

[wpmark_gist id=”06c3402bd55e6288b9ea”]

This is a good example of WordPress’ extensibility, something which I will be speaking about at WordCamp Manchester at the end of June.

A New Career Chapter

Today I quit my job working as a Secondary School teacher in a Lancashire high school. The job was well paid, with a good pension and a good salary. I am leaving to work as a freelance WordPress developer and consultant with no guaranteed salary or benefits. Why am I doing this I wondered?

I have been teaching for over a decade now. I have taught a number of different subjects but finally settled into teaching ICT and in fact was Subject Leader (Head of Department in old money!) for over 4 years. It was during my teaching career that I developed a passion for working with the web and particularly WordPress, making blogs for students to access as well as websites for students to use in distance learning.

Why Leave the Teaching Profession?

For the majority of the last 10 years I have enjoyed teaching. It is such a varied job with different things happening every day that, on the whole it has been fun. However over the last 12 months I have seen a sharp rise in the work that I have been getting in terms of freelance WordPress jobs and I have had the privilege of working with a number of top WordPress agencies and people during this time. It has become more and more obvious to me that my future did not lie in teaching.

It was at this point I then spoke to the management of my school with the view of dropping down to part-time, perhaps 3 or 4 days work before winding down completely perhaps a year later. However I became apparent that circumstances at the school meant this was not an option and therefore I was left with a decision to make.

Working Two Jobs for Over 5 Years

I have been a freelance WordPress developer for over 5 years, starting out working on small business sites and now working on larger sites including eCommerce sites. Throughout this time I have been working two jobs, teaching full time which as been getting harder and harder. Having two young children means I can no longer do this and be successful at both. Therefore I had to make a decision as to which path to go down. The decision was quite easy really when I thought of it like this.

I have really got to the point whereby I cannot get any better and progress in either job as one was pulling back the other.

Hire Me

With all that I am now available for hire as a full-time WordPress developer. I am taking on work now, but I will be fully available come the end of April.

This post reads very similar to Kimb Jones post after he did very much the same thing previously, helping me make the same decision. Inspiration for this post came from Kimbs post.

A Review of 2013

Wow, 2013 has been a memorable year for me in terms of my freelance career. I really feel that I have been able to take a step forward in terms of my knowledge and the sites that I have be privileged to work on. As is always the case I take the time to review the year and how things have gone. The highlights below are split up in no particular order, other than how they happened through the year.

Using Github

Although on my Github Profile (wpmark) it states I joined Github in July 2012 which is of course true, I did not really start to use it an awful lot until the start of this year. At the start of the year I put some of my Open Source code on there such as my User Switching from the Admin Bar addition to John Blackbourn’s User Switching plugin, which allows you to switch to a user from the Admin Bar and my WP CSS Widget Classes Plugin, which allows you to add a class to widgets.

Adding these smaller projects to Github got me used to the real basics of Github in terms of committing etc. It was not until the summer however that I started to use Github in a much better way.

Having worked with the fantastic team of WordPress developers at Code For The People for a few weeks over the summer, I was able to see how they used Github for projects. It worked really well when collaborating with members of a team when code was being edited and added to by a number of developers.

Having taken all this on board it was later in the year that I started to use Github with some other members of the Pixel Junction and Compass Design teams on some of the shared projects we worked on. This really changed things for me in terms of the development process of a site and made things a whole lot easier.

Less ‘Cowboy” Coding!

Having watched Mark Jaquith’s WordCamp San Francisco 2011 talk titled Coding, Scaling and Deploys – Oh My! I started to think this year long and hard about the process of development I went through for working on sites.

Mark’s key message in this presentation is to stop “Cowboy Coding” e.g. editing and uploading code on a live site and making sure that your code is in version control and also that you use deployment procedures to push your code live (no more FTP!).

After some bad experiences previously this message finally hit home. There is a difference however between the types of sites Mark is talking about in his talk and some of the sites I work on. I am not sure that the local Garage down the road would want to pay a premium of more than 50% the cost of their site just to have their code under version control and use a deployment service. It is a risk they are willing to take that their site is edited live with a maintenance page. Larger sites of course benefit from the methods that Mark discusses and it is these sites on which I have implemented these principles.

I have started to use Deploy HQ along with Github as Deploy HQ works well with code hosted on Github. Setting up both a Local, Staging and a Production (or live) environment as meant a much more professional approach the sites that need this. It has allowed clients to check concepts before pushing them live and means the process of running a site and evolving the code base is much more smooth. Combined with the fact that I had multiple contributors to the code this has completely changed the way I work, for the better and made me a much better WordPress developer.

WordPress for Building Web Apps

As part of working 2 days a week for a school building websites I was asked to construct a number of systems to help the senior management with tracking data, mainly for staff but also for students. I have seen a number of blog posts recently about using WordPress as the basis for building web apps rather than traditional websites and therefore I started researching. In the end I guess what I have created is a mix between a website and a web app but they do the job very well.

The first project was to build a system to store all the teaching staff’s Appraisals. This involved some backend changes to the WordPress admin in terms of a custom post type and some amends to make the dashboard easier to work around for line managers. The system allowed all line managers to appraise their appraiser’s logging their objectives and the actions to take in order to achieve them. It also allowed them to review and evaluate against these objectives at the end of the cycle when the set new objectives for the next cycle. Alongside this I build a number of query points for senior managers to use in order to be able to check if staff had similar objectives so that appropriate professional development could be arranged. I also integrated graphs to graph some of the data queried through WordPress.

The other large web application system I built using WordPress was a system to allow staff to log lesson observations of teachers. In the past this had all been done on paper and therefore tracking observations across department to see if trends occurred between teachers and departments was very tricky. Again much backend customisation was done in order to make adding Observations very easy for teachers. I am still working on the querying side of the project to allow managers to get an accurate picture on the level of teaching across the school but it is going well.

I always thought WordPress was a great system for building web apps and I now I know this is the case. With a built in user management system that is easily extendible combined with an easily customisable content management system in custom posts types WordPress makes a very good web application platform.

Responsive WordPress Sites

Responsive websites are the buzzword at the moment, and to a large extent that has to be accurate because of the massive increase in the amount of mobile traffic that websites across the world are receiving. Therefore it is essential that I grasped the concepts and skills needed to create responsive websites.

Although I understood the concepts for a while it was not really until this year that I actually got to grips with them on sites and produced some websites that were fully responsive.

Don’t get me wrong it can be a pain in the neck, but persevere and getting it right can be very rewarding. One site that I think went well in terms of responsive design was the work that I did for Pixel Junction on the Equal Adventure site.

WordPress for eCommerce

There are lots of plugin out there that enable you to turn your WordPress site into an eCommerce store, however I believe the really get a good eCommerce site, it should not just be an add-on but something that is designed and thought about from the start.

This year I started using WooCommerce and in fact I have built 3 or 4 sites using WooCommerce to power the shop part of the site. WooCommerce from Woo Themes is a very powerful and flexible tool that although I would not say is simple to get working as you want, it certainly is doable to any good developer.

With an eCommerce site it is a matter of experience in that the more you work with the site the more you learn this has a knock-on effect in that the more you learn the more you can learn.

These type of sites can be very frustrating but the more you work with them the better you are and more importably the more confident you will get with them. Therefore my advice for starting an eCommerce site would be to be brave, have a go and dive in with it. Perhaps not starting with a site for a client so that you can learn, but get a a plugin installed and practice with different scenarios.

So, to sum up 2013 has been a fantastic year for me personally. It has been a year of expansion, learning and producing a lot more sites and types of sites that I imagined at the start of the year. In fact is 2014 continues in the same way I am looking forward to the projects and sites that I will be able to tell you I have built this time next year.

Thanks to anyone that has helped me on Twitter or anywhere else for that matter. The WordPress community is what sets us apart from many others and roll on 2014…

New Site for Me!

After a long time with no site at all really I have finally got round to putting something together to put up here in on the web. The content is much the same (at the moment) as the old site, however I plan to develop this over the coming weeks, with new posts and a portfolio section.

I have come to the conclusion that it is really hard to maintain your own site when you are so busy working on other projects. In fact I wonder if a sign of a good developer (I don’t think I am that bad!) is that they have a less than great site? I am therefore going to be using this site as a testing ground for trying out new things.

The first of these is to try and use a Commercial theme and therefore I have opted for the Minimalizine theme. This is a child theme as I have made 1 or 2 modifications to the display of content, particularly for the different post formats.

So the experiment begins, I hope to have regular posts about the stuff I am working on at the moment in the near future.