1

A Recipe for (a) Change

Preamble

I’d always intended that this blog be a combination of my work life and my personal life with some aspects looking at learning technology and the rest about baking. Finally, FINALLY! I can actually make that a reality and post my first recipe.

As part of the celebrations of Wikipedia’s 20th Birthday I decided to get involved in #WikiLovesCakes:

By KammaRahbek.svg: Liftarn / Nevit – This file was derived from:  KammaRahbek.svg:, Public Domain, https://commons.wikimedia.org/w/index.php?curid=48138147

A virtual bake-off might seem like a bit of an oddity to some but we’ve actually managed to keep our University bake-off team going since we left the office all those years ago back in March 2020 so I was pretty excited.

The University of Edinburgh is fairly heavily involved with Wikipedia, having our own Wikimedian In Residence who organises many events including Editathons which led me to my idea; a cake representing #Wikiwomeninred

 

For those not in the know, WomenInRed is a group that aims to address the content gender gap in Wikipedia articles by creating or updating profiles of prominent women that are chronically under-represented. You can read more and get involved here: https://en.wikipedia.org/wiki/Wikipedia:WikiProject_Women_in_Red

The Recipe

Cardamom, Honey and Pistachio Cake with Buttercream and Fondant

Right, lets get down to it. I’ll try to breakdown each part of this into manageable chunks and give shortcuts if you don’t have time.

Ingredients

Cardamom Honey and Pistachio Cake:

  • 225g Unsalted Butter, Softened, plus a little extra for greasing the tin
  • 225g Caster Sugar
  • 4 Large Free-Range Eggs
  • 250g self-raising flour (If you are using Plain Flour then add 1tsp Baking Powder for every 150g flour)
  • 1 tsp Baking Powder
  • 1 tsp Cardamom Seeds, crushed to a powder in a pestle and mortar (Mostly you will be able to buy Cardamom Pods, just crack these open with a knife and get to the brown/black seeds)
  • 100ml milk or 80g Yoghurt
  • 40g Pistachio Paste/Powder (you can buy this or make it yourself following this recipe – Link to Pistachio Paste Recipe – external site)
  • 30g Honey

Pistachio Crème Patisserie

  • 250 g Whole Milk
  • 2 Large Egg Yolks
  • 50g Caster Sugar
  • 20 g Cornflour
  • 30 g Pistachio Paste/Powder – see above
  • 2 tbsp Butter

Buttercream

  • 150g Butter
  • 280g Icing Sugar

 

Method

I find it easiest to make the Crème Patisserie first, maybe the day before and then the cake on the day but you can do it all of the same day. Just make sure that both the Cake and the Crème Patisserie are cool before using.

For the Cake
  1. Turn the oven to 180°C/160°C and allow to reach temperature whilst making the mixture
  2. Cream the Butter and Sugar together until a smooth paste
  3. Add the Eggs one at a time and mix thoroughly before adding the next.
  4. In a separate bowl combine the Flour, Baking Powder and Cardamom Seeds together
  5. Combine the Flour mixture into the Egg mixture
  6. Add the Milk and Honey with the Pistachio Paste and whisk for about a minute to form a smooth mixture
  7. Prepare your cake tin by greasing with butter and then pour in your mixture
  8. Bake for around 35 minutes but be aware this may be different in your oven, remember to cook until a skewer inserted comes out clean (if you are splitting the mixture between two tins then reduce the cooking time)
  9. Remove from the oven and leave to cool in the tin for 20 minutes before removing and leaving on a wire rack.

 

For the Crème Patisserie
  1. Pour the Milk into a saucepan on medium heat and warm until just before boiling then remove from heat to allow to cool slightly for about 5 minutes
  2. Add Egg Yolks and Sugar to a bowl and whisk for 1 minute
  3. Add Cornflour and whisk for a further 1 minute, the mixture should become silky and pale
  4. Once the milk has cooled slightly so that it is still warm to the touch but not hot pour a small amount (a ladles worth) into the egg mixture and mix constantly. Continue to add a small amount at a time until all of the milk has been added.
  5. Pour the mixture back into the pan and warm on a medium heat whilst continuing to mix with a whisk or spatula, you will start to feel the mixture thicken after a few minutes. This should take around 5 minutes at medium heat but keep going if it has not thickened yet. Take off the heat
  6. Leave the mixture to cool for 2 minutes and then add the Butter and Pistachio Paste and mix vigorously until incorporated.
  7. Pour your mixture into a container such as a measuring jug and cover with clingfilm so that the clingfilm touches the surface of the Crème Patisserie, this is to prevent a skin forming. Leave to cool form around 20 minutes and then place in the fridge to cool further.

 

