<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Francis</title>
    <description>The latest articles on DEV Community by Francis (@lightcity).</description>
    <link>https://dev.to/lightcity</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1233909%2F07415785-aba2-4344-90f0-05305100f69b.png</url>
      <title>DEV Community: Francis</title>
      <link>https://dev.to/lightcity</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lightcity"/>
    <language>en</language>
    <item>
      <title>How to Reverse Engineer a Video, Shot by Shot</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Thu, 12 Nov 2026 16:40:48 +0000</pubDate>
      <link>https://dev.to/lightcity/how-to-reverse-engineer-a-video-shot-by-shot-4fgf</link>
      <guid>https://dev.to/lightcity/how-to-reverse-engineer-a-video-shot-by-shot-4fgf</guid>
      <description>&lt;p&gt;Ever watched an ad and wondered "how did they make that?" Not the story — the &lt;em&gt;production&lt;/em&gt;. Which shots were filmed, which were AI-generated, why the cuts land where they do. That question used to require guesswork. It doesn't anymore.&lt;/p&gt;

&lt;p&gt;This is a practical guide to breaking a video down into its production decisions — and rebuilding that knowledge into something you can make yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Separate the picture from everything on top of it
&lt;/h2&gt;

&lt;p&gt;Most "video breakdowns" stop at the story. A production breakdown starts by splitting the video into layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The base picture&lt;/strong&gt; of each shot: filmed with a camera, generated by an AI model, rendered in 3D, drawn by code, or a screen recording.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The packaging&lt;/strong&gt;: captions, titles, stickers, picture-in-picture — everything composited in editing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The sound&lt;/strong&gt;: voice, music, and effects, which usually follow their own timeline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest mistake beginners make is treating a shot as one thing. A single two-second shot can be an AI-generated background, a real product photo composited on top, and a caption added in post — three production routes in one moment, each needing different tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Judge each shot's source like a detective, not a fan
&lt;/h2&gt;

&lt;p&gt;How do you tell filmed from generated? Watch for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Physics tells&lt;/strong&gt;: generated motion often smears details, softens hands, or drifts lighting between frames.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cut density&lt;/strong&gt;: AI clips tend to be single continuous shots (generation limits), while filmed sequences cut more freely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt;: does the product/logo/text stay identical across shots? Generation often mutates it; filming can't.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Certainty matters. Good analysis states confidence: "likely AI (70%) — hands blur during the turn" beats a confident wrong guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Read the edit like a rhythm section
&lt;/h2&gt;

&lt;p&gt;Shot lengths tell you the genre's grammar: product ads cut every 1.5–3 seconds; tutorial content holds 5–8; drama leans longer. Note where cuts land relative to sound — a sound effect hitting exactly on a product reveal is an editing decision, not luck.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Turn observations into a remake plan
&lt;/h2&gt;

&lt;p&gt;For each shot, assign a production route:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Film it&lt;/strong&gt; → note framing, lighting, duration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate it&lt;/strong&gt; → draft a prompt covering subject, motion, camera, style&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it in code&lt;/strong&gt; (UI demos, text animations) → note the layout and motion&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assemble it&lt;/strong&gt; (captions, stickers, music) → list what lands in post, at what timestamp&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep prompts per &lt;em&gt;generation unit&lt;/em&gt;, not per video — most AI video models handle one shot or one short sequence per call.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Doing it programmatically
&lt;/h2&gt;

&lt;p&gt;This workflow is exactly what &lt;a href="https://reavideo.ai" rel="noopener noreferrer"&gt;rea-video&lt;/a&gt; automates. It's a free, open-source (Apache-2.0) analyzer that runs locally and works as a skill inside AI coding agents like Claude Code or Codex:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install per the repo docs, then decompose a clip&lt;/span&gt;
rea-video --env-file .env decompose reference.mp4 -o out/ref --vlm --lang en
rea-video summary out/ref/breakdown.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It labels every shot live-action vs AI-generated vs code-rendered with the evidence frames behind each call, splits captions and audio layers, and generates the remake plan (which shots to film, which to generate, with draft prompts). Your reference videos never leave your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Test one shot before committing to the rest
&lt;/h2&gt;

