WEBVTT

00:00:03.599 --> 00:00:06.440
You're listening to a stage talk titled Building

00:00:06.440 --> 00:00:08.960
Tools for Research. This week, we were joined

00:00:08.960 --> 00:00:12.460
by my colleague, Galen Riesch. Galen is behind

00:00:12.460 --> 00:00:14.679
many of the Bellingcat built open source tools

00:00:14.679 --> 00:00:17.640
available today and came in to share his advice

00:00:17.640 --> 00:00:20.440
on how to get started in tool development, whether

00:00:20.440 --> 00:00:23.679
you're a coder or someone passionate about accessibility.

00:00:24.460 --> 00:00:27.059
You can find links to all of the resources mentioned

00:00:27.059 --> 00:00:30.079
in the talk in the podcast description. This

00:00:30.079 --> 00:00:32.780
talk was hosted by me, Charlotte Mar, on Thursday

00:00:32.780 --> 00:00:36.119
the 28th of August 2025 in the Bell and Cat Discord

00:00:36.119 --> 00:00:46.859
server. So welcome back to our Stage Talk series.

00:00:47.380 --> 00:00:50.159
This week I'm joined by my brilliant colleague

00:00:50.159 --> 00:00:55.240
Galen Riesch. Galen's name pops up in many conversations

00:00:55.240 --> 00:00:58.119
here in the server and within Bellingcat. I was

00:00:58.119 --> 00:01:00.359
actually surprised to hear that this is his first

00:01:00.359 --> 00:01:03.380
stage talk. Here's our tech community lead and

00:01:03.380 --> 00:01:05.879
one of the many amazing people we have behind

00:01:05.879 --> 00:01:08.540
the scenes creating useful tools and visualizations

00:01:08.540 --> 00:01:11.239
for our investigations. Here's the mind behind

00:01:11.239 --> 00:01:13.780
tools that you might be using today, including

00:01:13.780 --> 00:01:16.120
tools that help you find things like the Shadow

00:01:16.120 --> 00:01:18.700
Finder tool, a tool that assists with locating

00:01:18.700 --> 00:01:21.519
a place based on a shadow. and collaboration

00:01:21.519 --> 00:01:24.159
tools that make working together easier like

00:01:24.159 --> 00:01:26.680
the search grid generator and the color highlighter.

00:01:27.500 --> 00:01:29.819
You also may have seen his face in our YouTube

00:01:29.819 --> 00:01:32.379
tech series, walking you through how to use the

00:01:32.379 --> 00:01:34.900
command line, or have come across his guidance

00:01:34.900 --> 00:01:37.719
in our tech community spaces within this very

00:01:37.719 --> 00:01:40.680
server. Regardless of where you might have encountered

00:01:40.680 --> 00:01:43.120
Galen, today he is here to discuss the basics

00:01:43.120 --> 00:01:45.659
of his role, highlighting why you might want

00:01:45.659 --> 00:01:47.879
to get involved in tool building and what goes

00:01:47.879 --> 00:01:50.969
into a useful tool for research. We'll explore

00:01:50.969 --> 00:01:53.209
some of Bellingcat's tools and highlight others,

00:01:53.969 --> 00:01:55.969
explain what ethical and security considerations

00:01:55.969 --> 00:01:58.609
you need to make when building a resource, and

00:01:58.609 --> 00:02:01.129
give you direction on where and how you can get

00:02:01.129 --> 00:02:04.230
involved. As we talk, please make sure to add

00:02:04.230 --> 00:02:06.769
your questions in the chat box via the message

00:02:06.769 --> 00:02:08.990
bubble icon in the top right corner of your screen,

00:02:09.469 --> 00:02:12.349
and please note within your question if you do

00:02:12.349 --> 00:02:14.909
not want me to read your username out. Again,

00:02:15.110 --> 00:02:17.789
this is being audio recorded. So it's really

00:02:17.789 --> 00:02:19.889
important that you do that if you're not comfortable

00:02:19.889 --> 00:02:23.229
with me reading your Discord username. All right,

00:02:23.389 --> 00:02:26.550
Galen, go ahead. Tell us a little bit about tool

00:02:26.550 --> 00:02:30.530
building. Yeah, thank you so much, Charlie. It's

00:02:30.530 --> 00:02:34.270
a very generous introduction for the stage talk

00:02:34.270 --> 00:02:37.590
on building tools for research. I'm going to

00:02:37.590 --> 00:02:39.710
take a moment just to introduce myself a little

00:02:39.710 --> 00:02:43.250
bit more and to give you a bit of a sense of

00:02:43.250 --> 00:02:46.860
my background and where I'm coming. where I'm

00:02:46.860 --> 00:02:49.259
coming at all of this tool development from.

00:02:49.939 --> 00:02:53.280
I'm an investigative technologist at Bellingcat.

00:02:53.840 --> 00:02:57.199
I spent a lot of time working with you wonderful

00:02:57.199 --> 00:03:02.460
folks in the community. My background is in engineering

00:03:02.460 --> 00:03:09.180
and research. Before my time at Bellingcat, I

00:03:09.180 --> 00:03:11.300
was at the BBC where I worked in their research

00:03:11.300 --> 00:03:14.569
and development department. And before that,

00:03:14.870 --> 00:03:17.090
I was at the University of Birmingham where I

00:03:17.090 --> 00:03:20.210
was completing a PhD in radar, so in electrical

00:03:20.210 --> 00:03:23.909
engineering, which is a far cry from most of

00:03:23.909 --> 00:03:26.949
the work that I do now. So I'm definitely not

00:03:26.949 --> 00:03:31.349
a developer by training, although I do now develop

00:03:31.349 --> 00:03:34.530
a lot of tools and work with folks to develop

00:03:34.530 --> 00:03:39.830
new investigative approaches. But really, I think

00:03:40.400 --> 00:03:45.219
For me, the common thread is development of ideas

00:03:45.219 --> 00:03:48.780
and finding the ideas from the kind of rich pool

00:03:48.780 --> 00:03:52.759
of thoughts and things that people tell you that

00:03:52.759 --> 00:03:55.539
could bubble up into a really valuable tool.

00:03:56.960 --> 00:03:59.639
So that's a little bit about me. What I want

00:03:59.639 --> 00:04:03.460
to talk about today then is like, why build a

00:04:03.460 --> 00:04:06.240
research tool? What makes a tool accessible?

00:04:06.740 --> 00:04:09.759
And finally, what makes a tool usable? We'll

00:04:09.759 --> 00:04:12.819
talk a little bit about the difference in how

00:04:12.819 --> 00:04:15.580
I'm using the words accessible and usable there

00:04:15.580 --> 00:04:18.180
a little bit later on. But yeah, why build a

00:04:18.180 --> 00:04:21.060
tool? What makes it accessible and what makes

00:04:21.060 --> 00:04:26.920
it usable? The absolutely most important thing

00:04:26.920 --> 00:04:32.220
that I cannot overstate, tools must be free in

00:04:32.220 --> 00:04:36.769
the open source research space. We did some research

00:04:36.769 --> 00:04:39.050
at Bellingcat a few years ago, some of my colleagues

00:04:39.050 --> 00:04:43.290
did, and one of the huge takeaways was that any

00:04:43.290 --> 00:04:46.790
tool that requires some sort of paid access is

00:04:46.790 --> 00:04:49.689
just like a no -go. Don't even think about it

00:04:49.689 --> 00:04:51.750
because many people don't have the resources

00:04:51.750 --> 00:04:55.250
to be able to spend on getting access to a tool

00:04:55.250 --> 00:04:57.569
on the off chance that it solves their problem.

00:04:58.629 --> 00:05:01.610
So tools must be free. And I think that this

00:05:01.610 --> 00:05:04.370
is kind of a philosophy that fits really nicely

00:05:04.370 --> 00:05:08.389
in with the open source research philosophy in

00:05:08.389 --> 00:05:11.149
that with a Bellingcat article, our researchers

00:05:11.149 --> 00:05:13.569
will try and take you through the investigation

00:05:13.569 --> 00:05:16.629
and show you how the investigation has been done

00:05:16.629 --> 00:05:19.149
so that you too can replicate it if you want.

00:05:19.470 --> 00:05:22.410
And that's a little bit more difficult if they've

00:05:22.410 --> 00:05:25.089
used the super expensive tool. It doesn't mean

00:05:25.089 --> 00:05:28.029
that we don't use paid tools from time to time.

00:05:28.430 --> 00:05:30.870
But when thinking about developing a new tool,

00:05:31.029 --> 00:05:33.009
we have to think that they've got to be free.

00:05:33.569 --> 00:05:38.410
Now, I have these three key strands that I find

00:05:38.410 --> 00:05:41.290
useful when thinking about a tool. That's the

00:05:41.290 --> 00:05:46.949
concept, the utility, and the execution. Is there

00:05:46.949 --> 00:05:51.009
a good concept? Can it meaningfully advance an

00:05:51.009 --> 00:05:53.730
investigation? Because if it can't, then the

00:05:53.730 --> 00:05:56.870
concept isn't very good. If I came up with a

00:05:56.870 --> 00:06:01.089
tool that increases all the text in a PDF by

00:06:01.089 --> 00:06:06.850
5 % and turns every copy of the word into Comic

00:06:06.850 --> 00:06:09.649
Sans, that would be a terrible tool. The concept

00:06:09.649 --> 00:06:12.829
is just bad. It doesn't matter how well the zero

00:06:12.829 --> 00:06:15.250
utility, and it doesn't matter how well I execute

00:06:15.250 --> 00:06:19.629
that tool, the concept just isn't there. Moving

00:06:19.629 --> 00:06:22.990
on to utility, does the tool have utility for

00:06:22.990 --> 00:06:27.529
people who might actually use it? Will they actually

00:06:27.529 --> 00:06:29.750
try to use the tool? Does it seem appealing?

00:06:29.850 --> 00:06:33.370
Does it seem to solve a need? And then execution,

00:06:34.029 --> 00:06:37.290
is the tool developed well? When people try to

00:06:37.290 --> 00:06:40.009
use it, like of those people who think it has

00:06:40.009 --> 00:06:43.310
the utility for them, will they actually be able

00:06:43.310 --> 00:06:46.329
to use it and actually get the results they need?

00:06:48.310 --> 00:06:50.389
So these are the three strands that I think I'll

00:06:50.389 --> 00:06:54.069
unpack those in a bit more detail. So firstly,

00:06:54.189 --> 00:06:56.839
like, the concept, why build a research tool?

00:06:57.639 --> 00:07:00.920
So in my experience, there's a couple of strands

00:07:00.920 --> 00:07:05.060
of like places that tool ideas originate. One

00:07:05.060 --> 00:07:10.740
is investigative needs. So this is where somebody

00:07:10.740 --> 00:07:13.139
who is working on an investigation says, hey,

