Skip to content

Instantly share code, notes, and snippets.

LangGraph Advice for HTML-to-React Project

Why LangGraph > Prompts

  • Modularity: Break your task into nodes (e.g., parse HTML, identify components, generate React code). Update one node for changes, not the whole prompt.
  • State Tracking: Persist data (like parsed HTML) across nodes, avoiding repetitive context in prompts.
  • Control Flow: Use conditional edges or loops to handle varied HTML structures, unlike linear prompts.
  • Debugging: Inspect each node’s output with tools like LangSmith, easier than opaque prompt failures.
  • Tool Integration: Add libraries (e.g., BeautifulSoup) or APIs (e.g., code validation) for robust workflows.

Getting Started

scanf_s Family Functions Reference

Overview

The scanf_s family are secure versions of the standard scanf functions with enhanced security features to prevent buffer overruns. This guide focuses on sscanf_s and swscanf_s for parsing strings.


Function Variants

Windows API Time Structures Reference

Overview

Windows API provides two main structures for handling date and time: FILETIME and SYSTEMTIME. Each serves different purposes in time representation and manipulation.


FILETIME Structure

Tagging Langfuse Conversations for User + Site Conversions

This guide outlines how to tag Langfuse sessions or traces for a user and site when a conversion (e.g., moving from free to paid) occurs, allowing filtering of converted vs. non-converted conversations. Since Langfuse's API doesn't natively support key-based metadata filtering (e.g., site_id), we combine native filters with client-side processing.

Approach

  1. Fetch sessions for a user in a time window (e.g., last 24 hours) using user_id and start_time_after.
  2. Fetch traces for each session using session_id.
  3. Filter traces client-side by metadata.site_id.
  4. Apply a score (e.g., 24h_before_conversion=1) to matching traces or sessions for easy filtering in Langfuse.

Debugging Serverless Lambda 500 Errors

1. Verify Basic Deployment and Connectivity

  • Confirm Endpoints: After serverless deploy, run serverless info to list endpoints and stack outputs. Ensure the URLs match exactly, including the stage (e.g., /dev/).
  • Test with Tools: Use curl -v https://your-endpoint.com/path or Postman to inspect response headers for clues (e.g., CORS or "Internal Server Error").
  • AWS Console Check: Navigate to API Gateway > Your API > Stages and verify no deployment errors or invalid mappings.

2. Inspect Lambda Logs via CloudWatch

This is often the fastest way to identify errors, as 500s typically log stack traces.

  • Enable Logging: In serverless.yml, ensure provider: logs: rest: true for API Gateway.

Ticket 2: Implement StringToFileTime Helper Function

Description

Create a utility function to parse a date string in YYYY-MM-DD format into a FILETIME struct. This will be used for date filtering in later tickets. Test in main() with sample dates, converting and printing success/failure or verifying FILETIME values.

Acceptance Criteria

  • Function signature: bool StringToFileTime(const std::wstring& dateStr, FILETIME& fileTime)
  • Uses swscanf_s for parsing and SystemTimeToFileTime for conversion.
  • Returns false on invalid format.
  • In main(): Test valid and invalid date strings and print results.

Documentation and Summary for std::wstring Constructor and MultiByteToWideChar

std::wstring(size_t count, wchar_t ch)

Summary

The std::wstring(size_t count, wchar_t ch) constructor is a member of the C++ Standard Library's std::basic_string class, specialized for wide characters (wchar_t) as std::wstring. It creates a wide string of length count, where each character is initialized to the specified wide character ch. In the provided code, it is used to allocate a std::wstring of size size - 1 filled with null characters (0) to prepare a buffer for the MultiByteToWideChar conversion.

Documentation

  • Function Signature: std::wstring::basic_string(size_t count, wchar_t ch, const Allocator& alloc = Allocator())
  • Parameters:

FileSearch Application Recreation Tickets

  • Ticket 1: Implement CharToWString Helper Function
    • Create a utility to convert char* to std::wstring using MultiByteToWideChar. Test in main() with sample inputs.
  • Ticket 2: Implement StringToFileTime Helper Function
    • Create a utility to parse YYYY-MM-DD strings into FILETIME. Test valid/invalid dates in main().
  • Ticket 3: Implement ParseAttributes Helper Function
    • Create a utility to parse comma-separated attribute strings (e.g., "hidden,readonly") into a DWORD. Test in main().
  • Ticket 4: Implement Argument Parsing
  • Parse command-line arguments into SearchCriteria struct and startDir. Display parsed values in main(). Depends on Tickets 1-3.

Ticket 1: Implement CharToWString Helper Function

Description

Create a utility function to convert char* strings (from argv) to std::wstring. This is foundational for handling wide-character strings in Windows APIs. Test it in main() by converting sample argv-like inputs and printing them.

Acceptance Criteria

  • Function signature: std::wstring CharToWString(const char* str)
  • Handles null input gracefully (returns empty wstring).
  • Uses MultiByteToWideChar with CP_ACP.
  • In main(): Simulate argv, convert, and print to verify.

Reset Windows Password Using Hiren's Boot CD

These steps guide you through resetting a local Windows account password (XP through Windows 10/11, not Microsoft or domain accounts) using NTPWEdit on Hiren's BootCD. Ensure you have legal access to the computer. You may need to set the BIOS SATA mode to AHCI if the drive isn't detected. Assumes a prepared Hiren's BootCD USB/CD.

Steps

  1. Enter BIOS/UEFI settings and configure boot options
    Restart the computer and press the key to enter BIOS (usually Del, F2, F10, or Esc—check your motherboard manual). Set the boot order to prioritize the USB/CD drive. For modern systems, enable Legacy/CSM boot mode and disable UEFI Secure Boot temporarily. If the hard drive isn't detected later, switch SATA mode to AHCI. Save and exit (F10 + Enter).

  2. Boot from the Hiren's media