Tagged articles

C++

877 articles · Page 9 of 9
UCloud Tech
UCloud Tech
Mar 14, 2018 · Backend Development

How to Call C/C++ Libraries from Java Using JNA: A Practical Guide

This article explains how to access native C/C++ functions and complex structures from Java using JNI, JNA, and SWIG, compares their trade‑offs, provides type‑mapping tables, detailed code examples for struct definitions, passing, and callbacks, and offers practical tips for reliable cross‑language integration.

C++JNAJNI
0 likes · 9 min read
How to Call C/C++ Libraries from Java Using JNA: A Practical Guide
Beike Product & Technology
Beike Product & Technology
Feb 7, 2018 · Backend Development

High‑Performance Challenge: Optimizing a C‑Based User Information Service for Tens of Millions of Records

This article recounts a 2017 internal high‑performance competition where a C server handling a 40 million‑row user‑info dataset was progressively optimized through data compression, custom hash tables, memory layout redesign, and a thread‑pool model, ultimately achieving a four‑fold throughput increase.

C++Hash Tabledata compression
0 likes · 13 min read
High‑Performance Challenge: Optimizing a C‑Based User Information Service for Tens of Millions of Records
Tencent Music Tech Team
Tencent Music Tech Team
Dec 22, 2017 · Mobile Development

Organizing Native Layer Code and Implementing Dynamic Loading/Unloading of .so Libraries in Android

The article outlines a systematic method for structuring native‑layer code and using dlopen, dlsym, and dlclose to dynamically load and unload .so libraries on Android, enabling selective loading, reduced memory usage, hot‑fix updates, and solutions to STL version, permission, and C++ name‑mangling challenges.

AndroidC++Dynamic Loading
0 likes · 14 min read
Organizing Native Layer Code and Implementing Dynamic Loading/Unloading of .so Libraries in Android
21CTO
21CTO
Nov 14, 2017 · Fundamentals

Why Python Overtook C# in the TIOBE November Rankings

The November TIOBE index shows Python climbing to fourth place, surpassing C#, while other script languages slip down the top‑20, prompting analysis of Python's rapid growth, Java's decline, and the performance challenges facing scripting languages in large‑scale software.

C++Programming LanguagesTIOBE
0 likes · 4 min read
Why Python Overtook C# in the TIOBE November Rankings
Qunar Tech Salon
Qunar Tech Salon
Oct 24, 2017 · Databases

Design and Implementation of Pegasus: Xiaomi’s Distributed Key‑Value Store

This article explains why Xiaomi built Pegasus to replace HBase, describes its architecture—including MetaServer, ReplicaServer, partitioning, multi‑replica design and the PacificA consensus algorithm—covers implementation challenges such as load balancing, consistency, latency, testing, and outlines current status and future plans.

C++PEGASUSconsistency
0 likes · 23 min read
Design and Implementation of Pegasus: Xiaomi’s Distributed Key‑Value Store
21CTO
21CTO
Oct 8, 2017 · Fundamentals

Which Programming Languages Are Rising in 2017? Insights from the TIOBE Index

According to the October 2017 TIOBE Index, Java, C, and C++ remain the top three languages, while C# and Python hold fourth and fifth places; Swift has slipped to 16th, and the rise of hybrid mobile frameworks is boosting C# and JavaScript at the expense of Java and Swift.

C++JavaJavaScript
0 likes · 3 min read
Which Programming Languages Are Rising in 2017? Insights from the TIOBE Index
Qunar Tech Salon
Qunar Tech Salon
Sep 22, 2017 · Backend Development

Interview: The Story Behind Baidu’s Open‑Source RPC Framework brpc

This article interviews Baidu’s chief architect Ge Jun about the origins, design principles, performance advantages, and open‑source release of the high‑performance C++/Java RPC framework brpc, highlighting its extensive internal use, architectural features, and future roadmap.

C++RPCbackend
0 likes · 14 min read
Interview: The Story Behind Baidu’s Open‑Source RPC Framework brpc
Architecture Digest
Architecture Digest
Jul 8, 2017 · Fundamentals

A Comprehensive Learning Roadmap for Software Development

This article presents a detailed, game‑like learning roadmap for programmers, recommending foundational scripting languages, Unix/Linux mastery, web development, databases, C/C++ and Java, system programming, design patterns, and advanced topics such as distributed systems and big‑data technologies to guide career growth.