00:07:13.560 --> 00:07:16.339
there's a problem here. And I think there's a

00:07:16.339 --> 00:07:19.420
opportunity for solving it through code development

00:07:19.420 --> 00:07:23.230
or through some other source of tool. Generally

00:07:23.230 --> 00:07:25.709
speaking, not always, but generally, these are

00:07:25.709 --> 00:07:27.810
professionally motivated. It's professionals

00:07:27.810 --> 00:07:30.829
working in investigative environments where they're

00:07:30.829 --> 00:07:33.550
encountering similar problems day in, day out.

00:07:34.529 --> 00:07:38.889
And an example of this is with a recent article

00:07:38.889 --> 00:07:44.110
that went out, not that recent now, but on the

00:07:44.110 --> 00:07:48.050
One X Bet betting website. Please take a look

00:07:48.050 --> 00:07:50.129
at that article. I think it's a fantastic investigation.

00:07:50.490 --> 00:07:53.019
But as part of that, we needed to build a web

00:07:53.019 --> 00:07:56.759
scraper to go in and pull out a load of videos

00:07:56.759 --> 00:08:00.860
that were being streamed on this website. And

00:08:00.860 --> 00:08:04.399
so there, there's a technical need, and we needed

00:08:04.399 --> 00:08:06.800
to build some sort of research tool that would

00:08:06.800 --> 00:08:10.620
fill that, that would address that need. And

00:08:10.620 --> 00:08:12.699
so I went away, worked with a colleague, and

00:08:12.699 --> 00:08:15.120
we built a scraping pipeline that could run away

00:08:15.120 --> 00:08:18.759
and grab all of the videos this site streamed

00:08:18.759 --> 00:08:21.920
over the course of the day. So that's motivated

00:08:21.920 --> 00:08:24.339
by investigative need and those videos were then,

00:08:24.339 --> 00:08:26.480
you know, used in the article and used in the

00:08:26.480 --> 00:08:30.540
subsequent investigation. The other angle is

00:08:30.540 --> 00:08:34.440
interesting ideas. This is a much more accessible

00:08:34.440 --> 00:08:38.039
route into building a research tool because it's

00:08:38.039 --> 00:08:40.460
like conceptually intriguing. I'm sure many,

00:08:40.500 --> 00:08:44.059
many folks listening will have ideas or will

00:08:44.059 --> 00:08:46.639
have encountered things and thought, huh, that's

00:08:46.639 --> 00:08:49.179
curious. I wonder if I could do something with

00:08:49.179 --> 00:08:54.419
that. The downside is like, will anyone care?

00:08:55.779 --> 00:08:58.460
An example of this that is very close to my heart

00:08:58.460 --> 00:09:01.000
is the shadow finder tool that Charlie mentioned

00:09:01.000 --> 00:09:04.259
in the introduction. So this is a tool that lets

00:09:04.259 --> 00:09:09.320
you take a photograph of a scene and by measuring

00:09:09.320 --> 00:09:11.419
the height of an object in the scene and the

00:09:11.419 --> 00:09:15.139
length of its shadow, if you know things like

00:09:15.139 --> 00:09:19.700
the time of day and the date, it's able to give

00:09:19.700 --> 00:09:21.980
you a restricted set of locations where that

00:09:21.980 --> 00:09:26.259
photo could have been taken. And if you have

00:09:26.259 --> 00:09:30.120
multiple photos from the same location, you're

00:09:30.120 --> 00:09:32.879
able to really narrow down the location quite

00:09:32.879 --> 00:09:36.179
precisely of where that photo could have been

00:09:36.179 --> 00:09:39.820
taken. And this was a tool that came out of the

00:09:39.820 --> 00:09:44.200
Discord community. And when I built it, I thought,

00:09:44.320 --> 00:09:47.570
this is a really cool idea. unites a bunch of

00:09:47.570 --> 00:09:50.070
really cool things that matter to me, like the

00:09:50.070 --> 00:09:54.870
kind of physics of the sun and all of the kind

00:09:54.870 --> 00:09:59.070
of geometry that I spent some time doing in my

00:09:59.070 --> 00:10:01.669
kind of educational training. It really appealed

00:10:01.669 --> 00:10:04.370
to me as an idea, but I definitely had that concern,

00:10:04.429 --> 00:10:06.750
like, will anyone care? And crucially, like,

00:10:07.110 --> 00:10:11.190
will that tool ever be useful for anything? It

00:10:11.190 --> 00:10:14.210
turns out it was. After a couple of months after

00:10:14.210 --> 00:10:17.490
putting it together and making it available to

00:10:17.490 --> 00:10:19.970
folks came the one expect story. And we actually

00:10:19.970 --> 00:10:24.990
used it to geolocate a really difficult, difficult

00:10:24.990 --> 00:10:27.269
one of these live streams, we were able to narrow

00:10:27.269 --> 00:10:30.210
it down to a city so that folks in the discord

00:10:30.210 --> 00:10:34.750
could have a look and more have a much more focused

00:10:34.750 --> 00:10:39.029
search on that area. So these are really the

00:10:39.029 --> 00:10:45.120
two driving factors. And oftentimes, people will

00:10:45.120 --> 00:10:46.639
approach with interesting ideas. I think you

00:10:46.639 --> 00:10:49.740
really have to develop an understanding over

00:10:49.740 --> 00:10:53.360
time about which ideas will actually be useful

00:10:53.360 --> 00:10:57.139
in some future investigation. So you've got to

00:10:57.139 --> 00:10:59.700
have a good concept if you're planning on building

00:10:59.700 --> 00:11:04.659
a research tool. Right, utility or what makes

00:11:04.659 --> 00:11:10.080
a tool accessible. So when I use accessibility

00:11:10.080 --> 00:11:15.720
here, I'm not referring to accessibility in the

00:11:15.720 --> 00:11:20.580
sense of a website being colorblind friendly

00:11:20.580 --> 00:11:25.100
or available for use with a screen reader. But

00:11:25.100 --> 00:11:31.460
rather, I mean the how much prerequisite rather

00:11:31.460 --> 00:11:35.100
how much prerequisite knowledge is required to

00:11:35.100 --> 00:11:38.460
access the tool. So I think of this as a ladder

00:11:38.460 --> 00:11:42.200
of development. So at the bottom of this ladder,

00:11:42.200 --> 00:11:47.899
you have the kind of messy scripts that you might

00:11:47.899 --> 00:11:50.000
write as part of an investigation or to test

00:11:50.000 --> 00:11:52.720
an idea out. This is where tools really start

00:11:52.720 --> 00:11:55.980
life typically, and they are the least accessible

00:11:55.980 --> 00:12:00.539
and the lowest effort end of the ladder. So to

00:12:00.539 --> 00:12:02.700
use a tool at this stage of development, a user

00:12:02.700 --> 00:12:04.639
has to have Python installed on their machine.

00:12:04.720 --> 00:12:06.679
If it's a Python script, which for me it often

00:12:06.679 --> 00:12:09.740
is, they have to have some technical expertise

00:12:09.740 --> 00:12:12.809
and the confidence to edit the code that you've

00:12:12.809 --> 00:12:16.750
written for your own specific example. It's a

00:12:16.750 --> 00:12:20.110
great way to prototype a tool, but it will only

00:12:20.110 --> 00:12:22.610
ever find a narrow technical audience if you

00:12:22.610 --> 00:12:27.230
try and publish that as a tool. The next step

00:12:27.230 --> 00:12:30.289
up, so adding a little bit more effort and making

00:12:30.289 --> 00:12:33.669
the tool a little bit more accessible, is what's

00:12:33.669 --> 00:12:37.590
called a library API. This is where you take

00:12:37.590 --> 00:12:41.679
that script and you give it a small like incremental

00:12:41.679 --> 00:12:45.419
improvement. So it's still only going to really

00:12:45.419 --> 00:12:49.460
be useful for people who are technically adept

00:12:49.460 --> 00:12:52.139
and familiar with the language we tend to write

00:12:52.139 --> 00:12:54.980
in Python. So I'll refer to tool being written

00:12:54.980 --> 00:12:59.080
in Python primarily. It will still only be useful

00:12:59.080 --> 00:13:02.899
for folks who are technically proficient and

00:13:02.899 --> 00:13:06.019
confident. However, what the library API kind

00:13:06.019 --> 00:13:09.879
of lets you do is hide away all of the logic

00:13:09.879 --> 00:13:13.580
of your messy script so that if someone wants

00:13:13.580 --> 00:13:18.620
to tweak what you've written to suit their investigative

00:13:18.620 --> 00:13:21.100
need, you've already done the hard work for them.

00:13:21.100 --> 00:13:23.039
They don't need to edit your code. They can just

00:13:23.039 --> 00:13:25.179
use your code. So this is a really nice kind

00:13:25.179 --> 00:13:29.259
of step up. The next step on the ladder is a

00:13:29.259 --> 00:13:32.679
command line interface. So it's a significant

00:13:32.679 --> 00:13:36.520
step up in terms of accessibility, but Research

00:13:36.520 --> 00:13:38.879
from the study that my colleagues conducted a

00:13:38.879 --> 00:13:42.440
few years ago shows that over 50 % of journalists

00:13:42.440 --> 00:13:44.860
and open source researchers are not comfortable

00:13:44.860 --> 00:13:49.580
with the command line. So even building a tool

00:13:49.580 --> 00:13:52.379
out to a level where it's usable on the command

00:13:52.379 --> 00:13:54.620
line, and for a bit of context, the command line

00:13:54.620 --> 00:13:57.720
is the part of the computer that you might see

00:13:57.720 --> 00:14:00.019
in movies where you see a hacker pulling up a

00:14:00.019 --> 00:14:02.659
terminal and typing in code. That's the command

00:14:02.659 --> 00:14:05.740
line. It looks really scary. In reality, it's

00:14:05.740 --> 00:14:08.779
just a text -based interface to the computer.

00:14:09.279 --> 00:14:12.840
So a command line interface gives your tool the

00:14:12.840 --> 00:14:16.220
ability to be used by anyone who has a little

00:14:16.220 --> 00:14:19.620
bit of confidence on the command line. They don't

00:14:19.620 --> 00:14:21.559
have to go through the rigmarole of figuring

00:14:21.559 --> 00:14:24.639
out your API, figuring out your code. They can

00:14:24.639 --> 00:14:28.700
just use the tool that you've provided. But like

00:14:28.700 --> 00:14:31.480
I say, many folks are still not comfortable with

00:14:31.480 --> 00:14:34.440
that. Coming towards the top of the ladder now,

00:14:34.659 --> 00:14:38.220
we have these kind of couple of user interfaces.

00:14:38.740 --> 00:14:40.860
So the first that we like to use are Jupyter

00:14:40.860 --> 00:14:44.700
Notebooks and Colab Notebooks. This is a really

