1 00:00:06,320 --> 00:00:11,499 [Music] 2 00:00:16,080 --> 00:00:19,600 hello everyone and welcome back from 3 00:00:17,920 --> 00:00:21,600 lunch hopefully the catering was as 4 00:00:19,600 --> 00:00:24,560 awesome as the catering was here 5 00:00:21,600 --> 00:00:26,160 um i would like to introduce simon uh 6 00:00:24,560 --> 00:00:28,080 simon will be discussing with us the 7 00:00:26,160 --> 00:00:31,199 architecture and software that they 8 00:00:28,080 --> 00:00:33,760 chose um in making their api public 9 00:00:31,199 --> 00:00:36,000 simon is a creative technologist at acme 10 00:00:33,760 --> 00:00:38,399 your museum of screen culture which is 11 00:00:36,000 --> 00:00:41,200 in melbourne a software developer 12 00:00:38,399 --> 00:00:44,239 maintainer at a new internationalist 13 00:00:41,200 --> 00:00:46,879 magazine and an open source uh software 14 00:00:44,239 --> 00:00:48,800 and hardware enthusiast uh he helped set 15 00:00:46,879 --> 00:00:51,280 up the mod which is the museum of 16 00:00:48,800 --> 00:00:54,239 discovery and hacker space in adelaide 17 00:00:51,280 --> 00:00:55,440 so on to you simon thank you 18 00:00:54,239 --> 00:00:56,399 thank you 19 00:00:55,440 --> 00:01:01,120 um 20 00:00:56,399 --> 00:01:01,120 i will set my screen sharing going 21 00:01:04,960 --> 00:01:07,439 okay 22 00:01:07,680 --> 00:01:11,840 so hi everybody uh first i'd like to 23 00:01:10,000 --> 00:01:13,920 acknowledge the ghana people as the 24 00:01:11,840 --> 00:01:16,000 traditional owners of the unseated lands 25 00:01:13,920 --> 00:01:18,880 that i'm speaking from today uh always 26 00:01:16,000 --> 00:01:21,439 was always would be aboriginal land 27 00:01:18,880 --> 00:01:24,000 and for those who haven't been to acne 28 00:01:21,439 --> 00:01:26,400 we meet your museum of screen culture in 29 00:01:24,000 --> 00:01:28,560 federation square melbourne victoria 30 00:01:26,400 --> 00:01:30,960 we usually have about 1.5 million 31 00:01:28,560 --> 00:01:32,720 visitors a year and our new experience 32 00:01:30,960 --> 00:01:34,400 the story of the moving image takes you 33 00:01:32,720 --> 00:01:38,720 on an interactive journey of screen 34 00:01:34,400 --> 00:01:40,560 culture in films video games tv and art 35 00:01:38,720 --> 00:01:41,600 it's also free so you should all come 36 00:01:40,560 --> 00:01:44,079 and visit 37 00:01:41,600 --> 00:01:46,320 um last year i talked about how we built 38 00:01:44,079 --> 00:01:49,520 the digital infrastructure and private 39 00:01:46,320 --> 00:01:52,840 apis that power acme uh including how we 40 00:01:49,520 --> 00:01:55,200 deploy about 400 raspberry pi's and dell 41 00:01:52,840 --> 00:01:56,799 microcomputers uh and this year i'm back 42 00:01:55,200 --> 00:01:59,520 to talk about the work that our team has 43 00:01:56,799 --> 00:02:01,439 done releasing our first public api 44 00:01:59,520 --> 00:02:02,740 uh you can see it in your browser at 45 00:02:01,439 --> 00:02:05,200 api.acme.net.edu 46 00:02:02,740 --> 00:02:06,840 [Music] 47 00:02:05,200 --> 00:02:09,759 that's a lovely little screenshot up 48 00:02:06,840 --> 00:02:13,120 here um so 49 00:02:09,759 --> 00:02:15,440 how uh why did we build it um 50 00:02:13,120 --> 00:02:17,920 we received public funding 51 00:02:15,440 --> 00:02:20,480 at acme so we figured that the data that 52 00:02:17,920 --> 00:02:23,120 we make should be public too 53 00:02:20,480 --> 00:02:26,239 and what do i mean by the data we make 54 00:02:23,120 --> 00:02:28,400 um well museum collections might include 55 00:02:26,239 --> 00:02:30,400 uh works that are held on behalf of 56 00:02:28,400 --> 00:02:33,040 communities whose intellectual property 57 00:02:30,400 --> 00:02:34,480 is owned by the creators until it enters 58 00:02:33,040 --> 00:02:36,400 the public domain 59 00:02:34,480 --> 00:02:38,560 um and also scholarly 60 00:02:36,400 --> 00:02:40,480 scholarly descriptive metadata about 61 00:02:38,560 --> 00:02:42,720 those works that museums create 62 00:02:40,480 --> 00:02:45,280 themselves so we're allowed to release 63 00:02:42,720 --> 00:02:47,920 the descriptive metadata um but not the 64 00:02:45,280 --> 00:02:51,120 works in most cases um 65 00:02:47,920 --> 00:02:53,440 uh cxo seb chan uh describes this really 66 00:02:51,120 --> 00:02:55,040 well so i'll just pop in a bit 67 00:02:53,440 --> 00:02:57,519 from him so he 68 00:02:55,040 --> 00:02:59,040 writes uh acme might hold a copy of mad 69 00:02:57,519 --> 00:03:01,280 max but 70 00:02:59,040 --> 00:03:03,040 owns no ip to release even when it 71 00:03:01,280 --> 00:03:05,440 digitizes that copy because the 72 00:03:03,040 --> 00:03:07,519 underlying work is still in copyright 73 00:03:05,440 --> 00:03:09,680 however acme owns all of the ip around 74 00:03:07,519 --> 00:03:11,200 what it says about mad max and can 75 00:03:09,680 --> 00:03:12,319 release that without seeking additional 76 00:03:11,200 --> 00:03:15,360 permissions 77 00:03:12,319 --> 00:03:17,200 so other museums hold things whose 78 00:03:15,360 --> 00:03:19,440 underlying ip is now in the public 79 00:03:17,200 --> 00:03:20,959 domain because they are so old 80 00:03:19,440 --> 00:03:22,080 this allows them to release the work 81 00:03:20,959 --> 00:03:24,560 itself 82 00:03:22,080 --> 00:03:26,560 acme's collection is very young 83 00:03:24,560 --> 00:03:28,799 and doesn't have this option 84 00:03:26,560 --> 00:03:30,959 we do have some works that were 85 00:03:28,799 --> 00:03:32,879 produced as government films 86 00:03:30,959 --> 00:03:34,640 and so they fall under the crown 87 00:03:32,879 --> 00:03:36,000 copyright as well as other works that 88 00:03:34,640 --> 00:03:38,080 are called orphan works because they 89 00:03:36,000 --> 00:03:39,760 have no known copyright owner 90 00:03:38,080 --> 00:03:41,680 uh there are a third set of works whose 91 00:03:39,760 --> 00:03:43,840 creators have given us limited rights to 92 00:03:41,680 --> 00:03:46,879 release on other platforms controlled 93 00:03:43,840 --> 00:03:50,239 and administered by acme and these are 94 00:03:46,879 --> 00:03:50,239 what are on our youtube channel 95 00:03:50,480 --> 00:03:55,040 um another reason we wanted to build it 96 00:03:52,640 --> 00:03:57,280 is for regular updates so our last 97 00:03:55,040 --> 00:03:58,720 starter release was five years ago and 98 00:03:57,280 --> 00:04:02,799 we'd really like to release more 99 00:03:58,720 --> 00:04:05,599 frequently so nightly if possible 100 00:04:02,799 --> 00:04:08,319 uh we wanted to build for accessibility 101 00:04:05,599 --> 00:04:09,599 so when we build the public labels api 102 00:04:08,319 --> 00:04:11,439 um 103 00:04:09,599 --> 00:04:13,439 that one is what we're going to use so 104 00:04:11,439 --> 00:04:15,200 that visitors can translate and read all 105 00:04:13,439 --> 00:04:18,160 of the labels that appear at acme using 106 00:04:15,200 --> 00:04:18,160 their own screen readers 107 00:04:18,239 --> 00:04:22,880 and we also wanted to be able to create 108 00:04:20,880 --> 00:04:24,479 more rich data links 109 00:04:22,880 --> 00:04:26,479 so that we can match collections data 110 00:04:24,479 --> 00:04:28,639 with other institutions so this might 111 00:04:26,479 --> 00:04:30,720 include ids from other film collections 112 00:04:28,639 --> 00:04:33,600 like the dff in germany or else data 113 00:04:30,720 --> 00:04:36,000 sources like wikitata 114 00:04:33,600 --> 00:04:38,000 and we also love experimentation so we 115 00:04:36,000 --> 00:04:40,560 wanted to build applications that extend 116 00:04:38,000 --> 00:04:42,639 and transform our data 117 00:04:40,560 --> 00:04:44,800 and uh public api is super useful for 118 00:04:42,639 --> 00:04:44,800 that 119 00:04:45,440 --> 00:04:49,840 so uh before we built it we needed to 120 00:04:48,160 --> 00:04:50,800 answer who we were really building it 121 00:04:49,840 --> 00:04:52,960 for 122 00:04:50,800 --> 00:04:55,280 um primarily we're building it for 123 00:04:52,960 --> 00:04:57,199 researchers who might use a study 124 00:04:55,280 --> 00:04:59,040 representation and demographics in our 125 00:04:57,199 --> 00:05:02,160 data 126 00:04:59,040 --> 00:05:03,600 we also thought we should build it for 127 00:05:02,160 --> 00:05:05,520 technologists 128 00:05:03,600 --> 00:05:07,759 and take that into account so envisage 129 00:05:05,520 --> 00:05:10,160 them using it in hackathons and to build 130 00:05:07,759 --> 00:05:12,320 visualizations 131 00:05:10,160 --> 00:05:14,560 we also need it for internal use 132 00:05:12,320 --> 00:05:16,639 so we've got three teams technical teams 133 00:05:14,560 --> 00:05:18,560 at acme the audio visual team the 134 00:05:16,639 --> 00:05:20,479 information technology team and also the 135 00:05:18,560 --> 00:05:21,840 team that i belong to experience in 136 00:05:20,479 --> 00:05:23,120 digital 137 00:05:21,840 --> 00:05:24,880 and we've all got creative people in 138 00:05:23,120 --> 00:05:26,800 there who love writing code so the 139 00:05:24,880 --> 00:05:29,360 public api allows us to develop 140 00:05:26,800 --> 00:05:32,320 applications with our collections data 141 00:05:29,360 --> 00:05:34,960 without the fear of bringing down the 142 00:05:32,320 --> 00:05:36,800 private museums api um because that 143 00:05:34,960 --> 00:05:39,680 would suck 144 00:05:36,800 --> 00:05:41,759 um and we also built it for you so we 145 00:05:39,680 --> 00:05:43,440 would love to hear what you think of it 146 00:05:41,759 --> 00:05:47,039 if there's anything we can improve and 147 00:05:43,440 --> 00:05:49,280 most importantly what you build with it 148 00:05:47,039 --> 00:05:53,840 um here are a couple of examples from 149 00:05:49,280 --> 00:05:55,280 rmit students who used our 2016 metadata 150 00:05:53,840 --> 00:05:59,120 so here they explore gender 151 00:05:55,280 --> 00:06:00,800 representation uh on the left and also 152 00:05:59,120 --> 00:06:03,039 the country of origin of works in our 153 00:06:00,800 --> 00:06:05,520 collection on the right 154 00:06:03,039 --> 00:06:06,960 they generated these images using the 155 00:06:05,520 --> 00:06:08,160 metadata spreadsheet that we really 156 00:06:06,960 --> 00:06:09,919 expect them 157 00:06:08,160 --> 00:06:13,199 but with the public api these could now 158 00:06:09,919 --> 00:06:13,199 be live and interactive 159 00:06:15,440 --> 00:06:20,479 so this is a big dependency map of xos 160 00:06:19,280 --> 00:06:21,919 that we built 161 00:06:20,479 --> 00:06:23,199 last year that i presented last year at 162 00:06:21,919 --> 00:06:24,880 the conference 163 00:06:23,199 --> 00:06:26,880 and all of the applications it serves in 164 00:06:24,880 --> 00:06:28,479 our museum and external facing websites 165 00:06:26,880 --> 00:06:30,560 um don't worry if you can't read it it's 166 00:06:28,479 --> 00:06:31,919 just to give you an idea of all the 167 00:06:30,560 --> 00:06:34,000 things 168 00:06:31,919 --> 00:06:35,039 so as you can see a lot depends on the 169 00:06:34,000 --> 00:06:36,720 xos 170 00:06:35,039 --> 00:06:39,120 uptime and performance 171 00:06:36,720 --> 00:06:40,960 and hence the need for a public ati api 172 00:06:39,120 --> 00:06:43,199 not to put any extra strain on it during 173 00:06:40,960 --> 00:06:46,080 museum opening hours 174 00:06:43,199 --> 00:06:49,360 um the private apis it exposes currently 175 00:06:46,080 --> 00:06:52,080 uh the taps when people tap their lens 176 00:06:49,360 --> 00:06:55,280 uh a lenses api for the lens itself for 177 00:06:52,080 --> 00:06:58,560 constellations works creators playlists 178 00:06:55,280 --> 00:07:00,800 monitor devices labels images and videos 179 00:06:58,560 --> 00:07:02,880 so over time we'll release all these as 180 00:07:00,800 --> 00:07:04,720 open apis 181 00:07:02,880 --> 00:07:06,720 but first we wanted to focus on the 182 00:07:04,720 --> 00:07:09,280 collection works api which is the one 183 00:07:06,720 --> 00:07:11,120 i'm talking about now 184 00:07:09,280 --> 00:07:12,240 so how do we build it 185 00:07:11,120 --> 00:07:14,720 um 186 00:07:12,240 --> 00:07:16,960 so we had xos which is our museum 187 00:07:14,720 --> 00:07:17,840 operating system 188 00:07:16,960 --> 00:07:20,800 and 189 00:07:17,840 --> 00:07:22,560 that was really lovely and so what we 190 00:07:20,800 --> 00:07:23,919 wanted to build 191 00:07:22,560 --> 00:07:26,400 was 192 00:07:23,919 --> 00:07:28,880 a glorified offline cache that was 193 00:07:26,400 --> 00:07:32,400 serving json from the file system 194 00:07:28,880 --> 00:07:34,560 um and so the public code repository of 195 00:07:32,400 --> 00:07:36,960 the public api that we've released 196 00:07:34,560 --> 00:07:38,479 includes the api server software itself 197 00:07:36,960 --> 00:07:41,039 as well as the 198 00:07:38,479 --> 00:07:43,680 collections metadata in both json and 199 00:07:41,039 --> 00:07:47,039 tsv file formats 200 00:07:43,680 --> 00:07:50,160 so most of the rights filtering is done 201 00:07:47,039 --> 00:07:51,680 in xos and that inherits the logic from 202 00:07:50,160 --> 00:07:54,080 our collections 203 00:07:51,680 --> 00:07:56,960 cms which is called vernon 204 00:07:54,080 --> 00:07:58,639 but some of the last minute tasks 205 00:07:56,960 --> 00:08:00,400 or we had some last minute risk adverse 206 00:07:58,639 --> 00:08:01,759 decisions by the organization which 207 00:08:00,400 --> 00:08:04,319 meant we had to do a little bit more 208 00:08:01,759 --> 00:08:05,599 rights filtering on the public api so 209 00:08:04,319 --> 00:08:07,199 um 210 00:08:05,599 --> 00:08:08,960 we've got some logic that we're going to 211 00:08:07,199 --> 00:08:11,120 roll back into xos 212 00:08:08,960 --> 00:08:13,280 after we've built the business decision 213 00:08:11,120 --> 00:08:14,960 fields into vernon so it'll get cleaner 214 00:08:13,280 --> 00:08:16,800 over time which is great 215 00:08:14,960 --> 00:08:18,639 um but having the api code in the 216 00:08:16,800 --> 00:08:20,479 metadata on the one repo 217 00:08:18,639 --> 00:08:22,240 uh means that researchers can get clone 218 00:08:20,479 --> 00:08:23,440 our repo and have all of the data ready 219 00:08:22,240 --> 00:08:25,840 to go 220 00:08:23,440 --> 00:08:28,319 plus it also isolates our private museum 221 00:08:25,840 --> 00:08:29,599 apis completely from the public so that 222 00:08:28,319 --> 00:08:32,879 they don't have any chance of 223 00:08:29,599 --> 00:08:32,879 accidentally breaking things either 224 00:08:33,919 --> 00:08:39,360 so what we used was alpine linux docker 225 00:08:37,680 --> 00:08:41,760 container 226 00:08:39,360 --> 00:08:42,959 the main reasons are it's small secure 227 00:08:41,760 --> 00:08:45,200 fast 228 00:08:42,959 --> 00:08:46,080 you can do repeatable builds and use the 229 00:08:45,200 --> 00:08:47,760 same 230 00:08:46,080 --> 00:08:50,480 image for development and production 231 00:08:47,760 --> 00:08:52,720 which is really nice 232 00:08:50,480 --> 00:08:55,200 in terms of the underlying software 233 00:08:52,720 --> 00:08:56,800 the majority of our code acme is written 234 00:08:55,200 --> 00:08:58,880 in python so the dream result was a 235 00:08:56,800 --> 00:09:00,560 python based framework with minimal 236 00:08:58,880 --> 00:09:02,160 dependencies that was quick and easy to 237 00:09:00,560 --> 00:09:06,080 prototype and develop 238 00:09:02,160 --> 00:09:06,080 so flask was really good choice for that 239 00:09:06,959 --> 00:09:11,760 in terms of search we went with um 240 00:09:09,519 --> 00:09:13,920 elastic cloud in production 241 00:09:11,760 --> 00:09:15,760 uh and a matched elasticsearch docker 242 00:09:13,920 --> 00:09:17,680 image for development so the same 243 00:09:15,760 --> 00:09:20,640 re-indexing code runs on staging and 244 00:09:17,680 --> 00:09:22,720 development which allows us for easy 245 00:09:20,640 --> 00:09:25,120 updates and testing and bug fixing which 246 00:09:22,720 --> 00:09:25,120 is great 247 00:09:25,920 --> 00:09:31,279 in terms of the infrastructure 248 00:09:28,480 --> 00:09:32,640 the acme ict team has a background with 249 00:09:31,279 --> 00:09:34,320 microsoft 250 00:09:32,640 --> 00:09:37,040 so we use terraform to build the 251 00:09:34,320 --> 00:09:39,440 infrastructure on azure services 252 00:09:37,040 --> 00:09:41,680 making use of horizontal auto scaling to 253 00:09:39,440 --> 00:09:45,040 handle temporary load increases if the 254 00:09:41,680 --> 00:09:46,880 api cpus average 70 or higher for a 255 00:09:45,040 --> 00:09:47,680 significant amount of time 256 00:09:46,880 --> 00:09:49,120 um 257 00:09:47,680 --> 00:09:50,720 we're finding terraform pretty good 258 00:09:49,120 --> 00:09:52,160 because it makes spinning up new servers 259 00:09:50,720 --> 00:09:54,080 quite easy 260 00:09:52,160 --> 00:09:57,600 though it adds quite a bit more tech 261 00:09:54,080 --> 00:09:57,600 debt to our small team of two dabs 262 00:09:58,720 --> 00:10:01,519 in terms of 263 00:10:00,080 --> 00:10:02,959 nightly updates 264 00:10:01,519 --> 00:10:05,279 to the api 265 00:10:02,959 --> 00:10:07,680 um while building a separate repo for 266 00:10:05,279 --> 00:10:10,320 the api updater i realized that a cron 267 00:10:07,680 --> 00:10:13,040 job in the actual public api code repo 268 00:10:10,320 --> 00:10:16,399 could do the same job so now cronjob 269 00:10:13,040 --> 00:10:19,360 runs the same code which calls our xos 270 00:10:16,399 --> 00:10:20,720 private works api uh it downloads the 271 00:10:19,360 --> 00:10:23,440 json blobs 272 00:10:20,720 --> 00:10:26,160 and saves them to the file system 273 00:10:23,440 --> 00:10:28,079 and then we've got another little bit of 274 00:10:26,160 --> 00:10:30,079 code that removes the image and videos 275 00:10:28,079 --> 00:10:32,480 that we don't have rights to and once 276 00:10:30,079 --> 00:10:34,000 it's finished it just checks for the git 277 00:10:32,480 --> 00:10:36,160 changes 278 00:10:34,000 --> 00:10:38,079 if it finds them then it pushes those 279 00:10:36,160 --> 00:10:40,240 changes back to 280 00:10:38,079 --> 00:10:42,720 the code the github repo 281 00:10:40,240 --> 00:10:44,640 which triggers a github action to run 282 00:10:42,720 --> 00:10:47,120 the linting and tests before deploying 283 00:10:44,640 --> 00:10:50,399 the changes to staging on top of itself 284 00:10:47,120 --> 00:10:53,600 which is quite cool so that's how 285 00:10:50,399 --> 00:10:56,000 it updates the code repo by itself 286 00:10:53,600 --> 00:10:58,160 um we have an environment variable for 287 00:10:56,000 --> 00:11:00,720 toggling updates via terraform 288 00:10:58,160 --> 00:11:02,640 um in a config map so this makes it 289 00:11:00,720 --> 00:11:05,200 really easy to turn off any updates if 290 00:11:02,640 --> 00:11:07,040 um without any code changes the api repo 291 00:11:05,200 --> 00:11:09,040 just in case we have any problems 292 00:11:07,040 --> 00:11:12,160 and we also have environment variables 293 00:11:09,040 --> 00:11:14,000 for including images and videos so 294 00:11:12,160 --> 00:11:15,680 over time as we've got all the rights 295 00:11:14,000 --> 00:11:17,360 ready uh we'll add them to the public 296 00:11:15,680 --> 00:11:20,320 api just via a 297 00:11:17,360 --> 00:11:23,519 terraform toggle which is cool 298 00:11:20,320 --> 00:11:27,279 um in production uh we trigger manual 299 00:11:23,519 --> 00:11:28,720 releases uh weekly and this is done by 300 00:11:27,279 --> 00:11:30,240 github 301 00:11:28,720 --> 00:11:31,600 after we've done some data validation on 302 00:11:30,240 --> 00:11:33,120 staging just to make sure we haven't 303 00:11:31,600 --> 00:11:35,680 broken anything 304 00:11:33,120 --> 00:11:38,480 and then we use unicorn server to serve 305 00:11:35,680 --> 00:11:38,480 the json to you 306 00:11:39,600 --> 00:11:42,160 in development 307 00:11:40,800 --> 00:11:44,079 we provide an environment variable to 308 00:11:42,160 --> 00:11:46,399 switch between the flask server while 309 00:11:44,079 --> 00:11:47,760 building new features so you can do 310 00:11:46,399 --> 00:11:50,160 hot reloading 311 00:11:47,760 --> 00:11:51,600 and also the genocon server for testing 312 00:11:50,160 --> 00:11:52,720 as well just if you want to test the 313 00:11:51,600 --> 00:11:55,200 production 314 00:11:52,720 --> 00:11:57,760 server on your laptop too 315 00:11:55,200 --> 00:11:59,839 um so i thought i'd give a quick demo of 316 00:11:57,760 --> 00:12:02,079 how all of that runs using docker 317 00:11:59,839 --> 00:12:02,800 compose 318 00:12:02,079 --> 00:12:05,680 so 319 00:12:02,800 --> 00:12:08,160 um we pull a clone of the repo 320 00:12:05,680 --> 00:12:10,560 we see the insert development folder and 321 00:12:08,160 --> 00:12:13,760 then simply run docker composer 322 00:12:10,560 --> 00:12:17,279 and that starts the api search container 323 00:12:13,760 --> 00:12:20,320 with elasticsearch and also the api 324 00:12:17,279 --> 00:12:22,639 itself so here it is running 325 00:12:20,320 --> 00:12:24,639 um if we switch over to our browser and 326 00:12:22,639 --> 00:12:26,399 head to port 8081 327 00:12:24,639 --> 00:12:28,959 uh there you can see it 328 00:12:26,399 --> 00:12:31,680 um so you can also go to works and see 329 00:12:28,959 --> 00:12:32,800 an index page of all the 42 000 330 00:12:31,680 --> 00:12:35,120 um 331 00:12:32,800 --> 00:12:36,320 files there and you can also paste in 332 00:12:35,120 --> 00:12:40,720 the id 333 00:12:36,320 --> 00:12:42,240 and grab like a one object uh returned 334 00:12:40,720 --> 00:12:43,760 and this is just showing that the the 335 00:12:42,240 --> 00:12:46,160 search works locally as well so that's 336 00:12:43,760 --> 00:12:48,880 elasticsearch returning the results 337 00:12:46,160 --> 00:12:48,880 of a search too 338 00:12:49,279 --> 00:12:56,480 so um what were the results um so 339 00:12:52,880 --> 00:12:58,880 without any optimization to unicorn yet 340 00:12:56,480 --> 00:12:59,680 um this is the speed that we got coming 341 00:12:58,880 --> 00:13:01,760 back 342 00:12:59,680 --> 00:13:03,920 for all of our requests so when they're 343 00:13:01,760 --> 00:13:06,800 about three requests a second it's about 344 00:13:03,920 --> 00:13:08,240 158 milliseconds going up to 18 requests 345 00:13:06,800 --> 00:13:10,959 a second about 346 00:13:08,240 --> 00:13:14,480 you know half a second so um that's 347 00:13:10,959 --> 00:13:17,360 running pretty well for 100 a month 348 00:13:14,480 --> 00:13:20,800 um and this is on the standard azure 349 00:13:17,360 --> 00:13:23,519 d2v2 nodes 350 00:13:20,800 --> 00:13:25,440 in terms of time to build this 351 00:13:23,519 --> 00:13:27,600 the first commit we made just doing the 352 00:13:25,440 --> 00:13:29,519 rough prototypes using flask was on the 353 00:13:27,600 --> 00:13:32,079 5th of july 354 00:13:29,519 --> 00:13:33,760 and then on the 23rd of september we had 355 00:13:32,079 --> 00:13:35,279 our infrastructure running and 356 00:13:33,760 --> 00:13:36,320 everything running in production which 357 00:13:35,279 --> 00:13:37,920 was cool 358 00:13:36,320 --> 00:13:40,320 so that gave us a lot of time to do the 359 00:13:37,920 --> 00:13:42,480 final touches for the 11th of november 360 00:13:40,320 --> 00:13:43,360 so about four months 361 00:13:42,480 --> 00:13:46,000 um 362 00:13:43,360 --> 00:13:48,320 in terms of dependencies and security um 363 00:13:46,000 --> 00:13:50,480 because of the limited number of alpine 364 00:13:48,320 --> 00:13:52,240 and python dependencies we don't pin 365 00:13:50,480 --> 00:13:54,320 dependencies at all so they update 366 00:13:52,240 --> 00:13:56,399 nightly with every build giving us a 367 00:13:54,320 --> 00:13:58,160 pretty reasonable security posture which 368 00:13:56,399 --> 00:13:59,120 is nice 369 00:13:58,160 --> 00:14:01,440 um 370 00:13:59,120 --> 00:14:03,440 and we've documented everything over at 371 00:14:01,440 --> 00:14:05,040 acme dot ju 372 00:14:03,440 --> 00:14:07,120 api so 373 00:14:05,040 --> 00:14:08,560 hopefully the document is documentation 374 00:14:07,120 --> 00:14:09,360 is easy to read but 375 00:14:08,560 --> 00:14:11,519 um 376 00:14:09,360 --> 00:14:14,240 have a go let me know if it needs any 377 00:14:11,519 --> 00:14:14,240 updates or anything 378 00:14:15,040 --> 00:14:20,720 um we've also got a blog post um with a 379 00:14:18,720 --> 00:14:23,600 bit more history and some prototypes so 380 00:14:20,720 --> 00:14:24,560 you can pop there at labs.acme.nb 381 00:14:23,600 --> 00:14:26,720 um 382 00:14:24,560 --> 00:14:28,160 and in terms of the prototypes um 383 00:14:26,720 --> 00:14:29,760 because we found the majority of bugs 384 00:14:28,160 --> 00:14:31,839 early in our testing 385 00:14:29,760 --> 00:14:34,000 because we built the private apis 386 00:14:31,839 --> 00:14:36,160 that was great but using the public api 387 00:14:34,000 --> 00:14:38,800 ourselves for prototypes helped uncover 388 00:14:36,160 --> 00:14:40,720 a few more which was really useful 389 00:14:38,800 --> 00:14:41,839 so both the prototype applications we 390 00:14:40,720 --> 00:14:44,160 built 391 00:14:41,839 --> 00:14:45,760 run in jupyter notebooks which means 392 00:14:44,160 --> 00:14:47,600 they can be run for free on google 393 00:14:45,760 --> 00:14:49,120 collab online so you don't need to run 394 00:14:47,600 --> 00:14:49,839 any of this code on your own computer if 395 00:14:49,120 --> 00:14:51,680 you're 396 00:14:49,839 --> 00:14:54,320 um ultra paranoid 397 00:14:51,680 --> 00:14:56,720 or just usually paranoid 398 00:14:54,320 --> 00:14:58,079 um so the first one we built was machine 399 00:14:56,720 --> 00:14:59,120 dreaming 400 00:14:58,079 --> 00:15:02,720 this one 401 00:14:59,120 --> 00:15:04,399 generates images from our works metadata 402 00:15:02,720 --> 00:15:06,320 so we thought it might be useful seeing 403 00:15:04,399 --> 00:15:08,880 that we didn't actually release the 404 00:15:06,320 --> 00:15:10,720 images and videos for launch 405 00:15:08,880 --> 00:15:13,519 and the second one 406 00:15:10,720 --> 00:15:15,519 matches wiki data biographies to 407 00:15:13,519 --> 00:15:18,399 acme creators 408 00:15:15,519 --> 00:15:20,959 so there so that's quite cool too 409 00:15:18,399 --> 00:15:22,560 um then since we've released it we've 410 00:15:20,959 --> 00:15:26,240 had some public use which is really 411 00:15:22,560 --> 00:15:28,240 really nice um so paul from nfsa which 412 00:15:26,240 --> 00:15:31,040 is the national film and sound archive 413 00:15:28,240 --> 00:15:34,720 of australia uh he used the api to match 414 00:15:31,040 --> 00:15:36,639 acme works to wikidata entities so um 415 00:15:34,720 --> 00:15:38,160 we started matching craters he's 416 00:15:36,639 --> 00:15:39,519 matching works now and it's really 417 00:15:38,160 --> 00:15:40,480 really lovely 418 00:15:39,519 --> 00:15:43,279 um 419 00:15:40,480 --> 00:15:45,120 the other use was by aaron from san 420 00:15:43,279 --> 00:15:47,279 francisco museum 421 00:15:45,120 --> 00:15:49,199 he matched acme accession numbers to 422 00:15:47,279 --> 00:15:51,440 website urls which is going to be really 423 00:15:49,199 --> 00:15:53,600 handy for accessible accessibility 424 00:15:51,440 --> 00:15:57,120 labels so he's working on a project so 425 00:15:53,600 --> 00:15:59,839 that all museums can share this code um 426 00:15:57,120 --> 00:16:01,440 which will read a museum label and take 427 00:15:59,839 --> 00:16:03,519 you directly to the website which is 428 00:16:01,440 --> 00:16:04,800 very cool 429 00:16:03,519 --> 00:16:06,720 uh the other thing we learned about just 430 00:16:04,800 --> 00:16:07,839 recently is that wikimedia australia 431 00:16:06,720 --> 00:16:09,600 have launched a thousand dollar 432 00:16:07,839 --> 00:16:11,279 fellowships um 433 00:16:09,600 --> 00:16:13,440 and they're featuring the acme public 434 00:16:11,279 --> 00:16:14,240 api as an example project 435 00:16:13,440 --> 00:16:15,279 so 436 00:16:14,240 --> 00:16:16,800 if you're into data you should 437 00:16:15,279 --> 00:16:19,519 definitely apply for that 438 00:16:16,800 --> 00:16:19,519 looks really fun 439 00:16:20,079 --> 00:16:26,639 so um here you can see the first machine 440 00:16:23,440 --> 00:16:29,279 dreaming prototype um that we created so 441 00:16:26,639 --> 00:16:30,959 this is using the metadata from um the 442 00:16:29,279 --> 00:16:32,240 matrix 443 00:16:30,959 --> 00:16:33,680 and so 444 00:16:32,240 --> 00:16:35,600 i don't know if you know i'll give you a 445 00:16:33,680 --> 00:16:37,199 little bit of history about gans so gans 446 00:16:35,600 --> 00:16:38,720 are machine learning models that pit one 447 00:16:37,199 --> 00:16:40,560 network that generates the output 448 00:16:38,720 --> 00:16:42,240 against another that classifies that 449 00:16:40,560 --> 00:16:44,480 output 450 00:16:42,240 --> 00:16:46,639 so they're used a lot in generative 451 00:16:44,480 --> 00:16:49,199 music texts and images 452 00:16:46,639 --> 00:16:51,040 and vqgan plus clip which is 453 00:16:49,199 --> 00:16:53,199 what we're using here 454 00:16:51,040 --> 00:16:54,639 that combines 455 00:16:53,199 --> 00:16:57,360 machine learning models that generate 456 00:16:54,639 --> 00:16:59,759 the image from text 457 00:16:57,360 --> 00:17:03,199 so that's we use that to 458 00:16:59,759 --> 00:17:04,720 pass the acme metadata in this case 459 00:17:03,199 --> 00:17:06,480 it's split 460 00:17:04,720 --> 00:17:09,120 so we pass in the title first and then 461 00:17:06,480 --> 00:17:10,959 the um brief description 462 00:17:09,120 --> 00:17:13,280 uh all split by a maximum number of 463 00:17:10,959 --> 00:17:15,760 characters which it can handle uh and it 464 00:17:13,280 --> 00:17:16,720 generates that image 465 00:17:15,760 --> 00:17:18,240 so 466 00:17:16,720 --> 00:17:19,919 as you probably know machine learning 467 00:17:18,240 --> 00:17:22,240 models carry the biases which they're 468 00:17:19,919 --> 00:17:24,400 trained on and so it looks likely that 469 00:17:22,240 --> 00:17:26,559 there's probably a matrix poster in the 470 00:17:24,400 --> 00:17:28,559 training data that we use given how 471 00:17:26,559 --> 00:17:30,000 similarly that looks 472 00:17:28,559 --> 00:17:32,160 um 473 00:17:30,000 --> 00:17:33,600 likewise the strength image from our mad 474 00:17:32,160 --> 00:17:35,280 max metadata 475 00:17:33,600 --> 00:17:37,120 um it looks like there might have been 476 00:17:35,280 --> 00:17:39,600 some film stills in the training data as 477 00:17:37,120 --> 00:17:41,039 well given how accurate 478 00:17:39,600 --> 00:17:42,640 uh that looks to some of the characters 479 00:17:41,039 --> 00:17:45,360 in there 480 00:17:42,640 --> 00:17:47,600 and so it's showing like every frame is 481 00:17:45,360 --> 00:17:49,679 one more step um 482 00:17:47,600 --> 00:17:52,240 that it thinks 483 00:17:49,679 --> 00:17:54,080 uh is closer to the image that it's 484 00:17:52,240 --> 00:17:56,080 dreamt up based on that metadata so 485 00:17:54,080 --> 00:17:57,200 there's about 200 steps per 486 00:17:56,080 --> 00:18:00,960 um 487 00:17:57,200 --> 00:18:03,679 in our example that we used 488 00:18:00,960 --> 00:18:04,640 uh here we fed the video game of the 489 00:18:03,679 --> 00:18:06,640 hobbit 490 00:18:04,640 --> 00:18:08,320 um but clearly the training data had an 491 00:18:06,640 --> 00:18:10,880 image of the book in there so 492 00:18:08,320 --> 00:18:12,840 um it kind of dropped up the book rather 493 00:18:10,880 --> 00:18:15,440 than a video 494 00:18:12,840 --> 00:18:16,240 game which is not surprising saying it's 495 00:18:15,440 --> 00:18:17,760 a 496 00:18:16,240 --> 00:18:20,160 spectrum 497 00:18:17,760 --> 00:18:21,120 game so yeah 498 00:18:20,160 --> 00:18:23,039 um 499 00:18:21,120 --> 00:18:24,320 the last one here um the training set 500 00:18:23,039 --> 00:18:26,559 also appears to know that outback 501 00:18:24,320 --> 00:18:28,799 australia is aboriginal land too which 502 00:18:26,559 --> 00:18:30,799 is very nice so if you'd like to try 503 00:18:28,799 --> 00:18:32,799 some others as i mentioned our notebooks 504 00:18:30,799 --> 00:18:34,640 run for free on google collab servers 505 00:18:32,799 --> 00:18:35,520 and there's a link to it in our acme git 506 00:18:34,640 --> 00:18:38,480 lab 507 00:18:35,520 --> 00:18:39,919 um from the blog post api documentation 508 00:18:38,480 --> 00:18:41,840 and also all of these links in the 509 00:18:39,919 --> 00:18:45,120 slides work so 510 00:18:41,840 --> 00:18:47,520 you can download them after my talk 511 00:18:45,120 --> 00:18:50,000 so in terms of challenges 512 00:18:47,520 --> 00:18:53,440 um so we wanted to release everything as 513 00:18:50,000 --> 00:18:56,640 creative commons zero licenses 514 00:18:53,440 --> 00:18:57,440 but yeah we couldn't for many reasons 515 00:18:56,640 --> 00:19:00,559 um 516 00:18:57,440 --> 00:19:02,080 seb chan uh the ct cxo uh has some 517 00:19:00,559 --> 00:19:04,320 really nice words about this so he 518 00:19:02,080 --> 00:19:05,679 writes uh this is not hard because of 519 00:19:04,320 --> 00:19:07,840 technical reasons but because of 520 00:19:05,679 --> 00:19:10,320 copyright laws ethical consideration of 521 00:19:07,840 --> 00:19:12,720 creators rats outside of copyright laws 522 00:19:10,320 --> 00:19:14,320 such as indigenous ip so should 523 00:19:12,720 --> 00:19:15,440 indigenous works ever enter the public 524 00:19:14,320 --> 00:19:17,919 domain 525 00:19:15,440 --> 00:19:20,480 and other also other moral rights 526 00:19:17,919 --> 00:19:22,480 acme and no museum has 527 00:19:20,480 --> 00:19:24,799 resources to manually research 528 00:19:22,480 --> 00:19:26,880 contact clear and re-license every work 529 00:19:24,799 --> 00:19:28,880 in its collection for all purposes 530 00:19:26,880 --> 00:19:30,720 so some works we have in our collection 531 00:19:28,880 --> 00:19:33,280 even need us to contact the creator or 532 00:19:30,720 --> 00:19:34,960 their estate to show in an exhibition 533 00:19:33,280 --> 00:19:37,360 other works were acquired before the web 534 00:19:34,960 --> 00:19:40,000 existed and thus don't have flexibility 535 00:19:37,360 --> 00:19:42,160 without re-contacting the rights holder 536 00:19:40,000 --> 00:19:44,000 so we had to remo remove a large portion 537 00:19:42,160 --> 00:19:46,960 of our collection from our public api 538 00:19:44,000 --> 00:19:46,960 for this first release 539 00:19:47,280 --> 00:19:54,160 um the other challenge is expectations 540 00:19:51,600 --> 00:19:56,480 um instead of right again museum data 541 00:19:54,160 --> 00:19:58,320 isn't very useful um without being 542 00:19:56,480 --> 00:20:00,960 combined with other data sources there's 543 00:19:58,320 --> 00:20:02,000 no easy open gov model for reuse to 544 00:20:00,960 --> 00:20:04,080 apply 545 00:20:02,000 --> 00:20:07,760 uh there is no when is the next bus 546 00:20:04,080 --> 00:20:09,760 arriving app to make acme has tried to 547 00:20:07,760 --> 00:20:11,200 build the scaffolding in the data to 548 00:20:09,760 --> 00:20:13,360 make it easier to connect with other 549 00:20:11,200 --> 00:20:15,360 public and private data sets to make the 550 00:20:13,360 --> 00:20:16,799 data we hold more useful but understand 551 00:20:15,360 --> 00:20:18,799 that this is not in the general 552 00:20:16,799 --> 00:20:21,200 operations of the museum so needs 553 00:20:18,799 --> 00:20:22,080 automation and tolerance for error for 554 00:20:21,200 --> 00:20:23,760 example 555 00:20:22,080 --> 00:20:25,080 uh when we're pulling in metadata from 556 00:20:23,760 --> 00:20:28,159 imdb or 557 00:20:25,080 --> 00:20:30,080 tdtmdb or wikidata ids 558 00:20:28,159 --> 00:20:32,960 that's not part of acme's cataloging 559 00:20:30,080 --> 00:20:34,640 process but added later so they're 560 00:20:32,960 --> 00:20:37,679 essential for making acne's data to be 561 00:20:34,640 --> 00:20:39,200 able to be work with um but sometimes 562 00:20:37,679 --> 00:20:41,600 there are some errors in that auto 563 00:20:39,200 --> 00:20:41,600 linking 564 00:20:42,320 --> 00:20:46,400 um data creation is slow so even though 565 00:20:44,880 --> 00:20:49,280 we've got 566 00:20:46,400 --> 00:20:52,480 an automated uh transcoding setup at 567 00:20:49,280 --> 00:20:55,120 acme now um digitizing a film from the 568 00:20:52,480 --> 00:20:59,039 analog film takes about four times the 569 00:20:55,120 --> 00:21:02,799 runtime of that footage in star flavor 570 00:20:59,039 --> 00:21:04,640 um so seb also writes on that cataloging 571 00:21:02,799 --> 00:21:06,960 a film takes significant research time 572 00:21:04,640 --> 00:21:08,559 especially if the film is unique to us 573 00:21:06,960 --> 00:21:10,400 along with some or all of the people 574 00:21:08,559 --> 00:21:12,720 involved are featured in the film 575 00:21:10,400 --> 00:21:14,480 because data creation is slow we also 576 00:21:12,720 --> 00:21:16,240 have records that are very old and 577 00:21:14,480 --> 00:21:17,600 featured feature language that was 578 00:21:16,240 --> 00:21:19,360 common 579 00:21:17,600 --> 00:21:20,799 in common use in previous decades that 580 00:21:19,360 --> 00:21:23,039 may be considered offensive or 581 00:21:20,799 --> 00:21:24,960 inappropriate in modern time remember 582 00:21:23,039 --> 00:21:27,440 that acme was the state film archive all 583 00:21:24,960 --> 00:21:28,720 the way back to the 1940s this means 584 00:21:27,440 --> 00:21:30,880 that there is 585 00:21:28,720 --> 00:21:33,120 internal concern about what previous 586 00:21:30,880 --> 00:21:35,280 language might say about us now and this 587 00:21:33,120 --> 00:21:37,679 creates more work to fix the data these 588 00:21:35,280 --> 00:21:40,720 are human cultural issues that manifest 589 00:21:37,679 --> 00:21:40,720 in risk aversion 590 00:21:41,440 --> 00:21:46,000 another challenge was just the sheer 591 00:21:43,200 --> 00:21:48,799 update time so updating 45 000 records 592 00:21:46,000 --> 00:21:50,960 and doing some uh changes to them takes 593 00:21:48,799 --> 00:21:54,000 about four hours so we run that update 594 00:21:50,960 --> 00:21:56,640 overnight which is great um but if we 595 00:21:54,000 --> 00:21:58,159 need to do any live fixes then yeah it 596 00:21:56,640 --> 00:22:00,080 takes about four hours so we've got a 597 00:21:58,159 --> 00:22:02,320 bit of a turnaround time there 598 00:22:00,080 --> 00:22:03,600 uh and also the 599 00:22:02,320 --> 00:22:06,080 uh 600 00:22:03,600 --> 00:22:08,480 we get the nightly get diffs on 45 000 601 00:22:06,080 --> 00:22:10,080 files uh sometimes fails on the pods 602 00:22:08,480 --> 00:22:11,360 because they've got a limited amount of 603 00:22:10,080 --> 00:22:14,000 memory so 604 00:22:11,360 --> 00:22:16,159 um we've got a bit of a struggle keeping 605 00:22:14,000 --> 00:22:20,559 the resources really low and then making 606 00:22:16,159 --> 00:22:20,559 sure that the diffs don't kill the pods 607 00:22:20,720 --> 00:22:24,320 uh thank you um i'd also like to 608 00:22:22,720 --> 00:22:26,000 acknowledge the excellent work done by 609 00:22:24,320 --> 00:22:27,679 our original team who built the private 610 00:22:26,000 --> 00:22:30,640 xos apis so 611 00:22:27,679 --> 00:22:34,159 uh ali haberfield andrew sarong benjamin 612 00:22:30,640 --> 00:22:37,600 ladd david amores uh greg turner the cto 613 00:22:34,159 --> 00:22:39,200 at the time uh pipshi uh and myself and 614 00:22:37,600 --> 00:22:41,120 also want to acknowledge our new 615 00:22:39,200 --> 00:22:43,280 developer sam mayer for his help through 616 00:22:41,120 --> 00:22:45,840 this process which has been excellent 617 00:22:43,280 --> 00:22:48,240 um also a shout out to our bosses so sub 618 00:22:45,840 --> 00:22:51,600 chan magazine guy lucy patterson 619 00:22:48,240 --> 00:22:53,840 brilliant uh francesco romini uh who's 620 00:22:51,600 --> 00:22:55,520 my direct boss uh who puts up with me a 621 00:22:53,840 --> 00:22:57,600 lot which is great 622 00:22:55,520 --> 00:22:59,799 um if you'd like to see the slides 623 00:22:57,600 --> 00:23:01,440 there's a link to them there so s i g 624 00:22:59,799 --> 00:23:02,640 hmon.com 625 00:23:01,440 --> 00:23:03,840 acme 626 00:23:02,640 --> 00:23:08,280 um 627 00:23:03,840 --> 00:23:08,280 and that's it any questions 628 00:23:08,400 --> 00:23:12,240 thank you simon we've got a few 629 00:23:10,559 --> 00:23:15,840 questions for you 630 00:23:12,240 --> 00:23:18,320 um are you asking users to sign in or up 631 00:23:15,840 --> 00:23:20,640 uh so you can get some usage stats at 632 00:23:18,320 --> 00:23:25,200 all or are you just providing http 633 00:23:20,640 --> 00:23:26,480 access no it's totally open so um we 634 00:23:25,200 --> 00:23:28,880 thought about 635 00:23:26,480 --> 00:23:31,039 doing api keys and that sort of thing 636 00:23:28,880 --> 00:23:33,360 um so at the moment we've got absolutely 637 00:23:31,039 --> 00:23:35,520 no analytics on people using it other 638 00:23:33,360 --> 00:23:37,360 than how much cpu load 639 00:23:35,520 --> 00:23:39,520 is on our pods at the moment so we'll 640 00:23:37,360 --> 00:23:42,880 keep it like that until we need to worry 641 00:23:39,520 --> 00:23:45,679 about costs or anything 642 00:23:42,880 --> 00:23:47,520 um is there a skew to the data that is 643 00:23:45,679 --> 00:23:49,919 being looked up anything interesting or 644 00:23:47,520 --> 00:23:52,400 surprising or any new apis you've been 645 00:23:49,919 --> 00:23:52,400 asked for 646 00:23:52,480 --> 00:23:56,799 um we haven't actually had time to look 647 00:23:54,640 --> 00:23:59,039 through the data ourselves yet so we've 648 00:23:56,799 --> 00:24:00,880 just been building this thing um so i 649 00:23:59,039 --> 00:24:03,039 suspect we 650 00:24:00,880 --> 00:24:05,120 as we work with different universities 651 00:24:03,039 --> 00:24:07,200 who are going to do projects with it um 652 00:24:05,120 --> 00:24:09,279 we'll find out a lot of cool things 653 00:24:07,200 --> 00:24:10,240 um sorry what was the second after the 654 00:24:09,279 --> 00:24:12,799 question 655 00:24:10,240 --> 00:24:15,039 um is there any any new apis you've been 656 00:24:12,799 --> 00:24:17,039 asked for 657 00:24:15,039 --> 00:24:20,000 nothing we've been asked for yet but i 658 00:24:17,039 --> 00:24:21,039 think um our creators api and our labels 659 00:24:20,000 --> 00:24:22,960 api 660 00:24:21,039 --> 00:24:24,480 are probably the logical next ones but 661 00:24:22,960 --> 00:24:26,720 yeah if anyone else wants any of our 662 00:24:24,480 --> 00:24:28,960 other private apis i mentioned opened up 663 00:24:26,720 --> 00:24:30,320 then definitely email uh because that 664 00:24:28,960 --> 00:24:32,320 always helps me 665 00:24:30,320 --> 00:24:34,320 get the bosses to prioritize it so it's 666 00:24:32,320 --> 00:24:35,600 gonna be really useful 667 00:24:34,320 --> 00:24:37,440 um 668 00:24:35,600 --> 00:24:39,919 another question here i'm curious as to 669 00:24:37,440 --> 00:24:41,520 how you support and build relationships 670 00:24:39,919 --> 00:24:43,679 with users how do you approach 671 00:24:41,520 --> 00:24:47,840 documentation community and building 672 00:24:43,679 --> 00:24:50,480 awareness of your data availability 673 00:24:47,840 --> 00:24:54,640 um yeah so we've got uptime monitors to 674 00:24:50,480 --> 00:24:55,600 make sure our api is um up and um 675 00:24:54,640 --> 00:24:56,880 available 676 00:24:55,600 --> 00:24:58,559 but seeing it's brand new we really 677 00:24:56,880 --> 00:25:00,640 haven't 678 00:24:58,559 --> 00:25:03,520 had that many problems yet so if you can 679 00:25:00,640 --> 00:25:04,880 crash it that'd be great and we will uh 680 00:25:03,520 --> 00:25:06,720 please get in touch if you do and tell 681 00:25:04,880 --> 00:25:08,080 us how you crushed it so we can we can 682 00:25:06,720 --> 00:25:12,559 make it more stable 683 00:25:08,080 --> 00:25:12,559 uh in terms of building community um 684 00:25:12,640 --> 00:25:16,799 that's a good one uh giving talks like 685 00:25:14,480 --> 00:25:19,600 this um we're hoping to connect with 686 00:25:16,799 --> 00:25:20,640 other organizations um the state library 687 00:25:19,600 --> 00:25:22,320 and melbourne are doing some really 688 00:25:20,640 --> 00:25:25,360 interesting things with machine learning 689 00:25:22,320 --> 00:25:28,000 at the moment and auto categorization so 690 00:25:25,360 --> 00:25:29,600 it'll be really great to work with 691 00:25:28,000 --> 00:25:30,640 people who are doing 692 00:25:29,600 --> 00:25:32,240 tagging 693 00:25:30,640 --> 00:25:34,000 and categorization 694 00:25:32,240 --> 00:25:36,159 because that's what we need help with in 695 00:25:34,000 --> 00:25:38,480 our collection 696 00:25:36,159 --> 00:25:40,480 um have you had any data sovereignty 697 00:25:38,480 --> 00:25:42,640 issues being raised around the use of 698 00:25:40,480 --> 00:25:43,679 commercial cloud services like aws or 699 00:25:42,640 --> 00:25:45,200 google 700 00:25:43,679 --> 00:25:47,919 as you've worked through getting your 701 00:25:45,200 --> 00:25:49,760 public api up and running 702 00:25:47,919 --> 00:25:52,640 uh i haven't yet that's probably a good 703 00:25:49,760 --> 00:25:54,000 one for seb chan to answer so um yeah 704 00:25:52,640 --> 00:25:56,400 ping him 705 00:25:54,000 --> 00:25:59,760 chan on twitter and ask any questions 706 00:25:56,400 --> 00:26:02,240 like that he's he's a good one for those 707 00:25:59,760 --> 00:26:04,000 wonderful and one last question have you 708 00:26:02,240 --> 00:26:06,799 had any issues with lawyers not 709 00:26:04,000 --> 00:26:08,880 understanding floss software licenses 710 00:26:06,799 --> 00:26:11,520 i.e coming from all software must be 711 00:26:08,880 --> 00:26:13,840 licensed or else it's stolen model 712 00:26:11,520 --> 00:26:15,840 or insisting that a signed license or 713 00:26:13,840 --> 00:26:17,919 non-disclosure agreements 714 00:26:15,840 --> 00:26:19,520 but then adding exceptions 715 00:26:17,919 --> 00:26:21,919 that sort of thing 716 00:26:19,520 --> 00:26:23,360 uh we haven't yet touched wood so i'm 717 00:26:21,919 --> 00:26:24,960 sure 718 00:26:23,360 --> 00:26:27,760 down the track 719 00:26:24,960 --> 00:26:30,559 as we try and release images and videos 720 00:26:27,760 --> 00:26:32,000 and a lot of other external content then 721 00:26:30,559 --> 00:26:33,679 um yeah we're going to run into a lot 722 00:26:32,000 --> 00:26:35,600 but i think we took a pretty cautious 723 00:26:33,679 --> 00:26:38,240 approach with this first 724 00:26:35,600 --> 00:26:39,760 dump of data where it's all just stuff 725 00:26:38,240 --> 00:26:42,240 that we've created 726 00:26:39,760 --> 00:26:42,240 ourselves 727 00:26:42,400 --> 00:26:46,880 wonderful well thank you very much um 728 00:26:45,000 --> 00:26:48,880 [Music] 729 00:26:46,880 --> 00:26:50,799 oh sorry i keep going you said but you 730 00:26:48,880 --> 00:26:53,520 keep mentioning said that's probably why 731 00:26:50,799 --> 00:26:56,000 um simon will be available in the go 732 00:26:53,520 --> 00:26:58,080 glam chat functionality which is to the 733 00:26:56,000 --> 00:27:00,400 left hand side of your screen but we 734 00:26:58,080 --> 00:27:02,960 will be moving into 735 00:27:00,400 --> 00:27:05,360 katherine's session which is at 2 p.m in 736 00:27:02,960 --> 00:27:08,799 the video chat session called go glam 737 00:27:05,360 --> 00:27:11,919 dash shovel ready glamor graduates 738 00:27:08,799 --> 00:27:13,440 so i'll see you all there at uh 2pm 739 00:27:11,919 --> 00:27:15,279 thank you simon 740 00:27:13,440 --> 00:27:18,279 thanks so much 741 00:27:15,279 --> 00:27:18,279 thanks