For the Butter Cream
  1. Mix the butter and sugar together until smooth, you can melt the butter slightly beforehand to make mixing easier. You can also add the Icing Sugar bit by bit to make sure you get the right consistency.

 

Prepare your Cake
  1. Once your Cake and Crème Patisserie have cooled you can begin to assemble your cake.
  2. If you used to tins you can place one down and pipe or spoon your Crème Patisserie on top creating a smooth layer before adding the top cake. If you have one large cake then cut in half to make two layers and then add your Crème Patisserie layer in between.
  3. Place your cake in the fridge for at least 1 hour or up to a day. This will help with applying your crumb coat which will sit between the cake and the fondant. If the fondant sits directly on the bare cake it won’t adhere very well so we add Butter Cream in to give a smooth layer to help the fondant stick.
  4. Apply the Butter Cream evenly and make sure to cover all edges of the cake and smooth down, a pallet knife really helps here but I don’t have one so it is manageable without.
  5. Put the cake back in the fridge to allow to cool again for at least an hour.

 

Prepare and Apply the Fondant (Nearly Done!)
  1. Take your fondant out of the packet and begin to knead it gently to make it more pliable, be aware that this will slightly stain most surfaces.
  2. Place the fondant between two sheets of clingfilm or baking parchment to prevent sticking (I prefer this method but you can use icing sugar on a normal surface instead) make sure to roll out enough to cover your cake generously as it will be nearly impossible to remove and roll out again.
  3. Lightly place the fondant over your rolling pin and use this to transfer to the top of the cake, smooth out the top of the fondant using the palm of your hand, gently tugging the edges to remove creases. Follow this across and down to the edges and remove the excess with the knife.

A handy video for how to handle fondant can be found here: Working with fondant guide (including video)

 

Last Finishing touch (Optional)

If you want to truly recreate my attempt then create a stencile of the #WikiWomeninRed logo and use Icing sugar to apply the design. Then you can finally sit down and enjoy!

Voila!:

This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license. James Slack

 




More about Blogs.ed and Plugins

Processes and Plugins

 

I admit, I may be cheating a little here. As part of HeyPresstoConf20 I really wanted to be able to talk about our Plugins and Processes but couldn’t fit into the Tweet limit so I’m putting it all here. This should be helpful if you are planning on building your own WordPress Multisite at your institution, as ever, if you want to discuss this feel free to get in touch.

 

Firstly let’s talk about how we go about selecting Plugins. We start to look when multiple users all ask for the same of similar plugin/function or if we encounter and issue that needs a plugin to be resolved. Thankfully we have an inhouse development team that can be called on if we cannot find something which is a blessing but they support multiple platforms so we do need to have good reason. If we do find a plugin or multiple plugins then we start to investigate whether they actually resolve our issue and if they add any issues or have unexpected behaviour, so far this seems to make basic sense. We have, however, developed a process to audit plugins to ascertain whether they are well supported, well reviewed and also if they contain privacy invasive cookies using the following criteria:

Plugin / theme name: Yes / no Comments Date requested Date installed
What does it do?
How much does it cost?

  • Cost of adoption
  • Cost of training
  • Cost of usage
Author background
Is the documentation good?
Who will use the add-on?

  • admins / authors
Feedback / reviews

  • Is it used by many, reviews / comments
Technical status:

  • Is it up to date, compatible with our version of wordpress?
  • Is it well written?
  • Does it backup/restore?
  • Is it secure?
  • Is data shared outside of wordpress?
  • Type of cookies set