&lt;p&gt;Rebuild your most important single shot first. If the remake reads wrong — timing off, motion unconvincing — adjust before scaling the workflow to all 30 shots.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can't recover
&lt;/h2&gt;

&lt;p&gt;Honesty section: compression destroys most forensic traces. You will rarely recover an exact original prompt or an editable project file. What you &lt;em&gt;can&lt;/em&gt; recover is the decision structure — and that's the part worth learning anyway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The workflow in one line:&lt;/strong&gt; layer it, source it, time it, route it, test one shot.&lt;/p&gt;

</description>
      <category>opensource</category>
    </item>
    <item>
      <title>All About the Const Family in C++</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Mon, 30 Sep 2024 09:01:10 +0000</pubDate>
      <link>https://dev.to/lightcity/all-about-the-const-family-in-c-335n</link>
      <guid>https://dev.to/lightcity/all-about-the-const-family-in-c-335n</guid>
      <description>&lt;p&gt;&lt;strong&gt;Outline&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;const&lt;/li&gt;
&lt;li&gt;constexpr&lt;/li&gt;
&lt;li&gt;consteval&lt;/li&gt;
&lt;li&gt;constinit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding const, constexpr, consteval, and constinit in Modern C++&lt;/p&gt;

&lt;p&gt;more detail: &lt;a href="https://medium.com/gitconnected/all-about-the-const-family-in-c-a87070d602b6" rel="noopener noreferrer"&gt;https://medium.com/gitconnected/all-about-the-const-family-in-c-a87070d602b6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jvorbnw4sllpwapjcib.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jvorbnw4sllpwapjcib.png" alt="Image description" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>programming</category>
      <category>beginners</category>
      <category>c</category>
    </item>
    <item>
      <title>"Inside DuckDB" series articles</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Wed, 08 May 2024 08:27:00 +0000</pubDate>
      <link>https://dev.to/lightcity/inside-duckdb-series-articles-20in</link>
      <guid>https://dev.to/lightcity/inside-duckdb-series-articles-20in</guid>
      <description>&lt;p&gt;Recently, I’ve been interested in DuckDB’s code. DuckDB is a C++ open-source project, great for beginners to learn, especially those in the database industry.&lt;br&gt;
I will share knowledge about DuckDB kernel-Pipeline&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrdq5ep1kvuret841dfa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrdq5ep1kvuret841dfa.png" alt="Image description" width="800" height="337"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://levelup.gitconnected.com/inside-duckdb-deep-dive-into-duckdb-metapipeline-c9c3c891c2ad"&gt;Inside DuckDB: Deep Dive into DuckDB MetaPipeline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://levelup.gitconnected.com/inside-duckdb-a-comprehensive-guide-to-debugging-multi-threading-pipeline-with-lldb-gdb-fa6fe433f3ee"&gt;Inside DuckDB: A Comprehensive Guide to Debugging Multi-threading Pipeline with lldb/gdb&lt;/a&gt;&lt;/p&gt;

</description>
      <category>duckdb</category>
      <category>database</category>
      <category>programming</category>
      <category>cpp</category>
    </item>
    <item>
      <title>"Inside DuckDB" series articles</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Wed, 08 May 2024 08:27:00 +0000</pubDate>
      <link>https://dev.to/lightcity/inside-duckdb-series-articles-1b85</link>
      <guid>https://dev.to/lightcity/inside-duckdb-series-articles-1b85</guid>
      <description>&lt;p&gt;Recently, I’ve been interested in DuckDB’s code. DuckDB is a C++ open-source project, great for beginners to learn, especially those in the database industry.&lt;br&gt;
I will share knowledge about DuckDB kernel-Pipeline&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrdq5ep1kvuret841dfa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrdq5ep1kvuret841dfa.png" alt="Image description" width="800" height="337"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://levelup.gitconnected.com/inside-duckdb-deep-dive-into-duckdb-metapipeline-c9c3c891c2ad"&gt;Inside DuckDB: Deep Dive into DuckDB MetaPipeline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://levelup.gitconnected.com/inside-duckdb-a-comprehensive-guide-to-debugging-multi-threading-pipeline-with-lldb-gdb-fa6fe433f3ee"&gt;Inside DuckDB: A Comprehensive Guide to Debugging Multi-threading Pipeline with lldb/gdb&lt;/a&gt;&lt;/p&gt;

