<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Alex Morley, PhD</title>
    <description>Alex Morley</description>
    <link>https://alexmorley.me/</link>
    <atom:link href="https://alexmorley.me/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 22 Nov 2020 15:22:30 +0000</pubDate>
    <lastBuildDate>Sun, 22 Nov 2020 15:22:30 +0000</lastBuildDate>
    <generator>Jekyll v4.0.0</generator>
    
      <item>
        <title>Healthcare Tech Substacks</title>
        <description>&lt;p&gt;So substack is allowing writers to avoid having their content &lt;a href=&quot;&quot;&gt;moderated&lt;/a&gt; or &lt;a href=&quot;&quot;&gt;edited&lt;/a&gt; which has some less than savoury implications. But it also represents pushback against advertising-driven revenue models and lets content creators earn a living independently. So the jury (at least my internal jury) is still out about the net benefits of the new platform to society as a whole. Regardless I have enjoyed reading quite a bit of content on it recently especially around healthcare technology that I wanted to share.&lt;/p&gt;

&lt;h3 id=&quot;health-trends&quot;&gt;&lt;a href=&quot;https://healthtrends.substack.com/people/15774343-health-trends&quot;&gt;Health Trends&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;…is written by a medical Doctor who has experience working in healthcare startups as well as the NHS. Each week they break down a trend in healthcare tech into the problem being solved, solutions, a glossary, history, opportunities and predictions for the future along with links to external resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read if:&lt;/strong&gt; You want a highly digested and well researched overview of a topic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don’t read if:&lt;/strong&gt; You are looking for a story or conversational tone.
&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;grenz-on-health&quot;&gt;&lt;a href=&quot;https://chrisgrenz.substack.com/&quot;&gt;Grenz on Health&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;…is a newsletter by Chris Grenz (shock) who was an early contributor to, and advocate of &lt;a href=&quot;https://www.hl7.org/fhir&quot;&gt;FHIR&lt;/a&gt; (an open standard for the exchange of healthcare data). In his newsletter Chris dives into some operation details about FHIR, some novel usecases as well as some more general discussions about data in healthcare such as trust and interoperability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read if:&lt;/strong&gt; You work with health data professionally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don’t read if:&lt;/strong&gt; You aren’t comfortable / interested in diving into some technical details.
&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;insight&quot;&gt;&lt;a href=&quot;https://zeynep.substack.com/&quot;&gt;Insight&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;…is Zeynep Tufekci’s newsletter. OK it’s not actually dedicated to healthcare or tech. But most of the time (especially) recently it is about healthcare or tech. Zeynep is a sociologist focusing on technology and policy. Recent articles discuss &lt;a href=&quot;https://zeynep.substack.com/p/on-randomized-trials-and-medicine&quot;&gt;randomised controlled trials&lt;/a&gt;, &lt;a href=&quot;https://zeynep.substack.com/p/stop-refreshing-that-forecast&quot;&gt;US election forecasting&lt;/a&gt; and the &lt;a href=&quot;https://zeynep.substack.com/p/the-problem-with-all-the-tech-hearings&quot;&gt;Tech Hearings&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read if:&lt;/strong&gt; You have time. Articles are often long form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don’t read if:&lt;/strong&gt; You want to keep a simple view on world events.&lt;/p&gt;
</description>
        <pubDate>Sun, 22 Nov 2020 00:00:00 +0000</pubDate>
        <link>https://alexmorley.me/2020/substack-health/</link>
        <guid isPermaLink="true">https://alexmorley.me/2020/substack-health/</guid>
        
        
      </item>
    
      <item>
        <title>the-best-parts-of-the-internet</title>
        <description>&lt;p&gt;Seen some cool thingz pop up on recently which remind that I actually don’t hate the whole of the internet (or the whole of hackernews). Also that maybe I &lt;em&gt;do&lt;/em&gt; get art. Just not the kind of art that I was exposed to as a kid.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://nopaint.art/&quot;&gt;No paint&lt;/a&gt; - I’m no artist but everything that this the produces is a masterpiece IMO.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://loglo.app/2020-06-16/&quot;&gt;Loglo&lt;/a&gt; - As with no paint you have to click through to event have a tiny clue what this is about but basically its a programming environment for drawing usings stacks of commands in rows and columns in a spreadsheet. Crazy, stupid brilliant stuff.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://tts-mp3.glitch.me/tts.mp3?text=yeah%20well%20the%20drone%20cost%20a%20thousand%20dollars&quot;&gt;TTS.mp3&lt;/a&gt; - If your on a mac you can use &lt;code class=&quot;highlighter-rouge&quot;&gt;say&lt;/code&gt;. But this you can send as a link.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.dougengelbart.org/content/view/374/464/&quot;&gt;Doug Engelbart’s Demo&lt;/a&gt; - Amazing to see how far we haven’t come since this famous demo. I’d heard about it years ago but never sat down and watched the whole thing. Steve Jobs ain’t got nothing on this.&lt;/p&gt;
</description>
        <pubDate>Wed, 24 Jun 2020 00:00:00 +0100</pubDate>
        <link>https://alexmorley.me/2020/the-best-parts-of-the-internet/</link>
        <guid isPermaLink="true">https://alexmorley.me/2020/the-best-parts-of-the-internet/</guid>
        
        <category>chill</category>
        
        
      </item>
    
      <item>
        <title>Hire junior developers</title>
        <description>&lt;p&gt;Medium to large organizations with software at the core of their offering all run into the same sets of problems:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;We are spending 10X the amount on engineering salaries compared to what we use to. Why are we building so slowly?&lt;/li&gt;
  &lt;li&gt;We have a massive backlog of small tasks that never get done.&lt;/li&gt;
  &lt;li&gt;We are spending a fortune on hiring.&lt;/li&gt;
  &lt;li&gt;Most of our engineers are leaving after a year or two.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are countless causes for any ones of these problems so I can’t tell you what the solutions are. But I can tell you what they are not. Your engineers are not too junior. In fact, maybe you have the opposite problem. Your engineers aren’t junior &lt;em&gt;enough&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;why-do-we-hire-senior-engineers&quot;&gt;Why do we hire senior engineers?&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/blind-man-elephant.jpeg&quot; alt=&quot;Comic depiction of the parable of the blind man and an elephant.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As an engineering manager, I only want to hire the best for my team. We have a headcount limit and senior engineers will get more done. We don’t have the capacity to train and mentor junior engineers. As a recruiter or talent manager, I want to show that I can bring in the best talent. As a CEO I want to be able to say that we only hire the best, that we have higher standards than our competitors.&lt;/p&gt;