Accessibility:

  • Check any spellcheck functionality on free data entry boxes/forms that is either automatically run by the system or that requires users interaction
  • Describe any data validation that is automatically run by the system to ensure users enter data in the correct formats.  Check error messages are in sufficient colour contrast, accessible font, clear location, not pop ups.
  • Check whether the template scales correctly using different resolutions and whether there are any resolutions that are not recommended, tested using ctrl + and Windows Magnifier
  • Check the colours and colour contrasts and font types and styles used i.e. are italics and continuous capitals avoided?
  • Check functionality that would allow users to customise their views (i.e. font size, colours, contrast ratios).  This is by altering browser settings.
  • Check whether all content is accessible through a keyboard interface and whether it requires specific timings for keystrokes. I.e. is it possible to navigate around the template and complete any forms etc without ever using a mouse.
  • Check there is an indication or warning of links which will open a new tab or window and check that these warnings are accessible
  • Check that the template conveys no information in only colour or sound.
  • Check there is no flashing or scrolling text? If so does the text flash 3 or more times per second and can it be paused? If there is flashing or scrolling text please provide more details.
  • Check that Zoomtext is compatible with the template without plug ins
  • Check that JAWS is compatible with the template without plug ins
  • Check that TextHelp Read and Write Gold is compatible with the template in terms of spellcheck, hover highlight and highlight and read without plug ins.
  • Check that tooltips are clear and enabled by default on the template.

·       Check that there are text alternatives for any non-text content.

  • Check that for any audio/visual items are there captions available and theses have been checked for accuracy.
  • Check there are no time limits prescribed for the viewing/inputting of content to the template
  • Check what specialist help is linked to on the template and that this includes a method of contacting someone for assistance?
  • Check that if the template is accessed via a mobile or tablet device the user system does not require to use any requires any specific timings/specific keystrokes to complete tasks
  • Check the template works with mobiles/tablets to offer any text to speech functionality of the results for those with visual impairments?

 

You can also read more about this process in this blog post by Callum, one of the original service managers who has since moved to greener pastures (about 5 metres away when we were in the office) – Cookie Audit Process Blog

Lastly, here is a comprehensive list of all of the plugins that we currently use, all of these have been vetted through our process so should provide a good starting point.

Plugins

Plugin Developer Description Network Activated?
Add Existing Users WPMUDEV Allows you to bulk add existing users to a site, including the facility to set their role. N
Add Multiple Users HappyNuclear This plugin allows you to add multiple user accounts to your WordPress blog using a range of tools. Y
Akismet Anti-Spam Automattic Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Your site is fully configured and being protected, even while you sleep. Y
Batch Create WPMUDEV Create hundred or thousands of blogs and users automatically by simply uploading a csv text file – subdomain and user creation automation has never been so easy. Y
BeeHive Pro WPMUDEV Basicall Google Analytics, users can use their own ID or apply for access to the University managed one N
Broken Link Checker ManageWP Checks your blog for broken links and missing images and notifies you on the dashboard if any are found. N
Classic Editor WordPress Contributers Enabled at network level to remove block editor default N
CommentPress Core  Institute for the Future of the Book CommentPress allows readers to comment in the margins of a text. You can use it to annotate, gloss, workshop, debate and more! N
Cookies for Comment  Donncha O Caoimh Sets a cookie that must exist for a comment to be allowed through Y
Cryout Series Slider Cryout Creations accessibility ready free image slider for WordPress. N
Disable Comments Samir Shah Allows administrators to globally disable comments on their site. Comments can be disabled according to post type. N
EdSolr UoE Integrates Apache Solr with a WordPress Multisite Installation. Y
Email Subscribers & Newsletters  Icegram Add subscription forms on website, send HTML newsletters, and automatically notify subscribers about new blog posts once they are published. N
Enlighter – Customizable Syntax Highlighter Andi Dittrich Syntax Highlighter N
FeedWordPress  C. Johnson simple and flexible Atom/RSS syndication for WordPress N
Flickr Album Gallery FARAZFRANK Flickr Album Gallery is on JS API plugin to display all public Flickr albums on your WordPress website. N
Force Regenerate Thumbnails Pedro Elsner Delete and REALLY force the regenerate thumbnail. N
Google XML Sitemaps  Arne Brachhold This plugin improves SEO using sitemaps for best indexation by search engines like Google, Bing, Yahoo and others. Y
Image Attribution Tagger Red8 Interactive A plugin that adds image credits to licensed images Y
MimeTypes Link Icons  Toby Cox, Juliette Reinders Folmer This will add file type icons next to links automatically. Y
Multisite Plugin Manager  Aaron Edwards The essential plugin for every multisite install! Manage plugin access permissions across your entire multisite network. Y
Multisite Privacy WPMUDEV Adds more levels of privacy and allows you to control them across all sites – or allow users to override them. Y
NS Cloner – Site Copier Never Settle Allows us to create sites from a template Y
NS Cloner Pro Never Settle add-ons to the NS Cloner Core Y
Open Attribute OpenAttribute Y
PDF & Print BestWebSoft Generate PDF files and print WordPress posts/pages. Customize document header/footer styles and appearance. N
Reading Time WP Jason Yingling Add an estimated reading time to your posts. N
Remove Email Verification WPMUDEV Removes need to send a verification email when adding users to site or blogs Y
TinyMCE Comment Field – WPSIWYG Stefan Helmer This plugin turns the comment field from a primitive into a WYSIWYG editor, using the internal TinyMCE library bundled with WordPress. N
Titan Framework  Benjamin Intal, Gambit Titan Framework allows theme and plugin developers to create a admin pages, options, meta boxes, and theme customizer options with just a few simple lines of code. N
True Multisite Indexer Misha Rudrastyh Indexes all posts across your network and brings them into one spot – a very powerful tool that you use as a base to display posts in different ways or to manage your network. Y
Ultimate Category Excluder  Marios Alexandrou Easily exclude categories from your front page, feeds, archives, and search results. N
WordPress Importer  wordpressdotorg Import posts, pages, comments, custom fields, categories, tags and more from a WordPress export file. Y
WordPress.com Theme Updates  Automattic Update themes downloaded from WordPress.com seamlessly with the rest of your WordPress updates. Y
WP Accessibility  Joe Dolson Helps improve accessibility in your WordPress site, like removing title attributes. N
WP Crontrol  John Blackbourn & contributors WP Crontrol lets you view and control what’s happening in the WP-Cron system. N
WP QuickLaTeX Pavel Holoborodko Access to complete LaTeX distribution. Publish formulae & graphics using native LaTeX syntax directly in the text. Inline formulas, displayed equations auto-numbering, labeling and referencing, AMS-LaTeX, TikZ, custom LaTeX preamble. No LaTeX installation required. Easily customizable using UI dialog. Actively developed and maintained. Visit QuickLaTeX homepage for more info. N
WP to Twitter Joseph C Dolson Posts a Tweet when you update your WordPress blog or post a link, using your URL shortener. Rich options to customise and promote your Tweets. N
WPMUDEV Dashboard WPMUDEV Brings the powers of WPMU DEV directly to you. It will revolutionize how you use WordPress. Activate now! N

 