C++Learning RoadmapUnix
0 likes · 19 min read
A Comprehensive Learning Roadmap for Software Development
ITPUB
ITPUB
Jul 3, 2017 · Fundamentals

Mastering Finite State Machines in C: From Simple If/Else to Function Pointers

This article explains what a finite state machine (FSM) is, where it is commonly used, and walks through three C implementations—plain if/else, switch‑case, and a function‑pointer table—highlighting their advantages, drawbacks, and providing complete code examples.

C++Finite State MachineFunction Pointer
0 likes · 8 min read
Mastering Finite State Machines in C: From Simple If/Else to Function Pointers
ITPUB
ITPUB
Jun 11, 2017 · Fundamentals

The Most Stupid C Bug: How a Backslash Turned tmpfile() Into a Comment

This article recounts a baffling C bug where Microsoft's tmpfile() on Windows creates files in C:\, causing a stray backslash to comment out code, and explains how replacing a ternary operator with an if‑else fixed the issue while illustrating common cross‑platform pitfalls.

C++Debuggingbug
0 likes · 5 min read
The Most Stupid C Bug: How a Backslash Turned tmpfile() Into a Comment
ITPUB
ITPUB
Mar 23, 2017 · Fundamentals

Master Linux Pipes and FIFOs: Build a Simple C Chat Application

This article explains the concepts of anonymous and named pipes in Linux, compares their characteristics, shows how to create them with mknod and mkfifo, and provides a complete C example that implements a two‑process chat program using threads and pipe I/O.

C++FIFOIPC
0 likes · 8 min read
Master Linux Pipes and FIFOs: Build a Simple C Chat Application
ITPUB
ITPUB
Mar 21, 2017 · Backend Development

Understanding Linux Kernel Clock Management: A Step‑by‑Step Walkthrough

This article walks through the Linux kernel's clock management code, explaining how the clk_get_sys function matches devices, handles mutexes, and enables clocks on Samsung platforms, while illustrating each step with annotated code screenshots.

C++Clock Managementbackend development
0 likes · 6 min read
Understanding Linux Kernel Clock Management: A Step‑by‑Step Walkthrough
Continuous Delivery 2.0
Continuous Delivery 2.0
Mar 15, 2017 · R&D Management

Improving Continuous Integration: Reducing Build Times, Enabling Automated Testing, and Managing Estimations

The article discusses practical solutions for long C++ build times, introduces a company‑wide compile cluster with a localbuild.sh script, outlines how developers can run automated tests, defines testing strategies, sets criteria for feature readiness, and presents approaches to performance testing and estimation adjustments within a CI‑driven development workflow.

Build OptimizationC++automated testing
0 likes · 9 min read
Improving Continuous Integration: Reducing Build Times, Enabling Automated Testing, and Managing Estimations
Tencent Music Tech Team
Tencent Music Tech Team
Feb 17, 2017 · Game Development

Build a Simple Gaze Interaction for Google Cardboard VR in Unity

This step‑by‑step guide shows how to set up Unity with Google’s Cardboard SDK, import the required assets, add gaze‑based interaction components, write a C# script to change object colors on focus, link events, and finally package the project for Android devices.

Android BuildC++Game Development
0 likes · 12 min read
Build a Simple Gaze Interaction for Google Cardboard VR in Unity
21CTO
21CTO
Dec 5, 2016 · Backend Development

How to Implement array_concat in a PHP Extension: Merging Arrays at the C Level

This article explains how to create a PHP extension function named array_concat that merges two arrays by concatenating string values for matching keys, detailing the required C code, Zend hash operations, parameter parsing, and example usage, providing a practical guide for PHP developers.

ArrayC++Extension
0 likes · 6 min read
How to Implement array_concat in a PHP Extension: Merging Arrays at the C Level
ITPUB
ITPUB
Nov 7, 2016 · Databases

Inside MySQL’s MEM_ROOT: How Memory Allocation Really Works

This article provides an in‑depth technical walkthrough of MySQL’s MEM_ROOT memory allocator, covering the key macros, the MEM_ROOT and USED_MEM structures, initialization and allocation routines, pointer‑manipulation logic, and the heuristic algorithm that grows block sizes as usage increases.