&lt;p&gt;We hire senior engineers because we want what’s best for ourselves and those around us. But while these decisions might be locally optimal they can be harmful to your organisation as a whole.&lt;/p&gt;

&lt;p&gt;So let’s zoom out. From an organizational perspective why would it be worth paying (a lot) more for senior developers?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We assume that they can do twice the work while costing less than twice as much (including salary and overheads).&lt;/strong&gt;*&lt;/p&gt;

&lt;p&gt;To which my answer would be: &lt;strong&gt;Twice &lt;em&gt;what&lt;/em&gt; work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Can a senior engineer design a major new component faster than a junior one? Sure probably way more than 2x faster and probably much better too. Experience is really important here. But what about debugging an issue that has come in from a client? Sometimes they might be faster but sometimes it won’t make a difference who is looking at the issue. What about propagating a configuration change across some services? Adding an endpoint to expose some existing functionality?&lt;/p&gt;

&lt;p&gt;The size and complexity of the tasks for engineers in a typical organisation vary a lot. There will be a few big tasks and lots of small tasks. With too few junior engineers the people working on the big tasks will be distracted by the small ones. People tend to not just be more efficient when they can just focus on one task at a time but also less stressed. If I can use a clunky hardware analogy here: GPUs offer much better value per core than CPUs but are better suited to a very specific type of workload. In a modern system, we make sure that we have a GPU for the “embarrassingly parallel” problems while reserving the GPU for single-core performance.&lt;/p&gt;

&lt;p&gt;So, as always, it depends. In some scenarios having an engineer with 10 years of experience under your belt will be invaluable. For other things, it won’t. The question becomes how many experienced engineers do you need. For how much of the work that’s done every day in your org will our 2x work &amp;gt; 2x cost assumption hold? If you can honestly tell me that most of the work that its done is complex or high-level enough that experience matters that much then great. Your systems are probably &lt;em&gt;very&lt;/em&gt; well designed.&lt;/p&gt;

&lt;h3 id=&quot;in-light-of-this-some-potential-answers-to-your-questions&quot;&gt;In light of this… some potential answers to your questions.&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;We are spending 10X the amount on engineering salaries compared to what we use to. Why are we building so slowly?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Are your senior engineers are distracted by all of the smaller tasks they have to do? Are they are unhappy because the work they are doing is unsatisfying? Or is (see below) everything is being slowed down by the small tasks that never get done?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;We have a massive backlog of small tasks that never get done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The type of work that is exciting changes for each developer as the move through their career. When I started as a dev I loved making changes that I could see the result of quickly, even if they weren’t complex or massively challenging. I had a phase where I loved cleaning up bits of code that hadn’t seen some love in a while. Now I would much rather be doing “design heavy” programming where the goal isn’t just to get something working but to make sure it’s going to be usable and extensible for years to come. If you have all of these different types of tasks to be done then the best (and kindest!) way to make sure they get done is to hire people at all career stages. And remember that most people are happier to stretch themselves with a task than they are to sit and do easy things all day.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;We are spending a fortune on hiring.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Senior developers are hard to recruit. Their salaries are in the ranges where larger sums of money make less of a difference to them than their junior counterparts. Hiring is always going to be hard. Finding the “right” junior developers to interview is not easy either (they are going to have less on their CV for the initial filtering stage) but it is easier to hire them once you have found them.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Most of our engineers are leaving after a year or two.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hiring mostly senior engineers is a recipe for dis-satisfaction. Not only due because they’ll end up working on tasks that don’t stretch them enough but also because it inhibits their growth in other areas: it decreases the opportunity for mentor-mentee relationships which tend to benefit both parties and it reduces the chances of them getting good leadership opportunities. These are both often high on the list of a senior developer’s desires and sooner or later they will realise they have to move in order to fulfil them.&lt;/p&gt;

&lt;p&gt;Flat structures are great but people need a path forward for their careers and that usually requires leadership opportunities whether you’re are on the management or individual contributor track.&lt;/p&gt;

&lt;p&gt;* Replace 2x with whatever multiplier takes your fancy ¯\_(ツ)_/¯&lt;/p&gt;

&lt;!--
- Why aren't are teams collaborating effectively?
- Why aren't are teams integrating?

OK this one might be a bit of a long-shot. But I have a pretty strong hunch that having more junior devs would help. Integration between teams within an organisation is usually a good idea long-term but the incentive of the teams to do so is often lacking. The time of each senior dev is often seen as so valuable by decision makers that they are reluctant to sacrifice it for these internal projects. These projects are often ideal fits for junior devs and can provide serious value to the org long-term.
--&gt;
</description>
        <pubDate>Fri, 01 May 2020 00:00:00 +0100</pubDate>
        <link>https://alexmorley.me/2020/hire-junior-developers/</link>
        <guid isPermaLink="true">https://alexmorley.me/2020/hire-junior-developers/</guid>
        
        
      </item>
    
      <item>
        <title>Climbing down from the ivory tower&quot;</title>
        <description>&lt;p&gt;I think this is gonna take three parts:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Context:&lt;/em&gt; What I actually did, what I am doing now.&lt;/p&gt;

&lt;p&gt;I started at med school in Oxford. I took a pause halfway through mainly because I was frustrated with wrote-learning facts when I knew we didn’t have good ideas about why those facts were true (i.e. we don’t have a deep understanding of how most medicine works). I started a PhD in neuroscience (because brains are cool, fight me). Then, I don’t know what came first, the realisation that the scientists who I respected were deeply skeptical of most published work, or the realisation that I wasn’t sure that I would trust my own work if it were presented to me by someone else. There are human/incentive parts to the problem as well as technical ones but even the hardest technical problems are easier than human ones so I dived into them trying to drag the best software engineering practices that I could find on the web into the work I did as a scientist. Sometimes this work made other peoples lives easier, and I enjoyed that, but it didn’t change the system I was working in and I didn’t want to stay there.&lt;/p&gt;

