Meeting Embedded

在星期三,Meeting C++ 之前,我们1参加并在 Meeting Embedded 上做了一个演讲,这是一个关于嵌入式系统相关主题的新会议。C++ 和 C 在此次会议中发挥了重要作用,这很明显(根据 Dan Saks 的统计,大约 60% 的嵌入式代码是 C,然后大约 20% 是 C++,其次是汇编),但还有其他主题也进行了介绍,例如 Rust、嵌入式协议 (MQTT)、学术和职业教育、实时系统。

我们做了自己的演讲“使用 Jenkins、Docker 和 Conan 进行嵌入式和物联网 C/C++ 持续集成”,演讲效果非常好,特别是考虑到我们进行了真实的演示,在 Raspberry PI 上实时更新嵌入式代码,该代码是在 Jenkins 中使用 Docker 构建的,使用了交叉编译(从 Windows)的包,并上传到 Artifactory,所有这些都在现场演示中完成。

.@conan_io@diegorlosada@meetingembedded 上讨论嵌入式主题

我太喜欢了!pic.x.com/4YmO7iH7Oa

— Odin Holmes (@odinthenerd) 2018年11月14日

总的来说,此次会议很有趣且意义重大,如果您从事嵌入式领域的工作,强烈推荐参加。我们认为在接下来的几年里,它可能会成为嵌入式编程的一个里程碑,就像 Meeting C++ 已成为欧洲 C++ 领域的必去盛会一样。

Meeting C++

我们2已经连续多年参加 Meeting C++ 会议。作为参会者、演讲者,以及最近的赞助商(JFrog),我们在这场会议上感到宾至如归,可以见到许多老朋友和同事,也能结识新朋友。会议在休息区提供午餐和晚餐,这不仅非常方便,还有助于与人们社交和建立联系。

技术议程也安排得非常出色,邀请了最优秀的 C++ 演讲嘉宾,涵盖了各种有趣的主题和不同的演讲,并安排了 4 个不同的主题演讲轨道。

展位

我们在会议上设了一个展位,这是获得用户反馈和宣传的最佳方式。

Conan 展位挤满了参加演示的用户

Conan 吸引了大量关注,我们做了很多演示,并进行了许多有趣的讨论。

但最棒的部分是,我们与许多之前在线互动过的用户(主要在 GitHub 和 Slack 上)进行了面对面的交流。用户前来表示感谢,他们对 Conan 非常满意。我们获得了非常有价值的反馈和改进 Conan 的想法。将虚拟的联系转化为现实并与用户建立联系是一件非常棒的事情,也让我们看到了这个令人惊叹的社区。谢谢!

演讲和主题演讲

注意:所有演讲的幻灯片都可以在 Meeting C++ 网页上找到 此处

主题演讲:下一个重大范式是什么?(Andrei Alexandrescu)

这是开幕主题演讲,会场座无虚席,期待值爆棚,Alexandrescu 也没有让人失望。他首先探讨了人们在最初是如何看待 C++ 编程和整个世界未来的重大变化的:线程、在线投票、自然语言处理、隐私、范围……并以此为出发点,提出了他认为对我们心爱的 C++ 来说下一个重大变化是什么。对我们开发人员来说,主要问题是由于每行代码的错误数量导致代码库变得越来越庞大。他强调,在概念、元类和内省等概念中,最有价值的下一个重大变化是最后一个,我们必须同意他的观点,它将使我们能够编写更少的代码并获得更高的表达能力,社区也必须达成一致,因为在此次会议和其他许多会议中,有许多演讲都谈到了这个问题。

实践中的面向数据的设计 (Stoyan Nikolov)

我们能够参加的第一个演讲!Stoyan Nikolov 做了一个很棒的演讲,比较了面向数据的设计和面向对象的设计,以及我们用于编程的心智模型结构并不总是实现性能的最佳方法。我们非常喜欢这个演讲的真实案例是 Chromium 项目(绝对是我们应该学习的东西),因为我们能够看到如何为动画渲染完成 DoD,而不是原来的 OoD。

Stoyan Nikolev - 实践中的面向数据的设计

主题演讲:过程的真相 (Lisa Lippincott)

Lisa Lippincot 做了此次会议的第二个主题演讲,它从理论数学的角度探讨了过程逻辑。Lisa 以一种非常具有教学意义的方式谈论了过程和断言,使得这些复杂的概念对于我们这些不熟悉抽象概念的人来说也变得容易理解。她将过程的真相描述为一个善良男孩和一个邪恶男孩之间的游戏,他们每个人都可以做出不同的陈述,在不同的分支之间进行选择,委托给对方执行,并且给定一组失败条件,整个过程将为真或假。

这个游戏从仅依赖于输入和输出的简单“真相游戏”开始,其复杂性不断增加,到玩家遍历故事的“必要性游戏”,最后到可以请求某些声明的“证明游戏”。根据这些规则,过程可以变成真(善良男孩获胜)或假(邪恶男孩获胜),从而区分由真过程组成的良好程序和由不可判定过程或假过程组成的不良程序。

最后,正如 Lisa 所说,还是有希望的,因为编程不是一个好的程序员对抗一个邪恶的世界,而是良好开发人员之间合作的结果,每个玩家都在努力赢得自己的游戏。

我们发现它非常有趣,我们中的一些人愿意阅读 Lisa 在幻灯片中添加的所有参考文献。

没有恶魔,只有其他玩家试图赢得他们的游戏

跨平台 C++ 开发充满挑战 - 让工具来帮忙!(Marc Goodner)

