Tag: cppcode

The Ride with WebAssembly: Taking Your C++ and Going Places – by Nipun Jindal & Pranay Kumar – CppCon 22

  • Lobby
  • Tag Archives: cppcode

https://cppcon.org/
---

The Ride with WebAssembly : Taking Your C++ and Going Places - Nipun Jindal and Pranay Kumar - CppCon 2022
https://github.com/CppCon/CppCon2022

- You've heard of WebAssembly, and might have used it as well in web projects. This workshop explains tries to cover the good stuff that you would definitely need in the journey to expand your horizons on the web.

As C++ developers, we all wish to see a web application running core logic utilizing the same, almost cross-platform performant C++ source, No problem. As we know WebAssembly is an actual byte-code language one can compile your native code to instead. We'll discuss WebAssembly, and see how the magic of taking C++ code and turning it into executable code within the browser happens.

This workshop will explain well how WebAssembly works, how to use it, and how to build and use your WebAssembly modules from C++ code along with a demo. Important intermediary skills such as debugging, network communication, different types of file system access, and tweaks/caution needed would be provided in the workshop.

Additionally, possible dark places such as - threading issues, system calls tweaking, memory management would be covered as well. We would be taking a sample "Hello world", a sample (legacy vs modern) C++ project and would transform these for WebAssembly as part of the exercises along with some exercise at the end for regular, open-source C++ projects.

So grab C++ code, a modern browser, and let's get started!

Key Takeaways:

- You'll have the right footing you need to start building applications that feature WebAssembly.
- Have the vision to identify the web projects that may take advantage of C++ modules / libraries.
- Intermediate / Professional skills of WebAssembly
- Dark places / pitfalls of C++ WebAssembly development
---

Nipun Jindal

Nipun Jindal is a Senior Computer Scientist working at Adobe Systems. He has previously worked on multiple cross platform compatible desktop and mobile application like Flash, Adobe Photoshop, Adobe Capture, Adobe XD, developing his skill for cross platform development and eye for fast pace systems. His current set of responsibilities include moving the charter of fonts recommendation and fonts collaboration across different Adobe Creative Products. He is majorly interested in creating scalable systems with high performance. LinkedIn - https://www.linkedin.com/in/jindalnipun/

Pranay Kumar

Pranay Kumar is a Computer Scientist working in Adobe India with a passion for C++ development. He has been currently working towards utilizing the capabilities of emerging Adobe Fonts experience within the Adobe products. In the past several years with Adobe, he has contributed to the new licensing hybrid stack which is currently being used across the new version of Adobe Creative Cloud products such as Photoshop, Illustrator & InDesign, etc. His major interests lie in enabling the full potential of Adobe Fonts for consumers with modern C++ usage to ensure more secure, reliable & performant applications. Blog - https://medium.com/pranayaggarwal25 Website - http://pranayaggarwal.github.io/
__

Videos Streamed, Edited, and YouTube Channel Managed by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #webassembly

Filed under: UncategorizedTagged with: , , , , ,

Functional Composable Operations with Unix-Style Pipes in C++ – Ankur Satle – CppCon 2022

  • Lobby
  • Tag Archives: cppcode

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Functional Composable Operations with Unix-Style Pipes in C++ - Ankur Satle - CppCon 2022
https://github.com/CppCon/CppCon2022

Let's write C++ code like this shaking off all the verbosity and with 100% domain code and ~0% syntax! Do we really need to explicitly state whether a function is a continuation or a transform?

return get_env("KafkaConsumerConfigFile")
| get_file_contents
| make_client
| connect
| subscribe;
Unix commands seamlessly compose, piping into each other to form a clear train of operations in one line! Similarly in C++, we moved away from non-composable, multi-step processing of ranges using algorithm. We embraced the composable ranges using pipes. This reduced time & space complexity, improved performance, provided clarity & reduced cognitive load when working with ranges.

But, when NOT dealing with std::ranges, can one work with such easy composability? Why not pipe operations to work with application/business entities! YES, of course, I say! Let's pipe application logic operations & get declarative! HOW HARD COULD IT BE!

With just C++11, we achieve piping operations for any generic T & a Callable. We address Error handling, Resource management, Customizations and Variations like chaining functions taking more than 1 argument or invoking a member function operation instead of free function. Supporting C++20, we make sure our pipe implementation does NOT interfere with std::ranges operations.

Finally, we address the proposed C++23 Monadic interface functions (and_then, transform, or_else) of std::optional and present how we can implement the same without having to explicitly state the verbose and_then, transform, or_else to work with optional. We encounter a surprise on the way & correct overload resolution by employing a concept.

We also discuss critique & compromises of this approach.
---

Ankur Satle

Ankur is an avid (natural) language learner, but C++ is his mother tongue!
His mantra is: "Effective, Efficient & Elegant". He leverages the power of the small to build large-scale systems. As Smart Data Platform Architect at EXFO, he builds High-performance, Scalable, Telecom Products for 4G/5G Core. He loves working in constrained environments.
He was the Organizer & Host of CppIndiaCon, since inception. His dream came true when he hosted the AMA with Bjarne Stroustrup!
He is the Core Organizer at CppIndia, India's C++ User Group, the most active C++ user group.
He has presented at CppCon 2020 & CppCon 2021, CppIndiaCon 2021 & CppIndiaCon 2022
__

Videos Streamed, Edited, and YouTube Channel Managed by Digital Medium: http://online.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , , ,