Richard's August Update
Some months ago, I was asked how to handle HTTP redirect responses in beast. Characteristically, I took a moment to model how I would do that in my head, waved my hands and kind of explained it and that was that.
Read more →Richard has been programming professionally on and off since 1986. In C++ since 1996.
He has used low and high level languages professionally, including assembler, c, c++ visual basic, javascript and python - with brief encounters with .net and java. But his favourite medium is c++.
After a lull in interest in c++ in the early part of the Millenium due to the rapid advancement of other languages, Richard was delighted to learn of the release of c++11 while working at Morgan Stanley in London. This renewed his interest and enthusiasm for the language, particularly after learning about the proposed c++ development roadmap presented by Herb Sutter. The fact that this was never fully embraced was a source of concern for him. His view is that this is a win for library maintainers, but a loss for the user community in general.
Since then, Richard has authored two large-scale commercial systems in c++14 (cryptographic information sharing) and c++17 (financial quoting/dealing and market data), enthusiastically embracing new features as they become available.
Over the years, Richard has worked in the fields of games, financial services, defence, security, payment systems, information management and cryptocurrency markets. On reflection his view is that the only one of these that serves Humanity in any way is games.
Richard enjoys mentoring when asked and appears semi-regularly to answer some of the stack overflow questions left by beginners, whose questions tend not to attract the interest of the Big Hitters.
When designing code for executables and libraries to be used in a production environment, Richard strongly favours the approaches of Separation of Concerns and Dependency Injection.
Richard is entirely self taught.
He first learned of the existence of machine code at age 11 while playing with his friends' Sinclair ZX81. This led to his first self-financed purchase of a Motorola 6809-based personal computer at the age of 13. His first assembler project was a device driver to connect a 1960s teletype printer to that machine in order to print out a Mother's Day message. Interestingly, the driver worked perfectly, but the printed message had a spelling mistake.
This led to a summer job writing TMS9995 assembler for a gambling machine company at the age of 16.
Richard is of the view that while education is helpful in covering off the basics of computer programming, the most important drivers for becoming good at it are a love of the craft, and mixing with people who are better than you.
He is grateful to have been privileged to work with and learn from some of the finest minds on this planet.
Q: Why work with the C++ Alliance?
Because I think we have the same interests and drivers. I used to humorously say that the World only needed two languages - c++ and javascript. But then I discovered Emscripten, so we don't really need javascript.
Q: How did you learn of the Organisation?
I used Boost.Beast in my last production system. A global mesh of market data distribution nodes that, for legacy reasons, had to communicate in HTTP and Websocket unsing JSON. My colleagues thought the obvious solution was Node.js. But I had seen that Boost 1.69 contained the Beast library and I was intrigued. During the development I contacted Vinnie on the cpplang slack channel to ask a few questions... Now I am a maintainer of Boost.Beast
Q: What in your view is the most important challenge facing the c++ community?
Q: What are your favourite things in C++ at the moment?
Some months ago, I was asked how to handle HTTP redirect responses in beast. Characteristically, I took a moment to model how I would do that in my head, waved my hands and kind of explained it and that was that.
Read more →Asio (available standalone and in Boost ) defines a pattern for writing asynchronous operations. There have been a few examples in my blogs of custom composed operations written in terms of several asynchronous operations made available by the library.
Read more →It’s been a month of minor maintenance fixes, and a fair amount of support requests via the C++ Alliance Slack workspace .
Read more →Last month I took over the maintenance of the Boost Property Tree library.
Read more →Last month I took over the maintenance of the Boost Property Tree library.
Read more →January marks one year since I joined the C++ Alliance and started maintaining the Boost.Beast library.
Read more →Something I am often asked by users of Boost Beast is how to code a client which effectively re-uses a pool of HTTP connections, in the same way a web browser does.
Read more →This month I thought I would present a little idea that I had a few months ago.
Read more →I started this train of thought when I wanted to hook up some back-end style code that I had written to a gui front end. One way to do this would be to have a web front end subscribing to a back-end service, but I am no expert in modern web technologies so rather than spend time…
Read more →This month I will be discussing two issues. One of interest to many people who come to us with questions on the Github Issue Tracker and the #beast channel of Cpplang Slack .
Read more →As covered previously, Boost 1.74 brought an implementation of the new unified executors model to Boost.Asio.
Read more →Boost 1.74 beta release has been published and the various maintainers are applying last-minute bug fixes to their libraries in readiness for the final release on 12th August.
Read more →Empowering C++ by funding libraries, building community, and advancing the language.
Connect with us