Themes

Theme Name
Apostrophe 2
AwesomePress
Baskerville
Bhari
Blask
Cover
Cover2
Cyanotype
Davis
Fluida
Fukasawa
Garfunkel
Hitchcock
Intergalactic
Intergalactic 2
Isola
Lovecraft
Make
Period
Radcliffe
Sorbet
SPLOTpoint
Tiny Framework
Twenty Fifteen
Twenty Nineteen
Twenty Seventeen
Twenty Sixteen
Twenty Twenty
Writee



Service Inheritance

How to Inherit a Service

A while back, before quarantine and therefore a lifetime ago, I ‘inherited’ a service. Anyone familiar with how these things go will also be somewhat familiar with how the conversation went:

“We think you’ve done quiet well and we’d like you to take over this service”

“Does that mean I can drop my old service”

“No”.

Thankfully I have loved taking over this service, by this service I do actually mean *this* service. I now manage the Academic Blogging service, blogs.ed.ac.uk which is what you are reading this post on. I have blogged in the past but sporadically at best. Managing the service is completely different, managing any service is difficult but managing a service which is designed to be open and allow people to do what they want (to an extent) comes with it’s own interesting challenges, more of that in another post.

Today however I wanted to talk more specifically about inheriting a service. It’s something that I hadn’t really thought about before but it struck me that this is the first ‘living’ service that I have taken over. I have a relatively short period of experience of managing learning technology services, roughly 6 years at this point. In that time I have managed two large services but both of these were in their infancy when I got hold. I was able to largely decide what these service should look like, what they would look like and what the policies around them would be. Obviously there is an amount of team work and involvement of other teams in this process but as a service manager the impetus usually came from me.

Taking on a new service that has existed before, however, is something completely different. I often enjoy using bad analogies that I tend to stretch to far, so allow me to do this yet again: Inheriting services is like getting an armchair that belonged to someone else (ish). It’s arranged in a different way, it faces the door, it doesn’t go back far enough, it feels a bit to firm and there are Revels tucked into the side of the cushion. Who would put Revels down there, why would they choose Revels of all the things available?

Service Personality

