[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-debug-like-a-plumber-probe-hidden-bugs-indirectly-summary":3,"summaries-facets-categories":68,"summary-related-debug-like-a-plumber-probe-hidden-bugs-indirectly-summary":3653},{"id":4,"title":5,"ai":6,"body":13,"categories":46,"created_at":48,"date_modified":48,"description":40,"extension":49,"faq":48,"featured":50,"kicker_label":48,"meta":51,"navigation":52,"path":53,"published_at":54,"question":48,"scraped_at":48,"seo":55,"sitemap":56,"source_id":57,"source_name":58,"source_type":59,"source_url":60,"stem":61,"tags":62,"thumbnail_url":48,"tldr":65,"tweet":48,"unknown_tags":66,"__hash__":67},"summaries\u002Fsummaries\u002Fdebug-like-a-plumber-probe-hidden-bugs-indirectly-summary.md","Debug Like a Plumber: Probe Hidden Bugs Indirectly",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",3670,895,9736,0.00115885,{"type":14,"value":15,"toc":39},"minimark",[16,21,25,29,32,36],[17,18,20],"h2",{"id":19},"force-hidden-problems-to-reveal-themselves","Force Hidden Problems to Reveal Themselves",[22,23,24],"p",{},"A leak detection specialist fixed an underground pipe leak near a driveway without digging: he connected a compressor to inject tracer gas into the pipe, then walked the surface with a handheld detector. The gas escaped only through the break, bubbling up through soil to the detector. In 20 minutes, he pinpointed the spot: 'Dig here.' He succeeded by assuming the problem was invisible—buried under concrete—so his method didn't try direct visibility. Instead, it created an inescapable signal from the issue itself.",[17,26,28],{"id":27},"engineers-faulty-assumption-slows-debugging","Engineers' Faulty Assumption Slows Debugging",[22,30,31],{},"Software teams facing production bugs assume visibility: code is readable, dashboards show metrics, logs capture events. They read code, stare at dashboards, add logging (often more logging). This direct inspection fails because production issues are 'underground'—intermittent, environment-specific, or emergent—making them hard to spot even when staring.",[17,33,35],{"id":34},"adopt-the-tracer-gas-mindset-for-faster-fixes","Adopt the Tracer Gas Mindset for Faster Fixes",[22,37,38],{},"Shift to the plumber's assumption: production bugs can't be seen directly, so inject probes that the problem can't hide from. Examples include targeted canary deployments, synthetic traffic simulating user paths, or chaos experiments flipping switches to surface weaknesses. These methods guarantee the bug announces itself, cutting debug time from hours\u002Fdays to minutes, just as tracer gas did.",{"title":40,"searchDepth":41,"depth":41,"links":42},"",2,[43,44,45],{"id":19,"depth":41,"text":20},{"id":27,"depth":41,"text":28},{"id":34,"depth":41,"text":35},[47],"Software Engineering",null,"md",false,{},true,"\u002Fsummaries\u002Fdebug-like-a-plumber-probe-hidden-bugs-indirectly-summary","2026-04-08 21:21:18",{"title":5,"description":40},{"loc":53},"eab4d08860b92327","Level Up Coding","article","https:\u002F\u002Funknown","summaries\u002Fdebug-like-a-plumber-probe-hidden-bugs-indirectly-summary",[63,64],"software-engineering","dev-productivity","Production bugs hide like underground leaks—don't inspect directly; inject 'tracer gas' probes that force issues to surface, as a leak specialist did in 20 minutes without digging.",[63,64],"an1lWZBnf3t3cE2cl9ZoyxtBgErx10MA-Ja1DYlyi-s",[69,72,75,78,81,84,86,88,90,92,94,96,99,101,103,105,107,109,111,113,115,117,120,123,125,127,129,131,133,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,393,395,397,399,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,431,433,435,437,439,441,443,445,447,449,451,453,455,457,459,461,463,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579,581,583,585,587,589,591,593,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759,761,763,765,767,769,771,773,775,777,779,781,783,785,787,789,791,793,795,797,799,801,803,805,807,809,811,813,815,817,819,821,823,825,827,829,831,833,835,837,839,841,843,845,847,849,851,853,855,857,859,861,863,865,867,869,871,873,875,877,879,881,883,885,887,889,891,893,895,897,899,901,903,905,907,909,911,913,915,917,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,977,979,981,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097,1099,1101,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485,1487,1489,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1805,1807,1809,1811,1813,1815,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909,1911,1913,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161,2163,2165,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441,2443,2445,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2839,2841,2843,2845,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867,2869,2871,2873,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951,2953,2955,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2991,2993,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023,3025,3027,3029,3031,3033,3035,3037,3039,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063,3065,3067,3069,3071,3073,3075,3077,3079,3081,3083,3085,3087,3089,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209,3211,3213,3215,3217,3219,3221,3223,3225,3227,3229,3231,3233,3235,3237,3239,3241,3243,3245,3247,3249,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351,3353,3355,3357,3359,3361,3363,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389,3391,3393,3395,3397,3399,3401,3403,3405,3407,3409,3411,3413,3415,3417,3419,3421,3423,3425,3427,3429,3431,3433,3435,3437,3439,3441,3443,3445,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3643,3645,3647,3649,3651],{"categories":70},[71],"Developer Productivity",{"categories":73},[74],"Business & SaaS",{"categories":76},[77],"AI & LLMs",{"categories":79},[80],"AI Automation",{"categories":82},[83],"Product Strategy",{"categories":85},[77],{"categories":87},[71],{"categories":89},[74],{"categories":91},[],{"categories":93},[77],{"categories":95},[],{"categories":97},[98],"AI News & Trends",{"categories":100},[80],{"categories":102},[98],{"categories":104},[80],{"categories":106},[80],{"categories":108},[77],{"categories":110},[77],{"categories":112},[98],{"categories":114},[77],{"categories":116},[],{"categories":118},[119],"Design & Frontend",{"categories":121},[122],"Data Science & Visualization",{"categories":124},[98],{"categories":126},[],{"categories":128},[47],{"categories":130},[77],{"categories":132},[80],{"categories":134},[135],"Marketing & Growth",{"categories":137},[77],{"categories":139},[80],{"categories":141},[],{"categories":143},[],{"categories":145},[119],{"categories":147},[80],{"categories":149},[71],{"categories":151},[119],{"categories":153},[77],{"categories":155},[80],{"categories":157},[98],{"categories":159},[],{"categories":161},[],{"categories":163},[80],{"categories":165},[47],{"categories":167},[],{"categories":169},[74],{"categories":171},[],{"categories":173},[],{"categories":175},[80],{"categories":177},[80],{"categories":179},[77],{"categories":181},[],{"categories":183},[47],{"categories":185},[],{"categories":187},[],{"categories":189},[],{"categories":191},[77],{"categories":193},[135],{"categories":195},[119],{"categories":197},[119],{"categories":199},[77],{"categories":201},[80],{"categories":203},[77],{"categories":205},[77],{"categories":207},[80],{"categories":209},[80],{"categories":211},[122],{"categories":213},[98],{"categories":215},[80],{"categories":217},[135],{"categories":219},[80],{"categories":221},[83],{"categories":223},[],{"categories":225},[80],{"categories":227},[],{"categories":229},[80],{"categories":231},[47],{"categories":233},[119],{"categories":235},[77],{"categories":237},[],{"categories":239},[],{"categories":241},[80],{"categories":243},[],{"categories":245},[77],{"categories":247},[],{"categories":249},[71],{"categories":251},[47],{"categories":253},[74],{"categories":255},[98],{"categories":257},[77],{"categories":259},[],{"categories":261},[77],{"categories":263},[],{"categories":265},[47],{"categories":267},[122],{"categories":269},[],{"categories":271},[77],{"categories":273},[119],{"categories":275},[],{"categories":277},[119],{"categories":279},[80],{"categories":281},[],{"categories":283},[80],{"categories":285},[98],{"categories":287},[74],{"categories":289},[77],{"categories":291},[],{"categories":293},[80],{"categories":295},[77],{"categories":297},[83],{"categories":299},[],{"categories":301},[77],{"categories":303},[80],{"categories":305},[80],{"categories":307},[],{"categories":309},[122],{"categories":311},[77],{"categories":313},[],{"categories":315},[71],{"categories":317},[74],{"categories":319},[77],{"categories":321},[80],{"categories":323},[47],{"categories":325},[77],{"categories":327},[],{"categories":329},[],{"categories":331},[77],{"categories":333},[],{"categories":335},[119],{"categories":337},[],{"categories":339},[77],{"categories":341},[],{"categories":343},[80],{"categories":345},[77],{"categories":347},[119],{"categories":349},[],{"categories":351},[77],{"categories":353},[77],{"categories":355},[74],{"categories":357},[80],{"categories":359},[77],{"categories":361},[119],{"categories":363},[80],{"categories":365},[],{"categories":367},[],{"categories":369},[98],{"categories":371},[],{"categories":373},[77],{"categories":375},[74,135],{"categories":377},[],{"categories":379},[77],{"categories":381},[],{"categories":383},[],{"categories":385},[77],{"categories":387},[],{"categories":389},[77],{"categories":391},[392],"DevOps & Cloud",{"categories":394},[],{"categories":396},[98],{"categories":398},[119],{"categories":400},[],{"categories":402},[98],{"categories":404},[98],{"categories":406},[77],{"categories":408},[135],{"categories":410},[],{"categories":412},[74],{"categories":414},[],{"categories":416},[77,392],{"categories":418},[77],{"categories":420},[77],{"categories":422},[80],{"categories":424},[77,47],{"categories":426},[122],{"categories":428},[77],{"categories":430},[135],{"categories":432},[80],{"categories":434},[80],{"categories":436},[],{"categories":438},[80],{"categories":440},[77,74],{"categories":442},[],{"categories":444},[119],{"categories":446},[119],{"categories":448},[],{"categories":450},[],{"categories":452},[98],{"categories":454},[],{"categories":456},[71],{"categories":458},[47],{"categories":460},[77],{"categories":462},[119],{"categories":464},[80],{"categories":466},[47],{"categories":468},[98],{"categories":470},[119],{"categories":472},[],{"categories":474},[77],{"categories":476},[77],{"categories":478},[77],{"categories":480},[98],{"categories":482},[71],{"categories":484},[77],{"categories":486},[80],{"categories":488},[392],{"categories":490},[119],{"categories":492},[80],{"categories":494},[],{"categories":496},[],{"categories":498},[119],{"categories":500},[98],{"categories":502},[122],{"categories":504},[],{"categories":506},[77],{"categories":508},[77],{"categories":510},[74],{"categories":512},[77],{"categories":514},[77],{"categories":516},[98],{"categories":518},[],{"categories":520},[80],{"categories":522},[47],{"categories":524},[],{"categories":526},[77],{"categories":528},[77],{"categories":530},[80],{"categories":532},[],{"categories":534},[],{"categories":536},[77],{"categories":538},[],{"categories":540},[74],{"categories":542},[80],{"categories":544},[],{"categories":546},[71],{"categories":548},[77],{"categories":550},[74],{"categories":552},[98],{"categories":554},[],{"categories":556},[],{"categories":558},[],{"categories":560},[98],{"categories":562},[98],{"categories":564},[],{"categories":566},[],{"categories":568},[74],{"categories":570},[],{"categories":572},[],{"categories":574},[71],{"categories":576},[],{"categories":578},[135],{"categories":580},[80],{"categories":582},[74],{"categories":584},[80],{"categories":586},[47],{"categories":588},[],{"categories":590},[83],{"categories":592},[119],{"categories":594},[47],{"categories":596},[77],{"categories":598},[80],{"categories":600},[74],{"categories":602},[77],{"categories":604},[],{"categories":606},[],{"categories":608},[47],{"categories":610},[122],{"categories":612},[83],{"categories":614},[80],{"categories":616},[77],{"categories":618},[],{"categories":620},[392],{"categories":622},[],{"categories":624},[80],{"categories":626},[],{"categories":628},[],{"categories":630},[77],{"categories":632},[119],{"categories":634},[135],{"categories":636},[80],{"categories":638},[],{"categories":640},[71],{"categories":642},[],{"categories":644},[98],{"categories":646},[77,392],{"categories":648},[98],{"categories":650},[77],{"categories":652},[74],{"categories":654},[77],{"categories":656},[],{"categories":658},[74],{"categories":660},[],{"categories":662},[47],{"categories":664},[119],{"categories":666},[98],{"categories":668},[122],{"categories":670},[71],{"categories":672},[77],{"categories":674},[47],{"categories":676},[],{"categories":678},[],{"categories":680},[83],{"categories":682},[],{"categories":684},[77],{"categories":686},[],{"categories":688},[119],{"categories":690},[119],{"categories":692},[119],{"categories":694},[],{"categories":696},[],{"categories":698},[98],{"categories":700},[80],{"categories":702},[77],{"categories":704},[77],{"categories":706},[77],{"categories":708},[74],{"categories":710},[77],{"categories":712},[],{"categories":714},[47],{"categories":716},[47],{"categories":718},[74],{"categories":720},[],{"categories":722},[77],{"categories":724},[77],{"categories":726},[74],{"categories":728},[98],{"categories":730},[135],{"categories":732},[80],{"categories":734},[],{"categories":736},[119],{"categories":738},[],{"categories":740},[77],{"categories":742},[],{"categories":744},[74],{"categories":746},[80],{"categories":748},[],{"categories":750},[392],{"categories":752},[122],{"categories":754},[47],{"categories":756},[135],{"categories":758},[47],{"categories":760},[80],{"categories":762},[],{"categories":764},[],{"categories":766},[80],{"categories":768},[71],{"categories":770},[80],{"categories":772},[83],{"categories":774},[74],{"categories":776},[],{"categories":778},[77],{"categories":780},[83],{"categories":782},[77],{"categories":784},[77],{"categories":786},[135],{"categories":788},[119],{"categories":790},[80],{"categories":792},[],{"categories":794},[],{"categories":796},[392],{"categories":798},[47],{"categories":800},[],{"categories":802},[80],{"categories":804},[77],{"categories":806},[119,77],{"categories":808},[71],{"categories":810},[],{"categories":812},[77],{"categories":814},[71],{"categories":816},[119],{"categories":818},[80],{"categories":820},[47],{"categories":822},[],{"categories":824},[77],{"categories":826},[],{"categories":828},[71],{"categories":830},[],{"categories":832},[80],{"categories":834},[83],{"categories":836},[77],{"categories":838},[77],{"categories":840},[119],{"categories":842},[80],{"categories":844},[392],{"categories":846},[119],{"categories":848},[80],{"categories":850},[77],{"categories":852},[77],{"categories":854},[77],{"categories":856},[98],{"categories":858},[],{"categories":860},[83],{"categories":862},[80],{"categories":864},[119],{"categories":866},[80],{"categories":868},[47],{"categories":870},[119],{"categories":872},[80],{"categories":874},[98],{"categories":876},[],{"categories":878},[77],{"categories":880},[119],{"categories":882},[77],{"categories":884},[71],{"categories":886},[98],{"categories":888},[77],{"categories":890},[135],{"categories":892},[77],{"categories":894},[77],{"categories":896},[80],{"categories":898},[80],{"categories":900},[77],{"categories":902},[80],{"categories":904},[119],{"categories":906},[77],{"categories":908},[],{"categories":910},[],{"categories":912},[47],{"categories":914},[],{"categories":916},[71],{"categories":918},[392],{"categories":920},[],{"categories":922},[71],{"categories":924},[74],{"categories":926},[135],{"categories":928},[],{"categories":930},[74],{"categories":932},[],{"categories":934},[],{"categories":936},[],{"categories":938},[],{"categories":940},[],{"categories":942},[77],{"categories":944},[80],{"categories":946},[392],{"categories":948},[71],{"categories":950},[77],{"categories":952},[47],{"categories":954},[83],{"categories":956},[77],{"categories":958},[135],{"categories":960},[77],{"categories":962},[77],{"categories":964},[77],{"categories":966},[77,71],{"categories":968},[47],{"categories":970},[47],{"categories":972},[119],{"categories":974},[77],{"categories":976},[],{"categories":978},[],{"categories":980},[],{"categories":982},[47],{"categories":984},[122],{"categories":986},[98],{"categories":988},[119],{"categories":990},[],{"categories":992},[77],{"categories":994},[77],{"categories":996},[],{"categories":998},[],{"categories":1000},[80],{"categories":1002},[77],{"categories":1004},[74],{"categories":1006},[],{"categories":1008},[71],{"categories":1010},[77],{"categories":1012},[71],{"categories":1014},[77],{"categories":1016},[47],{"categories":1018},[135],{"categories":1020},[77,119],{"categories":1022},[98],{"categories":1024},[119],{"categories":1026},[],{"categories":1028},[392],{"categories":1030},[119],{"categories":1032},[80],{"categories":1034},[],{"categories":1036},[],{"categories":1038},[],{"categories":1040},[],{"categories":1042},[47],{"categories":1044},[80],{"categories":1046},[80],{"categories":1048},[392],{"categories":1050},[77],{"categories":1052},[77],{"categories":1054},[77],{"categories":1056},[],{"categories":1058},[119],{"categories":1060},[],{"categories":1062},[],{"categories":1064},[80],{"categories":1066},[],{"categories":1068},[],{"categories":1070},[135],{"categories":1072},[135],{"categories":1074},[80],{"categories":1076},[],{"categories":1078},[77],{"categories":1080},[77],{"categories":1082},[47],{"categories":1084},[119],{"categories":1086},[119],{"categories":1088},[80],{"categories":1090},[71],{"categories":1092},[77],{"categories":1094},[119],{"categories":1096},[119],{"categories":1098},[80],{"categories":1100},[80],{"categories":1102},[77],{"categories":1104},[],{"categories":1106},[],{"categories":1108},[77],{"categories":1110},[80],{"categories":1112},[98],{"categories":1114},[47],{"categories":1116},[71],{"categories":1118},[77],{"categories":1120},[],{"categories":1122},[80],{"categories":1124},[80],{"categories":1126},[],{"categories":1128},[71],{"categories":1130},[77],{"categories":1132},[71],{"categories":1134},[71],{"categories":1136},[],{"categories":1138},[],{"categories":1140},[80],{"categories":1142},[80],{"categories":1144},[77],{"categories":1146},[77],{"categories":1148},[98],{"categories":1150},[122],{"categories":1152},[83],{"categories":1154},[98],{"categories":1156},[119],{"categories":1158},[],{"categories":1160},[98],{"categories":1162},[],{"categories":1164},[],{"categories":1166},[],{"categories":1168},[],{"categories":1170},[47],{"categories":1172},[122],{"categories":1174},[],{"categories":1176},[77],{"categories":1178},[77],{"categories":1180},[122],{"categories":1182},[47],{"categories":1184},[],{"categories":1186},[],{"categories":1188},[80],{"categories":1190},[98],{"categories":1192},[98],{"categories":1194},[80],{"categories":1196},[71],{"categories":1198},[77,392],{"categories":1200},[],{"categories":1202},[119],{"categories":1204},[71],{"categories":1206},[80],{"categories":1208},[119],{"categories":1210},[],{"categories":1212},[80],{"categories":1214},[80],{"categories":1216},[77],{"categories":1218},[135],{"categories":1220},[47],{"categories":1222},[119],{"categories":1224},[],{"categories":1226},[80],{"categories":1228},[77],{"categories":1230},[80],{"categories":1232},[80],{"categories":1234},[80],{"categories":1236},[135],{"categories":1238},[80],{"categories":1240},[77],{"categories":1242},[],{"categories":1244},[135],{"categories":1246},[98],{"categories":1248},[80],{"categories":1250},[],{"categories":1252},[],{"categories":1254},[77],{"categories":1256},[80],{"categories":1258},[98],{"categories":1260},[80],{"categories":1262},[],{"categories":1264},[],{"categories":1266},[],{"categories":1268},[80],{"categories":1270},[],{"categories":1272},[],{"categories":1274},[122],{"categories":1276},[77],{"categories":1278},[122],{"categories":1280},[98],{"categories":1282},[77],{"categories":1284},[77],{"categories":1286},[80],{"categories":1288},[77],{"categories":1290},[],{"categories":1292},[],{"categories":1294},[392],{"categories":1296},[],{"categories":1298},[],{"categories":1300},[71],{"categories":1302},[],{"categories":1304},[],{"categories":1306},[],{"categories":1308},[],{"categories":1310},[47],{"categories":1312},[98],{"categories":1314},[135],{"categories":1316},[74],{"categories":1318},[77],{"categories":1320},[77],{"categories":1322},[74],{"categories":1324},[],{"categories":1326},[119],{"categories":1328},[80],{"categories":1330},[74],{"categories":1332},[77],{"categories":1334},[77],{"categories":1336},[71],{"categories":1338},[],{"categories":1340},[71],{"categories":1342},[77],{"categories":1344},[135],{"categories":1346},[80],{"categories":1348},[98],{"categories":1350},[74],{"categories":1352},[77],{"categories":1354},[80],{"categories":1356},[],{"categories":1358},[77],{"categories":1360},[71],{"categories":1362},[77],{"categories":1364},[],{"categories":1366},[98],{"categories":1368},[77],{"categories":1370},[],{"categories":1372},[74],{"categories":1374},[77],{"categories":1376},[],{"categories":1378},[],{"categories":1380},[],{"categories":1382},[77],{"categories":1384},[],{"categories":1386},[392],{"categories":1388},[77],{"categories":1390},[],{"categories":1392},[77],{"categories":1394},[77],{"categories":1396},[77],{"categories":1398},[77,392],{"categories":1400},[77],{"categories":1402},[77],{"categories":1404},[119],{"categories":1406},[80],{"categories":1408},[],{"categories":1410},[80],{"categories":1412},[77],{"categories":1414},[77],{"categories":1416},[77],{"categories":1418},[71],{"categories":1420},[71],{"categories":1422},[47],{"categories":1424},[119],{"categories":1426},[80],{"categories":1428},[],{"categories":1430},[77],{"categories":1432},[98],{"categories":1434},[77],{"categories":1436},[74],{"categories":1438},[],{"categories":1440},[392],{"categories":1442},[119],{"categories":1444},[119],{"categories":1446},[80],{"categories":1448},[98],{"categories":1450},[80],{"categories":1452},[77],{"categories":1454},[],{"categories":1456},[77],{"categories":1458},[],{"categories":1460},[],{"categories":1462},[77],{"categories":1464},[77],{"categories":1466},[77],{"categories":1468},[80],{"categories":1470},[77],{"categories":1472},[],{"categories":1474},[122],{"categories":1476},[80],{"categories":1478},[],{"categories":1480},[],{"categories":1482},[77],{"categories":1484},[98],{"categories":1486},[],{"categories":1488},[119],{"categories":1490},[392],{"categories":1492},[98],{"categories":1494},[47],{"categories":1496},[47],{"categories":1498},[98],{"categories":1500},[98],{"categories":1502},[392],{"categories":1504},[],{"categories":1506},[98],{"categories":1508},[77],{"categories":1510},[71],{"categories":1512},[98],{"categories":1514},[],{"categories":1516},[122],{"categories":1518},[98],{"categories":1520},[47],{"categories":1522},[98],{"categories":1524},[392],{"categories":1526},[77],{"categories":1528},[77],{"categories":1530},[],{"categories":1532},[74],{"categories":1534},[],{"categories":1536},[],{"categories":1538},[77],{"categories":1540},[77],{"categories":1542},[77],{"categories":1544},[77],{"categories":1546},[],{"categories":1548},[122],{"categories":1550},[71],{"categories":1552},[],{"categories":1554},[77],{"categories":1556},[77],{"categories":1558},[392],{"categories":1560},[392],{"categories":1562},[],{"categories":1564},[80],{"categories":1566},[98],{"categories":1568},[98],{"categories":1570},[77],{"categories":1572},[80],{"categories":1574},[],{"categories":1576},[119],{"categories":1578},[77],{"categories":1580},[77],{"categories":1582},[],{"categories":1584},[],{"categories":1586},[392],{"categories":1588},[77],{"categories":1590},[47],{"categories":1592},[74],{"categories":1594},[77],{"categories":1596},[],{"categories":1598},[80],{"categories":1600},[71],{"categories":1602},[71],{"categories":1604},[],{"categories":1606},[77],{"categories":1608},[119],{"categories":1610},[80],{"categories":1612},[],{"categories":1614},[77],{"categories":1616},[77],{"categories":1618},[80],{"categories":1620},[],{"categories":1622},[80],{"categories":1624},[47],{"categories":1626},[],{"categories":1628},[77],{"categories":1630},[],{"categories":1632},[77],{"categories":1634},[],{"categories":1636},[77],{"categories":1638},[77],{"categories":1640},[],{"categories":1642},[77],{"categories":1644},[98],{"categories":1646},[77],{"categories":1648},[77],{"categories":1650},[71],{"categories":1652},[77],{"categories":1654},[98],{"categories":1656},[80],{"categories":1658},[],{"categories":1660},[77],{"categories":1662},[135],{"categories":1664},[],{"categories":1666},[],{"categories":1668},[],{"categories":1670},[71],{"categories":1672},[98],{"categories":1674},[80],{"categories":1676},[77],{"categories":1678},[119],{"categories":1680},[80],{"categories":1682},[],{"categories":1684},[80],{"categories":1686},[],{"categories":1688},[77],{"categories":1690},[80],{"categories":1692},[77],{"categories":1694},[],{"categories":1696},[77],{"categories":1698},[77],{"categories":1700},[98],{"categories":1702},[119],{"categories":1704},[80],{"categories":1706},[119],{"categories":1708},[74],{"categories":1710},[],{"categories":1712},[],{"categories":1714},[77],{"categories":1716},[71],{"categories":1718},[98],{"categories":1720},[],{"categories":1722},[],{"categories":1724},[47],{"categories":1726},[119],{"categories":1728},[],{"categories":1730},[77],{"categories":1732},[],{"categories":1734},[135],{"categories":1736},[77],{"categories":1738},[392],{"categories":1740},[47],{"categories":1742},[],{"categories":1744},[80],{"categories":1746},[77],{"categories":1748},[80],{"categories":1750},[80],{"categories":1752},[77],{"categories":1754},[],{"categories":1756},[71],{"categories":1758},[77],{"categories":1760},[74],{"categories":1762},[47],{"categories":1764},[119],{"categories":1766},[],{"categories":1768},[],{"categories":1770},[],{"categories":1772},[80],{"categories":1774},[119],{"categories":1776},[98],{"categories":1778},[77],{"categories":1780},[98],{"categories":1782},[119],{"categories":1784},[],{"categories":1786},[119],{"categories":1788},[98],{"categories":1790},[74],{"categories":1792},[77],{"categories":1794},[98],{"categories":1796},[135],{"categories":1798},[],{"categories":1800},[],{"categories":1802},[122],{"categories":1804},[77,47],{"categories":1806},[98],{"categories":1808},[77],{"categories":1810},[80],{"categories":1812},[80],{"categories":1814},[77],{"categories":1816},[],{"categories":1818},[47],{"categories":1820},[77],{"categories":1822},[122],{"categories":1824},[80],{"categories":1826},[135],{"categories":1828},[392],{"categories":1830},[],{"categories":1832},[71],{"categories":1834},[80],{"categories":1836},[80],{"categories":1838},[47],{"categories":1840},[77],{"categories":1842},[77],{"categories":1844},[],{"categories":1846},[],{"categories":1848},[],{"categories":1850},[392],{"categories":1852},[98],{"categories":1854},[77],{"categories":1856},[77],{"categories":1858},[77],{"categories":1860},[],{"categories":1862},[122],{"categories":1864},[74],{"categories":1866},[],{"categories":1868},[80],{"categories":1870},[392],{"categories":1872},[],{"categories":1874},[119],{"categories":1876},[119],{"categories":1878},[],{"categories":1880},[47],{"categories":1882},[119],{"categories":1884},[77],{"categories":1886},[],{"categories":1888},[98],{"categories":1890},[77],{"categories":1892},[119],{"categories":1894},[80],{"categories":1896},[98],{"categories":1898},[],{"categories":1900},[80],{"categories":1902},[119],{"categories":1904},[77],{"categories":1906},[],{"categories":1908},[77],{"categories":1910},[77],{"categories":1912},[392],{"categories":1914},[98],{"categories":1916},[122],{"categories":1918},[122],{"categories":1920},[],{"categories":1922},[],{"categories":1924},[],{"categories":1926},[80],{"categories":1928},[47],{"categories":1930},[47],{"categories":1932},[],{"categories":1934},[],{"categories":1936},[77],{"categories":1938},[],{"categories":1940},[80],{"categories":1942},[77],{"categories":1944},[],{"categories":1946},[77],{"categories":1948},[74],{"categories":1950},[77],{"categories":1952},[135],{"categories":1954},[80],{"categories":1956},[77],{"categories":1958},[47],{"categories":1960},[98],{"categories":1962},[80],{"categories":1964},[],{"categories":1966},[98],{"categories":1968},[80],{"categories":1970},[80],{"categories":1972},[],{"categories":1974},[74],{"categories":1976},[80],{"categories":1978},[],{"categories":1980},[77],{"categories":1982},[71],{"categories":1984},[98],{"categories":1986},[392],{"categories":1988},[80],{"categories":1990},[80],{"categories":1992},[71],{"categories":1994},[77],{"categories":1996},[],{"categories":1998},[],{"categories":2000},[119],{"categories":2002},[77,74],{"categories":2004},[],{"categories":2006},[71],{"categories":2008},[122],{"categories":2010},[77],{"categories":2012},[47],{"categories":2014},[77],{"categories":2016},[80],{"categories":2018},[77],{"categories":2020},[77],{"categories":2022},[98],{"categories":2024},[80],{"categories":2026},[],{"categories":2028},[],{"categories":2030},[80],{"categories":2032},[77],{"categories":2034},[392],{"categories":2036},[],{"categories":2038},[77],{"categories":2040},[80],{"categories":2042},[],{"categories":2044},[77],{"categories":2046},[135],{"categories":2048},[122],{"categories":2050},[80],{"categories":2052},[77],{"categories":2054},[392],{"categories":2056},[],{"categories":2058},[77],{"categories":2060},[135],{"categories":2062},[119],{"categories":2064},[77],{"categories":2066},[],{"categories":2068},[135],{"categories":2070},[98],{"categories":2072},[77],{"categories":2074},[77],{"categories":2076},[71],{"categories":2078},[],{"categories":2080},[],{"categories":2082},[119],{"categories":2084},[77],{"categories":2086},[122],{"categories":2088},[135],{"categories":2090},[135],{"categories":2092},[98],{"categories":2094},[],{"categories":2096},[],{"categories":2098},[77],{"categories":2100},[],{"categories":2102},[77,47],{"categories":2104},[98],{"categories":2106},[80],{"categories":2108},[47],{"categories":2110},[77],{"categories":2112},[71],{"categories":2114},[],{"categories":2116},[],{"categories":2118},[71],{"categories":2120},[135],{"categories":2122},[77],{"categories":2124},[],{"categories":2126},[119,77],{"categories":2128},[392],{"categories":2130},[71],{"categories":2132},[],{"categories":2134},[74],{"categories":2136},[74],{"categories":2138},[77],{"categories":2140},[47],{"categories":2142},[80],{"categories":2144},[98],{"categories":2146},[135],{"categories":2148},[119],{"categories":2150},[77],{"categories":2152},[77],{"categories":2154},[77],{"categories":2156},[71],{"categories":2158},[77],{"categories":2160},[80],{"categories":2162},[98],{"categories":2164},[],{"categories":2166},[],{"categories":2168},[122],{"categories":2170},[47],{"categories":2172},[77],{"categories":2174},[119],{"categories":2176},[122],{"categories":2178},[77],{"categories":2180},[77],{"categories":2182},[80],{"categories":2184},[80],{"categories":2186},[77,74],{"categories":2188},[],{"categories":2190},[119],{"categories":2192},[],{"categories":2194},[77],{"categories":2196},[98],{"categories":2198},[71],{"categories":2200},[71],{"categories":2202},[80],{"categories":2204},[77],{"categories":2206},[74],{"categories":2208},[47],{"categories":2210},[135],{"categories":2212},[],{"categories":2214},[98],{"categories":2216},[77],{"categories":2218},[77],{"categories":2220},[98],{"categories":2222},[47],{"categories":2224},[77],{"categories":2226},[80],{"categories":2228},[98],{"categories":2230},[77],{"categories":2232},[119],{"categories":2234},[77],{"categories":2236},[77],{"categories":2238},[392],{"categories":2240},[83],{"categories":2242},[80],{"categories":2244},[77],{"categories":2246},[98],{"categories":2248},[80],{"categories":2250},[135],{"categories":2252},[77],{"categories":2254},[],{"categories":2256},[77],{"categories":2258},[],{"categories":2260},[],{"categories":2262},[],{"categories":2264},[74],{"categories":2266},[77],{"categories":2268},[80],{"categories":2270},[98],{"categories":2272},[98],{"categories":2274},[98],{"categories":2276},[98],{"categories":2278},[],{"categories":2280},[71],{"categories":2282},[80],{"categories":2284},[98],{"categories":2286},[71],{"categories":2288},[80],{"categories":2290},[77],{"categories":2292},[77,80],{"categories":2294},[80],{"categories":2296},[392],{"categories":2298},[98],{"categories":2300},[98],{"categories":2302},[80],{"categories":2304},[77],{"categories":2306},[],{"categories":2308},[98],{"categories":2310},[135],{"categories":2312},[71],{"categories":2314},[77],{"categories":2316},[77],{"categories":2318},[],{"categories":2320},[47],{"categories":2322},[],{"categories":2324},[71],{"categories":2326},[80],{"categories":2328},[98],{"categories":2330},[77],{"categories":2332},[98],{"categories":2334},[71],{"categories":2336},[98],{"categories":2338},[98],{"categories":2340},[],{"categories":2342},[74],{"categories":2344},[80],{"categories":2346},[98],{"categories":2348},[98],{"categories":2350},[98],{"categories":2352},[98],{"categories":2354},[98],{"categories":2356},[98],{"categories":2358},[98],{"categories":2360},[98],{"categories":2362},[98],{"categories":2364},[98],{"categories":2366},[122],{"categories":2368},[71],{"categories":2370},[77],{"categories":2372},[77],{"categories":2374},[],{"categories":2376},[77,71],{"categories":2378},[],{"categories":2380},[80],{"categories":2382},[98],{"categories":2384},[80],{"categories":2386},[77],{"categories":2388},[77],{"categories":2390},[77],{"categories":2392},[77],{"categories":2394},[77],{"categories":2396},[80],{"categories":2398},[74],{"categories":2400},[119],{"categories":2402},[98],{"categories":2404},[77],{"categories":2406},[],{"categories":2408},[],{"categories":2410},[80],{"categories":2412},[119],{"categories":2414},[77],{"categories":2416},[],{"categories":2418},[],{"categories":2420},[135],{"categories":2422},[77],{"categories":2424},[],{"categories":2426},[],{"categories":2428},[71],{"categories":2430},[74],{"categories":2432},[77],{"categories":2434},[74],{"categories":2436},[119],{"categories":2438},[],{"categories":2440},[98],{"categories":2442},[],{"categories":2444},[119],{"categories":2446},[77],{"categories":2448},[135],{"categories":2450},[],{"categories":2452},[135],{"categories":2454},[],{"categories":2456},[],{"categories":2458},[80],{"categories":2460},[],{"categories":2462},[74],{"categories":2464},[71],{"categories":2466},[119],{"categories":2468},[47],{"categories":2470},[],{"categories":2472},[],{"categories":2474},[77],{"categories":2476},[71],{"categories":2478},[135],{"categories":2480},[],{"categories":2482},[80],{"categories":2484},[80],{"categories":2486},[98],{"categories":2488},[77],{"categories":2490},[80],{"categories":2492},[77],{"categories":2494},[80],{"categories":2496},[77],{"categories":2498},[83],{"categories":2500},[98],{"categories":2502},[],{"categories":2504},[135],{"categories":2506},[47],{"categories":2508},[80],{"categories":2510},[],{"categories":2512},[77],{"categories":2514},[80],{"categories":2516},[74],{"categories":2518},[71],{"categories":2520},[77],{"categories":2522},[119],{"categories":2524},[47],{"categories":2526},[47],{"categories":2528},[77],{"categories":2530},[122],{"categories":2532},[77],{"categories":2534},[80],{"categories":2536},[74],{"categories":2538},[80],{"categories":2540},[77],{"categories":2542},[77],{"categories":2544},[80],{"categories":2546},[98],{"categories":2548},[],{"categories":2550},[71],{"categories":2552},[77],{"categories":2554},[80],{"categories":2556},[77],{"categories":2558},[77],{"categories":2560},[],{"categories":2562},[119],{"categories":2564},[74],{"categories":2566},[98],{"categories":2568},[77],{"categories":2570},[77],{"categories":2572},[119],{"categories":2574},[135],{"categories":2576},[122],{"categories":2578},[77],{"categories":2580},[98],{"categories":2582},[77],{"categories":2584},[80],{"categories":2586},[392],{"categories":2588},[77],{"categories":2590},[80],{"categories":2592},[122],{"categories":2594},[],{"categories":2596},[80],{"categories":2598},[47],{"categories":2600},[119],{"categories":2602},[77],{"categories":2604},[71],{"categories":2606},[74],{"categories":2608},[47],{"categories":2610},[],{"categories":2612},[80],{"categories":2614},[77],{"categories":2616},[],{"categories":2618},[98],{"categories":2620},[],{"categories":2622},[98],{"categories":2624},[77],{"categories":2626},[80],{"categories":2628},[80],{"categories":2630},[80],{"categories":2632},[],{"categories":2634},[],{"categories":2636},[77],{"categories":2638},[77],{"categories":2640},[],{"categories":2642},[119],{"categories":2644},[80],{"categories":2646},[135],{"categories":2648},[71],{"categories":2650},[],{"categories":2652},[],{"categories":2654},[98],{"categories":2656},[47],{"categories":2658},[77],{"categories":2660},[77],{"categories":2662},[77],{"categories":2664},[47],{"categories":2666},[98],{"categories":2668},[119],{"categories":2670},[77],{"categories":2672},[77],{"categories":2674},[77],{"categories":2676},[98],{"categories":2678},[77],{"categories":2680},[98],{"categories":2682},[80],{"categories":2684},[80],{"categories":2686},[47],{"categories":2688},[80],{"categories":2690},[77],{"categories":2692},[47],{"categories":2694},[119],{"categories":2696},[],{"categories":2698},[80],{"categories":2700},[],{"categories":2702},[],{"categories":2704},[],{"categories":2706},[74],{"categories":2708},[77],{"categories":2710},[80],{"categories":2712},[71],{"categories":2714},[80],{"categories":2716},[135],{"categories":2718},[],{"categories":2720},[80],{"categories":2722},[],{"categories":2724},[71],{"categories":2726},[80],{"categories":2728},[],{"categories":2730},[80],{"categories":2732},[77],{"categories":2734},[98],{"categories":2736},[77],{"categories":2738},[80],{"categories":2740},[98],{"categories":2742},[80],{"categories":2744},[47],{"categories":2746},[119],{"categories":2748},[71],{"categories":2750},[],{"categories":2752},[80],{"categories":2754},[119],{"categories":2756},[392],{"categories":2758},[98],{"categories":2760},[77],{"categories":2762},[119],{"categories":2764},[71],{"categories":2766},[],{"categories":2768},[80],{"categories":2770},[80],{"categories":2772},[77],{"categories":2774},[],{"categories":2776},[80],{"categories":2778},[83],{"categories":2780},[98],{"categories":2782},[80],{"categories":2784},[74],{"categories":2786},[],{"categories":2788},[77],{"categories":2790},[83],{"categories":2792},[77],{"categories":2794},[80],{"categories":2796},[98],{"categories":2798},[71],{"categories":2800},[392],{"categories":2802},[77],{"categories":2804},[77],{"categories":2806},[77],{"categories":2808},[98],{"categories":2810},[74],{"categories":2812},[77],{"categories":2814},[119],{"categories":2816},[98],{"categories":2818},[392],{"categories":2820},[77],{"categories":2822},[],{"categories":2824},[],{"categories":2826},[392],{"categories":2828},[122],{"categories":2830},[80],{"categories":2832},[80],{"categories":2834},[98],{"categories":2836},[77],{"categories":2838},[71],{"categories":2840},[119],{"categories":2842},[80],{"categories":2844},[77],{"categories":2846},[135],{"categories":2848},[77],{"categories":2850},[80],{"categories":2852},[],{"categories":2854},[77],{"categories":2856},[77],{"categories":2858},[98],{"categories":2860},[71],{"categories":2862},[],{"categories":2864},[77],{"categories":2866},[77],{"categories":2868},[47],{"categories":2870},[119],{"categories":2872},[77,80],{"categories":2874},[135,74],{"categories":2876},[77],{"categories":2878},[],{"categories":2880},[80],{"categories":2882},[],{"categories":2884},[47],{"categories":2886},[77],{"categories":2888},[98],{"categories":2890},[],{"categories":2892},[80],{"categories":2894},[],{"categories":2896},[119],{"categories":2898},[80],{"categories":2900},[71],{"categories":2902},[80],{"categories":2904},[77],{"categories":2906},[392],{"categories":2908},[135],{"categories":2910},[74],{"categories":2912},[74],{"categories":2914},[71],{"categories":2916},[71],{"categories":2918},[77],{"categories":2920},[80],{"categories":2922},[77],{"categories":2924},[77],{"categories":2926},[71],{"categories":2928},[77],{"categories":2930},[135],{"categories":2932},[98],{"categories":2934},[77],{"categories":2936},[80],{"categories":2938},[77],{"categories":2940},[],{"categories":2942},[47],{"categories":2944},[],{"categories":2946},[80],{"categories":2948},[71],{"categories":2950},[],{"categories":2952},[392],{"categories":2954},[77],{"categories":2956},[],{"categories":2958},[98],{"categories":2960},[80],{"categories":2962},[47],{"categories":2964},[77],{"categories":2966},[80],{"categories":2968},[47],{"categories":2970},[80],{"categories":2972},[98],{"categories":2974},[71],{"categories":2976},[98],{"categories":2978},[47],{"categories":2980},[77],{"categories":2982},[119],{"categories":2984},[77],{"categories":2986},[77],{"categories":2988},[77],{"categories":2990},[77],{"categories":2992},[80],{"categories":2994},[77],{"categories":2996},[80],{"categories":2998},[77],{"categories":3000},[71],{"categories":3002},[77],{"categories":3004},[80],{"categories":3006},[119],{"categories":3008},[71],{"categories":3010},[80],{"categories":3012},[119],{"categories":3014},[],{"categories":3016},[77],{"categories":3018},[77],{"categories":3020},[47],{"categories":3022},[],{"categories":3024},[80],{"categories":3026},[135],{"categories":3028},[77],{"categories":3030},[98],{"categories":3032},[135],{"categories":3034},[80],{"categories":3036},[74],{"categories":3038},[74],{"categories":3040},[77],{"categories":3042},[71],{"categories":3044},[],{"categories":3046},[77],{"categories":3048},[],{"categories":3050},[71],{"categories":3052},[77],{"categories":3054},[80],{"categories":3056},[80],{"categories":3058},[],{"categories":3060},[47],{"categories":3062},[47],{"categories":3064},[135],{"categories":3066},[119],{"categories":3068},[],{"categories":3070},[77],{"categories":3072},[71],{"categories":3074},[77],{"categories":3076},[47],{"categories":3078},[71],{"categories":3080},[98],{"categories":3082},[98],{"categories":3084},[],{"categories":3086},[98],{"categories":3088},[80],{"categories":3090},[119],{"categories":3092},[122],{"categories":3094},[77],{"categories":3096},[],{"categories":3098},[98],{"categories":3100},[47],{"categories":3102},[74],{"categories":3104},[77],{"categories":3106},[71],{"categories":3108},[392],{"categories":3110},[71],{"categories":3112},[],{"categories":3114},[],{"categories":3116},[98],{"categories":3118},[],{"categories":3120},[80],{"categories":3122},[80],{"categories":3124},[80],{"categories":3126},[],{"categories":3128},[77],{"categories":3130},[],{"categories":3132},[98],{"categories":3134},[71],{"categories":3136},[119],{"categories":3138},[77],{"categories":3140},[98],{"categories":3142},[98],{"categories":3144},[],{"categories":3146},[98],{"categories":3148},[71],{"categories":3150},[77],{"categories":3152},[],{"categories":3154},[80],{"categories":3156},[80],{"categories":3158},[71],{"categories":3160},[],{"categories":3162},[],{"categories":3164},[],{"categories":3166},[119],{"categories":3168},[80],{"categories":3170},[77],{"categories":3172},[],{"categories":3174},[],{"categories":3176},[],{"categories":3178},[119],{"categories":3180},[],{"categories":3182},[71],{"categories":3184},[],{"categories":3186},[],{"categories":3188},[119],{"categories":3190},[77],{"categories":3192},[98],{"categories":3194},[],{"categories":3196},[135],{"categories":3198},[98],{"categories":3200},[135],{"categories":3202},[77],{"categories":3204},[],{"categories":3206},[],{"categories":3208},[80],{"categories":3210},[],{"categories":3212},[],{"categories":3214},[80],{"categories":3216},[77],{"categories":3218},[],{"categories":3220},[80],{"categories":3222},[98],{"categories":3224},[135],{"categories":3226},[122],{"categories":3228},[80],{"categories":3230},[80],{"categories":3232},[],{"categories":3234},[],{"categories":3236},[],{"categories":3238},[98],{"categories":3240},[],{"categories":3242},[],{"categories":3244},[119],{"categories":3246},[71],{"categories":3248},[],{"categories":3250},[74],{"categories":3252},[135],{"categories":3254},[77],{"categories":3256},[47],{"categories":3258},[71],{"categories":3260},[122],{"categories":3262},[74],{"categories":3264},[47],{"categories":3266},[],{"categories":3268},[],{"categories":3270},[80],{"categories":3272},[71],{"categories":3274},[119],{"categories":3276},[71],{"categories":3278},[80],{"categories":3280},[392],{"categories":3282},[80],{"categories":3284},[],{"categories":3286},[77],{"categories":3288},[98],{"categories":3290},[47],{"categories":3292},[],{"categories":3294},[119],{"categories":3296},[98],{"categories":3298},[71],{"categories":3300},[80],{"categories":3302},[77],{"categories":3304},[74],{"categories":3306},[80,392],{"categories":3308},[80],{"categories":3310},[47],{"categories":3312},[77],{"categories":3314},[122],{"categories":3316},[135],{"categories":3318},[80],{"categories":3320},[],{"categories":3322},[80],{"categories":3324},[77],{"categories":3326},[74],{"categories":3328},[],{"categories":3330},[],{"categories":3332},[77],{"categories":3334},[122],{"categories":3336},[77],{"categories":3338},[],{"categories":3340},[98],{"categories":3342},[],{"categories":3344},[98],{"categories":3346},[47],{"categories":3348},[80],{"categories":3350},[77],{"categories":3352},[135],{"categories":3354},[47],{"categories":3356},[],{"categories":3358},[98],{"categories":3360},[77],{"categories":3362},[],{"categories":3364},[77],{"categories":3366},[80],{"categories":3368},[77],{"categories":3370},[80],{"categories":3372},[77],{"categories":3374},[77],{"categories":3376},[77],{"categories":3378},[77],{"categories":3380},[74],{"categories":3382},[],{"categories":3384},[83],{"categories":3386},[98],{"categories":3388},[77],{"categories":3390},[],{"categories":3392},[47],{"categories":3394},[77],{"categories":3396},[77],{"categories":3398},[80],{"categories":3400},[98],{"categories":3402},[77],{"categories":3404},[77],{"categories":3406},[74],{"categories":3408},[80],{"categories":3410},[119],{"categories":3412},[],{"categories":3414},[122],{"categories":3416},[77],{"categories":3418},[],{"categories":3420},[98],{"categories":3422},[135],{"categories":3424},[],{"categories":3426},[],{"categories":3428},[98],{"categories":3430},[98],{"categories":3432},[135],{"categories":3434},[71],{"categories":3436},[80],{"categories":3438},[80],{"categories":3440},[77],{"categories":3442},[74],{"categories":3444},[],{"categories":3446},[],{"categories":3448},[98],{"categories":3450},[122],{"categories":3452},[47],{"categories":3454},[80],{"categories":3456},[119],{"categories":3458},[122],{"categories":3460},[122],{"categories":3462},[],{"categories":3464},[98],{"categories":3466},[77],{"categories":3468},[77],{"categories":3470},[47],{"categories":3472},[],{"categories":3474},[98],{"categories":3476},[98],{"categories":3478},[98],{"categories":3480},[],{"categories":3482},[80],{"categories":3484},[77],{"categories":3486},[],{"categories":3488},[71],{"categories":3490},[74],{"categories":3492},[],{"categories":3494},[77],{"categories":3496},[77],{"categories":3498},[],{"categories":3500},[47],{"categories":3502},[],{"categories":3504},[],{"categories":3506},[],{"categories":3508},[],{"categories":3510},[77],{"categories":3512},[98],{"categories":3514},[],{"categories":3516},[],{"categories":3518},[77],{"categories":3520},[77],{"categories":3522},[77],{"categories":3524},[122],{"categories":3526},[77],{"categories":3528},[122],{"categories":3530},[],{"categories":3532},[122],{"categories":3534},[122],{"categories":3536},[392],{"categories":3538},[80],{"categories":3540},[47],{"categories":3542},[],{"categories":3544},[],{"categories":3546},[122],{"categories":3548},[47],{"categories":3550},[47],{"categories":3552},[47],{"categories":3554},[],{"categories":3556},[71],{"categories":3558},[47],{"categories":3560},[47],{"categories":3562},[71],{"categories":3564},[47],{"categories":3566},[74],{"categories":3568},[47],{"categories":3570},[47],{"categories":3572},[47],{"categories":3574},[122],{"categories":3576},[98],{"categories":3578},[98],{"categories":3580},[77],{"categories":3582},[47],{"categories":3584},[122],{"categories":3586},[392],{"categories":3588},[122],{"categories":3590},[122],{"categories":3592},[122],{"categories":3594},[],{"categories":3596},[74],{"categories":3598},[],{"categories":3600},[392],{"categories":3602},[47],{"categories":3604},[47],{"categories":3606},[47],{"categories":3608},[80],{"categories":3610},[98,74],{"categories":3612},[122],{"categories":3614},[],{"categories":3616},[],{"categories":3618},[122],{"categories":3620},[],{"categories":3622},[122],{"categories":3624},[98],{"categories":3626},[80],{"categories":3628},[],{"categories":3630},[47],{"categories":3632},[77],{"categories":3634},[119],{"categories":3636},[],{"categories":3638},[77],{"categories":3640},[],{"categories":3642},[98],{"categories":3644},[71],{"categories":3646},[122],{"categories":3648},[],{"categories":3650},[47],{"categories":3652},[98],[3654,3711,4021,4304],{"id":3655,"title":3656,"ai":3657,"body":3662,"categories":3690,"created_at":48,"date_modified":48,"description":40,"extension":49,"faq":48,"featured":50,"kicker_label":48,"meta":3691,"navigation":52,"path":3698,"published_at":3699,"question":48,"scraped_at":3700,"seo":3701,"sitemap":3702,"source_id":3703,"source_name":3704,"source_type":59,"source_url":3705,"stem":3706,"tags":3707,"thumbnail_url":48,"tldr":3708,"tweet":48,"unknown_tags":3709,"__hash__":3710},"summaries\u002Fsummaries\u002Ff0cb31fd5d79ac17-juniors-ship-faster-but-lack-system-shape-summary.md","Juniors Ship Faster But Lack System Shape",{"provider":7,"model":8,"input_tokens":3658,"output_tokens":3659,"processing_time_ms":3660,"cost_usd":3661},3927,1130,12244,0.00084355,{"type":14,"value":3663,"toc":3685},[3664,3668,3671,3675,3678,3682],[17,3665,3667],{"id":3666},"speed-masks-shallow-understanding","Speed Masks Shallow Understanding",[22,3669,3670],{},"Junior engineers now close far more tickets than seniors—14 per sprint versus 4—while delivering clean PRs, passing tests, and earning minimal code review feedback. Dashboards label them high performers. This isn't luck; it's consistent over months. Use this metric cautiously: it measures output volume, not depth. Juniors excel at tactical tasks like syntax and implementation because tools (implied AI in context) accelerate routine coding, freeing seniors for architecture—but eroding that edge if not addressed.",[17,3672,3674],{"id":3673},"incidents-expose-the-gap","Incidents Expose the Gap",[22,3676,3677],{},"During a subtle production incident, the junior on-call couldn't navigate despite reading stack traces and logs. She pinged the senior not for syntax help, but because she didn't recognize 'which part mattered'—lacking the system's 'shape.' This mental model lets experienced engineers orient quickly: predicting where bugs hide based on architecture, data flows, and historical patterns. Without it, juniors ship fast but debug slowly, risking outages. Build this by pairing juniors on incidents, diagramming system boundaries early, and enforcing architecture reviews in PRs.",[17,3679,3681],{"id":3680},"redefining-seniority-for-ai-era","Redefining Seniority for AI Era",[22,3683,3684],{},"Traditional seniority wasn't shipping speed; it was maintaining the full system shape in working memory to triage, hypothesize, and fix under pressure. As juniors close the speed gap, teams risk a bench of fast coders who can't handle chaos. Counter by measuring 'shape mastery': incident resolution time, architecture docs contributed, and cross-module changes proposed. Promote based on this, not tickets closed—ensuring velocity doesn't trade away reliability.",{"title":40,"searchDepth":41,"depth":41,"links":3686},[3687,3688,3689],{"id":3666,"depth":41,"text":3667},{"id":3673,"depth":41,"text":3674},{"id":3680,"depth":41,"text":3681},[71],{"content_references":3692,"triage":3693},[],{"relevance":3694,"novelty":3695,"quality":3695,"actionability":3695,"composite":3696,"reasoning":3697},5,4,4.35,"Category: Software Engineering. The article addresses the balance between speed and understanding in software engineering, highlighting a critical pain point for product builders: the need for juniors to grasp system architecture. It provides actionable strategies like pairing juniors on incidents and enforcing architecture reviews, making it relevant and practical for the target audience.","\u002Fsummaries\u002Ff0cb31fd5d79ac17-juniors-ship-faster-but-lack-system-shape-summary","2026-04-21 00:22:22","2026-04-21 15:26:05",{"title":3656,"description":40},{"loc":3698},"f0cb31fd5d79ac17","Generative AI","https:\u002F\u002Fgenerativeai.pub\u002Fmy-juniors-ship-faster-than-my-seniors-and-im-worried-about-them-4b284c7384ff?source=rss----440100e76000---4","summaries\u002Ff0cb31fd5d79ac17-juniors-ship-faster-but-lack-system-shape-summary",[64,63],"Juniors outperform seniors on tickets shipped (14 vs 4) with clean PRs, but falter in incidents because they don't grasp the system's architecture—seniority means holding that mental model, not raw speed.",[64,63],"S9jMq69SxPImW6BmMsWM_CG-GwHD-ZP24uMhYzx8OrA",{"id":3712,"title":3713,"ai":3714,"body":3719,"categories":4002,"created_at":48,"date_modified":48,"description":40,"extension":49,"faq":48,"featured":50,"kicker_label":48,"meta":4003,"navigation":52,"path":4008,"published_at":4009,"question":48,"scraped_at":4010,"seo":4011,"sitemap":4012,"source_id":4013,"source_name":4014,"source_type":59,"source_url":4015,"stem":4016,"tags":4017,"thumbnail_url":48,"tldr":4018,"tweet":48,"unknown_tags":4019,"__hash__":4020},"summaries\u002Fsummaries\u002F889dfe771060ca7f-pytest-fixtures-dry-up-test-setup-code-summary.md","Pytest Fixtures: DRY Up Test Setup Code",{"provider":7,"model":8,"input_tokens":3715,"output_tokens":3716,"processing_time_ms":3717,"cost_usd":3718},3838,1329,15926,0.0014096,{"type":14,"value":3720,"toc":3997},[3721,3725,3728,3731,3792,3811,3814,3818,3821,3860,3863,3870,3890,3893,3916,3920,3927,3987,3993],[17,3722,3724],{"id":3723},"centralize-setup-to-eliminate-repetition","Centralize Setup to Eliminate Repetition",[22,3726,3727],{},"Repeated setup code—like creating test data or DB connections across tests—leads to maintenance nightmares and fragility. Pytest fixtures solve this by defining reusable setup once, injected automatically into tests via function arguments.",[22,3729,3730],{},"Start with a basic fixture for shared data:",[3732,3733,3737],"pre",{"className":3734,"code":3735,"language":3736,"meta":40,"style":40},"language-python shiki shiki-themes github-light github-dark","def test_addition():    result = add(2, 3)    assert result == 5\n\n@pytest.fixture\ndef sample_data():\n    return [1, 2, 3, 4]\n\ndef test_sum(sample_data):\n    result = sum(sample_data)\n    assert result == 10\n","python",[3738,3739,3740,3748,3753,3759,3764,3769,3774,3780,3786],"code",{"__ignoreMap":40},[3741,3742,3745],"span",{"class":3743,"line":3744},"line",1,[3741,3746,3747],{},"def test_addition():    result = add(2, 3)    assert result == 5\n",[3741,3749,3750],{"class":3743,"line":41},[3741,3751,3752],{"emptyLinePlaceholder":52},"\n",[3741,3754,3756],{"class":3743,"line":3755},3,[3741,3757,3758],{},"@pytest.fixture\n",[3741,3760,3761],{"class":3743,"line":3695},[3741,3762,3763],{},"def sample_data():\n",[3741,3765,3766],{"class":3743,"line":3694},[3741,3767,3768],{},"    return [1, 2, 3, 4]\n",[3741,3770,3772],{"class":3743,"line":3771},6,[3741,3773,3752],{"emptyLinePlaceholder":52},[3741,3775,3777],{"class":3743,"line":3776},7,[3741,3778,3779],{},"def test_sum(sample_data):\n",[3741,3781,3783],{"class":3743,"line":3782},8,[3741,3784,3785],{},"    result = sum(sample_data)\n",[3741,3787,3789],{"class":3743,"line":3788},9,[3741,3790,3791],{},"    assert result == 10\n",[22,3793,3794,3795,3798,3799,3802,3803,3806,3807,3810],{},"Here, ",[3738,3796,3797],{},"sample_data"," runs once per test, avoiding copy-paste. Fixtures support dependency chaining: a ",[3738,3800,3801],{},"db_connection"," fixture can depend on ",[3738,3804,3805],{},"test_user"," to build layered setups like ",[3738,3808,3809],{},"def db_connection(test_user): return connect_db(test_user)",".",[22,3812,3813],{},"This keeps tests focused on assertions, cutting boilerplate by 50-80% in growing suites.",[17,3815,3817],{"id":3816},"scale-with-parameters-autouse-and-scopes","Scale with Parameters, Autouse, and Scopes",[22,3819,3820],{},"Parametrize fixtures for data-driven tests without exploding function counts:",[3732,3822,3824],{"className":3734,"code":3823,"language":3736,"meta":40,"style":40},"@pytest.fixture(params=[(2,3,5), (0,0,0), (-1,1,0)])\ndef add_inputs(request):\n    return request.param\n\ndef test_addition(add_inputs):\n    a, b, expected = add_inputs\n    assert add(a, b) == expected\n",[3738,3825,3826,3831,3836,3841,3845,3850,3855],{"__ignoreMap":40},[3741,3827,3828],{"class":3743,"line":3744},[3741,3829,3830],{},"@pytest.fixture(params=[(2,3,5), (0,0,0), (-1,1,0)])\n",[3741,3832,3833],{"class":3743,"line":41},[3741,3834,3835],{},"def add_inputs(request):\n",[3741,3837,3838],{"class":3743,"line":3755},[3741,3839,3840],{},"    return request.param\n",[3741,3842,3843],{"class":3743,"line":3695},[3741,3844,3752],{"emptyLinePlaceholder":52},[3741,3846,3847],{"class":3743,"line":3694},[3741,3848,3849],{},"def test_addition(add_inputs):\n",[3741,3851,3852],{"class":3743,"line":3771},[3741,3853,3854],{},"    a, b, expected = add_inputs\n",[3741,3856,3857],{"class":3743,"line":3776},[3741,3858,3859],{},"    assert add(a, b) == expected\n",[22,3861,3862],{},"Runs the test three times with different inputs, covering edge cases efficiently.",[22,3864,3865,3866,3869],{},"Use ",[3738,3867,3868],{},"autouse=True"," for global setup like patching or mocks:",[3732,3871,3873],{"className":3734,"code":3872,"language":3736,"meta":40,"style":40},"@pytest.fixture(autouse=True)\ndef mock_time(monkeypatch):\n    monkeypatch.setattr('time.time', lambda: 1234567890)\n",[3738,3874,3875,3880,3885],{"__ignoreMap":40},[3741,3876,3877],{"class":3743,"line":3744},[3741,3878,3879],{},"@pytest.fixture(autouse=True)\n",[3741,3881,3882],{"class":3743,"line":41},[3741,3883,3884],{},"def mock_time(monkeypatch):\n",[3741,3886,3887],{"class":3743,"line":3755},[3741,3888,3889],{},"    monkeypatch.setattr('time.time', lambda: 1234567890)\n",[22,3891,3892],{},"Applies to all tests in the scope without explicit requests.",[22,3894,3895,3896,3899,3900,3903,3904,3907,3908,3911,3912,3915],{},"Control reuse with ",[3738,3897,3898],{},"scope",": ",[3738,3901,3902],{},"function"," (default, per test), ",[3738,3905,3906],{},"class"," (per class), ",[3738,3909,3910],{},"module"," (per file, ideal for DB init), ",[3738,3913,3914],{},"session"," (once per run, for expensive resources). Module scope on a DB fixture shares one connection across 20+ tests, reducing overhead from 2s to 0.2s per run.",[17,3917,3919],{"id":3918},"handle-teardown-with-yield-for-reliable-cleanup","Handle Teardown with Yield for Reliable Cleanup",[22,3921,3922,3923,3926],{},"Fixtures with ",[3738,3924,3925],{},"yield"," enable post-test cleanup:",[3732,3928,3930],{"className":3734,"code":3929,"language":3736,"meta":40,"style":40},"@pytest.fixture\ndef temp_file(tmp_path):\n    path = tmp_path \u002F 'test.txt'\n    path.write_text('initial content')\n    yield str(path)\n    path.unlink()\n\ndef test_file_write(temp_file):\n    with open(temp_file, 'a') as f:\n        f.write('appended')\n    # File auto-deleted after\n",[3738,3931,3932,3936,3941,3946,3951,3956,3961,3965,3970,3975,3981],{"__ignoreMap":40},[3741,3933,3934],{"class":3743,"line":3744},[3741,3935,3758],{},[3741,3937,3938],{"class":3743,"line":41},[3741,3939,3940],{},"def temp_file(tmp_path):\n",[3741,3942,3943],{"class":3743,"line":3755},[3741,3944,3945],{},"    path = tmp_path \u002F 'test.txt'\n",[3741,3947,3948],{"class":3743,"line":3695},[3741,3949,3950],{},"    path.write_text('initial content')\n",[3741,3952,3953],{"class":3743,"line":3694},[3741,3954,3955],{},"    yield str(path)\n",[3741,3957,3958],{"class":3743,"line":3771},[3741,3959,3960],{},"    path.unlink()\n",[3741,3962,3963],{"class":3743,"line":3776},[3741,3964,3752],{"emptyLinePlaceholder":52},[3741,3966,3967],{"class":3743,"line":3782},[3741,3968,3969],{},"def test_file_write(temp_file):\n",[3741,3971,3972],{"class":3743,"line":3788},[3741,3973,3974],{},"    with open(temp_file, 'a') as f:\n",[3741,3976,3978],{"class":3743,"line":3977},10,[3741,3979,3980],{},"        f.write('appended')\n",[3741,3982,3984],{"class":3743,"line":3983},11,[3741,3985,3986],{},"    # File auto-deleted after\n",[22,3988,3989,3990,3992],{},"Code before ",[3738,3991,3925],{}," sets up; after runs teardown. Perfect for temp files, DB rollbacks, or API mocks—ensures isolation even on failures, preventing leaks in CI runs.",[3994,3995,3996],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":40,"searchDepth":41,"depth":41,"links":3998},[3999,4000,4001],{"id":3723,"depth":41,"text":3724},{"id":3816,"depth":41,"text":3817},{"id":3918,"depth":41,"text":3919},[47],{"content_references":4004,"triage":4005},[],{"relevance":3695,"novelty":3755,"quality":3695,"actionability":3695,"composite":4006,"reasoning":4007},3.8,"Category: Software Engineering. The article provides a practical guide on using Pytest fixtures to improve test setup efficiency, addressing a common pain point for developers in maintaining test code. It includes specific examples and techniques that can be directly applied to enhance developer productivity.","\u002Fsummaries\u002F889dfe771060ca7f-pytest-fixtures-dry-up-test-setup-code-summary","2026-05-10 15:09:42","2026-05-11 15:04:10",{"title":3713,"description":40},{"loc":4008},"889dfe771060ca7f","Python in Plain English","https:\u002F\u002Fpython.plainenglish.io\u002Fstop-repeating-yourself-in-tests-a-clear-guide-to-fixtures-in-python-b480a053e93b?source=rss----78073def27b8---4","summaries\u002F889dfe771060ca7f-pytest-fixtures-dry-up-test-setup-code-summary",[3736,63,64],"Pytest fixtures eliminate repeated setup\u002Fteardown in tests by centralizing data prep, DB connections, and cleanup—use params for variations, scopes for reuse, and yield for teardown to scale suites without fragility.",[63,64],"KugMtttxqXRvgbLE7irAeHQkMueSv9XMdEf62-5NhuI",{"id":4022,"title":4023,"ai":4024,"body":4029,"categories":4269,"created_at":48,"date_modified":48,"description":40,"extension":49,"faq":48,"featured":50,"kicker_label":48,"meta":4270,"navigation":52,"path":4287,"published_at":4288,"question":48,"scraped_at":4289,"seo":4290,"sitemap":4291,"source_id":4292,"source_name":4293,"source_type":4294,"source_url":4295,"stem":4296,"tags":4297,"thumbnail_url":4299,"tldr":4300,"tweet":4301,"unknown_tags":4302,"__hash__":4303},"summaries\u002Fsummaries\u002Ff52d69636c2926d4-typescript-7-native-preview-10x-faster-web-builds-summary.md","TypeScript 7 Native Preview: 10x Faster Web Builds",{"provider":7,"model":8,"input_tokens":4025,"output_tokens":4026,"processing_time_ms":4027,"cost_usd":4028},8434,2474,32487,0.00290115,{"type":14,"value":4030,"toc":4262},[4031,4035,4038,4045,4051,4054,4060,4064,4067,4101,4108,4111,4116,4120,4123,4154,4157,4162,4166,4169,4174,4200,4206,4209,4212,4219,4223],[17,4032,4034],{"id":4033},"harness-native-go-port-for-10x-typescript-speed","Harness Native Go Port for 10x TypeScript Speed",[22,4036,4037],{},"TypeScript 7 introduces a groundbreaking port of its compiler and language service from TypeScript\u002FJavaScript to Go, enabling native execution speeds and true multi-threading. This addresses core pain points in large codebases: slow type checking on every keystroke, completions lagging behind complex types, and build times ballooning to minutes.",[22,4039,4040,4044],{},[4041,4042,4043],"strong",{},"Why it works:"," JavaScript's single-threaded nature limits parallelism; Go's native compilation allows shared memory across threads, ripping through type computations 10x faster. For most projects, expect dramatic gains—VS Code's full build dropped from 60s to 30s (2x), Copilot extension from 22s to 4s (5x). On beefy machines, allocate more threads via compiler flags for even better scaling (uses more RAM but crushes compiles).",[22,4046,4047,4050],{},[4041,4048,4049],{},"Trade-offs:"," Native preview aligns behaviors with TS 6.0 (an \"alignment release\" prepping for TS 7 breaks\u002Fdeprecations). Test on TS 6.0 first—if it compiles cleanly, upgrade seamlessly. Nightly previews catch issues early.",[22,4052,4053],{},"Daniel Rosenwasser (TypeScript PM) shares hands-on validation: Internal Microsoft teams, plus Slack, Vanta, Notion, Figma report 4-5x gains on million-line codebases, even with existing parallel stacks.",[4055,4056,4057],"blockquote",{},[22,4058,4059],{},"\"For most projects it's going to actually be 10x faster.\" — Daniel Rosenwasser",[17,4061,4063],{"id":4062},"zero-friction-setup-in-vs-code","Zero-Friction Setup in VS Code",[22,4065,4066],{},"Target skill level: Intermediate TypeScript\u002FJS developers comfortable with VS Code Insiders. Prerequisites: Modern TS\u002FJS project; no Go install needed—it's bundled.",[4068,4069,4070,4077,4095],"ol",{},[4071,4072,4073,4076],"li",{},[4041,4074,4075],{},"Extension Install:"," Search \"TypeScript Native Preview\" in VS Code Extensions view (building blocks icon). Install—activates on next TS\u002FJS file open. Low-risk: Toggle off anytime.",[4071,4078,4079,4082,4083,4086,4087,4090,4091,4094],{},[4041,4080,4081],{},"CLI Compiler:"," ",[3738,4084,4085],{},"npm i @typescript\u002Fnative-preview",". Run ",[3738,4088,4089],{},"tsgo"," instead of ",[3738,4092,4093],{},"tsc"," for 10x builds. Matches TS 6.0 API\u002Fbehaviors.",[4071,4096,4097,4100],{},[4041,4098,4099],{},"Verify:"," Open TS file—completions, Go to Definition instant. Check VS Code status bar for native mode.",[22,4102,4103,4104,4107],{},"Common mistake: Skipping TS 6.0 alignment. Fix: Update ",[3738,4105,4106],{},"tsconfig.json"," to \"6.0\", resolve deprecations.",[22,4109,4110],{},"Quality criteria: Keystroke completions \u003C100ms; full project type-check \u003C10% original time. Benchmark your repo pre\u002Fpost.",[4055,4112,4113],{},[22,4114,4115],{},"\"All you have to do is just hit install... it's just a better faster experience.\" — Daniel Rosenwasser",[17,4117,4119],{"id":4118},"live-workflows-vs-code-updates-supercharge-ts7-dev","Live Workflows: VS Code Updates Supercharge TS7 Dev",[22,4121,4122],{},"James Montemagno demos Insiders (v1.89+) integrations amplifying TS7:",[4124,4125,4126,4132,4142,4148],"ul",{},[4071,4127,4128,4131],{},[4041,4129,4130],{},"Browser-in-VS Code:"," Exclusive browser mode for clean screen shares. Attach tabs to Agent Chat for page analysis\u002Factions (e.g., \"overview this page\"—auto-processes DOM).",[4071,4133,4134,4137,4138,4141],{},[4041,4135,4136],{},"OpenTelemetry Traces:"," VS Code Copilot sessions export traces\u002Flogs\u002Fmetrics to any provider (e.g., Aspire dashboard). See agent tool timings, GitHub MCP latencies, errors. Setup: ",[3738,4139,4140],{},"@opentelemetry\u002Fapi + @opentelemetry\u002Fsdk-node","; auto-exports console\u002FHTTP\u002FgRPC.",[4071,4143,4144,4147],{},[4041,4145,4146],{},"Markdown Preview Toggle:"," Switch to full-screen preview (no side-by-side). Right-click → Open Preview.",[4071,4149,4150,4153],{},[4041,4151,4152],{},"Agents Hub:"," code.visualstudio.com\u002Fagents—local\u002Fcloud\u002FCLI\u002Fthird-party models (Ollama, Foundry). Courses on skills\u002Fhooks\u002Fprompts.",[22,4155,4156],{},"These fit mid-workflow: Type-check fast → Agent-debug UI → Telemetry-trace perf → Preview docs.",[4055,4158,4159],{},[22,4160,4161],{},"\"VS Code now is being type checked and built with the new compiler... everything can be built in about 30 seconds.\" — Daniel Rosenwasser",[17,4163,4165],{"id":4164},"prototype-websites-stream-timer-from-scratch","Prototype Websites: Stream Timer from Scratch",[22,4167,4168],{},"James kickstarts live coding: Recreate his \"Stream Timer\" site (countdown\u002Fup for OBS streamers, e.g., Halo speedruns). Originally pandemic-built for personal use, now scales via TS7 speed.",[22,4170,4171],{},[4041,4172,4173],{},"Process (reconstructed):",[4068,4175,4176,4183,4188,4194,4197],{},[4071,4177,4178,4179,4182],{},"New workspace: ",[3738,4180,4181],{},"code ."," in empty folder.",[4071,4184,4185,3810],{},[3738,4186,4187],{},"npm init -y; npm i typescript @typescript\u002Fnative-preview",[4071,4189,4190,4193],{},[3738,4191,4192],{},"npx tsgo --init"," for tsconfig.",[4071,4195,4196],{},"Build UI: HTML\u002FTS for timer logic (up\u002Fdown counters, video embed).",[4071,4198,4199],{},"Native preview auto-types: Instant refactoring, completions as complexity grows.",[22,4201,4202,4205],{},[4041,4203,4204],{},"Before\u002FAfter:"," Pre-TS7: Keystroke lag on nested types. Post: Fluid, like editing JS but with TS safety.",[22,4207,4208],{},"Exercise: Clone timer—add persistence (localStorage), styles (CSS vars). Time type-check; compare to stable TS.",[22,4210,4211],{},"Plans for 7 sites: Leverage LSP tricks, real-time workflows. Expect: RAG-like agent integration, optimized pipelines.",[22,4213,4214,4215,4218],{},"Common pitfall: Overlooking multi-threading flags. Pro tip: ",[3738,4216,4217],{},"tsgo --threads 8"," on 16-core CPU.",[17,4220,4222],{"id":4221},"key-takeaways","Key Takeaways",[4124,4224,4225,4228,4231,4241,4244,4247,4250,4253,4256,4259],{},[4071,4226,4227],{},"Install TypeScript Native Preview extension immediately—10x gains with zero config risk.",[4071,4229,4230],{},"Align to TS 6.0 first: Fix deprecations for seamless TS 7 jump.",[4071,4232,4233,4234,4237,4238,4240],{},"Benchmark builds: ",[3738,4235,4236],{},"time tsgo"," vs ",[3738,4239,4093],{},"; scale threads for max perf.",[4071,4242,4243],{},"Trace Copilot\u002Fagents via OpenTelemetry—visualize latencies in Aspire\u002Fothers.",[4071,4245,4246],{},"Use VS Code as browser + agent context for UI dev loops.",[4071,4248,4249],{},"Prototype fast: TS7 enables complex types without slowdown—ideal for web apps.",[4071,4251,4252],{},"Validate on large repos: Figma\u002FSlack prove 4-5x on monorepos.",[4071,4254,4255],{},"Toggle Markdown full preview for doc-heavy workflows.",[4071,4257,4258],{},"Explore code.visualstudio.com\u002Fagents for TS7 + model swapping.",[4071,4260,4261],{},"Run Insiders: Catch weekly releases (e.g., network-enabled sandboxes).",{"title":40,"searchDepth":41,"depth":41,"links":4263},[4264,4265,4266,4267,4268],{"id":4033,"depth":41,"text":4034},{"id":4062,"depth":41,"text":4063},{"id":4118,"depth":41,"text":4119},{"id":4164,"depth":41,"text":4165},{"id":4221,"depth":41,"text":4222},[47],{"content_references":4271,"triage":4285},[4272,4277,4279,4283],{"type":4273,"title":4274,"url":4275,"context":4276},"tool","VS Code","https:\u002F\u002Fcode.visualstudio.com","recommended",{"type":4273,"title":4278,"context":4276},"TypeScript Native Preview",{"type":4280,"title":4281,"context":4282},"other","@typescript\u002Fnative-preview","mentioned",{"type":4273,"title":4284,"context":4282},"OpenTelemetry",{"relevance":3695,"novelty":3755,"quality":3695,"actionability":3695,"composite":4006,"reasoning":4286},"Category: Software Engineering. The article discusses the new TypeScript 7 native compiler, which directly addresses developer productivity by significantly speeding up builds and type checking, a key pain point for developers. It provides actionable steps for installation and usage, making it relevant for the target audience.","\u002Fsummaries\u002Ff52d69636c2926d4-typescript-7-native-preview-10x-faster-web-builds-summary","2026-05-09 07:51:27","2026-05-10 15:13:26",{"title":4023,"description":40},{"loc":4287},"74ef88b2e7be475e","Visual Studio Code","video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=H67pLeZh5jc","summaries\u002Ff52d69636c2926d4-typescript-7-native-preview-10x-faster-web-builds-summary",[4298,64,63],"typescript","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FH67pLeZh5jc\u002Fhqdefault.jpg","Install TypeScript 7's Go-based native compiler via VS Code extension for 10x faster type checking and builds—proven on VS Code's own massive codebase and large-scale apps like Figma.","Casual live stream on the VS Code channel where TypeScript PM [Daniel Rosenwasser](https:\u002F\u002Fcode.visualstudio.com) joins host James Montemagno to chat updates, demo insiders features like browser attachment and open telemetry, then build websites using early TypeScript 7 and LSP in [VS Code](https:\u002F\u002Fcode.visualstudio.com).",[64,63],"kEtgA51XScEkCMvk1eC20JW0c0VQHDobeYsZPAGGzAs",{"id":4305,"title":4306,"ai":4307,"body":4312,"categories":4348,"created_at":48,"date_modified":48,"description":40,"extension":49,"faq":48,"featured":50,"kicker_label":48,"meta":4349,"navigation":52,"path":4355,"published_at":4356,"question":48,"scraped_at":4357,"seo":4358,"sitemap":4359,"source_id":4360,"source_name":4361,"source_type":59,"source_url":4362,"stem":4363,"tags":4364,"thumbnail_url":48,"tldr":4366,"tweet":48,"unknown_tags":4367,"__hash__":4368},"summaries\u002Fsummaries\u002F305222dcfdf3f742-fix-node-js-api-slowness-db-n-1-cache-code-tweaks-summary.md","Fix Node.js API Slowness: DB N+1, Cache, Code Tweaks",{"provider":7,"model":8,"input_tokens":4308,"output_tokens":4309,"processing_time_ms":4310,"cost_usd":4311},4678,1319,19511,0.00157245,{"type":14,"value":4313,"toc":4342},[4314,4318,4321,4325,4328,4332,4335,4339],[17,4315,4317],{"id":4316},"profile-first-to-avoid-guessing","Profile First to Avoid Guessing",[22,4319,4320],{},"Use Node.js built-in Performance Hooks API to measure exact timings without code changes—run multiple times to confirm slowness like 'took: 1200 ms' and identify the slowest function. This reveals true bottlenecks instead of assumptions, preventing wasted fixes on non-issues.",[17,4322,4324],{"id":4323},"solve-database-n1-queries-and-indexing","Solve Database N+1 Queries and Indexing",[22,4326,4327],{},"N+1 problem from repeated queries in loops (e.g., one query per item) dominates slowdowns—replace with single relational fetches or SQL joins to load all data at once. Add indexes on queried fields, slashing times from 1s to 100ms. Avoid unindexed scans on large tables, as they force full table reads.",[17,4329,4331],{"id":4330},"cache-repeated-queries-and-parallelize-logic","Cache Repeated Queries and Parallelize Logic",[22,4333,4334],{},"For static-ish data like product lists or dashboards queried per request, store results in Redis—subsequent calls hit cache instantly instead of DB. Parallelize sequential operations (e.g., Promise.all on arrays) over for-loops, but limit concurrency for large arrays (e.g., 1000 items) with p-limit to prevent overload. Watch for blocking sync code, big loops, or heavy JSON parsing that stalls Node's single thread—keep event loop free.",[17,4336,4338],{"id":4337},"trim-payloads-timeout-externals-and-compress","Trim Payloads, Timeout Externals, and Compress",[22,4340,4341],{},"Request only needed fields (e.g., \u002Fusers?fields=id,name) to cut data volume. Set timeouts on external API calls to avoid indefinite hangs, with error handling. Enable gzip\u002FBrotli compression middleware—turns 500kb JSON into 50-100kb over the wire, speeding perceived response without core changes.",{"title":40,"searchDepth":41,"depth":41,"links":4343},[4344,4345,4346,4347],{"id":4316,"depth":41,"text":4317},{"id":4323,"depth":41,"text":4324},{"id":4330,"depth":41,"text":4331},{"id":4337,"depth":41,"text":4338},[47],{"content_references":4350,"triage":4353},[4351],{"type":4273,"title":4352,"context":4276},"Redis",{"relevance":3694,"novelty":3755,"quality":3695,"actionability":3694,"composite":3696,"reasoning":4354},"Category: Software Engineering. The article provides practical solutions to common performance issues in Node.js APIs, addressing specific pain points like N+1 queries and caching strategies. It offers actionable steps such as using Performance Hooks and implementing Redis caching, making it highly relevant for developers looking to optimize their applications.","\u002Fsummaries\u002F305222dcfdf3f742-fix-node-js-api-slowness-db-n-1-cache-code-tweaks-summary","2026-05-07 04:36:46","2026-05-07 11:23:58",{"title":4306,"description":40},{"loc":4355},"305222dcfdf3f742","Data and Beyond","https:\u002F\u002Fmedium.com\u002Fdata-and-beyond\u002Fyour-node-js-api-is-slow-heres-exactly-why-and-how-i-fix-it-eab13e48c270?source=rss----b680b860beb1---4","summaries\u002F305222dcfdf3f742-fix-node-js-api-slowness-db-n-1-cache-code-tweaks-summary",[63,64,4365],"caching","Profile with Performance Hooks to confirm slowness (e.g., 1200ms), then fix N+1 queries via joins\u002Findexes (1s to 100ms), add Redis caching for repeated data, parallelize loops, trim payloads, timeout external APIs, and gzip responses (500kb to 50-100kb).",[63,64,4365],"t8GWUy3QI0Vthroebu_5xFbJepmO0z1orXLok6k-3lo"]