Enlighten Us, But Make It Quick

Ignite is a series of fast 5 minute long talks on any topic, from technology to culture to business to philosophy. The goal of the talk is to entertain and educate the audience. The event is either stand alone or part of large conferences. A great example is Scott Berkun one discussing the spirit and technicalities of Ignite.

The most interesting is the layout of presentation: every speaker has exactly 20 slides, which will auto-advance every 15 seconds. This makes it both exciting and intimidating at the same time. As one of my co-speakers, Alistair Croll, put it “its the closest things to stand up comedy in public speaking”. To sum it up, the main selling points behind Ignite are:

  • taking your presentation skills to next level (or at least showing you how to get there);
  • it is great fun and its good starting point for any networking;
  • it gets you places (more on it later…).

Why have I done it?

Strata+Hadoop World is one of the biggest events in the data scientist diary - it is an opportunity to listen to the line-up of speakers and to learn what is on the horizon. This year attending the accompanying Ignite event provided the speaker with a free bronze ticket. I felt this was a great opportunity: not only could I gain access to a great conference, but also try to create a markdown presentation, get very useful public speaking experience and good starting point for networking.

Why should you read this blog

There is already a large number of blogs and articles focusing on Ignite preparation. I felt that adding to this corpus will be useful for two reasons:

  • I have presented an advanced technical topic, related to my current academic research, but aimed at general audience;
  • I wanted to create my presentation in a distraction-free environment and within a specific time limit: two days for the abstract and a week for the presentation and practice.

The second goal sprang from reading Deep Work by Cal Newport and aim to create a distraction-free environment. To do so I focused on using the very versatilemarkdown, which I use it to write my blog, take notes or create fully working reports in Word, for details see my February post. On this occasion, I wanted to use the same approach to create a fully working presentation. BTW, if you not familiar with markdown, this guide is a good starting point.

Ignite talks take away and advice

Let me start with the takeaways: I really enjoyed my talk - it was stressful yet very rewarding. I met great people and I felt that all the hard work really paid off. My main advice, if you want to do it (and I recommend you do):

  • Five minute talks are very easy to get wrong on the day despite all preparations - make slides visual and limit amount of text;
    • This gives you flexibility if things go a bit wrong;
    • As you practice you should not feel the need to change slides, but your talk;
    • You will feel more confident as the audience is not likely to notice if things got slightly out of hand.
  • Less is more. Focus on one main idea and hammer it home;
    • Be very strict - one message per slide;
    • Be consistent and talk slowly. It makes it easier for the audience to understand, you appear more confident and have enough time to plan ahead.
  • Pauses are extremely useful - it allows you to:
    • Control the flow of your presentation;
    • Bring the attention of the audience back to yourself;
    • Have time to recover and relax if things go wrong.
  • You get what you give. The more you prepare the better you feel and the more you will take from this experience. This is probably the universal truth.

How long does preparation take?

It took me about a week to prepare the talk and the split was:

  • One evening (2-3 hours) to prepare the abstract;
  • Two evenings (5-8 hours) to prepare and send the presentation itself;
    • I fenced off time from 17:00 every evening and I used my workflow to limit any distractions;
    • I spend about 2 hours on the first evening goofing around.
  • Long weekend (3 days) to rehearse my presentation, demo it to a friend and finalise everything;
    • A lot of time spent on taking a break and working on other things. You need to spread your attempts over few days and take larger breaks to memorise properly. It is better to take an hour over few days than try to cram everything in one day.
  • I took an hour on the presentation day to practice it again.

Let’s get down to technical details.

Getting the talk ready

Prepare talk abstract

  • Start with an idea that is interesting for other to listen to, and write it down in a few sentences.
    • The nature of the talk is quite unforgiving so you need to be well versed on the topic.
    • I think it’s easier to start with a topic you are really familiar with and enthusiastic about. It will show in your talk and also help you focus.
    • Make sure that this is interesting for a non-expert audience.
  • Think why someone would be interested and what will be their main takeaway from the talk, this blog post might help. Discuss your topic with somebody outside of your field to check if this is really the case.
  • Consider your topic as a story, think of your idea (topic) as one of the hero archetype and follow story cycle from Park Howell blog.