</description>
      <category>duckdb</category>
      <category>database</category>
      <category>programming</category>
      <category>cpp</category>
    </item>
    <item>
      <title>Inside DuckDB: Deep Dive into DuckDB MetaPipeline</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Wed, 17 Apr 2024 02:00:15 +0000</pubDate>
      <link>https://dev.to/lightcity/inside-duckdb-deep-dive-into-duckdb-metapipeline-4e9m</link>
      <guid>https://dev.to/lightcity/inside-duckdb-deep-dive-into-duckdb-metapipeline-4e9m</guid>
      <description>&lt;p&gt;Recently, I’ve been interested in DuckDB’s code and decided to take a look. DuckDB is a C++ open-source project, great for beginners to learn, especially those in the database industry.&lt;/p&gt;

&lt;p&gt;This section will delve into the MetaPipeline of DuckDB, using an example of joining two tables.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;SELECT name, score FROM student st INNER JOIN score s ON  st.id = s.stu_id;&lt;br&gt;
The final plan for this SQL is:&lt;/p&gt;

&lt;p&gt;➜  debug git:(master) ./duckdb stu&lt;br&gt;
v0.8.1-dev416 9d5158ccd2&lt;br&gt;
Enter ".help" for usage hints.&lt;br&gt;
D EXPLAIN SELECT name, score FROM student st INNER JOIN score s ON  st.id = s.stu_id;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────┐
│┌───────────────────────────┐│
││       Physical Plan       ││
│└───────────────────────────┘│
└─────────────────────────────┘
┌───────────────────────────┐                             
│         PROJECTION        │                             
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │                             
│            name           │                             
│           score           │                             
└─────────────┬─────────────┘                                                          
┌─────────────┴─────────────┐                             
│         HASH_JOIN         │                             
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │                             
│           INNER           │                             
│        stu_id = id        ├──────────────┐              
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │              │              
│           EC: 4           │              │              
│          Cost: 4          │              │              
└─────────────┬─────────────┘              │                                           
┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│         SEQ_SCAN          ││         SEQ_SCAN          │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   ││   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│           score           ││          student          │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   ││   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│           stu_id          ││             id            │
│           score           ││            name           │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   ││   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│           EC: 4           ││           EC: 3           │
└───────────────────────────┘└───────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before diving into this article, let’s ask a few questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What exactly happens with MetaPipeline?&lt;/li&gt;
&lt;li&gt;How many plans are there in the above plan?&lt;/li&gt;
&lt;li&gt;What is a Pipeline?&lt;/li&gt;
&lt;li&gt;What is a MetaPipeline?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, let’s get into the main content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/gitconnected/inside-duckdb-deep-dive-into-duckdb-metapipeline-c9c3c891c2ad"&gt;Inside DuckDB: Deep Dive into DuckDB MetaPipeline&lt;/a&gt;&lt;/p&gt;

</description>
      <category>duckdb</category>
      <category>beginners</category>
      <category>cpp</category>
      <category>database</category>
    </item>
    <item>
      <title>C++ vs Rust: Crafting an Unwrap-Like Function Inspired by Rust</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Thu, 21 Mar 2024 07:56:42 +0000</pubDate>
      <link>https://dev.to/lightcity/c-vs-rust-crafting-an-unwrap-like-function-inspired-by-rust-1ad1</link>
      <guid>https://dev.to/lightcity/c-vs-rust-crafting-an-unwrap-like-function-inspired-by-rust-1ad1</guid>
      <description>&lt;p&gt;In C++ programming, there are situations where we need to pass references without making copies or use constant objects where references are needed. To address these issues, the C++ standard library provides three useful tools: std::cref, std::ref, and std::reference_wrapper. This article delves into the purposes, distinctions, and practical applications of these tools.&lt;/p&gt;