&lt;p&gt;Working anywhere where the incentives are out-of-whack with the way you want to work is tiring. And after 4 years of that I didn’t have the energy to jump straight back into medical school. I figured I could get a cushy part-time job as a software engineer to pay the bills and spend the rest of my time thinking about how to help fix the system that I had removed myself from. When I joined Babylon, I knew that wasn’t going to be the reality, it was a 4-day a week gig and I was genuinely excited by some of the work I had been told about. Since then, I have still been doing some work for the folks back in the lab in Oxford. Almost entirely on projects that I was told not to waste my time on as a PhD student (don’t get me wrong, these projects &lt;em&gt;were&lt;/em&gt; a huge distraction from my PhD, but I knew they were important and that it was pretty unlikely that they were going to get done otherwise). That said, it means I still have a pretty good window on what academic life would be for me now if I’d stayed, and so I think I’m in a good place to contrast the changes in life, both good and bad, that come about by moving from acedemia to tech.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Life:&lt;/em&gt; How my life has changed moving into industry.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Lot’s more people use the work I do.&lt;/li&gt;
  &lt;li&gt;Less say in the projects you work on. Sometimes that is a huge releif.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Playing a supporting role is valued.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;I have a line manager whose job is to be a manager. In acedemia you may be lucky to find a boss who cares about you, I’m sure mine did, but having someone who has the time, training and incentive to support you is another thing. Obviously this isn’t a given in industry, there are lots of terrible managers, but in acedemia the system doesn’t even acknowledge the role of manager as separate from senior leadership and thus even good bosses will have a really hard time being a good manager.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Software:&lt;/em&gt; What is the difference between research software and “production” software.&lt;/p&gt;

&lt;p&gt;“Most reserach scientists don’t use version control” [Shocked faces]&lt;/p&gt;

&lt;p&gt;For me there are two drivers that make this difference. Everything else stems from them:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A single piece of production software is usually written by a &lt;em&gt;team&lt;/em&gt; not an individual. Conversely the vast majority of research software is written by one person.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A whole bunch of tools that make software better are valuable when writing software on your own. But the overhead of learning/using them can be difficult to overcome (especially if you are the only one who you &lt;em&gt;think&lt;/em&gt; is going to use it - see point 2.). But the same tools are &lt;em&gt;indispensible&lt;/em&gt; when writing software as a team as collaboration would be too complex otherwise.&lt;/p&gt;

&lt;p&gt;e.g.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;version control - git. Shines when different people are working on different parts of a project. When your on your own you usually work on one thing at a time. In that case git is only as useful as a backup mechnanism&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;dependency / environment control - “works on my computer” is fine for just one person. How many computers do you use? But with a team it &lt;em&gt;has&lt;/em&gt; to work on lots of computers for any work to be done.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;code review - This one is huge. If you work on your own its basically non-existant. If you work in a team the team is responsible for the software working well and so everyone cares that other people’s contributions are correct. Importantly code review is probably where developers will do about 50% of their learning - there are things you will never know you didn’t know unless someone else reviews your code and that’s something that no amount of individual practice will get you.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
  &lt;li&gt;Production software is made to be used by other people (i.e. not for the developer(s) themselves).
    &lt;ul&gt;
      &lt;li&gt;you have to test all paths as you don’t know how it will be used&lt;/li&gt;
      &lt;li&gt;bugs in software that’s used by other people get fixed, bugs in software that you wrote for yourself, maybe not.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Ethics:&lt;/em&gt; What were the ethics of working as a “basic” neuroscientist in acedemia versus as a software engineer in medical technology.&lt;/p&gt;
</description>
        <pubDate>Thu, 30 Apr 2020 00:00:00 +0100</pubDate>
        <link>https://alexmorley.me/2020/climbing-down-from-the-ivory-tower/</link>
        <guid isPermaLink="true">https://alexmorley.me/2020/climbing-down-from-the-ivory-tower/</guid>
        
        <category>draft</category>
        
        
      </item>
    
      <item>
        <title>More ramblings; maybe interesting</title>
        <description>&lt;p&gt;Hey 👋. Going to be writing some things down over the next few weeks to work on the art and maybe provide something slightly less boring that sitting at home staring at the wall.&lt;/p&gt;

&lt;p&gt;Thinking about:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;On moving from acedemia to “industry”. How no one, even the people that are reading our work, has a clue what we* do as scientists or how we do it.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Coding and art. Am a total newbie but loving playing around with new languages and concepts and making things that you could almost call art (a bar which my hand-drawn drawings do not meet).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Why organizations should be hiring more junior developers. A lot of devs are finding their way in freelance work at the moment. That works for some but I think everyone would win if there were more opportunities for junior devs to work as part of a bigger team.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CU L8R&lt;/p&gt;

&lt;p&gt;* I’m still a scientist, right?&lt;/p&gt;
</description>
        <pubDate>Tue, 21 Apr 2020 00:00:00 +0100</pubDate>
        <link>https://alexmorley.me/2020/writing-things-maybe-interesting/</link>
        <guid isPermaLink="true">https://alexmorley.me/2020/writing-things-maybe-interesting/</guid>
        
        
      </item>
    
      <item>
        <title>Job Alert: Get paid to work on jupyter notebook interfaces</title>
        <description>&lt;p&gt;Want to hack on some crazy ideas for taking &lt;code class=&quot;highlighter-rouge&quot;&gt;.ipynb&lt;/code&gt;’s to the next level? I’d like someone to help me iterate on a few prototypes for extensions on the jupyterlab interface.&lt;/p&gt;

&lt;h4 id=&quot;soft-requirements&quot;&gt;(Soft) Requirements:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Javascript expertise (typescript a bonus)&lt;/li&gt;
  &lt;li&gt;Experience developing interactive applications on the web&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re not sure whether you fit the above, or think you have something else to offer, please enquire/apply anyway!&lt;/p&gt;

&lt;h4 id=&quot;desired&quot;&gt;Desired:&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Experience with Jupyter as a user&lt;/li&gt;
  &lt;li&gt;Experience with Jupyter or JupyterLab as a developer&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;terms&quot;&gt;Terms&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;1-2 month contract in the first instance (possibility for extension depending on funding)&lt;/li&gt;
  &lt;li&gt;2-5 days a week&lt;/li&gt;
  &lt;li&gt;Work should take place between July-November&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;apply&quot;&gt;Apply&lt;/h4&gt;
