0:00:00.000,0:00:11.389 slides now yes can see the slice so 0:00:07.859,0:00:15.290 let's start the talk now 0:00:11.389,0:00:15.290 thank you okay 0:00:15.320,0:00:20.789 hi I'm William I'm a software developer 0:00:18.510,0:00:23.580 and today I'm gonna be talking about 0:00:20.789,0:00:35.730 data visualizations and maps with 0:00:23.580,0:00:42.600 JavaScript so I'm going to show you 0:00:35.730,0:00:48.570 something similar to this today it's 0:00:42.600,0:00:51.210 it's blurry and but I'll show the real 0:00:48.570,0:00:58.140 thing later and there are problems with 0:00:51.210,0:01:11.729 mine I'm not sure if I can you can see 0:00:58.140,0:01:14.540 oh gosh I don't know if can you see we 0:01:11.729,0:01:21.560 still see the cuz the slide with the 0:01:14.540,0:01:21.560 market after with the smack manually 0:01:24.310,0:01:27.480 [Music] 0:01:43.760,0:01:51.140 honest I think that's better so I can 0:01:46.530,0:01:59.610 yes I can I can now switch now you can 0:01:51.140,0:02:01.890 see so if you look like on one map fuck 0:01:59.610,0:02:05.460 you see I'm not sure I've done something 0:02:01.890,0:02:15.270 wrong or that box does this like the D 0:02:05.460,0:02:17.700 is cut off in New Zealand I'm sorry 0:02:15.270,0:02:20.880 about this like write down some notes 0:02:17.700,0:02:22.890 inside my slides it's because this talk 0:02:20.880,0:02:26.700 has been postponed quite a few times I 0:02:22.890,0:02:29.930 might forget I might forget what I want 0:02:26.700,0:02:32.340 to say in the presentation 0:02:29.930,0:02:38.400 [Music] 0:02:32.340,0:02:42.610 here's another another interesting thing 0:02:38.400,0:02:44.420 to look at if you can't see it it's fine 0:02:42.610,0:02:47.760 [Music] 0:02:44.420,0:02:52.980 here it is zoomed in there's there's a 0:02:47.760,0:03:01.250 problem here with a data visualization 0:02:52.980,0:03:01.250 given by Channel NewsAsia like this 0:03:03.590,0:03:09.630 there's supposed to be something here 0:03:06.510,0:03:12.180 but there's none and I think it's it's 0:03:09.630,0:03:14.820 just a mistake I think I mean they 0:03:12.180,0:03:18.630 probably didn't really care about it I 0:03:14.820,0:03:20.730 guess so 0:03:18.630,0:03:23.880 what I want to say is that every 0:03:20.730,0:03:27.239 everybody makes mistakes and I'll be I 0:03:23.880,0:03:29.670 guess this was done using d3 I could I 0:03:27.239,0:03:35.190 could check now but I have to but I 0:03:29.670,0:03:43.709 guess it's done I'll talk about d3 again 0:03:35.190,0:03:46.030 later here is where a lot of these 0:03:43.709,0:03:47.090 realizations you see now are taken from 0:03:46.030,0:03:51.060 [Music] 0:03:47.090,0:03:54.060 this repository and just want to note 0:03:51.060,0:04:04.140 that this and this notice that there's 0:03:54.060,0:04:07.650 only one repository and I'm also really 0:04:04.140,0:04:13.709 grateful for the work and that you can 0:04:07.650,0:04:15.660 see in this repository although this 0:04:13.709,0:04:19.049 slides these these slides are going to 0:04:15.660,0:04:22.079 be up on github later on so you can look 0:04:19.049,0:04:27.510 at you can look at this after after my 0:04:22.079,0:04:35.550 job here's the sources that this 0:04:27.510,0:04:41.190 repository takes from and I I wanted to 0:04:35.550,0:04:45.389 show this this source this this part of 0:04:41.190,0:04:52.410 the repository because this is the data 0:04:45.389,0:04:58.910 that I used in late March and just 0:04:52.410,0:05:04.169 notice that oh gosh so big 0:04:58.910,0:05:08.220 late March that you get province and 0:05:04.169,0:05:10.039 state country-region you know last time 0:05:08.220,0:05:13.169 they are all these are these are all 0:05:10.039,0:05:16.140 these these headings and this is your 0:05:13.169,0:05:22.449 this is your raw data but then on 0:05:16.140,0:05:22.449 [Music] 0:05:23.970,0:05:38.500 but then on I think this was one week 0:05:33.610,0:05:42.940 ago and I'm just guessing that it's the 0:05:38.500,0:05:45.370 same now the headings have changed and 0:05:42.940,0:05:46.930 the raw data that you that I pulled from 0:05:45.370,0:05:48.880 it was different 0:05:46.930,0:05:51.070 actually a lot of other people pull cool 0:05:48.880,0:05:53.100 from this data and they create a api's 0:05:51.070,0:05:54.150 and I've been gonna talk about them 0:05:53.100,0:05:57.280 later 0:05:54.150,0:06:03.990 [Music] 0:05:57.280,0:06:09.910 here's something interesting which oh I 0:06:03.990,0:06:13.570 think yeah I'll talk about I'll talk 0:06:09.910,0:06:16.570 about pulling from this from this source 0:06:13.570,0:06:22.540 later here's this here's this something 0:06:16.570,0:06:29.590 interesting that I found that I think it 0:06:22.540,0:06:35.620 looks nice so when you build Maps in 0:06:29.590,0:06:40.780 JavaScript I I think you look at these 0:06:35.620,0:06:47.140 map libraries at first so leaflet 0:06:40.780,0:06:50.110 popularise and later I'm gonna show 0:06:47.140,0:06:52.810 where I got stuck while using open 0:06:50.110,0:06:54.970 layers so I ended up using leaflet for 0:06:52.810,0:07:01.390 speed and it looks like what I wanted to 0:06:54.970,0:07:05.340 get in the end you'll probably use these 0:07:01.390,0:07:05.340 map fbi's as well if you working on maps 0:07:06.130,0:07:10.120 [Music] 0:07:07.830,0:07:16.930 some some things that you might consider 0:07:10.120,0:07:20.230 is like pricing so for format box I'm 0:07:16.930,0:07:23.350 quite scared so for Google Maps you can 0:07:20.230,0:07:29.830 set daily quotas to protect against 0:07:23.350,0:07:32.260 unexpected increases so you don't want 0:07:29.830,0:07:34.979 your billing to suddenly increase 0:07:32.260,0:07:34.979 without you knowing 0:07:38.940,0:07:44.620 which which I aced when using map box so 0:07:42.880,0:07:47.170 it's important to pick the right tool 0:07:44.620,0:07:50.440 for the right job and don't be like me 0:07:47.170,0:07:52.870 if you can avoid it I only pick me flirt 0:07:50.440,0:07:54.760 because I only ended up using leaflet 0:07:52.870,0:07:58.450 because it works nicely with Matt box 0:07:54.760,0:08:05.080 and it just got close to results I 0:07:58.450,0:08:06.580 wanted to get so for security you might 0:08:05.080,0:08:12.250 want to look at that too like how it 0:08:06.580,0:08:16.450 deals with tokens and how how each of 0:08:12.250,0:08:18.010 these map ups deal with security and and 0:08:16.450,0:08:24.220 how good their documentation is for 0:08:18.010,0:08:31.030 security so you can link leaflet to 0:08:24.220,0:08:33.700 Google Maps by using plugins you can 0:08:31.030,0:08:39.729 also have a look at these are the these 0:08:33.700,0:08:47.700 are the plugins as well when Apple's map 0:08:39.729,0:08:49.990 is marketeers in maps like there's 0:08:47.700,0:08:53.650 comparisons usually between google maps 0:08:49.990,0:08:55.510 and maps and other map map api is I'm 0:08:53.650,0:09:00.930 not going to go through that in this 0:08:55.510,0:09:04.210 talk this talk is just meant for a like 0:09:00.930,0:09:14.080 things specific to mine to what I wanted 0:09:04.210,0:09:17.110 to to get if also if there's a plan like 0:09:14.080,0:09:19.600 this if there's a better API that that 0:09:17.110,0:09:21.160 um can help with open source projects 0:09:19.600,0:09:24.130 like what I what I did that would be 0:09:21.160,0:09:30.070 that would be they'll be best because um 0:09:24.130,0:09:32.040 I don't want to worry about billing and 0:09:30.070,0:09:35.410 things like that when I'm doing 0:09:32.040,0:09:36.470 client-side small small projects open 0:09:35.410,0:09:39.509 source 0:09:36.470,0:09:39.509 [Music] 0:09:39.710,0:09:46.240 so before the demo I just want to say 0:09:42.380,0:09:49.520 again that if you take data from a 0:09:46.240,0:09:51.140 repository or Fei be prepared for the 0:09:49.520,0:09:55.339 data format to change and break your 0:09:51.140,0:10:00.220 entire app this will tend to happen if 0:09:55.339,0:10:00.220 you automate pulling fetching the data 0:10:00.760,0:10:08.930 and not something I consider was like 0:10:06.160,0:10:11.930 automating the whole process to get the 0:10:08.930,0:10:20.110 latest to show the latest map and the 0:10:11.930,0:10:24.050 latest data but after a while I I 0:10:20.110,0:10:31.250 realized that if you pull from a dynamic 0:10:24.050,0:10:35.240 API your your app might break it might 0:10:31.250,0:10:40.459 be inaccurate which is not what not not 0:10:35.240,0:10:42.850 good for you your users so so if I'll 0:10:40.459,0:10:49.100 talk about this later in the next slide 0:10:42.850,0:10:53.810 or now it should also have two changes 0:10:49.100,0:10:55.720 every day or at shorter intervals if you 0:10:53.810,0:10:58.670 intend to work a news organization 0:10:55.720,0:11:02.000 Americans Newton this might be helpful 0:10:58.670,0:11:08.800 for you this is also helpful for 0:11:02.000,0:11:12.140 databases in general so something I 0:11:08.800,0:11:14.300 thought would be nice to have I think 0:11:12.140,0:11:19.400 it'd be nice to have if you do any of 0:11:14.300,0:11:23.600 this database in the future is you 0:11:19.400,0:11:32.690 should let let your users choose the 0:11:23.600,0:11:34.850 primary location because you look here 0:11:32.690,0:11:38.390 and and what I want to see is like in 0:11:34.850,0:11:43.220 the around Singapore just and I get you 0:11:38.390,0:11:45.679 know this and I feel like slow down get 0:11:43.220,0:11:55.160 to that at the end it 0:11:45.679,0:11:59.899 takes time also there are enough 0:11:55.160,0:12:03.619 existing visualizations online on coca 0:11:59.899,0:12:05.899 Dorothy please don't add more unless you 0:12:03.619,0:12:08.449 can maintain it well that's what that's 0:12:05.899,0:12:13.279 why I'm reluctant to make it to add more 0:12:08.449,0:12:16.069 to this this this whole thing I'm doing 0:12:13.279,0:12:18.349 is just a learning tool and it's not 0:12:16.069,0:12:40.489 well you can use it to deploy something 0:12:18.349,0:12:44.419 but just maintain it and so when I 0:12:40.489,0:12:46.699 started off I start off with open I 0:12:44.419,0:12:53.059 tried I I try to do I try to use both 0:12:46.699,0:12:57.919 open layers and leaflet this is just to 0:12:53.059,0:13:00.709 do a comparison for them and I think I 0:12:57.919,0:13:03.829 tried I tried them both around the same 0:13:00.709,0:13:10.970 time but what I got for open layers was 0:13:03.829,0:13:15.589 this what I got in the end what I did 0:13:10.970,0:13:17.659 was I followed their documentation and I 0:13:15.589,0:13:20.809 for some reason I did service I would 0:13:17.659,0:13:26.209 just know not what I wanted and then I 0:13:20.809,0:13:30.079 did did their client-side thing and that 0:13:26.209,0:13:35.569 is that's what you get when you get when 0:13:30.079,0:13:37.129 you use some open open layers yeah 0:13:35.569,0:13:42.259 that's what you get when you use open 0:13:37.129,0:13:46.939 layers and open layers compared to 0:13:42.259,0:13:52.539 leaflet it's nice because like for 0:13:46.939,0:13:58.860 instance if you want it it localizes the 0:13:52.539,0:14:04.149 language of locations automatically 0:13:58.860,0:14:08.939 it gives you if that part of the box for 0:14:04.149,0:14:15.129 all the different places in the world 0:14:08.939,0:14:19.720 but the thing is for openlayers I got 0:14:15.129,0:14:22.089 stuck I got stuck here and like I didn't 0:14:19.720,0:14:25.420 want to move further because it's just 0:14:22.089,0:14:30.839 more complicated because I wanted to get 0:14:25.420,0:14:30.839 something similarly similar to this 0:14:30.899,0:14:39.610 you're just shown in Channel NewsAsia 0:14:34.920,0:14:41.679 and I don't I don't mind it looking like 0:14:39.610,0:14:43.600 this but to get the markers on it's 0:14:41.679,0:14:55.420 quite difficult I think it was quite 0:14:43.600,0:15:01.540 difficult so so that's it for open 0:14:55.420,0:15:05.290 layers so I tried leaflet and oh it's 0:15:01.540,0:15:09.779 gonna show mm I was gonna show the real 0:15:05.290,0:15:12.519 like like what I was trying to recreate 0:15:09.779,0:15:13.299 and it's this this thing that's on 0:15:12.519,0:15:21.040 channel is it 0:15:13.299,0:15:31.809 Channel NewsAsia and this mmm kind of 0:15:21.040,0:15:35.970 kept lucky yeah this is mine it's what I 0:15:31.809,0:15:39.189 got when I usually flip so 0:15:35.970,0:15:48.429 when you zoom in you get well you get 0:15:39.189,0:15:53.499 like the darker red areas are places 0:15:48.429,0:15:55.720 where it's more affected I guess and 0:15:53.499,0:15:59.730 then when you zoom in you get a similar 0:15:55.720,0:15:59.730 thing where you can see for each 0:16:01.400,0:16:13.520 each country like their current 0:16:05.180,0:16:17.090 situation and this is March 21st so I'm 0:16:13.520,0:16:19.210 gonna go through how you can build 0:16:17.090,0:16:33.430 something like this 0:16:19.210,0:16:39.890 five time HTML is here 0:16:33.430,0:16:44.480 I'd leaflet add another thing for 0:16:39.890,0:16:48.110 leaflet think you see this in the 0:16:44.480,0:16:53.600 documentation is quite nice and I joined 0:16:48.110,0:16:56.000 oh I'm not sure if I've time well I 0:16:53.600,0:16:58.910 joined I joined both chart yes and 0:16:56.000,0:17:01.520 leaflet into the same into the same half 0:16:58.910,0:17:05.900 machine so what I mean by truck is is 0:17:01.520,0:17:14.959 like you can view the you can view the 0:17:05.900,0:17:23.080 case is left as well on the same I just 0:17:14.959,0:17:28.100 put it all together so that's what char 0:17:23.080,0:17:32.270 CSS does then all you have to do for 0:17:28.100,0:17:37.550 leaflet is add this all you have to do 0:17:32.270,0:17:42.080 for charge is inside that and notice I 0:17:37.550,0:17:44.930 don't use d3.js and I use short guess 0:17:42.080,0:17:48.290 and I'm if I have time I'll go through 0:17:44.930,0:17:55.690 that well I know why I try to avoid 0:17:48.290,0:17:55.690 using d3 now that's this buttons to 0:17:57.790,0:18:04.100 access token here which I'm not gonna 0:18:01.220,0:18:07.190 show but the whole things of a source 0:18:04.100,0:18:11.350 but I had removed the access token in my 0:18:07.190,0:18:11.350 the public repository 0:18:11.730,0:18:25.300 the data this is the data from John 0:18:21.160,0:18:39.730 Hopkins I think that's that's the data 0:18:25.300,0:18:43.740 and then script for leaflet is here and 0:18:39.730,0:18:55.900 just that's that's all it takes to do 0:18:43.740,0:19:00.730 like all that so I think set the you set 0:18:55.900,0:19:07.270 the bounds of a map here Oh Southwest 0:19:00.730,0:19:10.210 North East then you said when you first 0:19:07.270,0:19:18.010 load the page you set the center here 0:19:10.210,0:19:22.080 and set the view here and I I think I'm 0:19:18.010,0:19:22.080 not sure what country it's that 244 0:19:23.130,0:19:36.300 against the London or something then had 0:19:30.360,0:19:38.620 the tiles so so for for mapping in 0:19:36.300,0:19:44.980 general on the web I think everything 0:19:38.620,0:19:47.430 has to use tiles 512 pixels I guess I 0:19:44.980,0:19:47.430 think so 0:19:49.630,0:20:07.590 everything is made of tiles that are 0:19:56.030,0:20:10.830 this this size set the markers which are 0:20:07.590,0:20:10.830 [Music] 0:20:12.010,0:20:19.520 the markers are the blue these blue 0:20:14.780,0:20:25.669 things where the pop-up comes from is 0:20:19.520,0:20:32.419 patched the circles are the circles are 0:20:25.669,0:21:00.710 the circles the red circles add them 0:20:32.419,0:21:03.200 here I'll just go through this like for 0:21:00.710,0:21:05.929 each for each data set for each data 0:21:03.200,0:21:09.559 point you add a marker here and then 0:21:05.929,0:21:14.270 it's pop-up and then you add the pop-up 0:21:09.559,0:21:27.260 to the position latitude/longitude on 0:21:14.270,0:21:29.780 the map you add the circle as well then 0:21:27.260,0:21:31.610 you add the marker layer the layer of 0:21:29.780,0:21:33.500 markers all all the markers which is all 0:21:31.610,0:21:35.720 the blue points onto the map and then 0:21:33.500,0:21:38.960 you add all the circles onto the map and 0:21:35.720,0:21:45.590 then you think you you think you've 0:21:38.960,0:21:49.309 added all the all the markers already 0:21:45.590,0:21:51.610 but what you what do you have to do I'll 0:21:49.309,0:21:51.610 tell you later 0:21:52.929,0:21:57.250 so all the blue blue points 0:21:59.420,0:22:40.890 I think gosh I think all the markers are 0:22:24.840,0:22:59.640 pushed here but not sure remember what 0:22:40.890,0:23:12.480 that that does because I wanted to add 0:22:59.640,0:23:25.650 comments on to this but I thought I'd be 0:23:12.480,0:23:28.380 able to remember anyway anyway you have 0:23:25.650,0:23:38.040 to add like I've added all the markers 0:23:28.380,0:23:40.740 already but I have to add it again 0:23:38.040,0:23:49.200 I don't know I don't know why I have to 0:23:40.740,0:23:50.940 do that for leaflet and then I I want to 0:23:49.200,0:23:53.480 remove them I think I think I have to 0:23:50.940,0:23:53.480 clear 0:23:57.740,0:24:06.000 I have to clear them every time you zoom 0:24:01.200,0:24:08.040 in and at a certain point after delete 0:24:06.000,0:24:12.000 these blue markers and a sort of zoom 0:24:08.040,0:24:13.530 point and the thing is actually I 0:24:12.000,0:24:16.460 shouldn't shouldn't even gone through 0:24:13.530,0:24:20.930 the code like what I what I tried to do 0:24:16.460,0:24:24.450 was I just want to show this but what 0:24:20.930,0:24:27.540 what you might firstly do is it'll show 0:24:24.450,0:24:30.260 it will show this all of this but what 0:24:27.540,0:24:33.300 happens is that the whole map is shown 0:24:30.260,0:24:34.680 it shows all the markers it shows all 0:24:33.300,0:24:37.350 the markers and all the puppets for the 0:24:34.680,0:24:41.040 entire map even though it's not in the 0:24:37.350,0:24:47.430 view it even even if it's not in the 0:24:41.040,0:24:49.380 view right now so in my code here which 0:24:47.430,0:24:50.820 is public it which is open source you 0:24:49.380,0:24:56.670 can find out how I did that 0:24:50.820,0:25:00.300 and it's these few lines only but what 0:24:56.670,0:25:02.490 what that what it does out of the box is 0:25:00.300,0:25:07.370 that it shows you all the popups outside 0:25:02.490,0:25:09.990 of this view and it lags a lot it 0:25:07.370,0:25:12.720 there's a very huge performance hit 0:25:09.990,0:25:16.410 because all these things are dumb all 0:25:12.720,0:25:18.510 these things are built using the Dom the 0:25:16.410,0:25:18.990 popups are all Dom I think I guess the 0:25:18.510,0:25:21.300 markers 0:25:18.990,0:25:26.880 I think the markers are images it is not 0:25:21.300,0:25:34.350 really no idea so okay I think I've gone 0:25:26.880,0:25:36.570 over time but okay which is really no 0:25:34.350,0:25:39.180 idea so I I got around that made it 0:25:36.570,0:25:40.710 quite perfect made the performance quite 0:25:39.180,0:25:44.990 quite good I think it performs better 0:25:40.710,0:25:44.990 than performance better than this 0:25:48.669,0:25:57.169 yeah which which you can't even really 0:25:51.019,0:26:02.570 load and also something about this I've 0:25:57.169,0:26:05.779 missed out I started I fixed for this I 0:26:02.570,0:26:11.450 fixed their this this great thing you 0:26:05.779,0:26:20.570 get when you drag to the top or to the 0:26:11.450,0:26:22.580 bottom okay okay how about where do 0:26:20.570,0:26:28.610 people get the project from if they want 0:26:22.580,0:26:32.269 to try your code out I think this it's 0:26:28.610,0:26:34.639 on my it's on my github boots oh it's 0:26:32.269,0:26:37.909 not you can't find this type in like the 0:26:34.639,0:26:41.330 search for did a search for data 0:26:37.909,0:27:01.250 visualizations and maps your github is 0:26:41.330,0:27:03.260 WL WL - is it and it's this you just 0:27:01.250,0:27:07.070 search for this repository and all you 0:27:03.260,0:27:11.750 have to do is all you have to do is add 0:27:07.070,0:27:16.060 the private key for a leaflet for map 0:27:11.750,0:27:18.400 box in this 0:27:16.060,0:27:22.250 [Music] 0:27:18.400,0:27:25.040 all right in this in this string here 0:27:22.250,0:27:31.310 and then you can get the whole thing and 0:27:25.040,0:27:31.730 I view the whole thing again thanks a 0:27:31.310,0:27:36.250 lot 0:27:31.730,0:27:39.380 very interesting we're gonna ask some 0:27:36.250,0:27:42.050 open it up for questions now I think 0:27:39.380,0:27:44.030 Eric's could have a mutant everyone in 0:27:42.050,0:27:46.640 case in all monster house questions I 0:27:44.030,0:27:48.830 don't know if Cheyenne can help you with 0:27:46.640,0:27:51.560 the UM with the billing because I know 0:27:48.830,0:28:04.880 he's had trouble with animating in the 0:27:51.560,0:28:07.070 past I have one questions for you did 0:28:04.880,0:28:09.290 you did you try making these circles 0:28:07.070,0:28:11.750 because you made them darker when there 0:28:09.290,0:28:15.700 were more cases 0:28:11.750,0:28:18.320 did you try making them larger well but 0:28:15.700,0:28:22.660 by the number of cases changing the size 0:28:18.320,0:28:25.070 I think and I tried not to do that 0:28:22.660,0:28:27.740 because I knew that that would take 0:28:25.070,0:28:29.920 quite a long time so I avoided doing 0:28:27.740,0:28:29.920 that 0:28:31.140,0:28:37.960 it takes a considerable amount of time 0:28:33.850,0:28:38.560 compared to how like how I got all this 0:28:37.960,0:28:42.490 set up 0:28:38.560,0:28:46.120 it was quite quick and I and I finished 0:28:42.490,0:28:49.870 this like like within one or two days I 0:28:46.120,0:28:51.790 think okay sometime in March so and I 0:28:49.870,0:28:53.560 think joining getting those large 0:28:51.790,0:28:55.510 circles and doing it like channels in 0:28:53.560,0:28:59.260 News Asia there's also a maybe 0:28:55.510,0:29:00.940 performance problems then you might have 0:28:59.260,0:29:04.480 to deal with as well once you get that 0:29:00.940,0:29:13.300 off maybe we can never know about 0:29:04.480,0:29:48.610 performance until we try you try anyone 0:29:13.300,0:29:51.460 else have questions for William I have 0:29:48.610,0:29:54.160 got a question for I I don't know if I'm 0:29:51.460,0:29:57.270 allowed to ask yeah go ahead 0:29:54.160,0:29:57.270 like like 0:29:57.860,0:30:04.490 Oh actually actually it's difficult to 0:30:01.250,0:30:06.470 ask like like in this in in zoom but I 0:30:04.490,0:30:14.090 was wondering how many people still use 0:30:06.470,0:30:16.730 d3 for their database yeah okay yeah I 0:30:14.090,0:30:19.779 guess done online 0:30:16.730,0:30:19.779 [Music] 0:30:19.789,0:30:26.029 I think everyone can click on the path 0:30:22.940,0:30:34.100 on this difference but then I would 0:30:26.029,0:30:35.570 wanna and then like yes or no I mean 0:30:34.100,0:30:36.710 everyone can say like yes or no one and 0:30:35.570,0:30:46.010 then I see it 0:30:36.710,0:30:48.669 yep and yes means d3 right yeah how many 0:30:46.010,0:30:59.779 people still use d3 for all the means 0:30:48.669,0:31:02.450 something else no I still use it but I'm 0:30:59.779,0:31:04.299 just wondering how you still use it and 0:31:02.450,0:31:08.029 actually the follow-up question would be 0:31:04.299,0:31:11.840 have you found anything better because 0:31:08.029,0:31:14.690 it's causing its costs problems for me 0:31:11.840,0:31:18.470 like for some work 0:31:14.690,0:31:38.210 and it happens again and I ended up 0:31:18.470,0:31:42.049 using charges I used to use d3 now we're 0:31:38.210,0:31:43.669 using victory charts for react which 0:31:42.049,0:31:46.730 seemed a little bit easier to get going 0:31:43.669,0:31:47.510 with but I couldn't really say which 0:31:46.730,0:31:49.190 one's best 0:31:47.510,0:31:53.690 I think d3 would give us more 0:31:49.190,0:31:56.059 flexibility but victory was very simple 0:31:53.690,0:32:05.690 to just put the data and get some charts 0:31:56.059,0:32:08.240 and some interactive okay maybe at the 0:32:05.690,0:32:12.700 end you can have more chests after the 0:32:08.240,0:32:12.700 end of the meter and and heater