&lt;p&gt;Additionally, in the Rust language, the Unwrap method is often implemented. How can we achieve this in C++?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://levelup.gitconnected.com/c-vs-rust-crafting-an-unwrap-like-function-inspired-by-rust-6bca9cab32a8"&gt;C++ vs Rust: Crafting an Unwrap-Like Function Inspired by Rust&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>cpp</category>
      <category>functional</category>
      <category>programming</category>
    </item>
    <item>
      <title>Data Structure Visualization: 7 dynamic online visualization websites</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Tue, 19 Mar 2024 11:16:17 +0000</pubDate>
      <link>https://dev.to/lightcity/data-structure-visualization-7-dynamic-online-visualization-websites-dei</link>
      <guid>https://dev.to/lightcity/data-structure-visualization-7-dynamic-online-visualization-websites-dei</guid>
      <description>&lt;p&gt;In the realm of computer science, algorithms and data structures serve as the building blocks for robust software systems. However, understanding and analyzing these concepts can sometimes pose challenges. To aid learners in grasping these concepts more effectively, numerous developers and educators have created a variety of excellent algorithm and data structure visualization websites. In this blog post, I’ll introduce 7 of the most outstanding websites in this category and provide brief overviews of their features and advantages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://light-city.medium.com/data-structure-mastery-unleashed-8-dynamic-online-visualization-platforms-fdc62bcc1225"&gt;Data Structure Visualization: 7 dynamic online visualization websites&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xk0bg55w27mwvpgkyr2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xk0bg55w27mwvpgkyr2.png" alt="Image description" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>datastructures</category>
      <category>cpp</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>Efficient Memory Management: Exploring the pmr Module in C++17</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Tue, 27 Feb 2024 09:06:31 +0000</pubDate>
      <link>https://dev.to/lightcity/efficient-memory-management-exploring-the-pmr-module-in-c17-4mme</link>
      <guid>https://dev.to/lightcity/efficient-memory-management-exploring-the-pmr-module-in-c17-4mme</guid>
      <description>&lt;p&gt;Want to improve the performance of your C++ programs? Want to manage memory more efficiently and reduce memory fragmentation and system call calls? Then, the pmr (Polymorphic Memory Resource) module introduced in C++17 is the key tool you need to know!&lt;/p&gt;

&lt;p&gt;The pmr module provides C++ programmers with a powerful toolset that enables them to manage memory in a more flexible and efficient manner. With the pmr module, you can easily create custom memory resources and leverage the memory pool manager to optimize the performance of memory allocation and release. Not only that, the pmr module also provides you with a unified memory management interface, allowing you to easily and seamlessly integrate with other components of the standard library.&lt;/p&gt;

&lt;p&gt;origin article is:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://levelup.gitconnected.com/efficient-memory-management-exploring-the-pmr-module-in-c-17-adddf6b0d4ef"&gt;https://levelup.gitconnected.com/efficient-memory-management-exploring-the-pmr-module-in-c-17-adddf6b0d4ef&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>cpp</category>
      <category>beginners</category>
    </item>
    <item>
      <title>C++ Performance Improvement through final devirtualization</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Fri, 12 Jan 2024 10:16:08 +0000</pubDate>
      <link>https://dev.to/lightcity/c-performance-improvement-through-final-devirtualization-31f1</link>
      <guid>https://dev.to/lightcity/c-performance-improvement-through-final-devirtualization-31f1</guid>
      <description>&lt;p&gt;C++, the final keyword proves to be useful in everyday interviews and work scenarios. When asked about final, you can provide the following information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevents further inheritance&lt;/li&gt;