&lt;p&gt;Send an email to alex@alexmorley.me (before June 24th) with:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Two-three sentences on why you’d be excited to work on this.&lt;/li&gt;
  &lt;li&gt;One or two sentences highlighting what skills you could bring to the project.&lt;/li&gt;
  &lt;li&gt;EITHER: links to some of your relevant work (or descriptions of it if it’s not public)&lt;br /&gt;
AND/OR: your CV&lt;/li&gt;
  &lt;li&gt;Your hourly rate&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;questions&quot;&gt;Questions?&lt;/h4&gt;
&lt;p&gt;Ask here or send me an email alex@alexmorley.me&lt;/p&gt;

&lt;h3 id=&quot;the-project&quot;&gt;The Project&lt;/h3&gt;

&lt;p&gt;The aim is test potential solutions for better supporting users who use Jupyter for exploratory data-analysis.&lt;/p&gt;

&lt;p&gt;There’s some more info &lt;a href=&quot;https://alexmorley.me/graphical-notebooks/presentations/csv_conf/impress.js/index.html#/markdown&quot;&gt;in these slides.&lt;/a&gt; …&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/alexmorley/graphical-notebooks&quot;&gt;in this repo&lt;/a&gt; (a little out of date)&lt;/p&gt;

&lt;p&gt;and in these videos &amp;amp; prototypes (which discourse won’t let me embed…)&lt;/p&gt;

&lt;div&gt;
&lt;h3&gt; Iterating / Forking as an Interface &lt;/h3&gt;
&lt;video controls=&quot;&quot;&gt;
&lt;source src=&quot;https://alexmorley.me/graphical-notebooks/presentations/csv_conf/impress.js/img/video-iter.mp4&quot; /&gt;
Boo your browser doesn't support the video tag. Try &lt;a href=&quot;https://alexmorley.me/graphical-notebooks/presentations/csv_conf/impress.js/img/video-iter.mp4&quot;&gt;this link&lt;/a&gt;
&lt;/video&gt; &lt;br /&gt;
&lt;a href=&quot;https://www.figma.com/proto/Ig0NLRbmKqqPpbG3M8sit8Ws/Jupyter-Span?node-id=59%3A2373&amp;amp;scaling=min-zoom&quot;&gt;Click here for an interactive prototype &lt;/a&gt;

&lt;h3&gt; Notebook cells as a DAG &lt;/h3&gt;
&lt;video controls=&quot;&quot;&gt;
&lt;source src=&quot;https://alexmorley.me/graphical-notebooks/presentations/csv_conf/impress.js/img/video-canvas.mp4&quot; /&gt;
Boo your browser doesn't support the video tag. Try &lt;a href=&quot;https://alexmorley.me/graphical-notebooks/presentations/csv_conf/impress.js/img/video-canvas.mp4&quot;&gt;this link&lt;/a&gt;
&lt;/video&gt; &lt;br /&gt;
&lt;a href=&quot;https://www.figma.com/proto/EAuFLns2qA0UJLwF7MjMCZ9B/Jupyter-Canvas?node-id=0%3A1&amp;amp;scaling=min-zoom&quot;&gt; Click here for an interactive prototype &lt;/a&gt;

&lt;h3&gt; Using the notebooks format to provide a UI for arranging notebooks, scripts and data sources. &lt;/h3&gt;
&lt;video controls=&quot;&quot;&gt;
&lt;source src=&quot;https://alexmorley.me/graphical-notebooks/presentations/csv_conf/impress.js/img/video-flow.mp4&quot; /&gt;
Boo your browser doesn't support the video tag. Try &lt;a href=&quot;https://alexmorley.me/graphical-notebooks/presentations/csv_conf/impress.js/img/video-flow.mp4&quot;&gt;this link&lt;/a&gt;
&lt;/video&gt; &lt;br /&gt;
&lt;a href=&quot;https://www.figma.com/proto/MaKSC9Ix1ukk9M2l9n05ukcW/Jupyter-Flow?node-id=0%3A1&amp;amp;scaling=min-zoom&quot;&gt; Click here for an interactive prototype &lt;/a&gt;
&lt;/div&gt;
</description>
        <pubDate>Thu, 20 Jun 2019 00:00:00 +0100</pubDate>
        <link>https://alexmorley.me/2019/jupyter-job-posting/</link>
        <guid isPermaLink="true">https://alexmorley.me/2019/jupyter-job-posting/</guid>
        
        
      </item>
    
      <item>
        <title>Jupyter Flow</title>
        <description>&lt;h1 id=&quot;jupyter-span--graphical-notebooks&quot;&gt;Jupyter Span / Graphical Notebooks&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Computational notebooks that reflect the mental model of humans&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A core tenet of user-centered design is that user interfaces should, as much as possible, reflect the prior mental model that the user has of a process. Just as syscall API hides hardware-specific details from programmers developing applications, abstractions at each level of a user interface offer an opportunity to reduce the mental load on the user, enabling them to perform more complex tasks and make fewer mistakes. However these abstractions, however well implemented, will often have tradeoffs in terms of the complexity or performance of the application.&lt;/p&gt;

&lt;p&gt;Computational notebooks, such as Jupyter and Wolfram, have had broad success by reflecting in their interface an existing user model i.e. “this code produces this visualisation” by allowing multimedia to be embedded as part of a script. Jupyter has arguably had more success not only because it is free software, but also by piggybacking on existing programming languages which allows users to transfer previously applied models into a new context, rather than having to learn something new. Both types of computational notebooks also reflect the modularity inherent in analysis pipelines, reading in some files might take more than one line of code but most of the time we just want to think about the process as “reading in the files”. In programming language design this is solved using functions, modules and namespaces, in computational notebooks it is reflected in the UI in the form of code cells.&lt;/p&gt;

