Two weeks ago, I went to Paris to attend the 2014 CGAL developer meeting.
Here is a summary of some of the things I did and some of my thoughts.
3 things I did at the meetup
As a GSoC student, I summarized my summer project on visualization of 2d
arrangements of curves in a few slides for the group. We discussed a few
outstanding issues and what to do about them, and I’m supposed to merge my
branch for testing before integration into the main branch of CGAL. I don’t
know if I will make it for the next release, but it is definitely on the way.
Besides that, I did a bunch of other things while I was there.
1. Work on the modernized website
The CGAL website is an iconic example of 1990s web design, and if someone
didn’t know better and stumbled upon CGAL, they might be led to think of it as
an unmaintained and uninviting project to make use of. Of course, this is far
from the truth and so we had in mind to hack on a new version of the website
that (1) makes use of more current web design goodness, and (2) reorganizes
content to make the important things more prominent and be more accessible. It
was nice to be involved in the process here, and they actually had a prototype
to look at by the end powered by Jekyll + Bootstrap.
2. Work on a multivariate parser
A wrote a parser using Boost.Spirit to parse bivariate polynomials with integer
coefficients for the sake of reading in user-specified algebraic curves in the
demo I worked on, and there was interest to generalize it for coefficients of
arbitrary-precision number types for multivariate polynomials. I sat down with
Eric to flesh out the details on paper and by the time I got back home, I have
the grammar details worked out and just have to put them together to construct
3. Be a part of the meeting
This was very much an engineering meeting and there were a lot of business
items that I got to see get discussed. The main points probably had to do with
accessibility/user-friendliness of the website and documentation and a
migration of the public master branch of CGAL to be hosted on Github. CGAL
seems to have an image of being a closed project, and to some degree it’s true:
a lot of development is contributed by researchers e.g. at Inria in private
branches that won’t be disclosed, and there’s a pretty involved review process
for getting new features into the library, which to be fair is necessary to
maintain a level of quality and consistency. At least with a public master,
diving into the source code, following issues, and contributing patches will be
3 things that impressed me
There are a few things that I took notice of during my time at the meeting that
stood out to me.
1. The European workplace is dynamic.
Most of the attendees came from all over France, with a handful from Germany, a
guy from Italy, my mentor from Tel Aviv, and me and one other student from
North America. It felt like a really diverse showing, and it was pretty dynamic
when the slideshows wrapped up and we broke out into working groups. It was
pretty common to be hearing French spoken on one side of the room, German on
the other, and a lot of language switching freely happening. I don’t really
know if this is representative of a day in the life at work in France or
Europe, but it makes quite a bit of sense how European exchange students I’ve
met seem to know so many languages. It was quite a stimulating experience.
2. There’s a lot of work going on towards things I’ve struggled with.
There’s a lot of development that is in the pipeline that shows that CGAL is
definitely aware of the hardships that I, as a user, am experiencing using the
library. To mention two things, the AABB tree package, which is the spatial
query data structure (kind of like octrees), somehow only exposes an interface
for 3 dimensions. I’ve had some work to do to make wrappers to plug into the
package to do nearest neighbor queries in 2 dimensions. This is clearly a
design mistake that they are working on. Another is that there is a simpler
surface mesh package under review now that is supposed to be a simpler data
structure to work with than the polyhedron package.
3. Entrepreneurs that don’t wait and spare no effort in looking into and realizing ideas.
I finally got the chance to meet Efi, my mentor for the two times I’d
participated in GSoC, in person. On paper, I knew he held an academic position
and has his office at Tel Aviv University, but he tells me he has been scaling
back his time there and spending most of the time as a freelance entrepreneur.
This was very impressive to me because I’d thought that, judging by his
high activity, the primary hat that he wears is that of a programmer. For one
thing, he sat down with me to walk me through some software he had personally
developed throughout his career for setting up and visualizing a scene graph. I
overheard his discussion with Andreas talking about his future plans and it
showed that he’d been thinking and planning for a long time.
It’s bewildering and inspirational to see that he not only wears many hats but
spares no effort in doing so. I have a handful of computer science friends who
are the same way, who seem to have so much energy to not only build something
but also promote it and make it profitable. Well, maybe “profitable” is just
one direction you can steer a project. I think the point is that you’ve built
something great and gathered a following, and as a result, the world is better
for it. I hope that I can pull this off in my lifetime.
3 interesting things that happened while travelling
Of course, this was the first travel experience of mine to Europe, so there
were many interesting things that happened. I’ll mention a few.
1. The bike ride through Paris.
If I was actually a tech-enthusiast and owned a GoPro, I’d post here a
hyperlapse video of my bike ride from the loft we were staying at through the
streets of Paris to the place where the developer meeting actually took place.
It was quite lively with everyone getting to work in the morning, and the
European city scenery was very fresh.
2. The trio patrolling the airport and major metro sites.
Andreas took us on a whirlwind tour of the most notable landmarks of Paris, and
on top of admiring the unique architecture of the monuments, museums, and
churches, I started to notice a pattern that in the midst of the crowds of
visitors, there seemed to always be a patrol of three army soldiers, wearing
berets and armed with FAMAS assault rifles, making the rounds. It makes sense
for them to be there, protecting strategic locations and places where there are
a lot of people. Somehow, it just left an impression on me.
3. The missed transfer at Heathrow.
On the way back, I missed my connecting flight from London to the United States
because of a slightly delayed departure from France cutting into an already
narrow layover, topped off with a security check triggered by rolls of quarters
I’d gotten for laundry back in Davis, forgotten in my backpack, but somehow
managed to smuggle through security checkpoints until that moment. It was only
9am local time but tension was already quite high. The highlight was probably a
woman working the checkpoint who was of Indian descent threaten the room in an
authentic English accent with an hour-long security search if they did not take
all electronics out of their bags before proceeding. It only took me 15 minutes
or so when I had to step aside, actually.
3 things to take away
1. I can stand to carry myself better around others.
There was probably a degree of social awkwardness coming from being hosted by
Europeans in a country whose language you don’t speak, as well as my own
socially awkward nature, that I could have handled better. Certainly, there is
basic protocol of eye contact, asserting presence, and communicating clearly
that is invariant to the particular language and culture that is important for
2. I definitely want to write software for a living.
One of the questions that appears in the student application for CGAL goes
something like this:
Are you more interested in the theory/scientific aspect of CGAL, or do you feel more like a hacker?
I have tended towards being more of a hacker because the work feels very
concrete and gratifying, but at the same time, I realize that a lot of the
hacking is necessarily directed by theory. I have been thinking about next
steps in the project, and it seems like while there are some things to fix with
arrangements, there should be something new to work towards as well in
order to really keep the package alive.
There’s ongoing work with arrangements on surfaces other than the Euclidean
plane, such as the sphere, and I was thinking that it might be nice to work on
arrangements on the hyperbolic plane. Of course it would be fun to hack on it,
and I am thinking about who would want to see that appear in the library and
for what application, because in the end, that’s what will sustain further
3. Travelling is a lot of fun.
I am very grateful for the chance to attend the CGAL meeting and travel to
Europe for the first time, as a result. It was a very stimulating experience
overall and I was glad to have met so many great people. I’m putting the
finishing touches on this blog a week since getting back, and it feels like not
only has some of the spirit rubbed off on me, but I also feel more connected.
While I might be working by myself, it’s cool to know there’s a team of people
8 hours ahead of me working full time on the project.
With that ends my summer of 2014. The fall quarter begins tomorrow, and I will be working to make this academic year my last in Davis. I’ll leave a few more photos, and I’ll write again later.