C++Database InternalsMEM_ROOT
0 likes · 8 min read
Inside MySQL’s MEM_ROOT: How Memory Allocation Really Works
ITPUB
ITPUB
Nov 6, 2016 · Fundamentals

How Linux Kernel Memory Pools Work: Structures, Creation, and Allocation

This article explains the concept of Linux kernel memory pools, details the mempool_t structure, shows how to create and destroy a mempool, and walks through the allocation and free functions with code examples, highlighting their role in preventing allocation failures under memory pressure.

C++Memory poolMempool
0 likes · 8 min read
How Linux Kernel Memory Pools Work: Structures, Creation, and Allocation
ITPUB
ITPUB
Nov 5, 2016 · Fundamentals

Understanding Linux Zombie Processes and How to Prevent Them

This article explains what zombie processes are in Linux, how they are created when a child exits without its parent calling wait, demonstrates their detection with ps, provides sample C code to reproduce and handle them, and shows techniques to avoid their accumulation.

C++Process ManagementSignal Handling
0 likes · 8 min read
Understanding Linux Zombie Processes and How to Prevent Them
ITPUB
ITPUB
Nov 4, 2016 · Databases

Understanding MySQL’s DYNAMIC_STRING: Structure, Initialization, and Manipulation

The article explains MySQL’s DYNAMIC_STRING structure, detailing its fields, how to initialize it with init_dynamic_string, and how functions like dynstr_append_mem, dynstr_trunc, dynstr_realloc, and dynstr_append_os_quoted manage dynamic resizing, truncation, and OS‑quote handling for safe string operations.

C++Dynamic StringMemory Management
0 likes · 8 min read
Understanding MySQL’s DYNAMIC_STRING: Structure, Initialization, and Manipulation
Architecture Digest
Architecture Digest
Oct 9, 2016 · Backend Development

Building a Minimal Game Server Framework from Scratch

This article explains how to design and implement a simple game server framework, covering the definition of server development, the two main game‑server architectures, core scene‑service requirements, a lightweight network library built on sockets, and sample C# code for connectors, server and client networking components.

C++Socketframework
0 likes · 14 min read
Building a Minimal Game Server Framework from Scratch
Architecture Digest
Architecture Digest
Sep 18, 2016 · Fundamentals

Smart Audio Recorder Based on Volume Threshold – Implementation and Code

This article describes a C# program that continuously captures microphone audio, uses volume thresholds derived from Fourier analysis to automatically start and stop recording, and provides the full configuration and source code needed to build a smart recorder for capturing dream speech.

C++Programming TutorialSignal Processing
0 likes · 7 min read
Smart Audio Recorder Based on Volume Threshold – Implementation and Code
Tencent Music Tech Team
Tencent Music Tech Team
Aug 25, 2016 · Frontend Development

Introduction to WebAssembly, Emscripten, and Binaryen: Installation, Compilation, and Usage

This guide introduces WebAssembly and its ecosystem—explaining how Emscripten compiles C/C++ to asm.js or .wasm, how Binaryen converts asm.js to the final binary, and provides step‑by‑step Ubuntu installation, simple hello‑world compilation, build‑process wrappers, and real‑world examples such as FFmpeg, SQLite, and game engines.

BinaryenBrowserC++
0 likes · 10 min read
Introduction to WebAssembly, Emscripten, and Binaryen: Installation, Compilation, and Usage
ITPUB
ITPUB
Jul 7, 2016 · Fundamentals

Mastering Linux printk: Levels, Macros, and Kernel Logging Mechanics

This article provides a comprehensive guide to Linux's printk system, covering its ring‑buffer design, log level definitions, early boot usage, helper macros, rate‑limiting techniques, kernel‑side implementation details, and ways to access logs from user space.

C++DebuggingOperating Systems
0 likes · 14 min read
Mastering Linux printk: Levels, Macros, and Kernel Logging Mechanics
Architecture Digest
Architecture Digest
Jun 6, 2016 · Backend Development

Refactoring a 3000‑Line C# Factory Class into a Concise 15‑Line Implementation

The article recounts how the author transformed a massive, repetitive three‑tier factory class in a C# data‑center management system into a clean, reflection‑based solution of just a few lines, while sharing practical refactoring lessons, pitfalls of code generators, and advice on unit‑testing and architecture design.