&lt;p&gt;Through personal experience, and observations of wider usage patterns of Jupyter notebooks we have gleaned that there is still room for moving even closer to the user’s mental model of how code should be organised for data analysis. We propose design a new user interface that capitalizes on what Jupyter already does well, and fills in the gaps where they exist. In our first prototype we aim to support:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Branching Paths: reflecting the generally non-linear flow of exploratory analysis and testing&lt;/li&gt;
  &lt;li&gt;Hierarchical Modularity: Allow collapsing and grouping of cells for organisation. Indeed, whole notebooks can be included as one unit of computation in another notebook using this framework.&lt;/li&gt;
  &lt;li&gt;Modularity II: Allow naming and documenting to be explicitly linked to code cells. Allow decoration of code cells for easy recognition while they are collapsed.&lt;/li&gt;
  &lt;li&gt;Horizontal (left to right * ) progression model: Take advantage of modern widescreen hardware, and the natural reading pattern to specify workflows that flow across the screen, with branches being represented by vertical splits. * or right to left depending on locale&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many of the concepts here are well validated in current / past software, the next section discusses some of this prior art as well as the goals underlying other work on the Jupyter UI.&lt;/p&gt;

&lt;h2 id=&quot;prior-art&quot;&gt;Prior Art&lt;/h2&gt;
&lt;h3 id=&quot;visual-programming&quot;&gt;Visual Programming&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Visual_programming_language&quot;&gt;Wiki page&lt;/a&gt;&lt;/p&gt;

&lt;h4 id=&quot;examples&quot;&gt;Examples:&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Max_(software)&quot;&gt;Max&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/KNIME&quot;&gt;KNIME&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/LabVIEW&quot;&gt;LabView&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/WebML&quot;&gt;WebML&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Orange_(software)&quot;&gt;Orange&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pages.alteryx.com/Alteryx-Overview-Demo-ty.html?aliId=230367714&quot;&gt;Alteryx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/Alteryx/comments/5tvp5i/opensource_alteryx_alternative/&quot;&gt;Open Source Alteryx Alternatives&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;other-directions-for-improving-notebook-interfaces&quot;&gt;Other directions for improving notebook interfaces&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.google.com/search?client=ubuntu&amp;amp;channel=fs&amp;amp;q=jupyterlab&amp;amp;ie=utf-8&amp;amp;oe=utf-8&quot;&gt;JupyterLab&lt;/a&gt; - Desktop environment in the browser&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://colab.research.google.com/&quot;&gt;Collab&lt;/a&gt; - Easy connection to cheap/free cloud compute resources inluding GPU support.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.usenix.org/system/files/conference/tapp2018/tapp2018-paper-petricek.pdf&quot;&gt;Wrattler&lt;/a&gt; - Data Dependency graph allowing polyglot notebooks and cacheable cells.&lt;/p&gt;

&lt;h2 id=&quot;proposed-interface&quot;&gt;Proposed Interface&lt;/h2&gt;
&lt;p&gt;See Prototype &lt;a href=&quot;https://www.figma.com/file/Ig0NLRbmKqqPpbG3M8sit8Ws/Jupyter-Span&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;iframe style=&quot;border:none; width:90vw; margin-left:-30vw; height:80vh&quot; src=&quot;https://www.figma.com/embed?embed_host=share&amp;amp;url=https%3A%2F%2Fwww.figma.com%2Fproto%2FIg0NLRbmKqqPpbG3M8sit8Ws%2FJupyter-Span%3Fnode-id%3D59%253A2373%26scaling%3Dcontain&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;img src=&quot;design/design2.png&quot; alt=&quot;Sketch2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;design/ideas1.png&quot; alt=&quot;Sketch&quot; /&gt;&lt;/p&gt;

&lt;details&gt;&lt;summary&gt;Branching Paths:&lt;/summary&gt;
reflecting the generally non-linear flow of exploratory analysis and testing
&lt;/details&gt;

&lt;h3 id=&quot;feature-spec&quot;&gt;Feature Spec&lt;/h3&gt;
&lt;details&gt;&lt;summary&gt;Hierarchical Modularity:&lt;/summary&gt;
Allow collapsing and grouping of cells for organisation. Indeed, whole notebooks can be included as one unit of computation in another notebook using this framework.
&lt;/details&gt;
&lt;details&gt;&lt;summary&gt;Modularity II:&lt;/summary&gt;
Allow naming and documenting to be explicitly linked to code cells. Allow decoration of code cells for easy recognition while they are collapsed.
&lt;/details&gt;
&lt;details&gt;&lt;summary&gt;Horizontal (left to right * ) progression model:&lt;/summary&gt;
Take advantage of modern widescreen hardware, and the natural reading pattern to specify workflows that flow across the screen, with branches being represented by vertical splits. * or right to left depending on locale
&lt;/details&gt;
&lt;details&gt;&lt;summary&gt;Explicit linking of figure to code diff&lt;/summary&gt;
In a given session, it should always be possible to view the answer to the question: what were the code changes between Figure (state) A and Figure (state) B? Importantly Figures (states) A and B can be any Figure (or explicitly saved state) generated during the session.
&lt;/details&gt;

&lt;h2 id=&quot;process-and-design-principles&quot;&gt;Process and Design Principles&lt;/h2&gt;
&lt;h3 id=&quot;accessibility&quot;&gt;Accessibility&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Ease of sharing&lt;/li&gt;
  &lt;li&gt;First-Class support for Offline / Limited Connectivity scenarios&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;user-centered&quot;&gt;User Centered&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Always aiming to reflect mental model that people already have.&lt;/li&gt;
  &lt;li&gt;Finding current pain points in notebook use.&lt;/li&gt;
  &lt;li&gt;Get user feedback early (from now) and often.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;how-to-fork--branch&quot;&gt;How to fork / branch?&lt;/h3&gt;
&lt;p&gt;Simplest implementation is to run from start until the branch point then update cells on the new branch after the branch point only when selected.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Communication between branches: No they should be independent&lt;/li&gt;
  &lt;li&gt;Threads vs. Seperate instances: Seperate instances for backend to start. In browser should be sandboxed as well.&lt;/li&gt;
  &lt;li&gt;Copy memory vs Run from start: Run from start for now. Copy could be implemented later on as an optimization.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Where&lt;/em&gt; is the logic implemented: Front-end? Will work for iodide and jupyter. Back-end? Easier and maybe more powerful, + will need &lt;em&gt;some&lt;/em&gt; backend logic for jupyter either way.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 26 Apr 2019 00:00:00 +0100</pubDate>
        <link>https://alexmorley.me/2019/jupyter-flow/</link>
        <guid isPermaLink="true">https://alexmorley.me/2019/jupyter-flow/</guid>
        
        
      </item>
    
      <item>
        <title>Mozilla Fellowship Update</title>
        <description>&lt;p&gt;Just in case y’all wondering what I’m up to at the moment (other than writing my PhD thesis…). Contributors and comments welcome for all projects. More information in the links!&lt;/p&gt;