00:14:44.700 --> 00:14:50.019
nice way to wrap up Python code in a user interface

00:14:50.019 --> 00:14:52.679
that is maybe slightly more accessible for folks

00:14:52.679 --> 00:14:59.820
with no programming experience. It still takes

00:14:59.820 --> 00:15:02.240
a little bit of understanding, but in my experience

00:15:02.240 --> 00:15:03.799
working with people, if you send them a link

00:15:03.799 --> 00:15:08.519
to a notebook or either a Jupyter notebook or

00:15:08.519 --> 00:15:11.759
a Colab notebook, after a little bit of explanation,

00:15:11.860 --> 00:15:14.379
they're very comfortable using that tool there

00:15:14.379 --> 00:15:17.200
on out. And there's a bunch of techniques for

00:15:17.200 --> 00:15:20.820
simplifying the interfaces on a Colab notebook

00:15:20.820 --> 00:15:24.299
that I recommend kind of investigating if you're

00:15:24.299 --> 00:15:27.299
interested in developing tools, because for me,

00:15:27.389 --> 00:15:30.129
This is really the level at which a tool becomes

00:15:30.129 --> 00:15:33.169
practically useful for people outside of a kind

00:15:33.169 --> 00:15:37.750
of technical bubble. So I really highly rate

00:15:37.750 --> 00:15:39.870
Jupyter Notebooks and I really highly rate Google

00:15:39.870 --> 00:15:45.110
CoLab Notebooks as well. And finally, the kind

00:15:45.110 --> 00:15:47.830
of the last rung on the ladder, but in reality,

00:15:47.889 --> 00:15:50.870
it's quite a significant step up in terms of

00:15:50.870 --> 00:15:54.500
effort. is a full user interface, a full graphical

00:15:54.500 --> 00:15:57.379
user interface. This is one of the best ways

00:15:57.379 --> 00:16:00.059
to make a tool accessible to a large number of

00:16:00.059 --> 00:16:02.840
people, but it can really be a lot of extra development

00:16:02.840 --> 00:16:07.059
work. And if you're thinking about building a

00:16:07.059 --> 00:16:10.399
tool with a full interface, ask yourself, is

00:16:10.399 --> 00:16:14.440
it worth the effort? Is the target audience for

00:16:14.440 --> 00:16:18.009
my tool? going to need the added convenience

00:16:18.009 --> 00:16:20.710
of a user interface, or would they be happy with

00:16:20.710 --> 00:16:23.529
a notebook? If you answer that they would be

00:16:23.529 --> 00:16:25.289
happy with a notebook, that's what you should

00:16:25.289 --> 00:16:29.490
do. Don't go the extra mile. Just deliver that

00:16:29.490 --> 00:16:34.409
tool that meets the needs of your users. And

00:16:34.409 --> 00:16:37.370
this is something that we try to think about.

00:16:37.809 --> 00:16:40.110
So, Bellingcat, we publish several command line

00:16:40.110 --> 00:16:44.129
interface tools. We also... publish a bunch of

00:16:44.129 --> 00:16:46.789
research notebooks. So we have a repository on

00:16:46.789 --> 00:16:49.789
our GitHub which contains a bunch of research

00:16:49.789 --> 00:16:52.730
notebooks that let you perform a variety of tasks

00:16:52.730 --> 00:16:57.990
that we don't think merit full development of

00:16:57.990 --> 00:17:02.169
standalone tools, standalone user interfaces.

00:17:04.650 --> 00:17:08.849
So that's the ladder from a messy editable script

00:17:08.849 --> 00:17:12.039
at the bottom through a library API through a

00:17:12.039 --> 00:17:15.180
command line interface, through Jupyter or Colab

00:17:15.180 --> 00:17:18.240
Notebooks, and finally, a full user interface.

00:17:18.660 --> 00:17:21.000
The further you go up, the more effort it is,

00:17:21.059 --> 00:17:24.640
but the far more accessible for the end user.

00:17:26.980 --> 00:17:29.140
At Bellingcat, we don't particularly advocate

00:17:29.140 --> 00:17:31.619
a front -end framework if you're thinking about

00:17:31.619 --> 00:17:35.180
building a user interface. We think that Streamlip

00:17:35.180 --> 00:17:38.569
seems like a pretty good option. And personally,

00:17:38.589 --> 00:17:42.190
I have done quite a lot of development in Vue,

00:17:42.190 --> 00:17:45.390
which is a JavaScript -based front -end framework

00:17:45.390 --> 00:17:51.210
that can be really good for building user interfaces.

00:17:52.390 --> 00:17:54.910
Another important thing to consider when you're

00:17:54.910 --> 00:17:57.529
producing an interface is how are you going to

00:17:57.529 --> 00:17:59.910
make it secure and how are you going to host

00:17:59.910 --> 00:18:04.819
it, the whole tool? Because... If you've produced

00:18:04.819 --> 00:18:06.880
a tool, and I've told you earlier on it's important

00:18:06.880 --> 00:18:11.920
for it to be free, are you going to have to spend

00:18:11.920 --> 00:18:14.200
a load of money to host that tool so that other

00:18:14.200 --> 00:18:16.619
people can use it for free? And the answer really

00:18:16.619 --> 00:18:21.460
should be no. Building a user interface and hosting

00:18:21.460 --> 00:18:24.680
a user interface can be expensive, but it doesn't

00:18:24.680 --> 00:18:30.160
have to be. Streamlit gives you access to a certain

00:18:30.160 --> 00:18:32.599
amount of compute per month, which means your

00:18:32.599 --> 00:18:37.890
users don't have to pay to use your tool. It's

00:18:37.890 --> 00:18:40.450
really powerful. Same with Google Colab notebooks.

00:18:40.890 --> 00:18:44.650
They don't have any cost to hosting. And if you

00:18:44.650 --> 00:18:49.009
build a website, I would encourage you to investigate

00:18:49.009 --> 00:18:51.430
what it means to build a website that is static.

00:18:51.670 --> 00:18:55.089
So it's one where you just put the files on the

00:18:55.089 --> 00:18:57.390
internet and all of the complicated stuff happens

00:18:57.390 --> 00:19:00.869
in the user's browser. It's a really powerful

00:19:00.869 --> 00:19:03.700
technique for letting users do really complicated

00:19:03.700 --> 00:19:08.039
things. And it builds security into the process

00:19:08.039 --> 00:19:11.019
because you're not asking people to upload sensitive

00:19:11.019 --> 00:19:14.660
files to your server. You just ask people to

00:19:14.660 --> 00:19:17.200
load it into their own browser. And that's where

00:19:17.200 --> 00:19:19.599
all of the magic happens. So it's far more secure.

00:19:19.700 --> 00:19:23.920
And ultimately, it's generally free to host the

00:19:23.920 --> 00:19:27.920
open source projects using tools like GitHub,

00:19:28.700 --> 00:19:30.559
which if you're developing open source research

00:19:30.559 --> 00:19:32.579
tools, and you're not familiar with already,

00:19:32.759 --> 00:19:35.940
I suggest you investigate GitHub and get more

00:19:35.940 --> 00:19:41.640
familiar with it. So the final section is execution.

00:19:42.519 --> 00:19:47.519
So this doesn't refer to how accessible a tool

00:19:47.519 --> 00:19:50.400
is going to be and how attractive a tool is going

00:19:50.400 --> 00:19:54.599
to be to a potential user, but rather this is

00:19:54.599 --> 00:19:57.000
once somebody's opened your tool up, once they

00:19:57.000 --> 00:20:00.019
want to they've been convinced that this tool

00:20:00.019 --> 00:20:02.720
could be useful for them, what makes it actually

00:20:02.720 --> 00:20:07.819
usable? And really, with the exception of it

00:20:07.819 --> 00:20:10.799
being free, and by free I really do mean free,

00:20:10.960 --> 00:20:13.640
I can't hammer this home. Freemium isn't sufficient,

00:20:13.779 --> 00:20:17.680
not a free trial, it really has to be free to

00:20:17.680 --> 00:20:22.339
get people's buy -in. But the three core principles

00:20:22.339 --> 00:20:24.519
are it should be simple, so the tool should do

00:20:24.519 --> 00:20:28.180
one thing really well. Of course, there are many

00:20:28.180 --> 00:20:30.680
amazing tools out in the world that are very

00:20:30.680 --> 00:20:33.420
complicated and do lots of complicated things.

00:20:36.839 --> 00:20:40.619
But my experience in the open source research

00:20:40.619 --> 00:20:43.019
space is that if you're developing a tool, make

00:20:43.019 --> 00:20:46.480
it simple. Do that one thing really, really well.

00:20:47.319 --> 00:20:51.380
Users really relate to tools that meet their

00:20:51.380 --> 00:20:54.849
need. And you're not trying to sell anything

00:20:54.849 --> 00:20:58.009
to people. You're not trying to get an annual

00:20:58.009 --> 00:20:59.630
subscription. You don't have to promise the world.

00:20:59.690 --> 00:21:02.269
You can say, if you want a tool that puts a grid

00:21:02.269 --> 00:21:05.650
on a map, I've got a tool for you. If you want

00:21:05.650 --> 00:21:09.049
a tool that lets you search local council meetings,

00:21:09.410 --> 00:21:11.650
I've got a tool for you. If that's not what you

00:21:11.650 --> 00:21:15.309
need, these aren't the tools for you. And a shout

00:21:15.309 --> 00:21:17.289
out, I think, is appropriate at this point for

00:21:17.289 --> 00:21:22.099
the Bellingcat Toolkit. a fantastic resource

00:21:22.099 --> 00:21:25.980
for finding new tools that might meet your investigative

00:21:25.980 --> 00:21:30.400
needs. So simple, does one thing well. The interface

00:21:30.400 --> 00:21:32.619
should be clear. You've got to put the user at

00:21:32.619 --> 00:21:35.940
the heart of the interface. And imagine that

00:21:35.940 --> 00:21:39.059
when you open up the tool, you have no idea what

00:21:39.059 --> 00:21:41.519
it's meant to do. And all of the information

00:21:41.519 --> 00:21:43.859
should be contained within the user interface

00:21:43.859 --> 00:21:47.319
and within the design of the tool. Coming from

00:21:47.319 --> 00:21:49.460
an engineering background, This isn't the most

00:21:49.460 --> 00:21:54.519
natural space for me. But I know that I previously

00:21:54.519 --> 00:21:57.200
had lots of fantastic colleagues at the BBC who

00:21:57.200 --> 00:22:02.039
worked on user experience and design. And I feel

00:22:02.039 --> 00:22:05.339
I learned a lot from them and now I'm a strong

00:22:05.339 --> 00:22:09.279
advocate for really considering the user's experience

00:22:09.279 --> 00:22:15.279
and designing accordingly. And finally, if possible,

