<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Lizzie Cullen Davison on Medium]]></title>
        <description><![CDATA[Stories by Lizzie Cullen Davison on Medium]]></description>
        <link>https://medium.com/@lizziecdavison?source=rss-f9cd4487253c------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*QF1IonGz7MEwANXv5wodMw.jpeg</url>
            <title>Stories by Lizzie Cullen Davison on Medium</title>
            <link>https://medium.com/@lizziecdavison?source=rss-f9cd4487253c------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 23 May 2026 15:33:09 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@lizziecdavison/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[A short SOAP primer: how to use a SOAP API when you really, really have to]]></title>
            <link>https://medium.com/pixie-labs/a-short-soap-primer-how-to-use-a-soap-api-when-you-really-really-have-to-443f997def35?source=rss-f9cd4487253c------2</link>
            <guid isPermaLink="false">https://medium.com/p/443f997def35</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[api-integration]]></category>
            <category><![CDATA[api]]></category>
            <dc:creator><![CDATA[Lizzie Cullen Davison]]></dc:creator>
            <pubDate>Fri, 21 Feb 2020 15:58:23 GMT</pubDate>
            <atom:updated>2023-09-15T09:55:08.875Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Because despite our REST efforts, there are still a lot of SOAP APIs out there.</em></p><p>As a developer, you’re sometimes required to quickly pick up technologies that you’re not necessarily familiar with. Sometimes, that means getting to try out cool new tech that everyone’s talking about. Other times, it means learning to use something neither cool nor new.</p><p>When looking into how to use a SOAP API for a recent project that involved working with some legacy systems, I noticed there are a lot of blog posts about SOAP vs. REST and why you should never, <em>ever</em> use SOAP. Not very useful if you’re working on a project where you have no choice but to interact with a SOAP API.</p><p>So here’s a little primer on working with a SOAP API. Have fun!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4aTGK8Fjm4AFt5VH" /><figcaption>Photo by <a href="https://unsplash.com/@yogidan2012?utm_source=medium&amp;utm_medium=referral">Daniele Levis Pelusi</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>What is SOAP?</h3><p>SOAP stands for Simple Object Access Protocol. It’s a type of API that is usually found in older enterprise systems and allows you to invoke a specific set of methods on the server you’re communicating with. SOAP uses XML as a messaging format, and messages are usually transmitted via a normal web request.</p><p>Most new APIs are built as REST APIs, not SOAP. Reasons why are outside the scope of this post but include verbosity, XML serialisation overhead, and the fact that most SOAP APIs are badly implemented.</p><h3>Getting going with SOAP</h3><p>I’m going to show you how to get started using a SOAP API, using this <a href="https://www.dataaccess.com/webservicesserver/NumberConversion.wso">number-to-words converter service</a> as an example.</p><h4>Have your WSDL ready.</h4><p>WSDL (pronounced <em>wizzdle</em>) is short for Web Service Definition Language. It’s an XML file that describes all the methods that you can call with the SOAP API. You’ll use it to determine what you can do with the API, what kind of data you can pass to it, and what you can expect to get back from it.</p><p>The WSDL is automatically generated. To see the WSDL for the SOAP service you want to use, add ?wsdl to the end of the service URL.</p><p>For example, to see what we can do with the number conversion service, we can take a look at its WSDL located here: <a href="https://www.dataaccess.com/webservicesserver/NumberConversion.wso?wsdl">https://www.dataaccess.com/webservicesserver/NumberConversion.wso?wsdl</a></p><h4>Reading the WSDL</h4><p>In the WSDL, look for a subsection called &lt;types&gt; or &lt;xs:types&gt;, and within that an &lt;xs:schema&gt;. Here you’ll find the methods you can call and their responses.</p><p>Take a look at this extract from the number-to-words converter WSDL:</p><pre>&lt;xs:schema&gt;<br>  &lt;xs:element name=&quot;NumberToWords&quot;&gt;<br>    &lt;xs:complexType&gt;<br>      &lt;xs:sequence&gt;<br>        &lt;xs:element name=&quot;ubiNum&quot; type=&quot;xs:unsignedLong&quot;/&gt;<br>      &lt;/xs:sequence&gt;<br>    &lt;/xs:complexType&gt;<br>  &lt;/xs:element&gt;<br>  &lt;xs:element name=&quot;NumberToWordsResponse&quot;&gt;<br>    &lt;xs:complexType&gt;<br>      &lt;xs:sequence&gt;<br>        &lt;xs:element name=&quot;NumberToWordsResult&quot; type=&quot;xs:string&quot;/<br>      &lt;/xs:sequence&gt;<br>    &lt;/xs:complexType&gt;<br>  &lt;/xs:element&gt;<br>&lt;/xs:schema&gt;</pre><p>We can see that there’s a method called NumberToWords that takes a parameter called ubiNum, which the WSDL says should be of type xs:unsignedLong. Looking up XML data types (on <a href="https://www.w3schools.com/xml/schema_dtypes_numeric.asp">W3Schools</a>, for example), we can see that that means it should be an unsigned 64-bit integer.</p><p>There’s also a definition of the response we can expect to receive: NumberToWordsResponse, which returns a string parameter called NumberToWordsResult. Sounds good — it’s what we might expect from a service that takes a number and makes it into a word.</p><p>Now we know what we’re working with, it’s time to try it out!</p><h4>Making the SOAP request</h4><p>There’s a very specific structure to making a SOAP request. The request is written in XML and sent via HTTP (or sometimes more rarely a message queue or, shockingly, <em>email</em>).</p><p>Continuing with our example number conversion service, our SOAP request might look something like this:</p><pre>POST /webservicesserver/NumberConversion.wso HTTP/1.1<br>Host: www.dataaccess.com<br>Content-Type: text/xml; charset=utf-8<br>Content-Length: length</pre><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br>&lt;soap:Envelope xmlns:soap=&quot;<a href="http://schemas.xmlsoap.org/soap/envelope/">http://schemas.xmlsoap.org/soap/envelope/</a>&quot;&gt;<br>  &lt;soap:Body&gt;<br>    &lt;NumberToWords xmlns=&quot;<a href="http://www.dataaccess.com/webservicesserver/">http://www.dataaccess.com/webservicesserver/</a>&quot;&gt;<br>      &lt;ubiNum&gt;12&lt;/ubiNum&gt;<br>    &lt;/NumberToWords&gt;<br>  &lt;/soap:Body&gt;<br>&lt;/soap:Envelope&gt;</pre><p>We’re making a normal HTTP POST request, where the content of the body is some XML that tells the service what we want to do.</p><p>Looking at the body of the request, there’s a soap:Envelope that wraps a soap:Body, <em>within which</em> you pass the method you want to call (here, NumbertoWords), and <em>within that,</em> any parameters that the method requires.</p><p>You can try this request out with Postman, using their handy <a href="https://blog.postman.com/2014/08/22/making-soap-requests-using-postman/">guide to making SOAP requests</a>. Just a heads up, though, because it’s not clear in Postman’s guide — make sure to set the Content-Type to ‘text/xml’ in the header as well as in the body.</p><p>Here’s the response from the request above:</p><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br>&lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;<br>  &lt;soap:Body&gt;<br>    &lt;m:NumberToWordsResponse xmlns:m=&quot;http://www.dataaccess.com/webservicesserver/&quot;&gt;<br>      &lt;m:NumberToWordsResult&gt;twelve&lt;/m:NumberToWordsResult&gt;<br>    &lt;/m:NumberToWordsResponse&gt;<br>  &lt;/soap:Body&gt;<br>&lt;/soap:Envelope&gt;</pre><p>The format is very similar to the request format, except this time, we can see aNumberToWordsResponse which contains the NumberToWordsResult. In this case, the string ‘twelve’.</p><p>Phew, that was a little long-winded. Don’t worry though, you don’t have to write all your requests out yourself by hand.</p><h4>Finding a SOAP library</h4><p>Luckily for you, there are libraries out there that can help you, depending on what language you’re coding. We’ve had good experiences with:</p><ul><li><a href="https://github.com/vpulim/node-soap">node-soap</a> for Node</li><li><a href="https://github.com/savonrb/savon">Savon</a> for Ruby</li><li><a href="https://github.com/mvantellingen/python-zeep">Zeep</a> for Python</li></ul><p>The concept with SOAP libraries is usually the same:</p><ol><li>Create a SOAP client based on the WSDL URL</li><li>Call dynamically created methods on the client</li></ol><p>Check the individual libraries’ documentation for more information on how to use them. You may need an XML parser, too, to create the parameters for your calls and parse the responses, depending on how fancy your library is.</p><h4>Wrapping up</h4><p>Many SOAP APIs are largely undocumented beyond the WSDL, so you’re going to have to get good at reading XML. Hopefully, this guide has helped you get a better understanding of the WSDL and how to work with SOAP APIs in a relatively painless way.</p><p>Good luck!</p><p>.</p><p>.</p><p>.</p><p><em>Pixie Labs is a leading London-based digital product studio with deep software development expertise in </em><a href="https://www.pixielabs.io/uk-ruby-on-rails-development"><strong><em>Ruby on Rails</em></strong></a><em>, </em><strong><em>React</em></strong><em> and </em><strong><em>React Native</em></strong><em>. We design and build high-impact apps, platforms and digital tools. </em><a href="https://www.pixielabs.io/contact"><em>Let us help you make your digital product a success.</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=443f997def35" width="1" height="1" alt=""><hr><p><a href="https://medium.com/pixie-labs/a-short-soap-primer-how-to-use-a-soap-api-when-you-really-really-have-to-443f997def35">A short SOAP primer: how to use a SOAP API when you really, really have to</a> was originally published in <a href="https://medium.com/pixie-labs">Pixie Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Velocitaire: estimate all the things]]></title>
            <link>https://medium.com/pixie-labs/velocitaire-estimate-all-the-things-b3047584abd?source=rss-f9cd4487253c------2</link>
            <guid isPermaLink="false">https://medium.com/p/b3047584abd</guid>
            <category><![CDATA[project-management]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[agile-methodology]]></category>
            <category><![CDATA[project-management-tool]]></category>
            <dc:creator><![CDATA[Lizzie Cullen Davison]]></dc:creator>
            <pubDate>Wed, 15 May 2019 13:13:32 GMT</pubDate>
            <atom:updated>2023-09-15T10:23:57.650Z</atom:updated>
            <content:encoded><![CDATA[<p><em>We built Velocitaire to help with predicting a team’s velocity on a new Agile project. If you’re an Agile team and you haven’t heard of the Velocity Game, as we hadn’t until recently, you might find this useful.</em></p><p>Back in January, the whole Pixie Labs team attended a refresher Agile training workshop. It was a great way to get everyone on the team thinking critically about some of the processes we use every day, and to discuss how we could make those processes work better for us.</p><p>Besides the interesting discussions that came out of the workshop and having lots of fun building animals out of Lego, we also learnt some new things, including how to predict a team’s velocity on an Agile project using the Velocity Game.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/568/1*sUbMC8jSdrNUBzm-RAR8Jw.gif" /><figcaption>It’s a pollution-eating transport whale, obviously.</figcaption></figure><p>We play <a href="https://en.wikipedia.org/wiki/Planning_poker">Planning Poker</a> for estimating story sizes, but we didn’t really have a way of estimating team velocity for new projects where there’s no historical data to use in predictions. That’s where the Velocity Game comes in.</p><h4>How the Velocity Game works</h4><p>To play the game, you need an index card for each story in the project, with the story written out on one side and the story points on the other.</p><p>The project manager selects a story to show to the development team, who must agree on whether they will be able to finish it within one iteration. The points associated to stories should always be kept hidden from the team, so that they don’t influence their decisions.</p><p>When the team agrees that a story can be completed in an iteration, that story should be put aside. The project manager then selects another card from the deck to show the team. This time they must decide on whether they could complete the new story as well as the one they’ve already accepted.</p><p>Play continues like this until the team accepts no more stories into the iteration. At this point the project manager secretly adds up all of the accepted stories’ points and writes down the number somewhere, to be kept hidden until the end of the game.</p><p>Repeat the whole process a few times, with the project manager showing the team different combinations of stories each time. Eventually, the number of points in each iteration should begin to converge, giving an indication of the team’s projected velocity.</p><h4>Introducing Velocitaire</h4><p><a href="https://www.velocitaire.com/">Velocitaire</a> is a tool we built for playing the Velocity Game, and it doesn’t require writing out lots of stories on index cards. Pretty sweet!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EVfIUNAWSwjb0iUD8Gmvpw.png" /></figure><p>To play Velocitaire, you need the following:</p><ul><li>An XLSX file with the name of each story and its associated size, represented as a number</li><li>The team that will build the thing</li></ul><p>That’s it!</p><p>Each round in Velocitaire corresponds to an iteration. Velocitaire will show stories at random, and the team should decide amongst themselves whether they can fit that work into the iteration. Once they think they have enough stories to fill an iteration, they can end the round. After 5 rounds, the game is ended, and the velocity of each iteration as well as the average velocity, are calculated.</p><p>There are a few things to consider when playing Velocitaire:</p><ul><li>Because stories are shown randomly, it’s possible that some stories might never get shown to the players.</li><li>Velocitaire ends the round after 3 rejected stories, regardless of their size.</li><li>At the moment, there are only 5 rounds in the game, but this could be extended.</li></ul><p>If you’ve used Velocitaire or played the Velocity Game for one of your projects, we’d <a href="mailto:hello@pixielabs.io">love to hear about it</a>. Did it work for you and your team? Is there anything you would change about it?</p><p><em>I couldn’t find the original creator of the Velocity Game. If you are the creator or know where the game is from, please get in touch for attribution.</em></p><p>.</p><p>.</p><p>.</p><p><em>Pixie Labs is a leading London-based digital product studio with deep software development expertise in </em><a href="https://www.pixielabs.io/uk-ruby-on-rails-development"><strong><em>Ruby on Rails</em></strong></a><em>, </em><strong><em>React</em></strong><em> and </em><strong><em>React Native</em></strong><em>. We design and build high-impact apps, platforms and digital tools. </em><a href="https://www.pixielabs.io/contact"><em>Let us help you make your digital product a success.</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b3047584abd" width="1" height="1" alt=""><hr><p><a href="https://medium.com/pixie-labs/velocitaire-estimate-all-the-things-b3047584abd">Velocitaire: estimate all the things</a> was originally published in <a href="https://medium.com/pixie-labs">Pixie Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Launching Pixie Labs’ mentoring office hours]]></title>
            <link>https://medium.com/pixie-labs/launching-pixie-labs-mentoring-office-hours-f06b8265f742?source=rss-f9cd4487253c------2</link>
            <guid isPermaLink="false">https://medium.com/p/f06b8265f742</guid>
            <category><![CDATA[mentorship]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[learning-to-code]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Lizzie Cullen Davison]]></dc:creator>
            <pubDate>Wed, 09 Jan 2019 16:45:16 GMT</pubDate>
            <atom:updated>2023-09-15T10:23:30.465Z</atom:updated>
            <content:encoded><![CDATA[<p>In August 2018, we started to run free tech mentoring office hours at our London offices. It’s been a great experience for us at Pixie Labs, and we’ve really enjoyed being able to offer this service to people interested in learning about software development.</p><h4>Motivation</h4><p>We care a lot about learning and growth. That’s why we have <a href="https://pixielabs.io/work-for-kicks">Friday Kicks</a>, one day a month, where everyone can work on anything they choose to, inspired by Google’s 20% time and <a href="https://thoughtbot.com/playbook/our-company/time">Thoughtbot’s 4-day client week</a>. It’s why we work on projects where we learn something new or build something that’s not been built before, like our <a href="https://pixielabs.io/work-for-clients/poweredbytweets">Twitter-powered typewriter</a>. During quiet periods of work, we put aside time to hone our skills, revise our existing approaches and try out tools we haven’t used before. Sometimes we build things to bridge gaps where we’ve found them and open-source our solutions, like we did with <a href="https://github.com/pixielabs/cavy">Cavy</a>, our React Native testing framework.</p><p>As well as learning, we like to teach and share what we’ve learnt, whether that’s running sessions with <a href="https://www.codefirstgirls.org.uk/">Code First: Girls</a>, coaching at <a href="https://girlscodemk.co.uk/">GirlsCode MK</a>, or fielding questions from fellow beginner developers through our network. We also write about the things we’ve found interesting and stuff we’ve built. We love the tech community, and being part of that community also means giving back.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LyAkYzElpWZ3zePg" /><figcaption>Photo by <a href="https://unsplash.com/@gallarotti?utm_source=medium&amp;utm_medium=referral">Francesco Gallarotti</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h4>How it started</h4><p>In August last year, we sat down to talk about how we could share the experience we’ve gained and help people starting out on their coding journey. We’d spoken to Thoughtbot about <a href="https://thoughtbot.com/london-mentoring">their mentoring office hours</a>, and it sounded like something we could offer too.</p><p>We decided to give it a go and sent out a tweet linking to a <a href="https://pixielabs.io/london-mentoring-office-hours/">brand-new page on our website</a>. Immediately, we got a lot of great responses, and a few people got in touch to ask to come along.</p><p>The first office hours went really well, and we decided to make it a part of our Friday Kicks, which happen on the third Friday of every month. Since then, we’ve met with fifteen people to chat about all sorts of tech-related things.</p><h4>What happens in a mentoring session?</h4><p>Sessions last one hour, and we encourage participants to prepare questions so that they can get the most out of the session. We also ask them to send the questions to us in advance so that we can match them with whoever is most suitable to help them find answers.</p><p>Some of the questions we’ve been asked include:</p><ul><li>What are some good resources for learning to code?</li><li>How can I prepare for a technical interview?</li><li>What kinds of projects can I work on that will help me show off my skills and get a job as a developer?</li><li>How can I fix this broken code?</li><li>I have an idea for x; how should I go about making it a reality?</li><li>I’m not sure I understand what agile means. Can you help me understand it?</li><li>Can you help me with this HTML and CSS problem?</li></ul><p>A lot of people were also just generally interested in learning to code in some form or another. Sometimes, they’re already doing all the right things to make their career change into tech, and we’re just there to reassure them that, yes, we spend a lot of time Googling things too.</p><p>We’ve met with people who had a bad case of impostor syndrome and insisted they weren’t really developers, all while talking us through the huge React apps they’d built. Once, we showed someone a page of code and how to change the colour of text on a webpage with CSS, and it blew their mind. Another time, a mentee taught <em>u</em>s<em> </em>about some cool tech we’d never tried before. Whatever the situation, it’s always rewarding to see people excited about the possibilities that open up to them through learning to code.</p><h4>Impact</h4><p>It’s been really fun meeting so many different people through our office hours. We’ve made friends and learned things along the way. A couple of our mentees have gone on to attend further coding workshops and courses, and one nervous mentee built up her confidence enough after chatting to us to quit her job and start a new role as a developer — our proudest moment so far.</p><p>We’re so happy with the way this has worked out and looking forward to continuing with it in 2019. Thanks to everyone who attended in 2018, here’s to many more coffees and chats!</p><p><strong>Our office hours are held on the third Friday of every month at our London office in Holborn and are completely free to attend. If you’re interested in coming to chat with us about something tech-related, </strong><a href="mailto:hello@pixielabs.io"><strong>get in touch!</strong></a><strong> We’re looking forward to hearing from you.</strong></p><p>.</p><p>.</p><p>.</p><p><em>Pixie Labs is a leading London-based digital product studio with deep software development expertise in </em><a href="https://www.pixielabs.io/uk-ruby-on-rails-development"><strong><em>Ruby on Rails</em></strong></a><em>, </em><strong><em>React</em></strong><em> and </em><strong><em>React Native</em></strong><em>. We design and build high-impact apps, platforms and digital tools. </em><a href="https://www.pixielabs.io/contact"><em>Let us help you make your digital product a success.</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f06b8265f742" width="1" height="1" alt=""><hr><p><a href="https://medium.com/pixie-labs/launching-pixie-labs-mentoring-office-hours-f06b8265f742">Launching Pixie Labs’ mentoring office hours</a> was originally published in <a href="https://medium.com/pixie-labs">Pixie Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The path to Vimlightenment]]></title>
            <link>https://medium.com/pixie-labs/the-path-to-vimlightenment-37cc70b1f62b?source=rss-f9cd4487253c------2</link>
            <guid isPermaLink="false">https://medium.com/p/37cc70b1f62b</guid>
            <category><![CDATA[developer-tools]]></category>
            <category><![CDATA[vim]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[junior-developer]]></category>
            <category><![CDATA[women-in-tech]]></category>
            <dc:creator><![CDATA[Lizzie Cullen Davison]]></dc:creator>
            <pubDate>Mon, 23 Apr 2018 16:04:48 GMT</pubDate>
            <atom:updated>2023-09-15T10:27:46.875Z</atom:updated>
            <content:encoded><![CDATA[<h4>A beginner’s guide to switching to the Vim text editor.</h4><p>You’ve probably heard of Vim, the popular but impossible-to-learn editor. I like a challenge, and after speaking to a few developers who said that Vim was too scary to learn, I decided to give it a go. I’ve written this guide to help other junior developers who might have heard of Vim or have seen it in action and are interested in trying it out. For anyone who thinks Vim is too hard to learn, this guide should help make it a little more approachable.</p><p>I’m going to cover:</p><ol><li>Why you should swap to Vim</li><li>Dipping your toes in</li><li>Preparing for the transition to Vim</li><li>Making the move</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ryTcJJhK_LnmvAKce4-_Zg.jpeg" /></figure><h3>1. Why swap to Vim?</h3><p><em>What is Vim? Why change if my current text editor works fine?</em></p><h4>What is Vim?</h4><p>Vim is a highly configurable and very powerful text editor which runs in the terminal and is included with virtually every Unix-like operating system (like Linux, or macOS). It has several modes that make moving around files, editing, inserting text and using commands all possible with just a few keystrokes. Amongst other things, it supports creating macros for common tasks, multiple levels of undo/redo memory and running terminal commands from within the editor.</p><h4>How can it help me?</h4><p>As a beginner Vim can seem overwhelming, but don’t go too deep into everything at the start. You just need to know whether it will be worth the effort of learning it.</p><p>So what are the main benefits of learning Vim?</p><ul><li>You can do everything with your keyboard; no switching between using the keyboard and using the mouse.</li><li>You can use the command line without switching contexts.</li><li>You’ll be able to use it to edit files directly on remote servers when you SSH.</li><li>You’ll learn a lot about the command line.</li><li>You’ll feel great about having learnt something new and scary.</li></ul><p>If that all sounds good to you, let’s get started trying out Vim.</p><h3>2. Dipping your toes in</h3><p><em>Vim is confusing! How do I get started? A brief outline of what to install and what tutorials to try out, or: treat your vimphobia with exposure therapy.</em></p><h4><strong>Installing</strong></h4><p>Let’s get practical. A basic version of Vim usually comes installed on Mac and Linux, but you will need to install a newer version to get more features. On a Mac, you can use Homebrew to get the latest version (replacing the built-in version):</p><pre>$ brew install vim</pre><p>If you are not on a Mac, or this does not work for you, head over to <a href="https://github.com/vim/vim#installation">the official Vim repo</a> on GitHub and follow the instructions there to install the latest version.</p><h4><strong>Trying it out</strong></h4><p>Now that you have a recent version of Vim installed, work through some exercises to get a feel for how Vim works in practice.</p><p>For a fun interactive introduction to Vim’s controls, I really recommend checking out <a href="http://openvim.com/">Open Vim</a>. It’s quick and will give you a taste of what you can do with Vim.</p><p>Vim also comes with its own tutorial for beginners called Vimtutor. To try it out, open a terminal window and type vimtutor. It will take about half an hour to complete, and you can leave and come back to it later if you find it’s too much for one sitting. I also found it useful to come back to vimtutor once I’d been using Vim for a little while to top up my knowledge, as it’s hard to remember everything you learn when you’re just starting out.</p><p>Take your time and get familiar with some basic commands and movements, as well as switching between modes. Once you feel comfortable, let’s prepare for the transition to Vim!</p><h4>Resources</h4><ul><li>vimtutor — Vim’s official tutor</li><li><a href="http://openvim.com/">http://openvim.com/</a> — a quick and interactive online Vim tutorial</li><li><a href="https://vim.rtorr.com/">https://vim.rtorr.com/</a> — an accessible Vim cheat sheet, available in lots of different languages</li><li><a href="http://www.viemu.com/vi-vim-cheat-sheet.gif">http://www.viemu.com/vi-vim-cheat-sheet.gif</a> — a graphical Vim cheat sheet</li><li>:help — Vim’s built-in help for when you are stuck</li></ul><h3>3. Preparing for the transition</h3><p><em>I’ve had a go, and it seems pretty sweet. I want to try using Vim for development. Is there any other setup I need to go through?</em></p><p>You’ve played around with Vim a little bit and seen some of the cool things you can do with it. But before you jump right in and start developing in Vim, let’s customise it to make the transition easier.</p><p>Create a .vimrc file in your home folder, which will hold your settings. These will be different for everyone, depending on your development style, but when switching over to Vim for the first time after using a normal text editor, there will be a few things that you will have grown used to, which could be useful to configure in Vim.</p><p>Those things include, but aren’t limited to:</p><ul><li>support for using the mouse</li><li>syntax highlighting</li><li>auto indentation and setting your preferred tab sizes</li><li>line numbering</li><li>highlighting search results</li><li>a way to view a tree of all the files in a project folder</li></ul><p>Search the Internet for ways to implement these and any other features you feel will be useful, and save your settings in your new .vimrc. If you use version control, you will probably also want to add Vim’s swap files to your ignored file types too.</p><p>Take inspiration from other people’s .vimrc files, but don’t just copy and paste an entire file. Get the basic setup that you know you will need, then have a go at working with Vim, and you will find out as you go along what features are important for you. Always look up ways to implement them yourself — you will learn more that way.</p><h4><strong>Resources</strong></h4><ul><li><a href="https://dougblack.io/words/a-good-vimrc.html">A Good Vimrc</a> — blog post by Doug Black explaining a lot of vimrc options</li><li><a href="https://github.com/thoughtbot/dotfiles/blob/master/vimrc">https://github.com/thoughtbot/dotfiles/blob/master/vimrc</a> — an example .vimrc from development agency Thoughtbot</li><li><a href="https://github.com/scrooloose/nerdtree">https://github.com/scrooloose/nerdtree</a> — NERDTree, a file system explorer plugin for Vim you might want to use</li></ul><h3>4. Making the move</h3><p><em>Is there anything else I should know before I delete my other text editor?</em></p><p>You might now be tempted to delete your old text editor and dive into using Vim for everything. Hold off for now — it will likely take you some time to get fully productive with Vim, and it will still trip you up. It’s okay to switch back to your old editor to do something quickly there, which you might not yet know how to do in Vim.</p><p>Make a note of the things you struggle with, and when you have some spare time, look up solutions and practice using them. Return to Vimtutor to remind yourself of some of the possible movements which you might have forgotten and look over the user manual (:help user-manual).</p><p>You can also get all sorts of plugins for different languages, frameworks and integrations. For example, if you use Ruby on Rails,Tim Pope’s <a href="https://github.com/tpope/vim-rails">rails.vim</a> plugin might be worth checking out.</p><p>Above all, have fun with it! Using Vim can be very satisfying, but it can also sometimes feel like it’s just too much, and you will never be able to learn it all. Don’t worry about not knowing everything; just make sure to go at your own pace and enjoy the journey.</p><h4>Further reading &amp; resources</h4><ul><li><a href="http://www.moolenaar.net/habits.html">Seven habits of effective text editing,</a> by Bram Moolenaar, the author of Vim. Highly recommended for anyone who uses a text editor, even if it’s not Vim!</li><li><a href="https://vimawesome.com/">Vim awesome</a> — a collection of Vim plugins, browsable using Vim-like commands</li><li><a href="https://sanctum.geek.nz/arabesque/vim-anti-patterns/">Vim anti-patterns</a> — some tips for being more productive with Vim</li><li><a href="https://robots.thoughtbot.com/vim-macros-and-you">Vim Macros and You</a> — a look into Vim macros for beginners</li></ul><p><strong>We’re always optimising our workflows. Whether that’s text editor, project management, or just general business admin. That’s what lets us iterate and build rapidly to solve problems and build products. </strong><a href="mailto:team@pixielabs.io"><strong>Get in touch</strong></a><strong> to work with us on your next project.</strong></p><p>.</p><p>.</p><p>.</p><p><em>Pixie Labs is a leading London-based digital product studio with deep software development expertise in </em><a href="https://www.pixielabs.io/uk-ruby-on-rails-development"><strong><em>Ruby on Rails</em></strong></a><em>, </em><strong><em>React</em></strong><em> and </em><strong><em>React Native</em></strong><em>. We design and build high-impact apps, platforms and digital tools. </em><a href="https://www.pixielabs.io/contact"><em>Let us help you make your digital product a success.</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=37cc70b1f62b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/pixie-labs/the-path-to-vimlightenment-37cc70b1f62b">The path to Vimlightenment</a> was originally published in <a href="https://medium.com/pixie-labs">Pixie Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Unveiling the new Pixie Labs website]]></title>
            <link>https://medium.com/pixie-labs/unveiling-the-new-pixie-labs-website-dec622fce778?source=rss-f9cd4487253c------2</link>
            <guid isPermaLink="false">https://medium.com/p/dec622fce778</guid>
            <category><![CDATA[wordpress]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[web-design]]></category>
            <dc:creator><![CDATA[Lizzie Cullen Davison]]></dc:creator>
            <pubDate>Tue, 12 Dec 2017 17:06:32 GMT</pubDate>
            <atom:updated>2017-12-12T17:06:32.247Z</atom:updated>
            <content:encoded><![CDATA[<p>Hey there! I’m Lizzie and I’m the newest member of the Pixie Labs team. You may have noticed that things look a bit different around here. That’s because we’ve been working hard to bring you our latest side project, which we are very excited to be able to share with you all.</p><p>Over the summer Pixie Labs celebrated its fourth birthday, and our gift to ourselves was a <a href="http://pixielabs.io">sparkling new website</a>! 💃🎈🍾🎉</p><p>It’s been an exciting couple of years for us. The team has grown, most recently when I joined this summer; we’ve become an international outfit, with one of our members based in New York; and we’ve had the opportunity to work on some really diverse projects, from mobile apps and <a href="https://blog.pixielabs.io/announcing-cavy-an-integration-testing-framework-for-react-native-b09d264923d9">open-source software</a> to <a href="https://pixielabs.io/work-for-clients/poweredbytweets">interactive art exhibitions</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*T27yBg1eId8tqeioVsZwPw.jpeg" /><figcaption>Powered By Tweets: interactive art installations at the London Design Festival</figcaption></figure><p>We loved our blue hue, but it was time for a fresh new look for Pixie Labs and a website that really showcases our personality and our portfolio. We wanted something polished and professional, but with a hint of our creative streak. Pixie Labs is an agile team, so we approached the challenge of building our own website in the same way we would any project — breaking down the problem and researching the best tools for the job.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uMOmyUs-aTiHk9g8gfy2Mg.png" /><figcaption>The old Pixie Labs website</figcaption></figure><p>On a technical side, we needed more flexibility in what we choose to present by using a CMS instead of a static website. WordPress is a good choice for this; we really like its ease of use and extensibility. On the other hand, we were less than enthusiastic about architecting and creating a custom WordPress theme and dealing with all the bloat that often goes with that — we’re more of a lean kind of gang. While looking around for inspiration, we came across <a href="https://ustwo.com/">ustwo</a>’s website, which is both open-source and awesome. Ustwo use WordPress via the WP REST API, meaning they don’t need a WordPress theme. Perfect!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*myW2mDz1H1CHjEGqSW1U8A.jpeg" /></figure><p>Using the API for our content meant that our options for building the frontend were much more open than with a traditional WordPress site. We were keen to use a modern, lightweight JS stack, and after comparing some frameworks, we decided that the best solution for us was actually to avoid using any of them and instead roll our own Node app. The site would be lightweight and we would have complete control over which templating engine, CSS frameworks and build tools to use.</p><p>With this research done, we were able to jump right in and start building out our proof of concept, starting with a barebones WordPress installation, a minimal Express app, and <a href="http://wp-api.org/node-wpapi/">node-wpapi</a>, which made calling the API really easy. Satisfied that it worked, we continued to develop and build on our MVP. We still have a custom WordPress theme, but it only serves content via the API and doesn’t render pages itself. This allows us to modify the WordPress API to include custom routes and fields. Our Node app takes care of the routing and rendering of pages, and we have Webpack for bundling Sass and other assets. We kept the PHP to a minimum, so everybody’s happy!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*a_m02n2leLnTRHrcNj0y4Q.png" /></figure><p>Along the way, we also discovered <a href="https://bulma.io/">Bulma</a>, a great CSS framework that made turning our new designs into a real, functioning website a joy. Who knew that vertical centering in CSS didn’t have to be such a daunting task?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uu4kzADwjkJUONi-m70H7w.png" /><figcaption>The result!</figcaption></figure><p>We’re really happy with the way our website turned out, and we hope that you enjoy it too. As the new Pixie on the block, it was lots of fun working on our website and giving the Pixie Labs brand some love, not to mention getting a chance to play around with so many cool bits of tech that are new to myself and to the rest of the team. Our own lead engineer <a href="https://twitter.com/jalada">@jalada</a> is so pleased with the result he’s using the WP REST API for all his WordPress sites from now on. We hope that others will be inspired to give it a go!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dec622fce778" width="1" height="1" alt=""><hr><p><a href="https://medium.com/pixie-labs/unveiling-the-new-pixie-labs-website-dec622fce778">Unveiling the new Pixie Labs website</a> was originally published in <a href="https://medium.com/pixie-labs">Pixie Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>