&lt;h3 id=&quot;lead--solo&quot;&gt;Lead / Solo&lt;/h3&gt;

&lt;p&gt;:wrench: Tool &lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://github.com/alexmorley/Back-Your-Scientific-Stack&quot;&gt;Back Your Scientific Stack&lt;/a&gt;&lt;/strong&gt;
A proposal to emulate, and build upon, the work done by backyourstack.com, in order to inspire recognition and funding for the open source projects that a lot of scientists rely on. The core goal is to encourage funders to accept (and grantee’s to apply for) donations to open source projects as part of their grant.&lt;/p&gt;

&lt;p&gt;:wrench: Tool&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://github.com/alexmorley/feed.me&quot;&gt;Feed.Me&lt;/a&gt;&lt;/strong&gt;
A browser-extension to customise (social media) feeds client-side. The aim is give anyone the power to take control over the algorithms that dictate what they see on social media.&lt;/p&gt;

&lt;p&gt;:floppy_disk: Database&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://github.com/alexmorley/meta-open-database&quot;&gt;Meta Open Database&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
Our aim is to create a database that will provide, and link, information about the multitude of factors that determine whether a piece of tech is right for you. This project also acts as a backend to Back You Scientific Stack.&lt;/p&gt;

&lt;p&gt;:computer: Software&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://github.com/alexmorley/graphical-notebooks&quot;&gt;Jupyter Span / Graphical Notebooks&lt;/a&gt;&lt;/strong&gt;
Computational notebooks that reflect the mental model of humans. We are developing an experimental new UI for Jupyter that reflects their use as an IDE for data science and seperates out this use case from report-generation.&lt;/p&gt;

&lt;p&gt;:scroll: Paper&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://github.com/alexmorley/ContinuousResearch&quot;&gt;Continuous Research&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
Continuous delivery for science!&lt;/p&gt;

&lt;h3 id=&quot;core-contributor&quot;&gt;Core Contributor&lt;/h3&gt;

&lt;p&gt;:closed_book: Book&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://github.com/alan-turing-institute/the-turing-way&quot;&gt;The Turing Way - A Guide to Reproducible Data Science&lt;/a&gt;&lt;/strong&gt;
The Turing Way is a lightly opinionated guide to reproducible data science. Our goal is to provide all the information that researchers need at the start of their projects to ensure that they are easy to reproduce at the end.&lt;/p&gt;

&lt;p&gt;:computer: Software&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://github.com/flatironinstitute/spikeforest&quot;&gt;Spikeforest&lt;/a&gt;&lt;/strong&gt; / &lt;strong&gt;&lt;a href=&quot;https://github.com/flatironinstitute/mountainlab-js&quot;&gt;MountainLabJS&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
A framework supporting continuous benchmarking of spike sorting software. Designed for use in any benchmarking application especially where big datasets and long-running algorithms are the norm. Includes wrapping of spike sorters in singularity containers and python classes (or JSON objects), job batching, comparison with ground truth, and processing using remote compute resources.&lt;/p&gt;

</description>
        <pubDate>Sat, 30 Mar 2019 00:00:00 +0000</pubDate>
        <link>https://alexmorley.me/2019/mozilla-fellowship-update/</link>
        <guid isPermaLink="true">https://alexmorley.me/2019/mozilla-fellowship-update/</guid>
        
        
      </item>
    
      <item>
        <title>What can Research Software Learn from Human-Centered Design?</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/images/underexposed.png&quot; style=&quot;width: 60%&quot; alt=&quot;underexposed logo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;em&gt;Note: A couple weeks ago I went on a week long residency learning about human- or user- centered design. I learnt a lot, but am obviously not an expert. Thus the aim of this post is to share what I learned and my opinion about why a wider consideration of these techniques could be a good thing, rather than tell you how to run your project…&lt;/em&gt;&lt;/small&gt;
&lt;small&gt;&lt;em&gt;Note2: I drafted this post with research software in mind -as that’s where my background is- but I don’t think anything here is specific to this domain, and so the title may be changed to reflect that.&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;

&lt;h2 id=&quot;organic-oss-development&quot;&gt;“Organic OSS” Development&lt;/h2&gt;
&lt;p&gt;Before we get into what human-centered design is I first want to outline a common pattern that we see in Open Source software development. The pattern in the comic below is not a bad one, indeed it has served many communities extremely well. But it is important to consider the limitations of such a pattern, as well as its strengths.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/draft-comic.svg&quot; alt=&quot;Comic&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;pros---theres-a-lot-of-cool-stuff-going-on-here&quot;&gt;Pros - there’s a lot of cool stuff going on here&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;“Organic”&lt;/strong&gt; - requires little extra energy or time at the start of a project beyond what would have been required anyway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Re-use&lt;/strong&gt; - lot’s of people don’t have to implement the same piece of software because it’s already been done for them and shared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community Building&lt;/strong&gt; - allowing people to develop the features that &lt;em&gt;they&lt;/em&gt; want, and submit them back to the project is a great way to build community and can be a formative experience for all involved.&lt;/p&gt;

&lt;h3 id=&quot;cons---but-also-some-inherent-limitations&quot;&gt;Cons - but also some inherent limitations&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Feature Choice&lt;/strong&gt; - the features that get implemented are often the ones that &lt;em&gt;developers&lt;/em&gt; want which may or may not overlap with the rest of the user base.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feedback Bias&lt;/strong&gt; - in a similar vein, the feedback that a project will get can be biased towards developers, or those who are more tech-savvy. Furthermore, the &lt;em&gt;absolute limit&lt;/em&gt; of the possible feedback you can get is from your user base, there is little scope for addressing a &lt;em&gt;potential&lt;/em&gt; user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Experience&lt;/strong&gt; - as a result of this, and the rest of the process lack of consideration for users outside of the developer-base can result in a worse experience for them.&lt;/p&gt;