00:22:15.400 --> 00:22:18.960
the tool should be quick. This might mean you

00:22:18.960 --> 00:22:21.200
have to spend a little bit more time optimizing

00:22:21.200 --> 00:22:26.259
your code or designing your processing pipeline

00:22:26.259 --> 00:22:29.460
differently. But ideally, a user should be able

00:22:29.460 --> 00:22:33.200
to press the button and get results nearly instantly.

00:22:33.960 --> 00:22:36.759
Because otherwise, if you press a button and

00:22:36.759 --> 00:22:41.220
see a loading bar or a spinning wheel of doom,

00:22:42.460 --> 00:22:46.359
it really erodes trust. folks will start to think,

00:22:46.420 --> 00:22:48.559
oh, have I done this right? Have I made a mistake?

00:22:49.000 --> 00:22:52.519
And in the world of these open source research

00:22:52.519 --> 00:22:55.700
tools, if a user makes a mistake that causes

00:22:55.700 --> 00:22:59.240
your tool to fail, you don't want that pathway

00:22:59.240 --> 00:23:02.240
to be very similar to using your tool normally.

00:23:02.819 --> 00:23:05.279
You want them to get a really clear error message

00:23:05.279 --> 00:23:07.599
and a nice instruction to please contact you

00:23:07.599 --> 00:23:09.539
as the developer and let you know what they were

00:23:09.539 --> 00:23:12.799
trying to do when it went wrong. really inviting

00:23:12.799 --> 00:23:15.200
feedback and inviting development is such an

00:23:15.200 --> 00:23:18.599
important part of making an open source research

00:23:18.599 --> 00:23:28.119
tool usable. So yeah, to recap, I think you need

00:23:28.119 --> 00:23:30.920
that great concept. You need the idea to be a

00:23:30.920 --> 00:23:33.680
really solid one. Put yourself in the shoes of

00:23:33.680 --> 00:23:35.880
an investigator if you don't work in that space

00:23:35.880 --> 00:23:39.779
and think, is what I'm offering valuable to them?

00:23:39.900 --> 00:23:42.099
Does it solve a problem that they either have

00:23:42.099 --> 00:23:44.740
or could conceivably have in the course of an

00:23:44.740 --> 00:23:48.680
investigation? Then think of how much effort

00:23:48.680 --> 00:23:52.319
is reasonable to put in to make this tool have

00:23:52.319 --> 00:23:56.259
utility because you don't want to be spending

00:23:56.259 --> 00:23:58.220
months and months and months developing a tool

00:23:58.220 --> 00:24:01.819
that nobody uses. Build something, put it into

00:24:01.819 --> 00:24:04.700
the world and see what people think. And finally,

00:24:05.019 --> 00:24:06.859
when you're building it, when you're executing

00:24:06.859 --> 00:24:11.759
that tool, that tool development, make sure that

00:24:11.759 --> 00:24:14.900
you put the user at the heart and really design

00:24:14.900 --> 00:24:19.079
the experience so that the entire tool comes

00:24:19.079 --> 00:24:21.519
together for your user. And with all of those

00:24:21.519 --> 00:24:23.940
things, you'll build a fantastic research tool

00:24:23.940 --> 00:24:27.759
and people will love using it. Charlie, I think

00:24:27.759 --> 00:24:30.920
that leaves me to hand back to you. Yes, thank

00:24:30.920 --> 00:24:36.140
you so much, Galen, for that really clear and

00:24:36.140 --> 00:24:40.170
knowledgeable. presentation. It's really amazing

00:24:40.170 --> 00:24:44.670
to see how you break down the parts of tool development.

00:24:45.410 --> 00:24:47.329
It's been really helpful actually for a number

00:24:47.329 --> 00:24:50.529
of people in the chat. There are some common

00:24:50.529 --> 00:24:52.410
themes emerging in the chat though, so I wanted

00:24:52.410 --> 00:24:56.730
to ask you first about those. Do you have to

00:24:56.730 --> 00:25:00.529
have coding know -how to get involved with tool

00:25:00.529 --> 00:25:04.230
building? And if so, in terms of maybe leading

00:25:04.230 --> 00:25:07.069
tool development? What other ways can you get

00:25:07.069 --> 00:25:09.970
involved with tool development that might not

00:25:09.970 --> 00:25:13.490
be so focused on the coding section of development?

00:25:15.190 --> 00:25:18.430
Absolutely. So the short answer is no, you definitely

00:25:18.430 --> 00:25:23.450
don't have to be a coder to get involved. I think

00:25:23.450 --> 00:25:31.390
it definitely helps to have the more familiarity

00:25:31.390 --> 00:25:36.380
with coding you have. after the easier time you'll

00:25:36.380 --> 00:25:39.259
have when you're exposed to these quite technical

00:25:39.259 --> 00:25:43.000
spaces, but it's definitely not a barrier. There

00:25:43.000 --> 00:25:45.299
are a huge number of ways that folk can get involved.

00:25:45.380 --> 00:25:51.680
One thing that we always find helpful is when

00:25:51.680 --> 00:25:55.619
folk who don't have a technical background or

00:25:55.619 --> 00:26:01.269
technical experience try to use our tools. If

00:26:01.269 --> 00:26:03.589
you're wanting to get involved with tool development,

00:26:03.809 --> 00:26:07.549
the easiest way, I would say, is to try out a

00:26:07.549 --> 00:26:10.009
bunch of tools and see if they work. And if you

00:26:10.009 --> 00:26:15.049
encounter a problem, reach out to the developer.

00:26:15.569 --> 00:26:22.190
So we have spaces in Discord here where if you

00:26:22.190 --> 00:26:24.769
encounter a problem, you can shout about it.

00:26:26.009 --> 00:26:28.720
And really, like... feel free to test the tools

00:26:28.720 --> 00:26:31.980
to like their breaking point, because as a developer

00:26:31.980 --> 00:26:34.420
that works on some of these tools and supports

00:26:34.420 --> 00:26:36.740
other developers in building these tools, you

00:26:36.740 --> 00:26:38.359
know, you do your best to think about what people

00:26:38.359 --> 00:26:42.779
are going to do with the tool. But ultimately,

00:26:42.779 --> 00:26:45.599
it's not about us developing it. It's about you

00:26:45.599 --> 00:26:47.940
using it. So you don't have to have any coding

00:26:47.940 --> 00:26:50.279
knowledge to use many of the tools we produce.

00:26:50.339 --> 00:26:52.559
But if you try and use it and we failed in the

00:26:52.559 --> 00:26:55.680
execution step, then we failed and we need to

00:26:55.680 --> 00:27:01.049
know about that. So a lot of the, for me, the

00:27:01.049 --> 00:27:04.549
joy, so we just published a tool today, more

00:27:04.549 --> 00:27:07.609
or less, and I've had some feedback from folks

00:27:07.609 --> 00:27:12.009
on Blue Sky about tweaks that could make the

00:27:12.009 --> 00:27:14.130
tool more usable. And what I've done is I've

00:27:14.130 --> 00:27:16.549
taken those and I've noted those down in the

00:27:16.549 --> 00:27:21.289
tools repository on GitHub. So if you're comfortable

00:27:21.289 --> 00:27:23.670
enough to create an account on GitHub, there

00:27:23.670 --> 00:27:26.890
are ways to get involved with the conversation

00:27:26.890 --> 00:27:31.750
around tools, even without having to be a developer.

00:27:32.730 --> 00:27:35.289
And if you head to Bellingcat's GitHub, which

00:27:35.289 --> 00:27:38.990
is github .com forward slash Bellingcat, there's

00:27:38.990 --> 00:27:41.910
a big section on the landing page there that

00:27:41.910 --> 00:27:44.430
explains how you can get involved with Bellingcat's

00:27:44.430 --> 00:27:47.150
tools specifically. So I hope that answers the

00:27:47.150 --> 00:27:50.490
question. Within the chat, we've got people saying,

00:27:50.869 --> 00:27:53.799
for example, Sarah, our moderator. She says,

00:27:53.799 --> 00:27:56.140
you can be a technical writer as a contributor.

00:27:56.440 --> 00:28:01.319
People love us. And that is really true. That

00:28:01.319 --> 00:28:05.259
is being able to really describe how to use a

00:28:05.259 --> 00:28:08.099
tool is, is part of the reason why our Bellingcat

00:28:08.099 --> 00:28:12.359
toolkit exists. Because not enough people do

00:28:12.359 --> 00:28:14.920
this when they build tools is make, you know,

00:28:15.160 --> 00:28:18.140
really good documentation. So people understand

00:28:18.140 --> 00:28:22.450
how to one use it and. the benefits and the disadvantages

00:28:22.450 --> 00:28:25.589
of each tool as well. So that's in the chat as

00:28:25.589 --> 00:28:28.470
well that I linked the toolkit. I've also just

00:28:28.470 --> 00:28:34.210
put in the chat some links to spaces within the

00:28:34.210 --> 00:28:38.009
server. Gelin mentioned the GitHub, but we also

00:28:38.009 --> 00:28:41.029
have within the server tech contributors, which

00:28:41.029 --> 00:28:45.309
is a place to find ongoing tool ideas and to

00:28:45.309 --> 00:28:48.250
pitch those tool ideas and to find people who

00:28:48.250 --> 00:28:51.569
want to build together. And tools and sites is

00:28:51.569 --> 00:28:53.849
a place where people share often useful tools

00:28:53.849 --> 00:28:56.470
that they've come across. And tool support is

00:28:56.470 --> 00:28:59.269
that place within the server where you can ask

00:28:59.269 --> 00:29:02.509
for help with a particular tool or flag something

00:29:02.509 --> 00:29:05.069
that's not quite working, particularly with a

00:29:05.069 --> 00:29:08.569
Bellingcat one if you're not comfortable or aren't

00:29:08.569 --> 00:29:11.690
familiar with GitHub and the way that that works.

00:29:12.049 --> 00:29:16.069
Just building on this slightly. Somebody said

00:29:16.069 --> 00:29:20.309
that they'd be comfortable picking up an idea

00:29:20.309 --> 00:29:22.650
from a list of ideas people had, but didn't try.

00:29:23.170 --> 00:29:25.430
Is there anywhere like that? So we've just mentioned

00:29:25.430 --> 00:29:28.450
the tech contributors within the server. Is there

00:29:28.450 --> 00:29:33.829
anywhere online where people do say, oh, we have

00:29:33.829 --> 00:29:35.609
this idea for a tool, but don't necessarily have

00:29:35.609 --> 00:29:37.750
the resources to build it? Is there somewhere

00:29:37.750 --> 00:29:39.589
like that where you can get involved in those

00:29:39.589 --> 00:29:42.029
kinds of communities? You mentioned already the

00:29:42.029 --> 00:29:45.849
tech contributors space. There's a channel in

