- Two talks from CppCon, by Steven Simpson and Patricia Aas
TLDR; Steven Simpson and Patricia Aas will present their talks from CppCon 2018. Steven Simpson with "Source Instrumentation for Monitoring C++ in Production" and Patricia Aas with "Software Vulnerabilities in C and C++" We would love to have someone sponsor this event with food and drinks! Longer version "Source Instrumentation for Monitoring C++ in Production" It is essential to discuss how modern C++ code can be effectively instrumented, in order to effectively monitor it after deployment. This talk will focus on portable source instrumentation techniques such as logging, tracing and metrics. Straightforward, but well designed code additions can drastically ease the troubleshooting of functional issues, and identification of performance bottlenecks, in production. Of course when dealing with C++ performance is often critical, and so minimizing the cost of any instrumentation is also critical. Key to this is understanding the trade-off between the detail of information collected, and the overheads of exposing that information. It is also important to understand how best to benefit from advances in contemporary monitoring infrastructure, popularised by "cloud" environments. This talk will open with a brief summary of monitoring goals, infrastructure, benefits, and existing practise. It will then detail practicalities of building a set of C++ source instrumentation primitives, based on proven principles employed in demanding production software. "Software Vulnerabilities in C and C++" What does a vulnerability using signed integer overflow look like? Or a stack buffer overflow? How does code like this look and how can we change the way we program to reduce our risk? The first half of this talk will show examples of many different vulnerabilities and describe how these are combined to make the first steps of an exploit. Then we will discuss what kind of programming practices we can employ to reduce the chances of these kinds of bugs creeping into our code. Hope to see you there! Patricia
- Bjarne Stroustrup: What C++ is and what it will become (NDC TechTown, Kongsberg)
Magazinet Event & Konferansesenter
This will be free meetup featuring a talk by Bjarne Stroustrup, the creator of C++, about the evolution of the language, the current state, and the direction C++ is heading. Some food will be served at the venue. And there is a bar where you can buy something to drink. The venue is just a few minutes walk from the train station. PS: Bjarne is in Kongsberg because of the annual NDC TechTown conference (http://ndctechtown.com) where he is doing the opening keynote. There is a promocode available for members of Oslo C++ Users group if you plan to attend, please contact Olve.
- Using C++ for Work (NDC Oslo C++ Community Meetup)
Register here : https://ndcoslo.com/page/ndc-community-tuesday/ This meetup will be hosted by NDC Oslo in the conference venue Oslo Spektrum. We will have three 30 minute talks and one 30 minute panel discussion. Our speakers are Adi Shavit (@AdiShavit), Björn Fahller (@bjorn_fahller) and Victor Ciura (@ciura_victor), and for the panel they will be joined by Andrei Alexandrescu (@incomputable). Patricia Aas (@pati_gallardo) will be your event host. We will serve some light snacks and beverages sponsored by Vivaldi Technologies, the company behind Vivaldi browser which takes your browsing to the next level with its numerous features that gives you a more dynamic experience of the web. -- The talks -- == Clang Power Tools for Visual Studio C++ Developers, Victor Ciura (30 min) “A 15 year old code base under active development, 2.5 million lines of C++ code, a few brave nerds and two powerful tools…”, or “How we managed to clang-tidy our whole code base, while maintaining our monthly release cycle”. Did I mention that we’re a Windows-only dev team using Visual C++ ? Victor Ciura is a Senior Software Engineer at CAPHYON and Technical Lead on the Advanced Installer team (http://www.advancedinstaller.com). He’s a regular guest at Computer Science Department of his Alma Mater, University of Craiova, where he gives student lectures & workshops on “Using C++STL for Competitive Programming and Software Development”. Currently, he spends most of his time working with his team on improving and extending the repackaging and virtualization technologies in Advanced Installer IDE, helping clients migrate their Win32 desktop apps to the Windows Store (AppX). == Higher order functions for ordinary C++ developers, Björn Fahller (30 min) Higher order functions, i.e. functions that accept functions as parameters, or return functions, are not used much by C++ developers, except for the occasional call to standard algorithms. This session will show some simple techniques for writing your own, that will lift the level of abstraction in your programs, making code easier to read while reducing code duplication, and maintaining performance. Björn Fahller wrote his first program in 1980. After completing his MSc in CS and Engineering in 1994, programming has been the primary source of income, mostly from writing embedded software for communications systems. He has been working for a while at Net Insight, where he wears many hats, including mentor, trouble shooter, network communications expert, software architect and programmer; the latter in increasingly modern C++. == Panel : Keeping up your skills while getting your job done (30 min) Adi Shavit, Andrei Alexandrescu, Björn Fahller and Victor Ciura will have an informal panel discussion on keeping up with C++ and adapting the way we program, while still getting things done. Andrei Alexandrescu is a researcher, software engineer, and author. He wrote three best-selling books on programming (Modern C++ Design, C++ Coding Standards, and The D Programming Language) and numerous articles and papers. Andrei holds a PhD in Computer Science from the University of Washington and a BSc in Electrical Engineering from University "Politehnica" Bucharest. He currently works with the D Language Foundation. http://erdani.com == The C++ Bestiary, Adi Shavit (30 min) C++ is blessed with a plethora of gotchas, traps, caveats, pitfalls and footguns. From Abominable Types to Zombies, many shady characters lurk within the C++ dungeons. In this fun talk I will introduce you to some of these decrepit denizens. Adi Shavit is an entrepreneur, speaker, independent consultant, experienced software architect and a computer vision, image processing, and machine learning expert with an emphasis on real-time applications. He specializes in building cross-platform, high-performance software combined with high production quality and maintainable code-bases. Adi is also the founder of the Core C++ users group in Israel.
- C++ Countdown with Jon Jagger
This is a fun session based on the popular UK game show Countdown  and its parody, 8 out of 10 cats does Countdown . In the TV version contestants take turns picking 9 random vowels/consonants and finding the longest word in 30 seconds. in this version contestants take turns picking 7 random C++ tokens from 5 categories: (keywords, identifiers, operators, punctuators, literals) and writing the shortest C++ program using all 7 tokens in 8 minutes. More details about the game can be found here: https://conference.accu.org/site/stories/2017/sessions.html#XACCUdoesCCountdown  http://www.channel4.com/programmes/countdown  http://www.channel4.com/programmes/8-out-of-10-cats-does-countdown
- Lambdas vs. std::bind in C++11 and C++14
Scott Meyers (http://www.aristeia.com/) visits Oslo next week. On Monday and Tuesday he is teaching a course on Effective C++11/14 Programming (http://www.programutvikling.no/kurs/effective-c11-14-programming/2918) (OCPPUG members gets 15% off), and he will attend and give talks at the Norwegian Developer Conference (http://www.ndcoslo.com/). But on Friday evening, he will join Oslo C++ Users Group to Scotsman to give a talk on lambdas vs. std::bind in C++11 and C++14. Here is the description of the talk: C++ developers have long had a need to bind functions and arguments together for a later call. This is what makes it possible to invoke member functions on objects inside STL algorithms. The same technology can be used to create custom callback functions and to adapt function interfaces to different calling contexts. In C++98, such binding was accomplished via std::bind1st and std::bind2nd. TR1 added std::tr1::bind, which was promoted to std::bind in C++11. But C++11 also introduced lambda expressions, and they’re slated to become even more powerful in C++14. That means that there are now two mechanisms in C++ for binding functions to arguments for later calls: std::bind and lambda expressions.In this talk, Scott examines the pros and cons of each approach, comparing them in terms of expressiveness, clarity, and efficiency, and he comes to the conclusion that one should almost always be used instead of the other. But which one? This talks assumes a basic familiarity with std::bind and C++11 lambda expressions. Doors open at 1800. The formal part of the meeting starts 1830. Some of us will arrive early to eat before the talk. The formal part of the meeting ends 2030. But as usual, a lot of us will stay in the pub to continue deep discussions on C++. Please use this opportunity to also invite more colleagues and friends to join Oslo C++ Users Group.
- A joint meetup with Oslo Python: Integrating C++ with Python: How, Why, and When
This meetup is listed here on Oslo C++ and on Oslo Python. Please RSVP on only one of these to avoid double counting. C++ is a great language for some tasks, but in many places it causes more problems than it solves. Python complements C++ well, and it's often an ideal language for writing those pieces of a system for whichC++ is awkward. In this presentation I'll talk about how you can - and why you might want to - build C++ APIs on top of Python modules and use them directly from your C++ programs. This presentation is based in large part on actual experience with a large, complex, mission-critical C++ application, and I'll cover everything from technical challenges to political issues you might face. The topics will include: * Identifying where Python might be useful * How to make the case for Python to your peers * Technical aspects of interfacing the two languages * Python runtime management: initialization, module loading, etc. * Working with the “impedance mismatches” between the languages (e.g. duck-typing vs. static typing) I will also discuss the reasons why C++ APIs on Python code represent a very useful and often powerful technique. The reasons range from simple pragmatism (you want to use an existing Python module in an existing C++ program) to productivity (writing Python code plus a C++ wrapper can be easier and faster than writing pure C++.) Austin works professionally in Norway with both Python and C++ and is creator of, and contributor to, several Python open source projects
- GoogleTest - C++ Testing Framework
Anders Knatten will present GoogleTest, a C++ testing framework. Agenda: What is Google C++ Testing Framework, aka. GoogleTest How to install on Windows/Visual Studio and Ubuntu/GCC How to start using GoogleTest in your project, how to organize the code Live coding! Examples from single tests, via reuse of fixtures to parametrized tests Demonstrate some techniques that makes testing easier Short demonstration of powerful matchers from Google Mock if time allows Q&A session after the talk. Bring a laptop if you need help with anything After the presentation there will be a social gathering at the bar. Pleaes notice that this event is in Lillestrøm (Klimt Rythme & Bar, Storgt 23), but only 11 minutes by train from Oslo. The Meetup is a collaboration with Kjeller Software Community (http://www.meetup.com/Kjeller-Software-Community/)
- C++ Pub Quiz
I have news - one good and one bad. The good news first. We will meet at a pub (The Scotsman) and there will be free drinks at the meetup (sponsored by Programutvikling). The bad news is... I am very sorry, and so is he... Herb Sutter had to cancel his talk. We will do a C++ Pub Quiz instead. I will present a set of small C++ snippets and you will work in groups trying to reason about and come up with good answers. There will be many educational snippets where we elaborate on the basics of C++, but some of the snippets will be really hard with surprising answers and where we explore the dark and dusty corners of the language. The motivation for doing the quiz is to learn from each other while having fun. Let's meet at 1800, perhaps you would like to order some food? The quiz starts 1830. We end the formal part of the meetup at 2000, but then I am sure that several of us will gather to continue the discussions and perhaps celebrate the release of the C++11 standard. Please update your RSVP status. I expect that several will prioritize differently as Herb Sutter is not giving a talk, but it would be cool if you join us for a C++ Pub Quiz.
- C++ for Marine Streamer Positioning and Navigation
Mike Long will give a talk on how he uses C++ in resource constrained devices in marine navigation and positioning embedded devices. Topics will include: - Short introduction to the domain - Building a gcc cross compile toolchain - Programming and On-chip debugging - Stacks & Heaps: Linker Scripts - The time before "int main()" - C++ on a diet (living without dynamic memory allocation, the standard library, exceptions, and rtti) - Testable Embedded C++ We will meet at the Scotsman, 3rd floor. Let's meet around 1800. The actual talk will start 1830, but I hope you want to come early to mingle and have something to eat first (they serve pizza and fish&chips). I will probably be there from 1730 to get things up and running, please join meg. The formal part of the meetup ends at 2000 due to a football match, but we can probably find a quiet corner where we can enjoy a few beers. Welcome! By the way, there are still a few spots available. Perhaps you should encourage a colleague to join OCPPUG? www.ocppug.org
- Solid C++ by Example
Sometimes you see code that is perfectly OK according to the definition of the language but which is flawed because it breaks to many established idioms and conventions of the language. This will be an interactive session with discussions about good vs bad C++ code. We will discuss simple C++ idioms and coding conventions, but we will also touch upon best practices when working with C++ in large codebases with lots of developers with mixed skills. This particular meeting is part of a bigger event, CIA 2010 organized by Cantara (http://wiki.cantara.n... (http://wiki.cantara.no/display/PE/Invitasjon+til+Communities+in+Action+2010) ). Together with 7 other communities we will organize our meeting at the same time, at the same place, so we can mingle together and have interesting discussions before and after the meetings. Is it a long time since you had a beer with a Perl programmer? Do you know Scala? Well, this is a great chance to update yourself! Hope to see a lot of people here, please invite all the C++ programmers you know to this event! Since we are at the Radisson Blue hotel we should have plenty of space.