CppCast Episode 75: Robotics with Jackie Kay

Episode 75 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Jackie Kay from Marble to discuss the use of C++ in the Robotics industry and some of the unique challenges in Robotics development.

CppCast Episode 75: Robotics with Jackie Kay

by Rob Irving and Jason Turner

About the interviewee:

After spending her childhood wanting to become a novelist, Jackie switched over from writing stories to writing code during college. She graduated from Swarthmore College in 2014 with a Bachelor's in Computer Science and went on to work at the Open Source Robotics Foundation for two years, supporting Gazebo, a physics simulator for robotics R&D, and ROS, an open source application framework for robotics development. She recently started as an early employee at Marble in San Francisco, a startup working on autonomous delivery.

Jackie was a speaker at CppCon 2015 and 2016 and a volunteer at C++ Now 2016 and frequently attends the Bay Area ACCU meetups. Her hobbies include rock climbing, travelling, and reading (books, not just blog posts).

Visiting variants using lambdas (2: recursive variants) -- Vittorio Romeo

The article addresses the problem of lambda-based `std::variant` and `boost::variant` recursive visitation. Starting from the definition of a "recursive variant", it shows the concept and implementation behind a `make_recursive_visitor` variadic function that can be used to create "local" visitors by using lambdas.

visiting variants using lambdas - part 2

By Vittorio Romeo

From the article:

A "recursive" variant is a variant which can contain itself, and can be used to represent recursive structures. [...] Bringing algebraic data types from the functional programming world into C++ isn't enough - we're also going to adopt another powerful construct: the Y Combinator. [...] Now we can put everything together to finally visit a recursive variant using lambdas!

Tutorial: Emulating strong/opaque typedefs in C++--Jonathan Müller

Who would like this feature?

Tutorial: Emulating strong/opaque typedefs in C++

by Jonathan Müller

From the article:

Last week, I’ve released my type_safe library. I described it’s features in the corresponding blog post but because the blog post got rather long, I couldn’t cover one feature: strong typedefs.

Strong or opaque typedefs are a very powerful feature if you want to prevent errors with the type system - and as I’ve been advocating for, you want that. Unlike “normal” typedefs, they are a true type definition: they create a new type and allow stuff like overloading on them and/or prevent implicit conversions.

4th Spanish C++ conference using std::cpp 2016 (spanish)

At the 24th of November at Leganés in Madrid in Spain, for the fourth year in a row the one day event using std::cpp will gather professional developers in a series of talks devoted exclusively to C++. 

using std::cpp

This year using std::cpp includes the following talks:

  • C++17 is (almost) here. J. Daniel García (ARCOS Lab, University Carlos III), member of ISO C++ standards committee and associate professor in Computer Architecture.
  • Get your types to work. Software developer and contributor of several Boost libraries (example, Boost multi-index).
  • C++ and much more. An overview to the available libraries univers. Martin Knoblauch (Indizen Technologies), a software developer in the finance sector.
  • Test Driven Development in C++. Raúl Huertas (TCP Sistemas), a software developer with long background in the telecom business.
  • Using C++ in safety critical embedded systems for railways. Ion Gaztañaga (CAF), another Boost contributor (example, Boost Interprocess).
  • At a Matlab breakdown... Save me C++! Javier Garcia-Blas (ARCOS Lab, University Carlos III), visiting professor in Computer Architecture.
  • Static and dynamic polymorphism in C++11: Flexibility versus performance?. J. Daniel Garcia (ARCOS Lab, University Carlos III), member of ISO C++ standards committee and associate professor in Computer Architecture.
  • Using templates in C++ to design and implement. Jose Caicoya (Hotel Beds), software developer with background in real-time systems, finance and, more recently, hotel reservation systems.
  • Distributed systems: How to connect your real-time applications. Jaime Martin (eProsima), developer of an open source DDS impelementation.
  • Developing an reflection system for C++14. Manu Sanchez (ByTech), software developer and metaprogrammer.

About using std::cpp

The using std::cpp event has been happening every year since 2013 in University Carlos III (Leganes, Madrid, Spain), where every year around 200 developers have gathered to share experiences in using C++ for professional software develpment.

The event is organized by ARCOS Lab (University Carlos III), a research group focused in applications of high performance computing to multiple domains. It is also sponsored by Indizen Technologies.

Visiting variants using lambdas (1) - - Vittorio Romeo

The article covers a technique that allows variant types (both `std::variant` and `boost::variant`) to be visited using lambdas, without having to explicitly create a functor.

visiting variants using lambdas - part 1

By Vittorio Romeo

From the article:

Visiting a variant is usually done by writing a visitor struct/class outside of the scope where the variant is actually being visited. [...] It is possible to build such an object locally in the call site [...] by implementing something similar to `std::overload`.

The “unsigned” Conundrum--Tony “Bulldozer00” DaSilva

Are you clear with unsigned?

The “unsigned” Conundrum

by Tony “Bulldozer00” DaSilva

From the article:

A few weeks ago, CppCon16 conference organizer Jon Kalb gave a great little lightning talk titled “unsigned: A Guideline For Better Code“. Right up front, he asked the audience what they thought this code would print out to the standard console:

Even though -1 is obviously less 1, the program prints out “a is not less than b“. WTF?

Overload 135 is now available

ACCU’s Overload journal of October 2016 is out. It contains the following C++ related articles.

Overload 135 is now available

From the journal:

Determinism: Requirements vs Features
A program can easily be non-deterministic. Sergey Ignatchenko considers how to define determinism. by Sergey Ignatchenko

Eight Rooty Pieces
Finding a square root is a common interview question. Patrick Martin demonstrates eight different ways to find a root. by Patrick Martin

Polymorphic Comparisons
Polymorphic comparisons require much boilerplate. Robert Mill and Jonathan Coe introduce a template utility for such comparisons. by Robert Mill and Jonathan Coe

C++ Synchronous Continuation Passing Style
Direct and continuation passing styles differ. Nick Weatherhead explains a continuation passing style for synchronous data flow. by Nick Weatherhead

Attacking Licensing Problems with C++
Software licenses are often crackable. Deák Ferenc presents a technique for tackling this problem. by Deák Ferenc