00:29:45.849 --> 00:29:50.430
there for working on working on new ideas. I

00:29:50.430 --> 00:29:52.289
think it's called welcome and info, which is

00:29:52.289 --> 00:29:56.190
perhaps not the best name, but it can be used

00:29:56.190 --> 00:30:00.650
for developing ideas. And within tech contributors,

00:30:00.849 --> 00:30:02.910
it's a forum channel. So there are a bunch of

00:30:02.910 --> 00:30:06.009
different ideas that are in there. Oh, no, there

00:30:06.009 --> 00:30:10.029
is a I misspeak there is a a section of tech

00:30:10.029 --> 00:30:12.509
contributors called tool idea workshop. So that's

00:30:12.509 --> 00:30:15.710
where people might be discussing new ideas. I'll

00:30:15.710 --> 00:30:17.890
be honest, it's a little bit of a stagnant channel

00:30:17.890 --> 00:30:20.829
right now. So if you're if you're interested,

00:30:20.869 --> 00:30:23.589
if you're excited by this, please go dive into

00:30:23.589 --> 00:30:26.730
tool ideas, workshop, share your ideas and really

00:30:26.730 --> 00:30:31.369
like use that as a space to collaborate with

00:30:31.369 --> 00:30:36.660
others. We do have a We do have a space with

00:30:36.660 --> 00:30:41.160
some long -standing challenges on the Bellingcat

00:30:41.160 --> 00:30:44.640
GitHub. That too is a little bit stale now. I

00:30:44.640 --> 00:30:46.480
mean, it's something that I've been working on

00:30:46.480 --> 00:30:50.319
a little bit in the background. And I hope that

00:30:50.319 --> 00:30:52.740
at some point soon, I'll be able to release a

00:30:52.740 --> 00:30:56.660
kind of list of like a shopping list of ideas

00:30:56.660 --> 00:31:00.700
that we at Bellingcat think are really valuable

00:31:00.700 --> 00:31:04.880
and would be really cool enhancements to the

00:31:04.880 --> 00:31:06.740
open source research world, but they just don't

00:31:06.740 --> 00:31:09.380
exist yet. That's something that I'm working

00:31:09.380 --> 00:31:11.059
on in the background and hopefully I'll have

00:31:11.059 --> 00:31:13.960
something to share publicly on that in the not

00:31:13.960 --> 00:31:17.000
too distant future, but we'll have to wait and

00:31:17.000 --> 00:31:21.200
see. Yeah, I just also want to thank John in

00:31:21.200 --> 00:31:24.359
the chat, who's been also putting in a bunch

00:31:24.359 --> 00:31:26.299
of useful links, which I'll put in the description

00:31:26.299 --> 00:31:28.640
of the podcast as well for those who do want

00:31:28.640 --> 00:31:31.240
to learn the command line and coding as well.

00:31:31.339 --> 00:31:34.119
So thank you so much for sharing those. And it's

00:31:34.119 --> 00:31:37.559
really valuable, as Galen said, to know coding

00:31:37.559 --> 00:31:40.819
for these kinds of tasks, but it's not exclusive.

00:31:41.640 --> 00:31:44.660
Joanna in the chat, a good colleague and the

00:31:44.660 --> 00:31:48.240
person, the brain behind the toolkit has asked

00:31:48.240 --> 00:31:50.799
Galen, what has been your favorite tool building

00:31:50.799 --> 00:31:54.680
experience so far? Why was it so fun? So it's

00:31:54.680 --> 00:31:58.640
a great question, Hannah. I think there are,

00:32:00.619 --> 00:32:02.920
I've enjoyed building lots of different tools.

00:32:03.099 --> 00:32:07.319
Um, for different reasons, I think, um, and I

00:32:07.319 --> 00:32:11.119
need to not let recency have an impact. I recently

00:32:11.119 --> 00:32:13.920
launched the council search tool, which is a

00:32:13.920 --> 00:32:18.680
UK and Ireland focus tool for finding verbatim,

00:32:18.680 --> 00:32:23.299
um, verbatim quotes from council meetings. Um,

00:32:23.299 --> 00:32:25.940
I'm very proud of that and it's very, um, it's

00:32:25.940 --> 00:32:30.079
very recent, but I think my, my favorite tool

00:32:30.079 --> 00:32:32.380
development experience has been the shadow finder

00:32:32.380 --> 00:32:37.930
tool. Because it came out of an idea in the community

00:32:37.930 --> 00:32:41.670
that I hadn't thought of before, I was aware

00:32:41.670 --> 00:32:45.450
of some of the methods that you can use for geolocation

00:32:45.450 --> 00:32:47.569
and chronolocation with the sun. And I was aware

00:32:47.569 --> 00:32:51.069
of websites like Suncalc. But the idea of running

00:32:51.069 --> 00:32:54.009
Suncalc backwards hadn't ever occurred to me.

00:32:54.089 --> 00:32:58.210
And so when Gabor Friesen came into the Discord

00:32:58.210 --> 00:33:02.309
and shared the idea, I thought, oh, that's really

00:33:02.309 --> 00:33:04.690
smart. That's really smart. It's probably not

00:33:04.690 --> 00:33:07.210
going to be useful all the time for every project,

00:33:07.210 --> 00:33:13.490
but maybe one in a thousand projects is going

00:33:13.490 --> 00:33:16.869
to hit against a brick wall where the geolocation

00:33:16.869 --> 00:33:20.809
is just super difficult. But you have this other

00:33:20.809 --> 00:33:23.589
kind of information. And I think that was the

00:33:23.589 --> 00:33:25.569
most rewarding for me, both because it kind of

00:33:25.569 --> 00:33:31.230
scratched that kind of intellectual itch. but

00:33:31.230 --> 00:33:35.170
also because it seemed to be a really valuable

00:33:35.170 --> 00:33:37.990
idea that came out of the community. So Gabor

00:33:37.990 --> 00:33:41.150
and I collaborated on building the tool, me doing

00:33:41.150 --> 00:33:43.710
the coding primarily, but then we would kind

00:33:43.710 --> 00:33:45.849
of iterate. I would share a version with him

00:33:45.849 --> 00:33:48.230
and we'd talk about what works and what didn't

00:33:48.230 --> 00:33:53.069
work. So I think having a partner in development

00:33:53.069 --> 00:33:55.430
really made that experience stand out for me.

00:33:55.599 --> 00:33:57.319
I'm just going to take the opportunity as well

00:33:57.319 --> 00:33:59.900
to shout out about the grid search tool. This

00:33:59.900 --> 00:34:02.980
is at grid .bellingcat .com. It's such a simple

00:34:02.980 --> 00:34:05.299
tool. It also came out of conversations with

00:34:05.299 --> 00:34:09.079
the community, but there was less iteration because

00:34:09.079 --> 00:34:12.559
it was such a simple need. Plainly, the idea

00:34:12.559 --> 00:34:15.920
is if you're doing a geolocation with five people

00:34:15.920 --> 00:34:18.840
trying to work systematically in an area, how

00:34:18.840 --> 00:34:21.239
are you going to coordinate the workload? What

00:34:21.239 --> 00:34:24.619
the grid tool lets you do is it lets you download

00:34:24.710 --> 00:34:29.590
a grid that goes over a map in Google Earth.

00:34:29.789 --> 00:34:32.550
And so you can say, right, I'm taking this section

00:34:32.550 --> 00:34:34.750
of grid cells. I'm taking this section of grid

00:34:34.750 --> 00:34:37.269
cells. And you can divide work and mean that

00:34:37.269 --> 00:34:39.409
people aren't double checking the same area.

00:34:40.690 --> 00:34:42.690
And yeah, it can help you keep track of areas

00:34:42.690 --> 00:34:47.869
you've already checked. So it is useful in like

00:34:47.869 --> 00:34:49.730
a few fronts. But it's such a simple tool. It

00:34:49.730 --> 00:34:52.090
just creates a KML file that you can download

00:34:52.090 --> 00:34:55.789
and open in Google Earth. It's really like the

00:34:55.789 --> 00:34:59.210
tech equivalent of getting a pencil and a ruler

00:34:59.210 --> 00:35:03.670
and drawing a grid on your map. Well, we're shouting

00:35:03.670 --> 00:35:06.250
out tools. You mentioned earlier that a new tool

00:35:06.250 --> 00:35:08.650
came out today. Do you want to share a little

00:35:08.650 --> 00:35:11.289
bit about what that tool is before we delve into

00:35:11.289 --> 00:35:15.699
other audience questions? Yeah, absolutely. You

00:35:15.699 --> 00:35:19.619
must cut me off if I rabbit on about it. Yeah,

00:35:19.699 --> 00:35:21.679
this is a tool that I've been working on lately

00:35:21.679 --> 00:35:24.760
and it's just reached the state where it's ready.

00:35:27.440 --> 00:35:32.719
It's a council search tool. This was born out

00:35:32.719 --> 00:35:36.059
of conversations with local journalists in the

00:35:36.059 --> 00:35:40.760
UK who one of the kind of classic local journalism

00:35:40.760 --> 00:35:44.219
tasks is attending council meetings or watching

00:35:44.219 --> 00:35:47.099
in the modern day, watching live streams of council

00:35:47.099 --> 00:35:51.280
meetings to see if anything scandalous happens

00:35:51.280 --> 00:35:53.900
or if there are any discussions about new developments

00:35:53.900 --> 00:35:58.679
or interesting things for a local journalist

00:35:58.679 --> 00:36:03.780
to cover. And one local journalist I was talking

00:36:03.780 --> 00:36:07.440
to said, yeah, I spent I spent every evening

00:36:07.440 --> 00:36:09.880
of my life doing this. And one day I got a real

00:36:09.880 --> 00:36:12.199
big scoop because they forgot to turn the recording

00:36:12.199 --> 00:36:15.119
off at the end. And I thought, oh, that's really

00:36:15.119 --> 00:36:19.300
interesting. And that's great if you've got the

00:36:19.300 --> 00:36:21.539
resources to do that. But I know that in the

00:36:21.539 --> 00:36:24.179
UK, at least, local journalism is one of those

00:36:24.179 --> 00:36:27.480
areas that's been consistently underfunded and

00:36:27.480 --> 00:36:31.639
undersupported over recent years. So anything

00:36:31.639 --> 00:36:34.400
for local journalists and local democracy researchers.

00:36:36.840 --> 00:36:40.019
to help them cover local council meetings seemed

00:36:40.019 --> 00:36:42.679
like a valuable addition. And what this tool

00:36:42.679 --> 00:36:45.880
does is it goes away and in the background, it

00:36:45.880 --> 00:36:48.920
grabs the transcripts associated with those live

00:36:48.920 --> 00:36:52.619
streams that councils put out there into the

00:36:52.619 --> 00:36:55.320
world, and it makes those transcripts searchable.