&lt;h2 id=&quot;human-centered-design&quot;&gt;Human-Centered Design&lt;/h2&gt;

&lt;p&gt;So what is human-centered design and how can it help us reduce some of the cons while keeping the pros of open software development. As the name suggests the aim is to put humans, or users, at the center of the design process. In this context, the key is that users are involved from the very beginning of the process, even in the ideas stage. The goal is to gain a deep understanding of what people need from a piece of software before you commit to building it a certain way. Then as the project evolves, we keep &lt;em&gt;seeking detailed feedback that guides our decision-making&lt;/em&gt;. This is critically different from user research that seeks to validate decisions that have already been made (an almost useless endevour) and not limited to research that just seeks to test which of two or three choices is best (like an A/B test, although these have their place too).&lt;/p&gt;

&lt;h3 id=&quot;user-research&quot;&gt;User Research&lt;/h3&gt;
&lt;p&gt;As user research is critical to this design process you might be thinking, great we’ve already lost the first “Pro” of OSS development “requires little extra energy at the start”. And to some extent this is true, there is an upfront cost but first I would like to show you that there are ways to do this with a small inital time/resource investment and secondly how the value that you can extract later on will more than offset this investment.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.nngroup.com/articles/which-ux-research-methods&quot;&gt;&lt;img alt=&quot;Chart of 20 user research methods, classified along 3 dimensions&quot; src=&quot;//s3.amazonaws.com/media.nngroup.com/media/editor/2014/10/10/user-research-methods.png&quot; width=&quot;auto&quot; height=&quot;auto&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The graph above is quite a complete overview of what different methods of user-research are possible (click on the image for a description of each of them). Which are available to you will depend on your project. An early-stage project is more likely to benefit from mostly qualitative research such as interviews or ethnographic studies. These sound time-intensive but you can cheat a bit. Instead of recruiting participants and setting up interviews you can just take 10 mins out of a coffee break with a colleague and talk to them about their experiences. Or instead of a full ethnographic field study you can ask a friend if you can spend a bit of time at their workplace with a notebook to observe what their needs are. Needless to say the more seriously you take this the more you will get out of it, but on the other hand something is definitely better than nothing. It is amazing how much more deeply you will understand the problem at hand after spending time listening to people’s frustrations and watching their interactions before you start trying to sell them on your proposed solution. &lt;small&gt;&lt;em&gt;Please make sure to get proper consent and take ethical considerations into account when doing this research!&lt;/em&gt;&lt;small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;As researchers and developers we might have a bias towards quantitative research methods. But, especially in the early stages, limiting yourself to these approaches will constrain the questions you can ask far more than is desirable. Qualtitative techniques such as interviews and observation allow to find answers to questions that you will likely have never even thought to ask, and these answers can be invaluable for the trajectory of your project.&lt;/p&gt;

&lt;h3 id=&quot;a-quasi-quantitative-comparison&quot;&gt;A quasi-quantitative comparison&lt;/h3&gt;
&lt;p&gt;Still don’t beleive me? Fine I’ll try to explain it using graphs.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Graph of user-centered vs normal design&quot; src=&quot;/assets/images/ucd-plot.svg&quot; width=&quot;auto&quot; height=&quot;auto&quot; /&gt;
&lt;a href=&quot;https://extremely-alpha.iodide.io/notebooks/228/&quot;&gt;View this as an Iodide Notebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These curves assume that the ability to change a core paradigm of the software you are building has an follows an inverse logistic function, and the probability of you finding out that the paradigm needs to change is linearly related to the number of users your project has. For the user centered design curve we are better able to find things that need changing at the very start of the project, when it is easy to be able to make these changes.&lt;/p&gt;

&lt;p&gt;That might be a little contrived but the point stands, human-centered design is not only a great pattern for user experience, but also allows you to -I hate using this phrase- “fail early”, which is presumeable a good thing.&lt;/p&gt;

&lt;h3 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h3&gt;
&lt;p&gt;I am currently a Mozilla Fellow and my attendance at Simply Secure’s &lt;a href=&quot;https://simplysecure.org/underexposed/&quot;&gt;underexposed&lt;/a&gt; design residency in Berlin was co-sponsored by the Software Sustainability Institute. Check Simply Secure’s &lt;a href=&quot;https://simplysecure.org/knowledge-base/&quot;&gt;page&lt;/a&gt; for more user research (and security) goodies and the SSI’s &lt;a href=&quot;https://www.software.ac.uk/&quot;&gt;page&lt;/a&gt; for more research software-related content.&lt;/p&gt;
</description>
        <pubDate>Tue, 22 Jan 2019 00:00:00 +0000</pubDate>
        <link>https://alexmorley.me/2019/underexposed/</link>
        <guid isPermaLink="true">https://alexmorley.me/2019/underexposed/</guid>
        
        <category>draft</category>
        
        
      </item>
    
      <item>
        <title>Data Science for Experimental Design - loopy stuff</title>
        <description>&lt;p&gt;It’s not a new concept. But when people talk to me about improving the scientific process it really resonates with me when they talk about feedback loops. This framework is broad enough to encompass most ways in which we can think about improving science, but also makes explicit what actions need to be taken, and where bottlenecks are likely to arise. Here are a few examples of how people have used these cycles to make/explain progress/problems in scientific processes.&lt;/p&gt;