This should be enough to write a short summary and describe what you are going to present. My abstract can be found on S+H World London Ignite schedule page. Apart from it I wrote 300 words summary.

Getting the presentation ready

As described in the introduction, I wanted to fully replace PowerPoint with markdown, but mostly due to time restrictions (I had just over a week) I decided to go half way: prepare an initial draft in markdown and the final product in Microsoft PowerPoint (and Libre Office). I felt that making a good visual presentation with 15 seconds per slide might be too much of a challenge at this stage. This also gave me the time to focus on rehearsing the talk itself. I would like to note that my work-flow was strongly influenced by Olivia Mitchell’s post.

Layout

I used markdown to prepare a mockup of the presentation - first, I split the talk into 4 parts, based on the storytelling example. Then, using text only markdown, I noted one idea per slide. Even if you have an existing PowerPoint presentation I strongly suggest starting from scratch as an Ignite slide deck will be different. I also set up a clock and limited myself to 30 min to finish this task.

The first five slides of my mock up file (outline.md) looked like this:

# Navigation
# Hidden utility
# Example why we use
# Hidden utility
# GPS

The easiest way to compile a presentation is either to use RStudio or the amazing pandoc. I suggest pandoc and using pandoc -t beamer outline.md -o presentation.pdf to create the PDF presentation.

Talking it through

Presentation voice and writing voice are very different. I use my compiled presentation and stopwatch to talk through my presentation at a slow speed. I used this to fine tune presentation and pin down the main point for each slide. Interestingly, this exercise leads to restricting my talk and making it more focused on the main topic. I changed the text of the presentation accordingly and tested again. It will take a few trials and eventually you will feel that presentation is flowing nicely. Remember the 80-20 rule and don’t overdo it - it should be fit for purpose and that’s it.

Adding graphics

Ignite is a very rapid affair and it takes a lot of effort to make a good looking presentation with text. Once I got my slides’ idea sorted out I focused on making them very visual to:

  • make audience focus on what I was talking about;
  • emphasise one point per slide;
  • give me flexibility if things go a bit wrong. You will also feel more confident - the audience is not likely to notice that things got slightly out of hand.

For graphics I wanted to use either my (or University) art, public domain images or ones under creative commons licence. From experience and Lifehacker post I would recommend:

To maintain proper attribution I have placed links and descriptions directly into my markdown file. In case you lost references, the easiest way to find it is reverse search, for example Google one - upload your picture and similar will be found.

My final outline.md looked like that:

I suspect nobody came here using  traditional maps. The mapping applications are so useful.
![pixelcreatures/CC0](https://pixabay.com/static/uploads/photo/2015/09/14/23/36/compass-940370_960_720.jpg)

---

it easy to follow directions, allowing us to focus on important parts of the day.
![Dean Hochman/CC BY 2.0](https://upload.wikimedia.org/wikipedia/commons/a/a2/Arrows_%2816064489288%29.jpg)
Dean Hochman / [CC BY 2.0](https://commons.wikimedia.org/w/index.php?curid=44742195)

---

We are transient society, we want to things quick - this is becoming a habit.
Mapping applications act as a butler, leading us to interesting places, allowing to meet friends or see famous landmarks.
The craftsmanship of facade makes us think about humanity brain child behind it. Knowledge as a corner stone.

![vifra/CC0](https://pixabay.com/static/uploads/photo/2015/09/07/09/54/rome-928325_960_720.jpg)

---

what drives forward is position provided by the **hidden utility**, working behind the scenes. It allows is to create a lot of amazing applications.

![SomeDriftwood/CC BY 3.0](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Clock_Cogs.jpg/800px-Clock_Cogs.jpg)
SomeDriftwood / [CC BY 3.0](https://commons.wikimedia.org/wiki/File:Clock_Cogs.jpg)

# GPS

32 SV 20,200 km away in MEO. Not so old, created in '70.
Uni fig

Making final PowerPoint presentation

O’Reilly requested a presentation in Microsoft PowerPoint format. As discussed before, I didn’t create the final presentation from my markdown document, I was aiming for distraction free working environment, and trying to make the presentation look good and advance every 15s was too difficult on this occasion.

My final presentation can be found at Slideshare as well as embedded below:

You might notice I put the title and my name on the last slide. I did this to improve the flow at the beginning of the presentation and to give myself time to wrap up and reiterate the main takeaway. Before sending it to the organisers I had practised my talk on two screens. The last few days before the conference I spent practising it.

Rehearsing presentation

Preparing the ground

At this stage of the presentation, your slide deck is completed and you are ready to focus on practising delivering the presentation. As you practice you might notice that certain things don’t work after all. Don’t worry about changing the slides, focus on telling the story. To do so I:

  • Practised the whole presentation a few times, noticing areas where I stumbled or made a mistake;
  • I created anchor points every 2-3 slides - places where I should be able to make a pause before moving to another part;
  • I practised both identified problematic areas and anchor points only, no less than three slides at a time;
  • Based on those I noted key concepts and words I wanted to use on each slide in my outline.md.

I cannot state it well enough - repetition is a key here. As Jason Grigsby notices you are not memorising your presentation - you are practising delivery and adjusting it on the fly. Five minutes presentation are brutal and you have to be quick on your feet to recover it. To support that I purposely separated notes from slides - I didn’t want to develop any habits.

Finalising the preparation

With those ready:

  • I practised the full presentation, focusing on recovery, should I make any mistakes;
  • I aimed to speak slowly and clearly and to give myself a five-second pause before key slides - I recorded myself to check it;
  • I arranged a presentation to a friend - it is different when you talk to somebody. He also provided me with feedback leading to changes in the presentation and removing unnecessary references;
  • I practised it a few times more and went to bed early.

Delivering the talk

Before the talk

It goes without saying - be there early. Most of my co-speakers had been on pre-conference workshops while I arrived about 20 minutes before agreed time. This gave me an opportunity to wind down, talk to others and prepare mentally. With five minutes you don’t have the luxury of repetition or graceful recovery - give yourself time to get in the peak state. You worked hard for it.

  • A few people checked their slides before the talk. I didn’t but in retrospect, this is a great idea;
  • Talk to other speakers - it is nice to have friendly faces next to you;
  • Make sure you learn how everything works.

Talk itself

Talks are 5 minutes long so it takes about 40 minutes to run through them and time will fly fast.

  • Take pictures of others, tweet and have a great time;
  • You know your anchors, use them;
  • Use pause for dramatic effect or just to recover;
  • You will rush so try to speak slowly and take breaks;
  • When it’s your turn - take a deep breath and relax, you practised hard.

**My Ignite lineup**

Feedback

Take a few minutes after the event to get some feedback. It might be difficult to get it from others - just try to think what you would do differently if you did it again. On my occasion it was:

  • I held microphone too low;
  • I moved a bit too much on the stage - it allowed me to relax but prevented me from having a good photo taken and caused problems with the microphone;
  • I hardly looked at my slides as I faced the audience at all times. This would prevent me from reading any helpful notes, should I have any;
  • Next time I would stay a bit back on the stage and move in the centre axis of the stage.

What next

Disclaimer

This post has been also published at the S2DS blog.

Geobusiness 2016

Geobusiness is the annual event consisting of free to access trade show and paid conference. From my experience is the biggest event of this type in the UK, focused on gathering, storing, processing and delivering of geospatial information. Last year one had seen 2 000 visitors from 47 countries and this year was posed to beat this.
Most of attendees focus on exhibition with a large array of industry’s house names, smaller SMS and startups and a lot to offer. This year industry’s main interest has been UAV and conference organisers responded by hosting a dedicated UAV + GIS section.

Keynotes

Morning keynotes kicked off with Tom Cheesewright’s pointing out that the precise positioning is essential to synchronisation of virtual and real world. Following discussions from Ed Parsons from Google, Gary Gale from What3Words and prof Gianvito Lanzolla from Cass Business School highlighted changing demand for the geospatial industry and how demand is driving it forward.

Ed has discussed toothbrush test . Technology will pass it if its ability to make your life better makes it ubiquitous. His argument was that spatially enabled information is exactly that. As he pointed out a lot of unicorn startups (Uber, AirBnB, Deliveroo) use it as a platform without hiring any geospatial specialists. He also painted future picture with user centric maps and discussed how problems can be solved by scaling and machine learning approach.

Prof Gianvito has shown, from business perspective, how digitalisation and connectivity changed economy and affect future infrastructure showing changes in revenue and business models.

Geospatial disruptor

What3Words is a cartographic disruptor replacing the coordinate system with combination of three words. THose define cell in global 3x3m grid and can be used to easy pinpoint location for non-geospatial experts.
Solution looks neat, its easy to program - it only takes only 10MB of storage space, can be translated to other languages easily and its a great enabler.
Gary demonstrated array of social based products, solving problem of inadequate addressing systems for 75% of the world and helping with something as simple as fixing water leaks or power breaks. More advanced examples included https://pollinateenergy.org/ or the Favelas post service.

Main Takeaways?

  • Industry is definitely moving more digital - a lot of product offering has been predominantly tablet/mobile based with slick design. UAV has been especially strong and a lot of hardware producers seems to be re-positionig themselves in expectations for the big rise in this part of the market. I expect they are correct.
  • There are ongoing problems with privacy and different view on monopoly between Europe and States.
  • Counties still perceive spatial information as source of power and are unwilling to share. Google has ongoing debate with South Korea and India’s Geospatial Information Regulation Bill proposal has created controversy.
  • Addressing logic is very difficult to programme.
  • Google is mining its map pictures for text (40 billion lines to be exact) to better understand the nature of local business.

PyData London 2016

I had a great pleasure attending PyData London this weekend. Main goal behind it was to catch up on new developments and see how my current data science skills compare. I took part in conference as well as workshops on Friday.

A things I really enjoyed were:

  • Amazing keynote by Andreas Freise discussing LIGO project. Two weeks before I gave a presentation about this and it was interesting to see Andreas take on it. One of the main takeways was his discussion why python phased out Matlab at his lab (and lack of replacement for simlink)
  • Benjamin talk about mining large social networks. He discussed use of minhash to reduce complexity and provide real time system on a laptop.
  • Learned about python implementations of Survival Analysis during workshop and talk. Results of Academic life analysis suggest publish a lot with large number of co-authors or die. Lifelines package looks really interesting.
  • Talks about building pipelines with Luigi. It was expecially great to see how system can be scaled within short period
  • Great introduction to machine learning
  • Mark Neo4j workshop, introducing this graph database.
  • Bayesian analysis using PyMC3. There was a number of talks about this and overall takeaway is that I need to look carefuly at this library. Only caveat - it uses Theano
  • Great talk about Panda.
  • Travis talk on how python can be used to scale. My takeaway is to look at Numba and Blaze
  • Tetiana talk discussing hacking Data Scientist in 6 months. I think my main takeaways where:
    • plan and define your objectives.
    • competition is where learning happens.
    • limit your uncertainty, stick to your goals until you fail beyond reasonable doubt.
    • its all about environment and ppl you interact with.
  • Using python and UAV to support conservation attempts of Orangutans in Borneo. Dirk spend 8 months building and testing project showing that simplicity and robustness is the key to success. The most important takeaway was his final slide Conservation is creating hope when there is none.
  • Time series talk allowed me to fully understand colours of noise. This might sound stupid but I never properly checked definition before.

Overall it was great three days. It was great due to effort put in by organisers, volunteers and presenters. A really huge thanks. I do look forward to the next year.
Ah, almost forgot. You can watch main conference here.

Main Takeaways?

  • A lot of ppl use Python 3.x. I really contemplate installing python3 alongside python2.
  • Do not try to install Theano under Windows. I tried to install it on the fly during workshop. On Windows. Bad idea. Definitely recommend using docker insteadUse docker.
  • From discussions, and some presentations, I understand that if you want to play with deep learning the very sensible start is to use cloud service. This is also where docker comes into play. I will definitely explore this option.

Fundamentals Of Practical Deep Learning

First week of this month I had a pleasure of attending Fundamentals Of Practical Deep Learning - a two days course organise by Deep Learning London.

I have been interested in deep learning for a while but didn’t had time or relevant project to work on. My interest was boosted first by conformation that android do dream of electronic sheep and then by information that Google is open sourcing its AI engine. This was enough to get me started - I attended a few workshops, including very practical and theoretical one. At this stage I started to look for more more substantial effort to harness deep learning. Fundamentals Of Practical Deep Learning, looked just ideal.

Workshop

Organisers suggested experience of programming in C++, Python and Java (I only had first two), basic knowledge of calculus, linear algebra, and probability theory (all checked) - I think this has been a bare minimum to follow the workshop - it was well worth to have working experience in data processing. This should be enough to crunch through offerings which where:

  • theory, delivered by Dr. Tapani Raiko and Pyry Takala, his PhD student;
  • description of nVidia hardware by Alison B. Lowndes, Deep Learning Solution Architect;
  • practice sessions covering most popular frameworks - Caffe, Thorch and Theano;
  • networking with other deep learners;
  • good venue and food, always convenient when you want to focus on learning.

Was it worth it?

It was great, well worth the price:

  • I learned a lot more theory than I could do on my own. I have a lot of additional references, which I am still digging through.
  • Practical sessions supported my understanding of the theory and gave me the taste of different frameworks. They had been run on the cloud so it was possible to do it with any hardware.
  • I met a lot of people at the different level of Deep Learning Experience - from experts to starters like me. We had a truly geographical spread - participants came not only from UK but worldwide - Finland, Russia, Israel and Singapore. Discussion with them was very rewarding as attendees’ experience varied massively giving you the whole spectrum from inexperienced users like me to true experts. Equally important was to discuss the usage of deep learning - a lot of people came with specific ideas which again allowed me to understand more how to use it.

Overall I felt this was a very good way to learn more about deep learning and get yourself ready for using it in practice. There is a lot of work ahead of me, but this workshop gave me enough background knowledge to actually start work on it. One of the biggest takeaways was understanding limitations of deep learning project and (I think) how to implement them in practice.

Next step

Before I came on the course I located a possible project within university that I could use deep learning on. As a part of preparation I discussed use of HPC computing at the University of Nottingham. Discussion with nVidia staff at the workshop gave me a better understanding what hardware I need to carry out task. Original project has evolved in the meantime, which lead me to slight change of plans.

At the moment I want to train small Neutral Network locally using Tensorflow by end of March. Why Tensorflow, after learning about Caffe, Thorch and Theano? From discussion with other users I find it well documented and reasonably easy to implement, if you happy with Docker. There is also free udacity course covering it. Based on this experience I would like to look at image recognition related project and its implementation on University of Nottingham HPC’s GPUs. Hopefully before end of May. If this works well I would anticipate start working on the project that got it started towards end of the year.

Will keep you posted.

Converting R code to API

I just came back from a local R meeetup and a great talk by Mark Sellors from Mango Solution. This is first time I heard about Plumber, which allows to convert your existing R code into an API by adding a few lines of comments to the existing code - very similar in approach to what roxygen auto-generation of user documentation directly from the source code.

Plumber is using REST API, popular with web applications and in simplification meaning that client don’t need to know anything about API structure.

What it means in practice is that by adding few lines of #* comments to your R code you make it API ready. This code can be then mounted locally or on server, parsed and ready to receive calls on the specified port. It is really that simple as Jeff Allen presentation from EARL 2015 shows.

This API can output values and graphs as well, as this example shows, which makes it interesting alternative to shiny, where everything is contained inside the app. It does comes with few limitations though (all kudos to Mark Sellors, I am merely coping my notes from the meetup):

  • it is not secure, as anybody can call your API
  • Input sanitisation
    • plumber is treating any input as text, so you need to cast it before using it
    • more critical are any injection attacks, for example SQL injections popularised by this xkcd webcomic
  • you need to manage and organise logging and monitoring
    • if you unix user tools like monit can help
  • the load balancing and state are taken care of yet it is possible to block your API with long calls - make sure functions are quick to execute

I plan to run some quick tests later this week following examples from Mark and Jeff. Will keep you posted.