00:36:55.800 --> 00:36:59.019
So if you go to the search tool now, you would

00:36:59.019 --> 00:37:02.539
see a big search bar and you can type in things

00:37:02.539 --> 00:37:08.980
like off the record or That's outrageous. Or

00:37:08.980 --> 00:37:11.059
you could type in specific company names that

00:37:11.059 --> 00:37:13.840
you're interested in. And you can then start

00:37:13.840 --> 00:37:18.500
to see all of the meetings in which those terms

00:37:18.500 --> 00:37:20.699
have been mentioned. And the search tool gives

00:37:20.699 --> 00:37:22.760
you a little preview of the section of text.

00:37:23.579 --> 00:37:26.179
And crucially, there's a button that takes you

00:37:26.179 --> 00:37:29.440
to the source video. And if you click that button,

00:37:29.820 --> 00:37:31.739
it's going to take you not just to the page where

00:37:31.739 --> 00:37:33.980
the video is, but it's going to take you to exactly

00:37:33.980 --> 00:37:37.500
correct timestamp for the part that you searched.

00:37:39.280 --> 00:37:42.139
I'm really hopeful that this will become a powerful

00:37:42.139 --> 00:37:48.059
tool for local democracy researchers and local

00:37:48.059 --> 00:37:52.599
journalists. It's all open source and at the

00:37:52.599 --> 00:37:55.679
moment I just have written code to support one

00:37:55.679 --> 00:38:01.099
council multimedia provider and I have an aspiration

00:38:01.099 --> 00:38:03.760
that other folks who are interested and want

00:38:03.760 --> 00:38:06.420
to get involved will go out there and look at

00:38:06.420 --> 00:38:09.900
their local council or if you're not in the UK

00:38:09.900 --> 00:38:12.059
or Ireland, you'll look at a council that you've

00:38:12.059 --> 00:38:14.420
come across as part of an investigation or just

00:38:14.420 --> 00:38:16.340
the first one that came up on your Google search

00:38:16.340 --> 00:38:20.659
and you'll see what format they've used for their

00:38:20.659 --> 00:38:23.739
meeting streams and you'll see if you can reverse

00:38:23.739 --> 00:38:26.219
engineer that in a way that can add support for

00:38:26.219 --> 00:38:28.860
that council and to other councils that use the

00:38:28.860 --> 00:38:33.889
same provider into this tool. A current outstanding

00:38:33.889 --> 00:38:37.190
task is to support YouTube, which many councils

00:38:37.190 --> 00:38:41.909
use. I've not done that yet. And I think it would

00:38:41.909 --> 00:38:47.389
be really exciting to be able to support those

00:38:47.389 --> 00:38:50.190
many, many councils that use YouTube to archive

00:38:50.190 --> 00:38:53.110
their council meetings. One of the audience members

00:38:53.110 --> 00:38:56.329
has just put, reminds me of Filmot, a transcript

00:38:56.329 --> 00:38:58.869
search for YouTube. So maybe that's something

00:38:58.869 --> 00:39:02.889
to check out. Sarah says, that's sick. What a

00:39:02.889 --> 00:39:06.010
time saver. As someone who used to sit in council

00:39:06.010 --> 00:39:10.050
meetings as part of her job, I 100 % agree. They

00:39:10.050 --> 00:39:14.730
were hell. John asks, is this on GitHub as well?

00:39:15.050 --> 00:39:17.929
Because I know that most councils in the Netherlands

00:39:17.929 --> 00:39:21.730
publish this as well. Yes, it is on GitHub. So

00:39:21.730 --> 00:39:31.280
it's open sourced. So it, we have a hosted backend

00:39:31.280 --> 00:39:34.659
service for it. So we host the database for this

00:39:34.659 --> 00:39:37.960
tool. And that does all of the kind of scraping

00:39:37.960 --> 00:39:42.739
on the backend. But the front end is open source.

00:39:42.820 --> 00:39:49.739
The backend is open source. And if you, did you

00:39:49.739 --> 00:39:53.539
say it was the Netherlands? In the Netherlands,

00:39:53.719 --> 00:39:58.949
many councils publish. Yeah. I think adding different

00:39:58.949 --> 00:40:01.989
country support would be something that I would

00:40:01.989 --> 00:40:05.250
be excited to do. It's just not been something

00:40:05.250 --> 00:40:07.010
that's been in the initial scope of the project,

00:40:07.150 --> 00:40:09.449
but there's absolutely no reason from a technical

00:40:09.449 --> 00:40:12.670
perspective why that wouldn't work. Or indeed,

00:40:12.750 --> 00:40:15.909
if you wanted to host your own country -specific

00:40:15.909 --> 00:40:20.050
version of this, that would be amazing too. Please

00:40:20.050 --> 00:40:22.829
have a little play with that. Let us know if

00:40:22.829 --> 00:40:25.849
you come across any issues. You know the spaces

00:40:25.849 --> 00:40:28.530
in GitHub and the spaces are then here to flag

00:40:28.530 --> 00:40:32.809
that now. It's really, really important. And

00:40:32.809 --> 00:40:36.210
yeah, we wanted to really announce that today

00:40:36.210 --> 00:40:39.250
just so that you had a little tool, a new tool

00:40:39.250 --> 00:40:42.150
to play with after this talk. I'm just taking

00:40:42.150 --> 00:40:45.190
it back to building your own tools though, away

00:40:45.190 --> 00:40:49.130
from the current available tools. We had a question

00:40:49.130 --> 00:40:54.690
earlier about how EU nations are currently moving

00:40:54.690 --> 00:41:00.389
to free open source software away from Microsoft

00:41:00.389 --> 00:41:04.349
Office, for example. And they asked about what

00:41:04.349 --> 00:41:06.550
it meant for cyber security. But I had a wider

00:41:06.550 --> 00:41:09.349
question on that in terms of actually building

00:41:09.349 --> 00:41:13.429
open source tools. Are there any security issues

00:41:13.429 --> 00:41:18.199
that you need to consider when building and opening

00:41:18.199 --> 00:41:22.079
up your code to the world. This is one of the

00:41:22.079 --> 00:41:25.800
reasons why I'm quite a strong advocate for using

00:41:25.800 --> 00:41:29.119
those kind of Colab notebooks or producing a

00:41:29.119 --> 00:41:31.659
website that is static and runs entirely in a

00:41:31.659 --> 00:41:35.860
user's browser. Because in doing that, you kind

00:41:35.860 --> 00:41:39.099
of circumvent many of the security challenges

00:41:39.099 --> 00:41:42.320
of deploying a service like we've done with the

00:41:42.320 --> 00:41:46.489
council search tool. because then you have to

00:41:46.489 --> 00:41:49.329
make sure it's secured and you have to have some

00:41:49.329 --> 00:41:51.590
understanding of how to do that effectively.

00:41:55.289 --> 00:41:59.590
So yeah, there are definitely security concerns

00:41:59.590 --> 00:42:03.769
in publishing a tool, but if you make it so that

00:42:03.769 --> 00:42:08.250
it only runs on a used device and you're not

00:42:08.250 --> 00:42:10.610
loading malicious code onto people's computers,

00:42:12.140 --> 00:42:15.900
that's a really good thing. As long as you're

00:42:15.900 --> 00:42:18.360
not the security problem is I think what I'm

00:42:18.360 --> 00:42:22.579
saying. Following those tips circumvent a huge

00:42:22.579 --> 00:42:28.980
number of those issues. And then on the idea

00:42:28.980 --> 00:42:33.340
of open source tools were generally so there's

00:42:33.340 --> 00:42:36.880
a subtle distinction. that we encounter really

00:42:36.880 --> 00:42:39.599
frequently in the Bellingcat tool space is the

00:42:39.599 --> 00:42:42.159
difference between open source research and open

00:42:42.159 --> 00:42:46.079
source technology, open source code. So they're

00:42:46.079 --> 00:42:50.280
very similar, but slightly different. So with

00:42:50.280 --> 00:42:53.300
open source research, that means we're using

00:42:53.300 --> 00:42:58.199
open sources of information to conduct our investigations.

00:42:58.780 --> 00:43:01.639
And there an open source could require payment.

00:43:02.019 --> 00:43:05.340
So in Bellingcat investigations, we will sometimes

00:43:05.340 --> 00:43:07.639
use imagery from the satellite company Planet

00:43:07.639 --> 00:43:13.639
as part of our investigation. Now, that's open

00:43:13.639 --> 00:43:16.780
source in the sense that anyone could pay Planet

00:43:16.780 --> 00:43:20.519
for that imagery. And we also then publish the

00:43:20.519 --> 00:43:23.820
imagery server, kind of check our work. But it's

00:43:23.820 --> 00:43:27.800
not open source in the free and open source software

00:43:27.800 --> 00:43:31.519
sense, where all of the code is public and available

00:43:31.519 --> 00:43:34.889
for people to iterate on and improve. Now, incidentally,

00:43:34.889 --> 00:43:37.250
I think both sets of ideas are really compatible.

00:43:37.690 --> 00:43:40.809
It's why we publish so many of our tools in an

00:43:40.809 --> 00:43:45.230
open way, because it just fits the, it's a really

00:43:45.230 --> 00:43:47.849
good intersection between technical folks and

00:43:47.849 --> 00:43:51.690
research folks that I think can lead to really

00:43:51.690 --> 00:43:54.309
kind of fruitful relationships. And I think more

00:43:54.309 --> 00:44:00.409
and more as institutions move towards kind of

00:44:00.409 --> 00:44:04.800
open source tools, I think or I hope that the

00:44:04.800 --> 00:44:07.159
community around open source continues to grow

00:44:07.159 --> 00:44:10.119
and it helps just everyone build better tools

00:44:10.119 --> 00:44:12.139
in the long run. This is a question that comes

00:44:12.139 --> 00:44:15.039
up quite a lot when we're talking about tool

00:44:15.039 --> 00:44:18.940
building. Obviously people tend to think a lot

00:44:18.940 --> 00:44:25.000
at the minute about AI, one of the most common

00:44:25.000 --> 00:44:30.309
AI tools. that are kind of emerging at the minute

00:44:30.309 --> 00:44:33.510
is kind of these verification checkers. I had

00:44:33.510 --> 00:44:36.130
a conversation with someone very recently who

00:44:36.130 --> 00:44:39.269
is keen to build a similar one, and they're asking

00:44:39.269 --> 00:44:41.730
us about the types of disinformation and misinformation

00:44:41.730 --> 00:44:43.489
that we encounter, because that's something they're

00:44:43.489 --> 00:44:47.650
looking into. But Aries in the chat has asked

00:44:47.650 --> 00:44:52.409
an interesting question about how tools specifically

00:44:52.409 --> 00:44:56.230
are preparing, particularly when it comes to

00:44:56.280 --> 00:44:59.820
detection or counter misinformation tools, how