C++Refactoringcode generation
0 likes · 17 min read
Refactoring a 3000‑Line C# Factory Class into a Concise 15‑Line Implementation
Baidu Intelligent Testing
Baidu Intelligent Testing
Jun 1, 2016 · Backend Development

Analysis of Common CPU Performance Issues in C/C++ Programs and Profiling Tool Comparison

This article examines fourteen typical CPU‑related performance problems in C/C++ applications—such as excessive memset, inefficient string handling, improper container usage, lock contention, and heavy I/O—explains their causes, presents real‑world examples, and compares popular CPU profiling tools to guide developers toward effective optimization.

C++CPU performanceMemory
0 likes · 12 min read
Analysis of Common CPU Performance Issues in C/C++ Programs and Profiling Tool Comparison
Baidu Intelligent Testing
Baidu Intelligent Testing
May 19, 2016 · Fundamentals

Common Causes of C/C++ Core Dumps and Case Analyses

This article categorizes typical reasons why C/C++ programs generate core dumps, such as unreasonable program design, misuse of system libraries, memory leaks, type errors, thread ID handling, infinite loops, and improper initialization or cleanup, and provides illustrative case analyses for each scenario.

C++DebuggingLinux
0 likes · 6 min read
Common Causes of C/C++ Core Dumps and Case Analyses
21CTO
21CTO
May 14, 2016 · Backend Development

How to Find and Understand PHP Internal Function Definitions (e.g., strpos)

This guide walks you through locating PHP internal function definitions in the source tree, using strpos as an example, and explains the surrounding C code structure, parameter parsing, error handling, and macro usage for deeper insight into PHP's backend implementation.

C++PHPbackend development
0 likes · 12 min read
How to Find and Understand PHP Internal Function Definitions (e.g., strpos)
ITPUB
ITPUB
Apr 25, 2016 · Fundamentals

Essential C Interview Questions for Embedded Systems: Preprocessor, Macros, and More

This article compiles a comprehensive set of embedded‑C interview questions covering preprocessors, macros, infinite loops, data declarations, static, const, volatile, bit manipulation, fixed‑address memory access, interrupts, code snippets, dynamic allocation, typedefs and obscure syntax, each with detailed explanations and example code.

C++Interview QuestionsMacros
0 likes · 19 min read
Essential C Interview Questions for Embedded Systems: Preprocessor, Macros, and More
ITPUB
ITPUB
Apr 12, 2016 · Backend Development

Understanding MySQL’s MEM_ROOT: Structure, Macros, and Allocation Mechanics

This article explains MySQL's widely used MEM_ROOT memory allocator, detailing its macros, the MEM_ROOT and USED_MEM structures, initialization routine, allocation algorithm, and pointer handling, while illustrating how free and used blocks are managed via linked lists.

C++MEM_ROOTMySQL
0 likes · 8 min read
Understanding MySQL’s MEM_ROOT: Structure, Macros, and Allocation Mechanics
Baidu Intelligent Testing
Baidu Intelligent Testing
Mar 24, 2016 · Mobile Development

Using Clang Static Analyzer for iOS Projects: Setup, Common Issues, and Report Generation

Clang Static Analyzer, integrated in Xcode, provides static code analysis for C, C++ and Objective‑C, and this guide explains its core checkers, common warning types such as null‑pointer dereference and division‑by‑zero, and demonstrates how to run it via scan‑build on an iOS project to generate HTML reports.

C++Clang Static AnalyzerObjective‑C
0 likes · 3 min read
Using Clang Static Analyzer for iOS Projects: Setup, Common Issues, and Report Generation
Architecture Digest
Architecture Digest
Mar 24, 2016 · Backend Development

A Curated List of Open‑Source .NET Components and Frameworks

This article compiles a comprehensive, English‑language overview of numerous open‑source .NET libraries and frameworks—including caching, logging, NoSQL, scheduling, IoC containers, ORMs, serialization, cross‑platform runtimes, web, mobile, networking, graphics, desktop, testing, transaction, search, validation, charting, and messaging solutions—providing brief descriptions for each.

.NETC++backend
0 likes · 17 min read
A Curated List of Open‑Source .NET Components and Frameworks
21CTO
21CTO
Mar 23, 2016 · Backend Development

Mastering High-Performance TCP Servers in .NET/C#: APM, TAP, SAEA & RIO Explained

