<div dir="ltr">Dear Krishna<div><br></div><div>Many thanks for your insights!</div><div><br></div><div>I fully understand that you have limited resources due to the strategic shift of your employer. I will let you know how we advance in this project so that you can share with us your valuable knowledge.<br clear="all"><div><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><br></div><div>Regards </div><div><br></div><div>Esteban</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 10, 2022 at 9:42 PM Krishna Chaitanya <<a href="mailto:bkchaitan94@gmail.com" target="_blank">bkchaitan94@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Dear Professor,</div><div><br></div><div>It is really amazing to see the progress. <a href="https://github.com/MobilityDB/MobilityDB-OpenLayers" target="_blank">MobilityDB-OpenLayers</a> looks great and seems very useful for visualizing such data. :)<br></div><div><br></div><div>Regarding the development of a common library, I think it is definitely the way to go. As we discussed earlier, having such an engine decoupled from the database would unlock a lot of value to the community as a lot of more related tools can be built on top. And of course such an engine can only have its maximum potential if it stays interoperable with the actual database MobilityDB itself. So it is indeed the right step to keep the codebase common. Otherwise it's just additional maintenance work to keep both in sync.</div><div><br></div><div>Regarding C vs C++, the reason I went with C++ for MEOS instead of C are the following:</div><ol><li>My use case was to work with this data in Python, and provide a good developer experience (DX) by being object-oriented, similar to Shapely. Interfacing Python with C++ also seemed easier than with C, as PyBind11 made it easy and more maintainable.<br></li><li>MEOS was mostly inspired by GEOS, and it was built in C++</li><li>Additionally, I, myself, am more accustomed to higher level programming languages like Python and C++ than directly with C</li></ol><div>Also, it is worth mentioning that I did work briefly on exposing a C api to MEOS (it is in the <a href="https://github.com/adonmo/meos/tree/capi" target="_blank">capi</a> branch), and whatever has been built until then is functional.<br></div><div><br></div><div>But at the same time, I understand why you want to build such engine in C, and it might actually be a better idea:</div><div><ol><li>Since existing MobilityDB codebase is almost entire in C, it's only natural and ideal for this engine to come organically from that way<br></li><li>With C, it would be possible to be more performant than C++</li><li>The only major problem I see with a C-lang first engine approach is that providing Python bindings might prove to be a bit of higher effort, and might need to be redone as most of pyMEOS code might not be reusable. Also if our aim is to provide an object oriented interface for languages like Python, some amount of bridging code from C's procedural code has to be actively and carefully maintained. But in the long run, such approach might be worth the performance benefits.</li></ol></div><div>Personally, from my side, although I'd love to see all of this happen, unfortunately a lot of things have changed in our company post-COVID. So I might find it hard to spend any time towards these efforts. We (<a href="https://www.adonmo.com/" target="_blank">Adonmo</a>) have actually pivoted our business completely out of taxi top screen advertising (which are moving screens), to residential lift lobby screen advertising (which are completely stationary screens), hence, technically we no longer have any active relevant use cases with the spatiotemporal data analysis area directly so to speak. Our screen network has been growing at breakneck speed last few months so I am now mostly busy on scaling challenges - ensuring more and more data to smoothly come into our system and be processed reliably, and in leading our growing engineering and product teams.</div><div><br></div><div>I hope I helped in sharing my viewpoints. Please do let me know which is the approach you are planning/wanting to take, and if I could be of help in sharing any more thoughts or if you need my efforts in any other limited fashion towards this direction.</div><div><br></div><div>Aside from all this, I also wanted to ask if you have considered of providing paid database cloud hosting option for MobilityDB similar to <a href="https://www.timescale.com/pricing" target="_blank">how TimescaleDB does</a>. I think that way it would be possible to further the project development more by being able to get more resources.</div><div><br></div><div>Thanks,</div><div>Krishna Chaitanya<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 10 Jun 2022 at 14:37, Esteban Zimanyi <<a href="mailto:estebanzimanyi@gmail.com" target="_blank">estebanzimanyi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Dear Krishna<div><br></div><div>I hope you are doing well.</div><div><br></div><div>I wanted to inform you about our current ongoing work on MobilityDB towards creating a C library MEOS.</div><div><br></div><div>Our users are continuously asking for streaming support for MobilityDB. In this context users work independently of a database on main memory collecting GPS observations from, e.g., a Kafka stream, cleaning this data, visualizing it using, e.g., Open Layers</div><div><a href="https://github.com/MobilityDB/MobilityDB-OpenLayers" target="_blank">https://github.com/MobilityDB/MobilityDB-OpenLayers</a><br></div><div>and when more recent data is available, save the previous data into MobilityDB and continue working with the latest observations.</div><div><br></div><div>I know very well that this is the use case for which you created the MEOS and pyMEOS projects</div><div><a href="https://github.com/adonmo/meos" target="_blank">https://github.com/adonmo/meos</a><br></div><div><a href="https://pypi.org/project/pymeos/" target="_blank">https://pypi.org/project/pymeos/</a><br></div><div>Alas, we do not have the resources to continue in parallel the development of MobilityDB in C and MEOS in C++</div><div><br></div><div>For this reason I have been working the last 6 months (even before the official MobilityDB 1.0 release in April 2022) for enabling the SAME code base to be used for building both MobilityDB and MEOS. That was a challenging task from an architectural perspective but soon we will have a first version of the MEOS library to begin testing it. However, please be aware that this is still work in progress!</div><div><br></div><div>You will find in the following link</div><div class="gmail_chip gmail_drive_chip" style="width:396px;height:18px;max-height:18px;background-color:rgb(245,245,245);padding:5px;color:rgb(34,34,34);font-family:arial;font-style:normal;font-weight:bold;font-size:13px;border:1px solid rgb(221,221,221);line-height:1"><a href="https://drive.google.com/file/d/1vkeMa3PFvX4zcLwDnNe1c-kJqSnZyqbm/view?usp=drive_web" style="display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;padding:1px 0px;border:medium none;width:100%" aria-label="libMEOS.zip" target="_blank"><img style="vertical-align: bottom; border: medium none;" src="https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png"> <span dir="ltr" style="color:rgb(17,85,204);text-decoration:none;vertical-align:bottom">libMEOS.zip</span></a></div>the doxygen documentation of the library. Please unzip the file and open the file modules.html which is the main file for the documentation<div><br></div><div><img src="cid:ii_l487vhgy0" alt="image.png" width="452" height="254"><br><div><img src="cid:ii_l487wkhx1" alt="image.png" width="452" height="254"><br></div><div><img src="cid:ii_l487wwmu2" alt="image.png" width="452" height="254"><br></div><div><img src="cid:ii_l487zqen3" alt="image.png" width="452" height="254"><br></div><div><br></div><div>As you can see from the screen shots above, the links of each MEOS function and the corresponding SQL function or operator is explicitly mentioned. This documentation can be obtained from the develop version of MobilityDB with the commands (issued in the build directory)</div><div><br></div><div>~/src/MobilityDB/build$ rm -rf *</div><div>~/src/MobilityDB/build$ cmake -DMEOS=on -DDOC_DEV=on ..<br></div><div>~/src/MobilityDB/build$ make -j<br></div><div>~/src/MobilityDB/build$ make doc_dev<br></div><div><br></div><div>I wanted to discuss with you how we can join our efforts in this respect to make the MEOS library a reality, in particular, how your previous work on MEOS and pyMEOS could be integrated with the current MobilityDB/MEOS code base. Please let me know your viewpoint on this.</div><div><br></div><div>FYI we have bought the domains <a href="http://libmeos.org" target="_blank">libmeos.org</a> and <a href="http://libmeos.com" target="_blank">libmeos.com</a> to follow a similar path as <a href="https://libgeos.org/" target="_blank">https://libgeos.org/</a></div><div><br></div><div>Regards</div><div><br></div><div>Esteban</div><div><br></div><div><div><div dir="ltr"><div dir="ltr"><div>------------------------------------------------------------<br>Prof. Esteban Zimanyi<br>Department of Computer & Decision Engineering (CoDE) CP 165/15 <br>Universite Libre de Bruxelles <br>Avenue F. D. Roosevelt 50 <br>B-1050 Brussels, Belgium <br>fax: + 32.2.650.47.13<br>tel: + 32.2.650.31.85<br>e-mail: <a href="mailto:esteban.zimanyi@ulb.be" target="_blank">esteban.zimanyi@ulb.be</a><br>Internet: <a href="http://cs.ulb.ac.be/members/esteban/" target="_blank">http://cs.ulb.ac.be/members/esteban/</a><br>------------------------------------------------------------</div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div>