The problem/issue/opportunity is, someone or a group of somebodies have decided how this should work and put it all in place. Now you come in and you’re not sure if you always agree. Most of the time you will but you just need to understand the ‘why’ after seeing the ‘what’ and ‘how’. Most services have a ‘vision’ of sorts attached, usually within the original Project Brief or the Service Level Description (SLD) that sets out the ‘shape’ of the service. This works great in isolation but what often happens is that this clearly defined ‘shape’ then gets released and it tends to need to alter shape to fits its environment in some way. (I DID say I enjoy bad analogies).

Opportunities for Change

I’ve always very strongly believed that getting a ‘fresh pair of eyes’ is possibly one of the most useful things to do when you have a great idea or process. Having someone outside of the ‘organisation’ take a look is often the best way to pick up on things, firstly it forces you to explain why you made a decision and also allows you to be questioned. If you can’t convince someone as to why something works that way then you might want to re-evaluate or compromise with the other view point. I love the following quote, which I believe is attributed to Grace Hopper  – “The most dangerous phrase in the language is, ‘We’ve always done it this way’ ”

(If you don’t know who Grace Hopper is, please pause and look her up. I will wait)

Inheritance runs both ways

This is the part that surprised me the most when I realised that this was the first service that was secondhand/pre-loved/pre-existing/had a life before me. I started this long monologue talking about how I had inherited something but it seems obvious that the service had also imbibed something from it’s creators and previous owners. There were certain priorities or choices that were made by previous people upon the service, impressions in the surface that had left their mark. I agree with the vast majority of these but some I want to change, based on my priorities or choices that I think make it fit it’s environment in a better way, or a way that appears better to me. Obviously all of this is measured alongside the needs of the current community, I wouldn’t make big changes that negatively impacted people using the service but I may make decisions that change the ‘flavour’ in some ways.

Making it yours or making you part of it

After you have been looking after the service for a short while you will likely find a list of things that don’t really feel right to you. It’s likely that these decisions were made some time ago and might not reflect the needs of the user community anymore. I would say it is important to mention here that we aren’t criticising the previous owners, just using this change as an opportunity to review and also add you own input to the service. Once you have found these areas then try to seek the justification if possible, there could be a very good reason as to why something works like this and not like *this*. If there isn’t a good justification or if that doesn’t really hold anymore then start building your case for making a change and what that change will be. Next you get to take these changes to the service team, working group or user community. If these don’t exist then this is a good chance to make them as having some external input, if only at certain times will greatly improve the service as a whole. Also be sure to check that these changes are actually wanted/needed/will have a positive impact, change for the sake of change is a winding road. Always remember RACI (Responsible, Accountable, Consulted, Informed)

This is the part that I enjoy the most about managing services, there is a human part even if what *it* is an application running on virtual machines somewhere (I imagine in a basement, because, it has to be). I get to take all of the work that went before and add my layer on top and alter it ever so slightly, like a funky new flavour in your Rainbow Cake – I REALLY DID say that I like bad analogies.

 

"Layers from top - Rainbow Birthday Cake" by avlxyz is licensed under CC BY-NC-SA 2.0

“Layers from top – Rainbow Birthday Cake” by avlxyz is licensed under CC BY-NC-SA 2.0

 

Takeaways from service inheritance

If you are a current service owner

  • For you managing a service, try to document what decisions were taken and why they were taken, this makes it a lot quicker for someone to get a feel for how the service exists now. Adding the justification really makes a big difference when someone new steps in
  • Even if the service isn’t being taken over by someone else it can be very helpful to get fresh eyes on a service, or to include more people when making the decisions. Working groups or user involvement are very good for this.
  • Try to update original documentation as the service shifts over time, most institutions seem to push for this at intervals but it helps to remember how services can change over time.
  • Include retrospective look backs at the service at regular intervals, perhaps each year. Having a look at the changes that were added, how they were received and whether they helped add something useful to the service is a very rewarding process

If you are taking over an existing service

  • Getting an overview or introduction to the service is incredibly useful but do bear in mind that it is unlikely that you will be able to understand the entire service after one meeting
  • If possible try to take the previous service owner hostage so that you can refer to them if they didn’t document things
  • Once you have a good understanding of the service highlight the areas that you have issues with. Areas that you don’t understand why something was done in a particular way or why a certain policy exists. Try to find to root cause for these, if they make sense and fit the service you can leave them for now. If that doesn’t fit the service or the user’s need then earmark those areas for change.
  • Add your personal touch, come up with suggestions in these specific areas that you have highlighted and taken them to existing working groups or service team. If they don’t exist then consider creating them.