&lt;div&gt;
&lt;script&gt;
var visible = 1;
function swap() {
  let turn_off = document.getElementById(&quot;img&quot;+visible);
  visible = visible &gt;= 3 ? 1 : visible + 1;
  
  let turn_on  = document.getElementById(&quot;img&quot;+visible);
  turn_off.style.display = &quot;none&quot;;
  turn_on.style.display = &quot;&quot;;
}
&lt;/script&gt;
&lt;h4 style=&quot;float:left; margin-top:5px&quot;&gt;Examples of feedback looks in the scientific process.&lt;/h4&gt;&lt;button onclick=&quot;swap()&quot;&gt;Next&lt;/button&gt;
&lt;div id=&quot;img1&quot;&gt;
&lt;img src=&quot;/images/C_Chambers_The_Problem.png&quot; alt=&quot;Pre-reg feedback by Chris Chambers&quot; style=&quot;width:60%&quot; /&gt;
&lt;em&gt;Pre-registration prevents hacking of the scientific feedback loop - Chris Chambers. Find out more &lt;a href=&quot;https://osf.io/8mpji/wiki/home/&quot;&gt;here&lt;/a&gt;.&lt;/em&gt;
&lt;/div&gt;
&lt;div id=&quot;img2&quot; style=&quot;display:none&quot;&gt;
&lt;img src=&quot;/images/Marta_T_Data_Like_Water.png&quot; alt=&quot;Data Like Water by Chris Chambers&quot; style=&quot;width:60%&quot; /&gt;
&lt;em&gt;Data Production and Re-Use Loop - Marta Teperek.&lt;/em&gt;
&lt;/div&gt;
&lt;div id=&quot;img3&quot; style=&quot;display:none&quot;&gt;
&lt;img src=&quot;https://alexmorley.me/ContinuousResearch/img/CCW18.svg&quot; alt=&quot;Continuous Research by me&quot; /&gt;
&lt;em&gt;Continuous Research aims to shorten the feedback loop, and automate integration of research. Find out more &lt;a href=&quot;https://alexmorley.me/ContinuousResearch/&quot;&gt;here&lt;/a&gt;.&lt;/em&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;So I was super excited when the first thing I saw at the Data Science for Experimental Design workshop, held at the Turing Institue, was Daphne explaining how we were going to cover each part of the cycle. Unfortunately I haven’t been able to get a copy of that slide yet, but from the other images you might be able to imagine how it might look.&lt;/p&gt;

&lt;h3 id=&quot;loop-number-1---optimising-experimental-design&quot;&gt;Loop Number 1 - Optimising Experimental Design&lt;/h3&gt;
&lt;p&gt;The first two talks of the day discussed optimisation algorithms for experimental design. Here we focus on how we can implement closed loop systems that enable us to run experiments that make optimal uses of the resources available, both in terms of time and cost. We were told how finding solutions to these systems can be hugely computationally expensive, and discussed some potential avenues to find shortcuts that are just as good. It’s worth noting that this type of work involves collaborating with statistians and data scientists in the &lt;em&gt;planning&lt;/em&gt; stage of an experiment. All too often we reach out for advice try to solve our inference problems after the data is collected, by which time it may already be too late.&lt;/p&gt;

&lt;h3 id=&quot;loop-number-2---automating-the-discovery-loop&quot;&gt;Loop Number 2 - Automating the discovery loop&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://singularityhub.com/wp-content/uploads/2010/03/adam-robot-scientist.jpg&quot; alt=&quot;&quot; /&gt; &lt;em&gt;Adam, the first ever &lt;a href=&quot;https://en.wikipedia.org/wiki/Robot_Scientist&quot;&gt;robot scientist&lt;/a&gt;.&lt;/em&gt;
Then we moved on to the next level of abstraction, how much of the scientific process can we automate. Ross King told us about Adam, a machine he claims is the first ever robot scientist. In Richard’s view, one of the key steps to sharing science in a reliable way is to use formal, logical languages, rather than natural ones like english or mandarin. By programming a machine using these languages, Richard’s team could extract all the steps from a high-level goal, e.g. “What does this yeast gene do?”, down each layer of abstraction to the observations made on the sensors of the machine.&lt;/p&gt;

&lt;p&gt;In the last session before lunch, Dr Vishal Sanchania from Synthace, described Antha, a software platform that has a somewhat smaller remit that Richards robot scientists, but works out of the box with a wide range of hardware, and an thoughtful user-interface. This level of abstraction seems appealing, but many members of the audience were concerned about the lack of clarity in the availability of the source code, or whether there would be an open API that would freely allow third party customisation.&lt;/p&gt;

&lt;h3 id=&quot;loop-number-3---sharing-evaluating-and-re-using&quot;&gt;Loop Number 3 - Sharing, Evaluating, and Re-Using&lt;/h3&gt;
&lt;p&gt;After the break we had the reproducibility crew and Dr Rachael Ainsworth and Dr Sebastien Besson. Dr Besson spoke about his lab’s project &lt;a href=&quot;https://idr.openmicroscopy.org/about/&quot;&gt;The Image Data Resource&lt;/a&gt; and &lt;a href=&quot;https://www.openmicroscopy.org/omero/&quot;&gt;Omero&lt;/a&gt;. One of the key points in the scientific feedback loop is other researchers being able to explore the data that lead the original authors to make the concolusiont that they did. These databases allow anyone to explore all different types of image data and metadata in their web based browsers.&lt;/p&gt;

&lt;p&gt;Dr Ainsworth then took us on a whirlwind tour of open science. From why you should do it, why your worst collaborator is yourself in 6 months time (hint: your past self doesn’t reply to emails), and some great re-mix and re-use of materials from colleagues open science talks.&lt;/p&gt;

&lt;h3 id=&quot;structural-and-cultural-barriers-to-implementing-optimal-feedback-loops&quot;&gt;Structural and Cultural Barriers to Implementing Optimal Feedback Loops&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;“we need to make sure we consider the effects of the changes we seek to drive in as many different contexts as possible [or …] we risk not only being ineffective but actively contributing to existing societal inequalities”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To close off the day three scientists with sociological backgrounds lead discussion groups about cultural and contextual considerations for moving forwards with Data Science for Experimental Design. For me two themes resonated loud and often in these sessions, in terms of what we as scientists should be doing to be effective, 1) we need to actively engage those with expertise in driving institutional change to help us in our efforts 2) we need to make sure we consider the effects of the changes we seek to drive in as many different contexts as possible. The latter point is especially important, what works to increase accessibility to science in one context may not work in another, and without taking these considerations into account we risk not only being ineffective but actively contributing to existing societal inequalities. These considerations might be technical e.g. considering low-bandwidth internet users when you share data, or not, e.g. using graphics to aid those who find large sections of text difficult to understand. This can often be extra work but remember also that the wider the audience you consider the wider the audience you have the potential to reach.&lt;/p&gt;
</description>
        <pubDate>Wed, 17 Oct 2018 00:00:00 +0100</pubDate>
        <link>https://alexmorley.me/2018/data-science-for-experimental-design/</link>
        <guid isPermaLink="true">https://alexmorley.me/2018/data-science-for-experimental-design/</guid>
        
        
      </item>
    
  </channel>
</rss>