00:44:59.820 --> 00:45:04.239
they're preparing to cope with new AI misinformation

00:45:04.239 --> 00:45:09.019
and disinformation. What kind of architectural

00:45:09.019 --> 00:45:11.639
feature level innovations are on your mind to

00:45:11.639 --> 00:45:13.900
help investigators detect and counter misinformation

00:45:13.900 --> 00:45:16.619
while still leveraging AI effectively is the

00:45:16.619 --> 00:45:18.960
question. But I don't know if you've ever come

00:45:18.960 --> 00:45:23.400
across a tool that is 100 % reliable when it

00:45:23.400 --> 00:45:29.750
comes to identifying AI, I haven't. I know we've

00:45:29.750 --> 00:45:34.230
recommended some in the past with additional

00:45:34.230 --> 00:45:37.849
verification techniques, of course. But yeah,

00:45:37.909 --> 00:45:39.909
I don't know. Do you want to speak a little bit

00:45:39.909 --> 00:45:42.210
to that space that currently there's a lot of

00:45:42.210 --> 00:45:44.449
tool builders, developers kind of looking at

00:45:44.449 --> 00:45:50.050
and what that particular space looks like? Definitely.

00:45:50.230 --> 00:45:52.710
And I think there's a few strands to it as well.

00:45:52.730 --> 00:45:56.159
So I'll try and... speak to each of them as I

00:45:56.159 --> 00:46:00.360
see them, and hopefully that's useful. So I think,

00:46:01.699 --> 00:46:03.599
firstly, there's the whole space about like AI

00:46:03.599 --> 00:46:09.059
detection tool. AI detection tools are going,

00:46:09.219 --> 00:46:13.280
it's going to be a constant battle between AI

00:46:13.280 --> 00:46:18.039
detection tools and nefarious AI trainers. Of

00:46:18.039 --> 00:46:20.440
course, there may be cooperative solutions between

00:46:20.440 --> 00:46:25.260
like larger platform, but AI detection is like

00:46:25.260 --> 00:46:29.880
an adversarial exercise, will always be a kind

00:46:29.880 --> 00:46:33.440
of shifting ground. And I don't think, I don't

00:46:33.440 --> 00:46:39.639
think there will ever be a tool that delivers

00:46:39.639 --> 00:46:45.440
good results always and is consistent, like is

00:46:45.440 --> 00:46:47.599
ahead of the curve for a long period of time.

00:46:47.679 --> 00:46:49.480
It might be that a tool that is very effective

00:46:49.480 --> 00:46:52.639
one month. is going to be obsoleted with the

00:46:52.639 --> 00:46:56.039
next model release and its developers will have

00:46:56.039 --> 00:46:58.900
to go back to the drawing board to improve their

00:46:58.900 --> 00:47:03.679
detection model. But I think sometimes I think

00:47:03.679 --> 00:47:10.239
we risk focusing on detection tools when actually

00:47:10.239 --> 00:47:17.559
the kind of ecosystem of misinformation is perhaps

00:47:17.559 --> 00:47:19.699
a much more fruitful place to investigate. So

00:47:19.699 --> 00:47:22.840
I think to stay ahead of synthetic media and

00:47:22.840 --> 00:47:27.539
those advanced obfuscation approaches is almost

00:47:27.539 --> 00:47:31.820
to forget about the technical element. If you

00:47:31.820 --> 00:47:38.199
see an image online that is surprising or shocking,

00:47:39.039 --> 00:47:42.500
follow your nose and follow your investigative

00:47:42.500 --> 00:47:48.179
instincts and see, well, if there is a huge fire

00:47:48.179 --> 00:47:51.469
in this location, Why are all of the images this

00:47:51.469 --> 00:47:58.590
exact one angle? Can I find multiple images on

00:47:58.590 --> 00:48:01.150
social media posted by different sources, like

00:48:01.150 --> 00:48:06.309
beginning to build up a picture of the misinformation

00:48:06.309 --> 00:48:08.670
landscape around a particular event, I think

00:48:08.670 --> 00:48:11.929
is perhaps a more useful approach than putting

00:48:11.929 --> 00:48:17.429
an image into an AI image detector. Of course,

00:48:17.489 --> 00:48:20.289
there's a place for those detectors, but I think

00:48:20.289 --> 00:48:25.010
as the technology moves on and as things become

00:48:25.010 --> 00:48:27.329
more and more convincing and it becomes increasingly

00:48:27.329 --> 00:48:31.510
difficult to separate reality from a generation,

00:48:32.210 --> 00:48:37.349
I think it will become those contextual clues

00:48:37.349 --> 00:48:40.050
that provide the really kind of richest information.

00:48:41.869 --> 00:48:44.469
So I apologize, it's kind of a non -technical

00:48:44.469 --> 00:48:46.190
answer to the question and it's not a space that

00:48:46.190 --> 00:48:49.300
I'm a particular expert in. I know my colleague

00:48:49.300 --> 00:48:51.539
Kalina would probably have a much more intelligent

00:48:51.539 --> 00:48:58.619
answer to how to spot misinformation, particularly

00:48:58.619 --> 00:49:04.320
AI -generated misinformation. But I think it's

00:49:04.320 --> 00:49:07.119
an honest one. I don't think all problems have

00:49:07.119 --> 00:49:10.699
a tech solution. And that's probably quite an

00:49:10.699 --> 00:49:14.219
important lesson for those of you thinking of

00:49:14.219 --> 00:49:17.219
going into kind of or being involved with like

00:49:17.219 --> 00:49:20.440
tech development in this space is sometimes there

00:49:20.440 --> 00:49:23.360
are very human solutions to these problems as

00:49:23.360 --> 00:49:25.559
opposed to technical ones. Yeah, I can count.

00:49:25.800 --> 00:49:28.199
I can't even count on my hand the amount of times

00:49:28.199 --> 00:49:31.079
I've been asked by a journalist when I've been

00:49:31.079 --> 00:49:34.119
doing talks on disinformation. Is there like

00:49:34.119 --> 00:49:36.639
a tool that fixes this? It's like the answer

00:49:36.639 --> 00:49:40.579
is no. That's not the answer. The tool isn't

00:49:40.579 --> 00:49:44.320
the answer, as far as I'm aware. So I agree with

00:49:44.320 --> 00:49:46.340
you there. I wanted to ask though, in terms of

00:49:46.340 --> 00:49:48.500
when we're talking about updating tools and making

00:49:48.500 --> 00:49:52.699
sure that they're advancing enough with the tech.

00:49:53.219 --> 00:49:55.380
We've had some tools in the past, spelling out

00:49:55.380 --> 00:49:59.059
tools break when social platform policies have

00:49:59.059 --> 00:50:02.260
changed, right? How do you keep on top of that,

00:50:02.500 --> 00:50:04.539
particularly when you're building search tools,

00:50:04.880 --> 00:50:08.880
search across specific platforms? a tremendous

00:50:08.880 --> 00:50:13.880
amount of effort, frankly. I think there's not

00:50:13.880 --> 00:50:19.000
really a good way around it. If a tool that you're

00:50:19.000 --> 00:50:25.360
building relies on somebody else's service, then

00:50:25.360 --> 00:50:28.940
that is, as part of developing that tool, you

00:50:28.940 --> 00:50:31.280
have to understand that if you want to keep that

00:50:31.280 --> 00:50:34.000
tool working in the long run, you have to...

00:50:35.300 --> 00:50:37.599
you have to accept the possibility that that

00:50:37.599 --> 00:50:39.699
person could change how they're operating. This

00:50:39.699 --> 00:50:41.340
is particularly true in the world of scraping.

00:50:41.760 --> 00:50:44.340
So if anyone has tried to do any social media

00:50:44.340 --> 00:50:49.800
scraping in the last five years, frankly, you'll

00:50:49.800 --> 00:50:53.079
have found a plethora of tools, some of which

00:50:53.079 --> 00:50:55.119
are very good one week and terrible the next.

00:50:56.639 --> 00:51:00.280
some of which are kind of mediocre all the time,

00:51:00.400 --> 00:51:01.820
and some of which are just kind of terrible.

00:51:01.900 --> 00:51:04.340
But as far as I'm aware, there's no like consistently

00:51:04.340 --> 00:51:07.320
fantastic social media scrapers, because those

00:51:07.320 --> 00:51:10.099
social media platforms are constantly shifting.

00:51:10.139 --> 00:51:12.719
And so the amount of work required to keep up

00:51:12.719 --> 00:51:18.079
with them is significant. It doesn't mean it's

00:51:18.079 --> 00:51:20.079
not worth doing, but it's definitely a consideration

00:51:20.079 --> 00:51:23.260
when building a tool is thinking like, how, how

00:51:23.260 --> 00:51:26.510
do I keep this supported in the long run? It's

00:51:26.510 --> 00:51:29.050
why with a tool like the grid search tool, I'm

00:51:29.050 --> 00:51:31.590
super happy because that will, I hope, fingers

00:51:31.590 --> 00:51:34.309
crossed, require zero maintenance along because

00:51:34.309 --> 00:51:37.150
it does what it says. It does that one thing

00:51:37.150 --> 00:51:39.670
really well. And it lets you download a file

00:51:39.670 --> 00:51:42.329
format that's barely industry standard, which

00:51:42.329 --> 00:51:49.030
is a KML file format. So there's no shifting

00:51:49.030 --> 00:51:51.469
ground there. When it comes to tools that rely

00:51:51.469 --> 00:51:54.519
on third party services. That's a feature of

00:51:54.519 --> 00:51:57.960
the landscape. And I think you either accept

00:51:57.960 --> 00:52:00.000
that your tool is going to take a lot more of

00:52:00.000 --> 00:52:02.719
your time or you accept that at some point it's

00:52:02.719 --> 00:52:05.139
going to break. And that's just how it is. Yeah.

00:52:05.340 --> 00:52:08.500
And as you said at the beginning, I think simplicity

00:52:08.500 --> 00:52:11.139
is often key when you're thinking about applications,

00:52:11.480 --> 00:52:14.360
particularly. Do you often, within tool documentation,

00:52:14.480 --> 00:52:18.429
do you often have to assess? What devices can

00:52:18.429 --> 00:52:21.849
use your tools and in what regions tools are

00:52:21.849 --> 00:52:23.269
applicable as well? Is that something that's

00:52:23.269 --> 00:52:25.030
really useful to add into documentation, for

00:52:25.030 --> 00:52:28.190
example? If you have any, the general rule with

00:52:28.190 --> 00:52:31.010
tool documentation is if you have some insight

00:52:31.010 --> 00:52:33.090
that you think is useful to someone else, put

00:52:33.090 --> 00:52:35.769
it in the documentation. On a personal level,

00:52:36.150 --> 00:52:38.449
I don't think I have a tremendous amount of insight