正如人们所料,我们对围绕 C++ 生态系统工具的演讲非常感兴趣。来自微软的 Marc Goodner 介绍了该公司提供的工具在最新版本中的一些改进。当然,他谈到了 C++ 开发人员每天必须处理的一些有趣的点,例如使用库、遵循标准使用编译器中的新特性、避免平台特定的逻辑……我们还喜欢演讲中有一半是演示,向与会者展示如何配置 Visual Studio 以正确地调试或测试,并使用它在最新的 Windows 版本中编译并支持 Linux。他显然谈到了 vcpkg 并展示了一些与 SFML 的现场使用,但也承认 Conan 之类的生态系统中还有很多事情正在发生 :)

C++、QML 和静态反射 (Manuel Sánchez)

Manu 介绍了 Qt 和 QML,以及如何为您的项目开发图形界面。但接下来就是有趣的部分了……一个优秀的工程师永远不会重复相同的代码。但是所有框架,例如 Qt,都要求遵循某些规则/接口。大多数开发人员会说,“好吧,这里没什么可做的,我需要忍受它”,但 Manu 不会。他开发了一个名为“tinyrefl”的库,“一个正在进行中的最小的 C++ 静态反射 API 和代码生成工具”,因此他通过使用 tinyrefl,开发了一个抽象/转换所有 Qt 类型并透明地连接常规 std-types 应用程序的层,而无需 QML 应用程序通常需要的冗长代码。

使用像语言的静态反射这样非常先进的技术来解决一个非常普遍的软件设计问题,这非常有趣。演讲也很有趣!

C++ 概念和范围 - 如何使用它们?(Mateusz Pusz)

继他在过去几年的会议(code::dive 和 CppCon)上所做的实用且实用的演讲之后,我们真的很想成为这次演讲的听众。Mateusz 这次谈论的是不同的事情,并为我们提供了有关如何在代码中使用概念和范围的有用且详细的信息。像往常一样,他快速地向我们传达了许多信息,但在几乎每一张幻灯片中都包含示例以指导解释。

Mateusz Pusz - C++ 概念和范围,如何使用它们?

但是,有时信息有点多(概念太多),也许最好只提供一些见解,让大家以后自己去查阅 cppreference.com。无论如何,参加他的演讲非常棒,我们相信一旦幻灯片和演讲的录制视频上传后,许多人会再次查看它们!

其他演讲

我们参加的其他一些值得一提的有趣演讲包括“面向未来基于范围的标准库的文本格式化”(Arno Schödl),他提供了关于您的代码如何从范围中受益以及 Think-Cell 如何使用范围的见解,并为社区提供了一个 OSS 库。

还有 Jonathan Müller 关于“编写缓存友好的 C++”的演讲,该演讲很好地总结了如何有效地使用缓存,并介绍了用于此目的的两个库:tiny 和 array。他以一些有用的建议作为总结,例如减少主内存访问和使用基准测试工具。James McNellis 做了一个很棒的演讲,但最棒的部分是微软时光倒流调试 (TTD) 反向调试工具包的精彩演示。如果您经常发现自己在调试 Windows 平台上的复杂问题,那么您肯定想看看这个演讲。

有一些演讲我们确实尝试参加但没有成功(人太多,我们因为在展位忙而无法提前去),例如“更现代的 CMake - 使用 CMake 3.12 及更高版本”(Deniz Bahadir)和“编译时正则表达式”(Hana Dusíková)。我们期待着看到这些视频上传!

Conan 测验

这是我们第三次在 Meeting C++ 上举办(邪恶的)C++ 测验。这是我们最喜欢的会议时刻。准备测验需要花费大量精力,但绝对值得,当你看到与会者为难题而苦苦挣扎、惊讶和惊叹,但总的来说是在一起工作和玩得开心时(参与者被安排成团队,他们不能属于同一公司或组织!)。

"C++ 的奇观与恐怖",Jens Weller

许多人问我们是否会将幻灯片发布到网上。不会,我们不会这样做。如果在线,它们将失去大部分意义。所有隐藏的信息、陷阱、笑话、故事……将无法理解。测验的重点是交流,与同事建立联系并一起享受乐趣。只有亲自参加活动才能获得这种体验,抱歉 :)

在进行 @conan_io C++ 测验 @meetingcpp 时玩得很开心🤓@diegorlosada 是个坏蛋😜 #extremecpp #meetingcpp pic.x.com/F7jWX7IudY

— Victor Ciura (@ciura_victor) 2018年11月15日

哇哦,我的团队“未初始化初始化”赢得了 @conan_io #cplusplus 测验 #meetingcpp@meetingcpp pic.x.com/Pf9NLU0K0s

— ℍannеs ℍauswеdеll (@__h2__) 2018年11月15日

结论

Meeting C++ 是我们最喜欢的会议。这是一个很棒的活动,拥有顶尖的演讲嘉宾和演讲,组织和运营良好,举办地点也十分出色且有趣。演讲视频将会上线,这样我们就可以收听无法亲临现场的演讲了。但演讲并不是会议的最佳部分。与会人员、人脉拓展、氛围、我们在知识问答环节中的乐趣……难以言喻。所以我们期待着明年再次参加。

期待在 Meeting C++ 2019 见到您!

Luis(青蛙人)、Katrin、Diego、Javi 和 Dani

  1. Meeting Embedded 于星期三举行,只有 Daniel 和 Diego 在柏林参加了会议。 

  2. 星期四,Conan 团队的更多成员从西班牙加入:Luis 和 Javier。来自市场团队的 Katrin 也从法国加入。