&lt;li&gt;Prohibits virtual function overriding&lt;/li&gt;
&lt;li&gt;Enables devirtualization for performance improvement&lt;/li&gt;
&lt;li&gt;Acts as a design constraint, preventing subclass inheritance and avoiding subclass overrides&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://levelup.gitconnected.com/c-performance-improvement-through-final-devirtualization-258e7ae1d2b5"&gt;https://levelup.gitconnected.com/c-performance-improvement-through-final-devirtualization-258e7ae1d2b5&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>performance</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>Conan Zero to Hero: A Beginner’s Guide with a Practical Project Example Using gtest</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Mon, 08 Jan 2024 06:43:22 +0000</pubDate>
      <link>https://dev.to/lightcity/conan-zero-to-hero-a-beginners-guide-with-a-practical-project-example-using-gtest-1b9d</link>
      <guid>https://dev.to/lightcity/conan-zero-to-hero-a-beginners-guide-with-a-practical-project-example-using-gtest-1b9d</guid>
      <description>&lt;p&gt;Conan is an open-source, cross-platform package manager designed to simplify the process of managing and distributing C and C++ libraries. It helps developers handle dependencies efficiently by providing a centralized system to package, share, and reuse code. Conan is particularly useful for managing dependencies in C and C++ projects, where manual management can become complex.&lt;/p&gt;

&lt;p&gt;let us use conan to write an actual gtest project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://levelup.gitconnected.com/conan-zero-to-hero-a-beginners-guide-with-a-practical-project-example-using-gtest-1299baac970e"&gt;https://levelup.gitconnected.com/conan-zero-to-hero-a-beginners-guide-with-a-practical-project-example-using-gtest-1299baac970e&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>cpp</category>
      <category>conan</category>
      <category>gtest</category>
    </item>
    <item>
      <title>Optimizing C++ Exception Debugging with GDB: Effective Strategies for Troubleshooting</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Sat, 06 Jan 2024 07:44:16 +0000</pubDate>
      <link>https://dev.to/lightcity/optimizing-c-exception-debugging-with-gdb-effective-strategies-for-troubleshooting-4db7</link>
      <guid>https://dev.to/lightcity/optimizing-c-exception-debugging-with-gdb-effective-strategies-for-troubleshooting-4db7</guid>
      <description>&lt;p&gt;In a large project, exceptions may be thrown in various places, and when encountering crashes or exceptions, it’s crucial to address two main issues:&lt;/p&gt;

&lt;p&gt;Exception Source: Determine where the exception is thrown.&lt;br&gt;
Exception Handling: Identify where the exception is caught.&lt;br&gt;
Exceptions can be triggered by custom code or thrown by underlying libraries, making it challenging to pinpoint the exact location.&lt;/p&gt;

&lt;p&gt;Fortunately, GDB provides two essential commands for handling these situations:&lt;/p&gt;

&lt;p&gt;To catch exceptions thrown: catch throw&lt;br&gt;
To catch exceptions caught: catch catch&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G07NFgcE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k7nfj3cq3rq4sxhfu43x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G07NFgcE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k7nfj3cq3rq4sxhfu43x.png" alt="Image description" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More detail: &lt;a href="https://light-city.medium.com/how-to-use-gdb-to-debug-exceptions-with-zero-experience-5d61e4b7d14e"&gt;https://light-city.medium.com/how-to-use-gdb-to-debug-exceptions-with-zero-experience-5d61e4b7d14e&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Coding in the Cloud: Mastering Online Compilers for Efficient Development</title>
      <dc:creator>Francis</dc:creator>
      <pubDate>Fri, 05 Jan 2024 14:45:59 +0000</pubDate>
      <link>https://dev.to/lightcity/coding-in-the-cloud-mastering-online-compilers-for-efficient-development-3il7</link>
      <guid>https://dev.to/lightcity/coding-in-the-cloud-mastering-online-compilers-for-efficient-development-3il7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CfgOWJaj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/luqd5ati9y41q7pqh5ea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CfgOWJaj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/luqd5ati9y41q7pqh5ea.png" alt="Image description" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ww-erapt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6rt6c9vlgpjkgr48yjh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ww-erapt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6rt6c9vlgpjkgr48yjh.png" alt="Image description" width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More Online Compilers: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://light-city.medium.com/coding-in-the-cloud-mastering-online-compilers-for-efficient-development-6fa55fdc9c4e"&gt;https://light-city.medium.com/coding-in-the-cloud-mastering-online-compilers-for-efficient-development-6fa55fdc9c4e&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cpp</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