00:52:38.449 --> 00:52:44.409
into what is... what are useful to folks in different

00:52:44.409 --> 00:52:47.610
regions. It's something that I have in mind and

00:52:47.610 --> 00:52:50.730
would like to better my understanding of so that

00:52:50.730 --> 00:52:52.750
we can build better tools that are more portable

00:52:52.750 --> 00:52:57.250
and more useful to a larger number of researchers.

00:52:58.769 --> 00:53:01.929
In terms of devices, it's a really good question

00:53:01.929 --> 00:53:08.030
because I think more and more journalists are

00:53:08.030 --> 00:53:10.840
doing things on their phone. more and more researchers

00:53:10.840 --> 00:53:13.420
will be doing things on the go. You might be

00:53:13.420 --> 00:53:15.619
on the train doing a little bit of research.

00:53:16.320 --> 00:53:20.300
So finding ways to make your tool suitable for

00:53:20.300 --> 00:53:23.179
mobile is like a really essential thing in modern

00:53:23.179 --> 00:53:28.380
landscape. And that is a downside of the Colab

00:53:28.380 --> 00:53:30.539
Notebooks, Jupyter Notebooks that I talked about

00:53:30.539 --> 00:53:32.460
earlier is that they are not very accessible

00:53:32.460 --> 00:53:36.059
for mobile device. You immediately cut out a

00:53:36.059 --> 00:53:38.199
significant fraction of your users or at least

00:53:40.179 --> 00:53:42.699
your users a significant fraction of the time

00:53:42.699 --> 00:53:46.440
when they're on the go. It's one of the things

00:53:46.440 --> 00:53:49.340
that I really like about using Vue, that's V

00:53:49.340 --> 00:53:52.199
-U -E, the JavaScript framework for front -end

00:53:52.199 --> 00:53:57.320
development, is kind of implicit in the design

00:53:57.320 --> 00:54:01.699
is a mobile -first approach, which means that

00:54:01.699 --> 00:54:05.599
your site will be good on mobile. So the council

00:54:05.599 --> 00:54:10.219
search tool should work on mobile. And you should

00:54:10.219 --> 00:54:13.179
have a perfectly good experience there. So thinking

00:54:13.179 --> 00:54:17.719
of that and testing for if your tool works on

00:54:17.719 --> 00:54:23.980
mobile is a really good thing to do. And I know

00:54:23.980 --> 00:54:25.719
it's something that we do. This is maybe a slight

00:54:25.719 --> 00:54:27.280
aside from tools, but it's something that we

00:54:27.280 --> 00:54:30.119
do when thinking about article content for Bellingcat

00:54:30.119 --> 00:54:35.480
stories is does the article look good on a tiny

00:54:35.480 --> 00:54:42.000
mobile phone? I'm just going to pull up my responsive

00:54:42.000 --> 00:54:45.159
design mode in my browser to give you a sense.

00:54:45.579 --> 00:54:48.039
So the size of phone screen that we test for

00:54:48.039 --> 00:54:52.340
if we're doing some interesting kind of novel

00:54:52.340 --> 00:54:58.079
experience in an article is 320 by 547 pixels.

00:54:58.820 --> 00:55:02.280
That's the screen size or the functional screen

00:55:02.280 --> 00:55:10.219
size of an iPhone 5. which is tiny. I can't overstate

00:55:10.219 --> 00:55:13.960
how small that is. So when you're building a

00:55:13.960 --> 00:55:15.840
tool, think about what's it going to look like

00:55:15.840 --> 00:55:18.619
on a tiny, tiny screen? What's it going to look

00:55:18.619 --> 00:55:21.280
like if that person on a tiny, tiny screen turns

00:55:21.280 --> 00:55:24.139
their phone into landscape mode? How is this

00:55:24.139 --> 00:55:25.840
tool going to look? Is it even going to be usable?

00:55:25.920 --> 00:55:27.460
Do we just have to tell them to turn their phone

00:55:27.460 --> 00:55:31.199
around? But if you can do that, that's such a

00:55:31.199 --> 00:55:37.329
valuable addition to a tool. If you can add those

00:55:37.329 --> 00:55:41.409
graceful degradations as people's screen sizes

00:55:41.409 --> 00:55:44.590
get smaller, as it becomes more and more difficult

00:55:44.590 --> 00:55:46.750
for them to access the functionality of the tool,

00:55:47.349 --> 00:55:51.010
let it lose its functionality in a graceful way.

00:55:51.110 --> 00:55:54.650
Tell the user that it would be better if they

00:55:54.650 --> 00:55:56.809
found a larger screen or turn their phone around.

00:55:57.469 --> 00:56:00.769
And make sure you do that. early on in the tool

00:56:00.769 --> 00:56:03.909
interface planning process. Because there's nothing

00:56:03.909 --> 00:56:06.889
more frustrating than if you've built this beautiful

00:56:06.889 --> 00:56:08.710
tool interface and then you test it on mobile

00:56:08.710 --> 00:56:13.449
last minute and it doesn't fit. That is gutting.

00:56:13.929 --> 00:56:16.389
So that would be my advice is to test it early.

00:56:17.329 --> 00:56:19.050
I'll let you know what I've cracked that one.

00:56:19.050 --> 00:56:21.889
Yeah, as you can with the council search tool,

00:56:22.170 --> 00:56:24.929
please do test that out for Galen on mobile as

00:56:24.929 --> 00:56:27.349
well. We are coming up to the end of the hour,

00:56:27.389 --> 00:56:29.769
so I wanted to ask you one last question. You

00:56:29.769 --> 00:56:34.230
mentioned at the beginning that most of the open

00:56:34.230 --> 00:56:38.010
source tools are free. If somebody does want

00:56:38.010 --> 00:56:41.250
to make a business out of this, make money, is

00:56:41.250 --> 00:56:46.010
that even possible within the open source formats

00:56:46.010 --> 00:56:48.989
or is that something that is just so anti the

00:56:48.989 --> 00:56:53.059
ethos that you don't recommend it? I don't recommend

00:56:53.059 --> 00:56:57.820
it, not because it's anti -the -ethos. So for

00:56:57.820 --> 00:57:01.780
instance, the Mozilla Foundation, they release

00:57:01.780 --> 00:57:05.960
the Firefox browser, which is an open source

00:57:05.960 --> 00:57:09.539
web browser. But they are also a commercial entity.

00:57:10.639 --> 00:57:13.039
And as I understand, part of their business model

00:57:13.039 --> 00:57:16.360
is providing support to organizations that want

00:57:16.360 --> 00:57:19.599
to use the open source tool at scale. And that's

00:57:19.599 --> 00:57:24.239
quite a common model. see in the open source

00:57:24.239 --> 00:57:26.440
software space is an organization publishing

00:57:26.440 --> 00:57:29.119
something for free and then selling services

00:57:29.119 --> 00:57:36.320
to help businesses use it at scale. So that kind

00:57:36.320 --> 00:57:39.940
of infrastructure support for larger, more complicated

00:57:39.940 --> 00:57:45.679
tools is an avenue where you can make a business

00:57:45.679 --> 00:57:51.130
out of it. I'm the wrong person to ask about

00:57:51.130 --> 00:57:58.670
developing proprietary tools because it's a different

00:57:58.670 --> 00:58:01.309
trust architecture to the one that we like using

00:58:01.309 --> 00:58:04.329
at Bellingcat, which is one where the method

00:58:04.329 --> 00:58:07.409
is very clear, the tools are very clear, and

00:58:07.409 --> 00:58:10.349
open source tools make their method implicitly

00:58:10.349 --> 00:58:15.909
transparent. If somebody wants to sell a tool

00:58:15.909 --> 00:58:17.570
that does a thing and you're not going to tell

00:58:17.570 --> 00:58:20.280
me how I do it, it makes it much harder for me

00:58:20.280 --> 00:58:22.820
to justify using it in an investigation. It's

00:58:22.820 --> 00:58:28.800
not impossible. Sometimes tools will unlock a

00:58:28.800 --> 00:58:31.599
level of analysis that is tremendously helpful

00:58:31.599 --> 00:58:35.440
and unsticks an investigation, but it then becomes

00:58:35.440 --> 00:58:37.400
a conversation about whether that tool should

00:58:37.400 --> 00:58:40.639
be used or not. And so I'm the wrong person to

00:58:40.639 --> 00:58:46.039
advocate for a paid tool ecosystem. Keep it open,

00:58:46.179 --> 00:58:49.530
keep it free is the message there. Thank you

00:58:49.530 --> 00:58:52.070
so much, Galen, for your time today. And thank

00:58:52.070 --> 00:58:54.309
you to everybody who's joined the audience. Please

00:58:54.309 --> 00:58:57.809
do check out the tech contributor space within

00:58:57.809 --> 00:59:01.750
the Discord. I'll pop it again in the chat now.

00:59:02.550 --> 00:59:06.190
It is a space for you to chat with Galen and

00:59:06.190 --> 00:59:10.110
others from our team and each other about possible

00:59:10.110 --> 00:59:12.829
tools. And you can see some of the ones in there

00:59:12.829 --> 00:59:15.070
that Galen is already talking to people about.

00:59:15.530 --> 00:59:18.429
And do check out our Bellingcat GitHub as well

00:59:18.429 --> 00:59:23.570
that has tons and tons and tons of useful tools

00:59:23.570 --> 00:59:25.710
on day. Experiment with them. And if you find

00:59:25.710 --> 00:59:27.909
an issue, please flag it to us so we can fix

00:59:27.909 --> 00:59:32.170
it quickly. Thank you again, Galen. This recording

00:59:32.170 --> 00:59:36.070
will hopefully be up on podcast platforms, which

00:59:36.070 --> 00:59:39.510
will be posted in here by this weekend. And we'll

00:59:39.510 --> 00:59:41.869
be back in two weeks time with another stage

00:59:41.869 --> 00:59:45.929
talk. But for now, thank you and goodbye. Thank

00:59:45.929 --> 00:59:48.489
you, Charlie, so much for hosting and moderating

00:59:48.489 --> 00:59:50.650
and keeping track of all questions. As always,

00:59:50.650 --> 00:59:53.769
you do a fantastic job. Oh, the flattery. The

00:59:53.769 --> 00:59:57.269
conversation's blowing. Thank you very much.

00:59:58.909 --> 01:00:02.110
Thank you for listening to the Stage Talk. If

01:00:02.110 --> 01:00:05.090
you'd like to catch a Stage Talk live where you

01:00:05.090 --> 01:00:07.969
can ask the guest questions, join the Bellingcat

01:00:07.969 --> 01:00:15.630
Discord server by visiting www .discord .gg The

01:00:15.630 --> 01:00:19.010
music you've heard is titled Dawn by Newer Self

01:00:19.010 --> 01:00:21.210
and is courtesy of Artlist.