This article explores four high‑performance TCP server models in .NET/C#—Asynchronous Programming Model (APM), Task‑based Asynchronous Pattern (TAP), SocketAsyncEventArgs (SAEA), and Registered I/O (RIO)—detailing their accept and read loops, implementation nuances, pooling strategies, and sample code, while highlighting performance considerations and real‑world usage.

.NETC++Networking
0 likes · 14 min read
Mastering High-Performance TCP Servers in .NET/C#: APM, TAP, SAEA & RIO Explained
21CTO
21CTO
Mar 8, 2016 · Backend Development

How Stack Exchange Scales 40 Billion Requests with a Monolith‑Plus Architecture

David Fullerton explains how Stack Exchange uses a C#‑centric monolith‑plus design, Redis caching, ElasticSearch, and continuous rolling deployments across two data centers to reliably handle billions of monthly requests while maintaining performance and scalability.

C++MS SQLMonolith Architecture
0 likes · 7 min read
How Stack Exchange Scales 40 Billion Requests with a Monolith‑Plus Architecture
21CTO
21CTO
Jan 4, 2016 · Fundamentals

Why Chinese Text Gets Garbled and How to Fix It: A Deep Dive into Encoding Standards

This article explains why Chinese characters often appear as garbled text on Windows and Linux, introduces the history and hierarchy of Chinese encoding standards such as GB2312, GBK, GB18030 and Unicode, compares ASCII, UTF‑8/16/32, shows practical command‑line experiments, and offers guidance for handling Chinese text in C and Python programs.

C++GB2312Python
0 likes · 25 min read
Why Chinese Text Gets Garbled and How to Fix It: A Deep Dive into Encoding Standards
21CTO
21CTO
Nov 13, 2015 · Backend Development

How I Reengineered EQueue to Use File-Based Persistence for Faster Messaging

The article details the author's multi‑month effort to replace SQL Server persistence in the open‑source EQueue message queue with a high‑performance local file storage solution, covering the motivations, design considerations, chunked binary file format, write‑and‑read mechanisms, and flushing strategies.

C++EQueueMessage Queue
0 likes · 17 min read
How I Reengineered EQueue to Use File-Based Persistence for Faster Messaging
21CTO
21CTO
Oct 26, 2015 · Fundamentals

What Terrible Code Practices Are Killing Your .NET Project?

A graduate student recounts the shocking code quality issues he found in his team's data‑mining project, highlighting bad naming, massive classes, duplicated logic, overuse of singletons, excessive comments, and other anti‑patterns that jeopardize maintainability and graduation.

C++Design Patternsbest practices
0 likes · 9 min read
What Terrible Code Practices Are Killing Your .NET Project?
Architect
Architect
Oct 15, 2015 · Databases

Lushan: An Offline Static Data Storage Server for Recommendation Systems

This article details the design, implementation, and performance of Lushan, a high‑throughput offline static data storage server built with libevent that supports dynamic library mounting, key‑value indexing, and efficient query handling for large‑scale recommendation workloads.

C++Key-Valuehigh performance
0 likes · 18 min read
Lushan: An Offline Static Data Storage Server for Recommendation Systems
21CTO
21CTO
Oct 9, 2015 · Big Data

33 Open-Source Web Crawlers to Supercharge Your Data Collection

This article compiles 33 notable open‑source web crawler projects across multiple programming languages, detailing their core features, licensing, supported platforms, and typical use cases, helping developers choose the right tool for large‑scale data harvesting and analysis.

C++C++Java
0 likes · 22 min read
33 Open-Source Web Crawlers to Supercharge Your Data Collection
Qunar Tech Salon
Qunar Tech Salon
Sep 30, 2015 · Artificial Intelligence

Overview of Popular Deep Learning Libraries Across Programming Languages

This article provides a concise overview of numerous deep learning libraries and frameworks available for Python, Matlab, C++, Java, JavaScript, Lua, Julia, Haskell, .NET, and R, highlighting their main features, language bindings, and typical use cases in artificial intelligence research and development.

AI frameworksC++Deep Learning
0 likes · 7 min read
Overview of Popular Deep Learning Libraries Across Programming Languages
MaGe Linux Operations
MaGe Linux Operations
Sep 28, 2015 · Fundamentals

Boost Your Vim with YouCompleteMe: A Semantic Code Completion Guide

