{"id":24450,"date":"2019-06-25T14:56:48","date_gmt":"2019-06-25T14:56:48","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=24450"},"modified":"2019-06-25T15:09:06","modified_gmt":"2019-06-25T15:09:06","slug":"cppp-2019-trip-report","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/cppp-2019-trip-report\/","title":{"rendered":"Cppp 2019 Trip Report"},"content":{"rendered":"<h2><img decoding=\"async\" class=\"aligncenter wp-image-24510 size-large\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/cppplogo-1024x713.png\" alt=\"\" width=\"640\" height=\"446\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/cppplogo-1024x713.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/cppplogo-300x209.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/cppplogo-768x535.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/cppplogo.png 1145w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/h2>\n<h2>Summary<\/h2>\n<p><a href=\"https:\/\/cppp.fr\" target=\"_blank\" rel=\"noopener noreferrer\">CPPP<\/a> is a new C++ conference in Paris, France. Its first iteration ran for a single day with three parallel tracks, drawing in 160 attendees.<\/p>\n<p>The conference great on all fronts: the speakers &amp; talks were varied and high-quality, the venue was right next to the Eiffel Tower and had plenty of space, the food was tasty and varied (shoutout to the cream filled pastries), and the day went smoothly with strong communication from the organisers (<a href=\"https:\/\/twitter.com\/joel_f\" target=\"_blank\" rel=\"noopener noreferrer\">Joel Falcou<\/a> and <a href=\"https:\/\/twitter.com\/FredTingaudDev\" target=\"_blank\" rel=\"noopener noreferrer\">Fred Tingaud<\/a>).<\/p>\n<p>The three tracks were themed on roughly beginner, intermediate, and expert content, where the beginner track was in French and the other two were in English.<\/p>\n<h2>My Talk<\/h2>\n<p><img decoding=\"async\" class=\"wp-image-24504 size-large aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-1024x709.png\" alt=\"C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Content.MSO\\9588AC77.tmp\" width=\"640\" height=\"443\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-1024x709.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-300x208.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-768x532.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win.png 1280w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Photo by <a href=\"https:\/\/twitter.com\/Winwardo\" target=\"_blank\" rel=\"noopener noreferrer\">@Winwardo<\/a><\/p>\n<p>My talk was named &#8220;Tools to Ease Cross-Platform C++ Development&#8221;. I tried something a bit different from other cross-platform talks we&#8217;ve given, in that I tried to develop a cross-platform application live rather than demoing different features one-by-one.<\/p>\n<p>I wrote a whole Brainfuck-to-x64 compiler in Visual Studio during the talk which targeted Windows and Linux (through the WSL configuration in VS) and used Vcpkg to fulfill a dependency on <a href=\"https:\/\/github.com\/fmtlib\/fmt\" target=\"_blank\" rel=\"noopener noreferrer\">fmtlib<\/a>. The compiler worked first time as well! You can find the code and slides <a href=\"https:\/\/github.com\/TartanLlama\/lameduck\" target=\"_blank\" rel=\"noopener noreferrer\">on GitHub<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h2>Talks I Attended<\/h2>\n<h3><a href=\"https:\/\/twitter.com\/gregcons\" target=\"_blank\" rel=\"noopener noreferrer\">Kate Gregory<\/a> &#8211; Emotional Code<\/h3>\n<p><img decoding=\"async\" class=\"wp-image-24505 size-large aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-1-1024x768.png\" alt=\"C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Content.MSO\\4056049D.tmp\" width=\"640\" height=\"480\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-1-1024x768.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-1-300x225.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-1-768x576.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-1.png 1280w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Photo by <a href=\"https:\/\/twitter.com\/branaby\" target=\"_blank\" rel=\"noopener noreferrer\">@branaby<\/a><\/p>\n<p>After some pastries and an introduction from the organisers, we began with a keynote from Kate Gregory on Emotional Code. This was the third time I&#8217;d seen a version of this talk live (once at <a href=\"https:\/\/www.youtube.com\/watch?v=SzoquBerhUc\" target=\"_blank\" rel=\"noopener noreferrer\">C++ on Sea<\/a> and again at <a href=\"https:\/\/www.youtube.com\/watch?v=uloVXmSHiSo\" target=\"_blank\" rel=\"noopener noreferrer\">ACCUConf<\/a>), but it was still very enjoyable this time round and had some new content to make it worthwhile.<\/p>\n<p>As programmers, we can be under the belief that code is neutral and emotionless, but Kate argues that this is not the case, and that the code you write can reflect a lot about the environment in which you work. I find this talk illuminating each time I watch it, I&#8217;d recommend giving it a try and thinking about how your work situation can be improved to make your code better. Kate is also one of those speakers who I could watch talk about her teapot collection (I don&#8217;t know if she has a teapot collection) and not get bored, so if nothing else you&#8217;ll have a good way to pass an hour.<\/p>\n<h3>Mock Interviews<\/h3>\n<p>I gave my talk after Kate&#8217;s, after which I napped on a couch to recover somewhat before helping out with the mock interviews. I and some other experienced interviewers had a series of 20 min talks with people looking to improve their interview skills. This session wasn&#8217;t very well attended, but I think those who came found it very valuable. Having run a similar event at CppCon, I think these are wonderful opportunities for people to get in some practice before trying to get jobs, so I&#8217;d highly recommend looking out for them when you&#8217;re at an event.<\/p>\n<h3><a href=\"https:\/\/twitter.com\/pati_gallardo\" target=\"_blank\" rel=\"noopener noreferrer\">Patricia Aas<\/a> &#8211; Anatomy of an Exploit<\/h3>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-24506 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-2.png\" alt=\"C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Content.MSO\\7FE2DDB3.tmp\" width=\"680\" height=\"424\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-2.png 680w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-2-300x187.png 300w\" sizes=\"(max-width: 680px) 100vw, 680px\" \/><\/p>\n<p>Photo by <a href=\"https:\/\/twitter.com\/a_bigillu\" target=\"_blank\" rel=\"noopener noreferrer\">@a_bigillu<\/a><\/p>\n<p>Patricia&#8217;s talks are always energetic and engaging, with beautiful slides and keen insights. This one was no different, even if I was exhausted by this point of the day and got told off for nodding off in the front row (sorry Patricia!).<\/p>\n<p>This was an introduction into how code exploits work by breaking the program out of the world of normal behaviour and into the upside-down of The Weird, then how execution is controlled in this bizarre state. It&#8217;s is a great first step into the technical details of software vulnerabilities, so give it a watch if you&#8217;re interested in learning about this area.<\/p>\n<h3><a href=\"https:\/\/twitter.com\/ben_deane\" target=\"_blank\" rel=\"noopener noreferrer\">Ben Deane<\/a> &#8211; Identifying Monoids: Exploiting Compositional Structure in Code<\/h3>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-24507 size-large\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-3-1024x768.png\" alt=\"C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Content.MSO\\88B21539.tmp\" width=\"640\" height=\"480\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-3-1024x768.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-3-300x225.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-3-768x576.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/06\/c-users-administrator-appdata-local-microsoft-win-3.png 1280w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Photo by <a href=\"https:\/\/twitter.com\/hankadusikova\" target=\"_blank\" rel=\"noopener noreferrer\">@hankadusikova<\/a><\/p>\n<p>I was particularly interested in seeing this talk, since it&#8217;s essentially a one-hour answer to a question <a href=\"https:\/\/www.youtube.com\/watch?v=I52uPJSoAT4&amp;feature=youtu.be&amp;t=3480\" target=\"_blank\" rel=\"noopener noreferrer\">I asked Ben in one of his CppCon 2018 talks<\/a>. I wasn&#8217;t disappointed.<\/p>\n<p>The core of Ben&#8217;s presentation was that identifying <a href=\"https:\/\/en.wikipedia.org\/wiki\/Monoid\" target=\"_blank\" rel=\"noopener noreferrer\">monoids<\/a> (a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Set_(mathematics)\" target=\"_blank\" rel=\"noopener noreferrer\">set<\/a> along with a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Binary_operation\" target=\"_blank\" rel=\"noopener noreferrer\">binary operation<\/a> which is <a href=\"https:\/\/en.wikipedia.org\/wiki\/Closure_(mathematics)\" target=\"_blank\" rel=\"noopener noreferrer\">closed<\/a> and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Associative_property\" target=\"_blank\" rel=\"noopener noreferrer\">associative<\/a>, e.g. the set of integers under integer addition) in your types allows you to:<\/p>\n<ol>\n<li>Expose the underlying structures in your code<\/li>\n<li>Exploit these structures to make your types and operations more clear and composable<\/li>\n<\/ol>\n<p>He took a very practical code-based approach, so the talk is very accessible for people who have found some of the mathematical underpinnings which he&#8217;s talking about difficult to understand.<\/p>\n<h3><strong>Next Year<\/strong><\/h3>\n<p>Next year it will run for two days and I expect a stronger turnout due to the success of its first run. I&#8217;d highly recommend going along and hope to see you there!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary CPPP is a new C++ conference in Paris, France. Its first iteration ran for a single day with three parallel tracks, drawing in 160 attendees. The conference great on all fronts: the speakers &amp; talks were varied and high-quality, the venue was right next to the Eiffel Tower and had plenty of space, the [&hellip;]<\/p>\n","protected":false},"author":706,"featured_media":24510,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2063],"tags":[],"class_list":["post-24450","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trip-report"],"acf":[],"blog_post_summary":"<p>Summary CPPP is a new C++ conference in Paris, France. Its first iteration ran for a single day with three parallel tracks, drawing in 160 attendees. The conference great on all fronts: the speakers &amp; talks were varied and high-quality, the venue was right next to the Eiffel Tower and had plenty of space, the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/706"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=24450"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24450\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/24510"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=24450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=24450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=24450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}