This article introduces the YouCompleteMe Vim plugin, explains its semantic completion advantages over traditional text‑based methods, lists supported languages, shows installation and compilation steps for macOS and Linux, and provides configuration tips to achieve IDE‑like code assistance within Vim.

C++Pluginclang
0 likes · 14 min read
Boost Your Vim with YouCompleteMe: A Semantic Code Completion Guide
WeChat Client Technology Team
WeChat Client Technology Team
Sep 28, 2015 · Fundamentals

Mastering C# Memory Management and WP Leak Detection Techniques

This article explains C#'s managed and unmanaged resource handling, memory regions, garbage‑collection algorithms, generational GC, finalizers, the IDisposable pattern, value vs. reference types, and practical methods for discovering and pinpointing memory leaks in Windows Phone applications.

C++Garbage CollectionIDisposable
0 likes · 16 min read
Mastering C# Memory Management and WP Leak Detection Techniques
21CTO
21CTO
Sep 8, 2015 · Fundamentals

Why Performance Should Never Sacrifice Maintainability in Code

The article argues that while programmers obsess over performance gains, maintainability is often more critical, illustrating this with C# LINQ vs Single/First debates, database design pitfalls, and the hidden costs of premature optimization, ultimately urging developers to prioritize readable, maintainable code and measure performance before refactoring.

C++Optimizationcode quality
0 likes · 12 min read
Why Performance Should Never Sacrifice Maintainability in Code
21CTO
21CTO
Aug 31, 2015 · Mobile Development

Why I Switched from Web to Mobile Development with Xamarin (and What I Learned)

The author recounts transitioning from PHP and .NET web development to building Android and iOS apps with Xamarin, describing the motivations, new programming paradigms like MVVM and async, the steep learning curve, and the ongoing commitment to mastering mobile development.

Async ProgrammingC++MVVM
0 likes · 8 min read
Why I Switched from Web to Mobile Development with Xamarin (and What I Learned)
MaGe Linux Operations
MaGe Linux Operations
Jun 4, 2015 · Backend Development

Master Linux Kernel Interrupts and Timers: A Hands‑On Guide

This article explains Linux kernel interrupt handling, top‑half and bottom‑half mechanisms, IRQ request/release, shared IRQs, disabling/enabling IRQs, tasklets, workqueues, softirqs, the timer API, and provides a complete character‑device driver example with a user‑space test program.

C++Linuxdriver
0 likes · 16 min read
Master Linux Kernel Interrupts and Timers: A Hands‑On Guide
Baidu Tech Salon
Baidu Tech Salon
Dec 15, 2014 · Frontend Development

Build a Simple Baidu Translate Desktop App with WPF in Minutes

This guide walks you through creating a lightweight WPF desktop application that leverages Baidu Translate’s public API to translate words, covering API key acquisition, HTTP GET requests, JSON parsing with Newtonsoft.Json, UI design in XAML, and handling special characters, enabling instant word translation without ads.

APIBaidu TranslateC++
0 likes · 9 min read
Build a Simple Baidu Translate Desktop App with WPF in Minutes
MaGe Linux Operations
MaGe Linux Operations
Oct 31, 2014 · Backend Development

How Event‑Driven Servers Outperform Threaded Models: A Deep Dive with libev

This article examines various network server architectures—from blocking sockets and multithreaded designs to select‑based and libev‑driven event loops—highlighting their trade‑offs, performance implications, and practical implementation details for building efficient high‑concurrency services.

C++SELECTServer Architecture
0 likes · 13 min read
How Event‑Driven Servers Outperform Threaded Models: A Deep Dive with libev
Baidu Tech Salon
Baidu Tech Salon
Sep 23, 2014 · Fundamentals

Ten Commonly Cited Quirky Features Across Programming Languages

The article surveys ten frequently cited quirky language features—from JavaScript’s “+” string coercion and automatic semicolon insertion, to Perl’s mandatory true module return and cryptic special variables, C’s interchangeable array indexing, PHP’s mixed case sensitivity, Ruby’s truthy zero, Python’s indentation blocks, C’s pointer arithmetic, and Java’s autoboxing with Integer caching—highlighting their surprising behaviors and community frustrations.

C++JavaScriptPython
0 likes · 10 min read
Ten Commonly Cited Quirky Features Across Programming Languages