[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-afa660a0fecfced0-run-s3-compatible-minio-locally-to-cut-dev-costs-summary":3,"summaries-facets-categories":96,"summary-related-afa660a0fecfced0-run-s3-compatible-minio-locally-to-cut-dev-costs-summary":3665},{"id":4,"title":5,"ai":6,"body":13,"categories":70,"created_at":72,"date_modified":72,"description":73,"extension":74,"faq":72,"featured":75,"kicker_label":72,"meta":76,"navigation":77,"path":78,"published_at":79,"question":72,"scraped_at":80,"seo":81,"sitemap":82,"source_id":83,"source_name":84,"source_type":85,"source_url":86,"stem":87,"tags":88,"thumbnail_url":72,"tldr":93,"tweet":72,"unknown_tags":94,"__hash__":95},"summaries\u002Fsummaries\u002Fafa660a0fecfced0-run-s3-compatible-minio-locally-to-cut-dev-costs-summary.md","Run S3-Compatible MinIO Locally to Cut Dev Costs",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",4992,1352,13126,0.00120715,{"type":14,"value":15,"toc":63},"minimark",[16,21,25,29,49,56,60],[17,18,20],"h2",{"id":19},"escape-aws-s3-pain-points-with-local-object-storage","Escape AWS S3 Pain Points with Local Object Storage",[22,23,24],"p",{},"AWS S3 drives unpredictable bills from data-heavy uploads\u002Fdownloads, adds latency by distancing data from your app, and locks you into vendor-specific infrastructure. MinIO counters this by providing S3 API-compatible object storage that runs anywhere—Docker, Kubernetes, bare metal, or your laptop—keeping SDKs, commands, and mental models identical to S3. This local setup eliminates egress fees and brings storage close to compute, accelerating development, testing, prototypes, RAG pipelines, media handling, and backups. For data-intensive apps, use MinIO locally in dev, MinIO\u002FS3 in staging, and cloud in production to maintain API consistency across environments.",[17,26,28],{"id":27},"deploy-minio-in-one-docker-container-and-integrate-seamlessly","Deploy MinIO in One Docker Container and Integrate Seamlessly",[22,30,31,32,36,37,40,41,44,45,48],{},"Pull and run MinIO's Docker image on a Mac (e.g., M4 Pro) for instant S3-like storage. Use the MinIO Client (mc) to alias your local endpoint: ",[33,34,35],"code",{},"mc alias set local http:\u002F\u002Flocalhost:9000 \u003Caccess_key> \u003Csecret_key>",". Create buckets with ",[33,38,39],{},"mc mb local\u002Fdemo-bucket",", then upload files like images, text, or JSON via ",[33,42,43],{},"mc cp file local\u002Fdemo-bucket\u002F",". List contents with ",[33,46,47],{},"mc ls local\u002Fdemo-bucket"," for S3-style structure. Access the web UI at localhost:9000 to preview buckets, expand folders, and view files.",[22,50,51,52,55],{},"Integrate with Python using boto3—no code changes from AWS S3. Point the endpoint to ",[33,53,54],{},"http:\u002F\u002Flocalhost:9000",", supply MinIO credentials, and run uploads\u002Fdownloads as usual. This mirrors production S3 workflows locally, enabling fast iteration on data-heavy apps without cloud dependency.",[17,57,59],{"id":58},"weigh-minios-strengths-against-production-limitations","Weigh MinIO's Strengths Against Production Limitations",[22,61,62],{},"MinIO excels in simplicity (single binary\u002FDocker), high speed for data movement, and cost savings by avoiding cloud premiums—ideal for local dev, demos, prototypes, and experiments under AGPL v3 license. The original GitHub repo is archived in maintenance mode, with focus shifting to MinIO AIStor (free single-node tier, paid clustering\u002FHA). Compared to S3 (managed scale but costly\u002Flocked-in) or Ceph (scalable but complex\u002Foverhead-heavy), MinIO suits non-production where you control data locality. Skip for full production needing managed HA; opt for AIStor paid tiers, Ceph, or Garage instead. Start locally today for immediate workflow gains in AI workloads.",{"title":64,"searchDepth":65,"depth":65,"links":66},"",2,[67,68,69],{"id":19,"depth":65,"text":20},{"id":27,"depth":65,"text":28},{"id":58,"depth":65,"text":59},[71],"DevOps & Cloud",null,"If your AWS S3 bill is getting out of control or your AI pipeline is drowning in data, this walks you through a powerful alternative: running S3-compatible object storage locally with MinIO. \n\nWe check out MinIO and run it in Docker, to create buckets, upload files, and interact with it using the same boto3 Python code you’d use with AWS S3 — no changes required. I show what MinIO is, why it’s become popular for local development, AI workloads, and RAG pipelines.\n\n🔗 Relevant Links\nMinIO Repo - https:\u002F\u002Fgithub.com\u002Fminio\u002Fminio\nMinIO - https:\u002F\u002Fwww.min.io\u002F\n\n❤️ More about us\nRadically better observability stack: https:\u002F\u002Fbetterstack.com\u002F\nWritten tutorials: https:\u002F\u002Fbetterstack.com\u002Fcommunity\u002F\nExample projects: https:\u002F\u002Fgithub.com\u002FBetterStackHQ\n\n📱 Socials\nTwitter: https:\u002F\u002Ftwitter.com\u002Fbetterstackhq\nInstagram: https:\u002F\u002Fwww.instagram.com\u002Fbetterstackhq\u002F\nTikTok: https:\u002F\u002Fwww.tiktok.com\u002F@betterstack\nLinkedIn: https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fbetterstack\n\n📌 Chapters:\n00:00 Run S3 on Your Laptop? (MinIO Intro + Cost Problem)\n00:35 Why S3 Costs, Latency & Lock-In Are a Problem for Devs\n01:30 MinIO Live Demo (Docker Setup + S3-Compatible Storage)\n01:50 Create Buckets & Upload Files (Images, JSON, Text)\n02:10 Using MinIO with Python (boto3 S3 Code Example)\n02:22 MinIO Web UI (Local Object Storage Preview)\n02:33 What Is MinIO? (S3-Compatible Object Storage Explained)\n03:00 Why Devs Use MinIO for AI, RAG Pipelines & Local Dev\n03:33 MinIO vs AWS S3 (Costs, Performance, Lock-In)\n03:50 MinIO (Performance, Simplicity, Cost Savings)\n04:15 MinIO 2026 Reality (AIStor, Free Tier, Enterprise Shift)\n04:48 Final Thoughts","md",false,{},true,"\u002Fsummaries\u002Fafa660a0fecfced0-run-s3-compatible-minio-locally-to-cut-dev-costs-summary","2026-04-11 18:00:16","2026-04-11 20:56:17",{"title":5,"description":73},{"loc":78},"afa660a0fecfced0","Better Stack","video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=GHeLgENOBb4","summaries\u002Fafa660a0fecfced0-run-s3-compatible-minio-locally-to-cut-dev-costs-summary",[89,90,91,92],"python","open-source","devops-cloud","ai-automation","Deploy MinIO via Docker on your laptop for S3-compatible object storage using unchanged boto3 Python code, solving AWS S3 cost, latency, and lock-in issues for local dev and AI\u002FRAG pipelines.",[91,92],"TNLf207hm_B82r5vH_84EcmdoPEuc2nP7RpGrxNxjKs",[97,100,103,106,109,112,114,116,118,120,122,124,127,129,131,133,135,137,139,141,143,145,148,151,153,155,158,160,162,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,313,315,317,319,321,323,325,327,329,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,377,379,381,383,385,387,389,391,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,3653,3655,3657,3659,3661,3663],{"categories":98},[99],"Developer Productivity",{"categories":101},[102],"Business & SaaS",{"categories":104},[105],"AI & LLMs",{"categories":107},[108],"AI Automation",{"categories":110},[111],"Product Strategy",{"categories":113},[105],{"categories":115},[99],{"categories":117},[102],{"categories":119},[],{"categories":121},[105],{"categories":123},[],{"categories":125},[126],"AI News & Trends",{"categories":128},[108],{"categories":130},[126],{"categories":132},[108],{"categories":134},[108],{"categories":136},[105],{"categories":138},[105],{"categories":140},[126],{"categories":142},[105],{"categories":144},[],{"categories":146},[147],"Design & Frontend",{"categories":149},[150],"Data Science & Visualization",{"categories":152},[126],{"categories":154},[],{"categories":156},[157],"Software Engineering",{"categories":159},[105],{"categories":161},[108],{"categories":163},[164],"Marketing & Growth",{"categories":166},[105],{"categories":168},[108],{"categories":170},[],{"categories":172},[],{"categories":174},[147],{"categories":176},[108],{"categories":178},[99],{"categories":180},[147],{"categories":182},[105],{"categories":184},[108],{"categories":186},[126],{"categories":188},[],{"categories":190},[],{"categories":192},[108],{"categories":194},[157],{"categories":196},[],{"categories":198},[102],{"categories":200},[],{"categories":202},[],{"categories":204},[108],{"categories":206},[108],{"categories":208},[105],{"categories":210},[],{"categories":212},[157],{"categories":214},[],{"categories":216},[],{"categories":218},[],{"categories":220},[105],{"categories":222},[164],{"categories":224},[147],{"categories":226},[147],{"categories":228},[105],{"categories":230},[108],{"categories":232},[105],{"categories":234},[105],{"categories":236},[108],{"categories":238},[108],{"categories":240},[150],{"categories":242},[126],{"categories":244},[108],{"categories":246},[164],{"categories":248},[108],{"categories":250},[111],{"categories":252},[],{"categories":254},[108],{"categories":256},[],{"categories":258},[108],{"categories":260},[157],{"categories":262},[147],{"categories":264},[105],{"categories":266},[],{"categories":268},[],{"categories":270},[108],{"categories":272},[],{"categories":274},[105],{"categories":276},[],{"categories":278},[99],{"categories":280},[157],{"categories":282},[102],{"categories":284},[126],{"categories":286},[105],{"categories":288},[],{"categories":290},[105],{"categories":292},[],{"categories":294},[157],{"categories":296},[150],{"categories":298},[],{"categories":300},[105],{"categories":302},[147],{"categories":304},[],{"categories":306},[147],{"categories":308},[108],{"categories":310},[],{"categories":312},[108],{"categories":314},[126],{"categories":316},[105],{"categories":318},[],{"categories":320},[108],{"categories":322},[105],{"categories":324},[111],{"categories":326},[],{"categories":328},[105],{"categories":330},[108],{"categories":332},[108],{"categories":334},[],{"categories":336},[150],{"categories":338},[105],{"categories":340},[],{"categories":342},[99],{"categories":344},[102],{"categories":346},[105],{"categories":348},[108],{"categories":350},[157],{"categories":352},[105],{"categories":354},[],{"categories":356},[],{"categories":358},[105],{"categories":360},[],{"categories":362},[147],{"categories":364},[],{"categories":366},[105],{"categories":368},[],{"categories":370},[108],{"categories":372},[105],{"categories":374},[147],{"categories":376},[],{"categories":378},[105],{"categories":380},[105],{"categories":382},[102],{"categories":384},[108],{"categories":386},[105],{"categories":388},[147],{"categories":390},[108],{"categories":392},[],{"categories":394},[],{"categories":396},[126],{"categories":398},[],{"categories":400},[105],{"categories":402},[102,164],{"categories":404},[],{"categories":406},[105],{"categories":408},[],{"categories":410},[],{"categories":412},[105],{"categories":414},[],{"categories":416},[105],{"categories":418},[71],{"categories":420},[],{"categories":422},[126],{"categories":424},[147],{"categories":426},[],{"categories":428},[126],{"categories":430},[126],{"categories":432},[105],{"categories":434},[164],{"categories":436},[],{"categories":438},[102],{"categories":440},[],{"categories":442},[105,71],{"categories":444},[105],{"categories":446},[105],{"categories":448},[108],{"categories":450},[105,157],{"categories":452},[150],{"categories":454},[105],{"categories":456},[164],{"categories":458},[108],{"categories":460},[108],{"categories":462},[],{"categories":464},[108],{"categories":466},[105,102],{"categories":468},[],{"categories":470},[147],{"categories":472},[147],{"categories":474},[],{"categories":476},[],{"categories":478},[126],{"categories":480},[],{"categories":482},[99],{"categories":484},[157],{"categories":486},[105],{"categories":488},[147],{"categories":490},[108],{"categories":492},[157],{"categories":494},[126],{"categories":496},[147],{"categories":498},[],{"categories":500},[105],{"categories":502},[105],{"categories":504},[105],{"categories":506},[126],{"categories":508},[99],{"categories":510},[105],{"categories":512},[108],{"categories":514},[71],{"categories":516},[147],{"categories":518},[108],{"categories":520},[],{"categories":522},[],{"categories":524},[147],{"categories":526},[126],{"categories":528},[150],{"categories":530},[],{"categories":532},[105],{"categories":534},[105],{"categories":536},[102],{"categories":538},[105],{"categories":540},[105],{"categories":542},[126],{"categories":544},[],{"categories":546},[108],{"categories":548},[157],{"categories":550},[],{"categories":552},[105],{"categories":554},[105],{"categories":556},[108],{"categories":558},[],{"categories":560},[],{"categories":562},[105],{"categories":564},[],{"categories":566},[102],{"categories":568},[108],{"categories":570},[],{"categories":572},[99],{"categories":574},[105],{"categories":576},[102],{"categories":578},[126],{"categories":580},[],{"categories":582},[],{"categories":584},[],{"categories":586},[126],{"categories":588},[126],{"categories":590},[],{"categories":592},[],{"categories":594},[102],{"categories":596},[],{"categories":598},[],{"categories":600},[99],{"categories":602},[],{"categories":604},[164],{"categories":606},[108],{"categories":608},[102],{"categories":610},[108],{"categories":612},[],{"categories":614},[111],{"categories":616},[147],{"categories":618},[157],{"categories":620},[105],{"categories":622},[108],{"categories":624},[102],{"categories":626},[105],{"categories":628},[],{"categories":630},[],{"categories":632},[157],{"categories":634},[150],{"categories":636},[111],{"categories":638},[108],{"categories":640},[105],{"categories":642},[],{"categories":644},[71],{"categories":646},[],{"categories":648},[108],{"categories":650},[],{"categories":652},[],{"categories":654},[105],{"categories":656},[147],{"categories":658},[164],{"categories":660},[108],{"categories":662},[],{"categories":664},[99],{"categories":666},[],{"categories":668},[126],{"categories":670},[105,71],{"categories":672},[126],{"categories":674},[105],{"categories":676},[102],{"categories":678},[105],{"categories":680},[],{"categories":682},[102],{"categories":684},[],{"categories":686},[157],{"categories":688},[147],{"categories":690},[126],{"categories":692},[150],{"categories":694},[99],{"categories":696},[105],{"categories":698},[157],{"categories":700},[],{"categories":702},[],{"categories":704},[111],{"categories":706},[],{"categories":708},[105],{"categories":710},[],{"categories":712},[147],{"categories":714},[147],{"categories":716},[147],{"categories":718},[],{"categories":720},[],{"categories":722},[126],{"categories":724},[108],{"categories":726},[105],{"categories":728},[105],{"categories":730},[105],{"categories":732},[102],{"categories":734},[105],{"categories":736},[],{"categories":738},[157],{"categories":740},[157],{"categories":742},[102],{"categories":744},[],{"categories":746},[105],{"categories":748},[105],{"categories":750},[102],{"categories":752},[126],{"categories":754},[164],{"categories":756},[108],{"categories":758},[],{"categories":760},[147],{"categories":762},[],{"categories":764},[105],{"categories":766},[],{"categories":768},[102],{"categories":770},[108],{"categories":772},[],{"categories":774},[71],{"categories":776},[150],{"categories":778},[157],{"categories":780},[164],{"categories":782},[157],{"categories":784},[108],{"categories":786},[],{"categories":788},[],{"categories":790},[108],{"categories":792},[99],{"categories":794},[108],{"categories":796},[111],{"categories":798},[102],{"categories":800},[],{"categories":802},[105],{"categories":804},[111],{"categories":806},[105],{"categories":808},[105],{"categories":810},[164],{"categories":812},[147],{"categories":814},[108],{"categories":816},[],{"categories":818},[],{"categories":820},[71],{"categories":822},[157],{"categories":824},[],{"categories":826},[108],{"categories":828},[105],{"categories":830},[147,105],{"categories":832},[99],{"categories":834},[],{"categories":836},[105],{"categories":838},[99],{"categories":840},[147],{"categories":842},[108],{"categories":844},[157],{"categories":846},[],{"categories":848},[105],{"categories":850},[],{"categories":852},[99],{"categories":854},[],{"categories":856},[108],{"categories":858},[111],{"categories":860},[105],{"categories":862},[105],{"categories":864},[147],{"categories":866},[108],{"categories":868},[71],{"categories":870},[147],{"categories":872},[108],{"categories":874},[105],{"categories":876},[105],{"categories":878},[105],{"categories":880},[126],{"categories":882},[],{"categories":884},[111],{"categories":886},[108],{"categories":888},[147],{"categories":890},[108],{"categories":892},[157],{"categories":894},[147],{"categories":896},[108],{"categories":898},[126],{"categories":900},[],{"categories":902},[105],{"categories":904},[147],{"categories":906},[105],{"categories":908},[99],{"categories":910},[126],{"categories":912},[105],{"categories":914},[164],{"categories":916},[105],{"categories":918},[105],{"categories":920},[108],{"categories":922},[108],{"categories":924},[105],{"categories":926},[108],{"categories":928},[147],{"categories":930},[105],{"categories":932},[],{"categories":934},[],{"categories":936},[157],{"categories":938},[],{"categories":940},[99],{"categories":942},[71],{"categories":944},[],{"categories":946},[99],{"categories":948},[102],{"categories":950},[164],{"categories":952},[],{"categories":954},[102],{"categories":956},[],{"categories":958},[],{"categories":960},[],{"categories":962},[],{"categories":964},[],{"categories":966},[105],{"categories":968},[108],{"categories":970},[71],{"categories":972},[99],{"categories":974},[105],{"categories":976},[157],{"categories":978},[111],{"categories":980},[105],{"categories":982},[164],{"categories":984},[105],{"categories":986},[105],{"categories":988},[105],{"categories":990},[105,99],{"categories":992},[157],{"categories":994},[157],{"categories":996},[147],{"categories":998},[105],{"categories":1000},[],{"categories":1002},[],{"categories":1004},[],{"categories":1006},[157],{"categories":1008},[150],{"categories":1010},[126],{"categories":1012},[147],{"categories":1014},[],{"categories":1016},[105],{"categories":1018},[105],{"categories":1020},[],{"categories":1022},[],{"categories":1024},[108],{"categories":1026},[105],{"categories":1028},[102],{"categories":1030},[],{"categories":1032},[99],{"categories":1034},[105],{"categories":1036},[99],{"categories":1038},[105],{"categories":1040},[157],{"categories":1042},[164],{"categories":1044},[105,147],{"categories":1046},[126],{"categories":1048},[147],{"categories":1050},[],{"categories":1052},[71],{"categories":1054},[147],{"categories":1056},[108],{"categories":1058},[],{"categories":1060},[],{"categories":1062},[],{"categories":1064},[],{"categories":1066},[157],{"categories":1068},[108],{"categories":1070},[108],{"categories":1072},[105],{"categories":1074},[105],{"categories":1076},[],{"categories":1078},[147],{"categories":1080},[],{"categories":1082},[],{"categories":1084},[108],{"categories":1086},[],{"categories":1088},[],{"categories":1090},[164],{"categories":1092},[164],{"categories":1094},[108],{"categories":1096},[],{"categories":1098},[105],{"categories":1100},[105],{"categories":1102},[157],{"categories":1104},[147],{"categories":1106},[147],{"categories":1108},[108],{"categories":1110},[99],{"categories":1112},[105],{"categories":1114},[147],{"categories":1116},[147],{"categories":1118},[108],{"categories":1120},[108],{"categories":1122},[105],{"categories":1124},[],{"categories":1126},[],{"categories":1128},[105],{"categories":1130},[108],{"categories":1132},[126],{"categories":1134},[157],{"categories":1136},[99],{"categories":1138},[105],{"categories":1140},[],{"categories":1142},[108],{"categories":1144},[108],{"categories":1146},[],{"categories":1148},[99],{"categories":1150},[105],{"categories":1152},[99],{"categories":1154},[99],{"categories":1156},[],{"categories":1158},[],{"categories":1160},[108],{"categories":1162},[108],{"categories":1164},[105],{"categories":1166},[105],{"categories":1168},[126],{"categories":1170},[150],{"categories":1172},[111],{"categories":1174},[126],{"categories":1176},[147],{"categories":1178},[],{"categories":1180},[126],{"categories":1182},[],{"categories":1184},[],{"categories":1186},[],{"categories":1188},[],{"categories":1190},[157],{"categories":1192},[150],{"categories":1194},[],{"categories":1196},[105],{"categories":1198},[105],{"categories":1200},[150],{"categories":1202},[157],{"categories":1204},[],{"categories":1206},[],{"categories":1208},[108],{"categories":1210},[126],{"categories":1212},[126],{"categories":1214},[108],{"categories":1216},[99],{"categories":1218},[105,71],{"categories":1220},[],{"categories":1222},[147],{"categories":1224},[99],{"categories":1226},[108],{"categories":1228},[147],{"categories":1230},[],{"categories":1232},[108],{"categories":1234},[108],{"categories":1236},[105],{"categories":1238},[164],{"categories":1240},[157],{"categories":1242},[147],{"categories":1244},[],{"categories":1246},[108],{"categories":1248},[105],{"categories":1250},[108],{"categories":1252},[108],{"categories":1254},[108],{"categories":1256},[164],{"categories":1258},[108],{"categories":1260},[105],{"categories":1262},[],{"categories":1264},[164],{"categories":1266},[126],{"categories":1268},[108],{"categories":1270},[],{"categories":1272},[],{"categories":1274},[105],{"categories":1276},[108],{"categories":1278},[126],{"categories":1280},[108],{"categories":1282},[],{"categories":1284},[],{"categories":1286},[],{"categories":1288},[108],{"categories":1290},[],{"categories":1292},[],{"categories":1294},[150],{"categories":1296},[105],{"categories":1298},[150],{"categories":1300},[126],{"categories":1302},[105],{"categories":1304},[105],{"categories":1306},[108],{"categories":1308},[105],{"categories":1310},[],{"categories":1312},[],{"categories":1314},[71],{"categories":1316},[],{"categories":1318},[],{"categories":1320},[99],{"categories":1322},[],{"categories":1324},[],{"categories":1326},[],{"categories":1328},[],{"categories":1330},[157],{"categories":1332},[126],{"categories":1334},[164],{"categories":1336},[102],{"categories":1338},[105],{"categories":1340},[105],{"categories":1342},[102],{"categories":1344},[],{"categories":1346},[147],{"categories":1348},[108],{"categories":1350},[102],{"categories":1352},[105],{"categories":1354},[105],{"categories":1356},[99],{"categories":1358},[],{"categories":1360},[99],{"categories":1362},[105],{"categories":1364},[164],{"categories":1366},[108],{"categories":1368},[126],{"categories":1370},[102],{"categories":1372},[105],{"categories":1374},[108],{"categories":1376},[],{"categories":1378},[105],{"categories":1380},[99],{"categories":1382},[105],{"categories":1384},[],{"categories":1386},[126],{"categories":1388},[105],{"categories":1390},[],{"categories":1392},[102],{"categories":1394},[105],{"categories":1396},[],{"categories":1398},[],{"categories":1400},[],{"categories":1402},[105],{"categories":1404},[],{"categories":1406},[71],{"categories":1408},[105],{"categories":1410},[],{"categories":1412},[105],{"categories":1414},[105],{"categories":1416},[105],{"categories":1418},[105,71],{"categories":1420},[105],{"categories":1422},[105],{"categories":1424},[147],{"categories":1426},[108],{"categories":1428},[],{"categories":1430},[108],{"categories":1432},[105],{"categories":1434},[105],{"categories":1436},[105],{"categories":1438},[99],{"categories":1440},[99],{"categories":1442},[157],{"categories":1444},[147],{"categories":1446},[108],{"categories":1448},[],{"categories":1450},[105],{"categories":1452},[126],{"categories":1454},[105],{"categories":1456},[102],{"categories":1458},[],{"categories":1460},[71],{"categories":1462},[147],{"categories":1464},[147],{"categories":1466},[108],{"categories":1468},[126],{"categories":1470},[108],{"categories":1472},[105],{"categories":1474},[],{"categories":1476},[105],{"categories":1478},[],{"categories":1480},[],{"categories":1482},[105],{"categories":1484},[105],{"categories":1486},[105],{"categories":1488},[108],{"categories":1490},[105],{"categories":1492},[],{"categories":1494},[150],{"categories":1496},[108],{"categories":1498},[],{"categories":1500},[105],{"categories":1502},[126],{"categories":1504},[],{"categories":1506},[147],{"categories":1508},[71],{"categories":1510},[126],{"categories":1512},[157],{"categories":1514},[157],{"categories":1516},[126],{"categories":1518},[126],{"categories":1520},[71],{"categories":1522},[],{"categories":1524},[126],{"categories":1526},[105],{"categories":1528},[99],{"categories":1530},[126],{"categories":1532},[],{"categories":1534},[150],{"categories":1536},[126],{"categories":1538},[157],{"categories":1540},[126],{"categories":1542},[71],{"categories":1544},[105],{"categories":1546},[105],{"categories":1548},[],{"categories":1550},[102],{"categories":1552},[],{"categories":1554},[],{"categories":1556},[105],{"categories":1558},[105],{"categories":1560},[105],{"categories":1562},[105],{"categories":1564},[],{"categories":1566},[150],{"categories":1568},[99],{"categories":1570},[],{"categories":1572},[105],{"categories":1574},[105],{"categories":1576},[71],{"categories":1578},[71],{"categories":1580},[],{"categories":1582},[108],{"categories":1584},[126],{"categories":1586},[126],{"categories":1588},[105],{"categories":1590},[108],{"categories":1592},[],{"categories":1594},[147],{"categories":1596},[105],{"categories":1598},[105],{"categories":1600},[],{"categories":1602},[],{"categories":1604},[71],{"categories":1606},[105],{"categories":1608},[157],{"categories":1610},[102],{"categories":1612},[105],{"categories":1614},[],{"categories":1616},[108],{"categories":1618},[99],{"categories":1620},[99],{"categories":1622},[],{"categories":1624},[105],{"categories":1626},[147],{"categories":1628},[108],{"categories":1630},[],{"categories":1632},[105],{"categories":1634},[105],{"categories":1636},[108],{"categories":1638},[],{"categories":1640},[108],{"categories":1642},[157],{"categories":1644},[],{"categories":1646},[105],{"categories":1648},[],{"categories":1650},[105],{"categories":1652},[],{"categories":1654},[105],{"categories":1656},[105],{"categories":1658},[],{"categories":1660},[105],{"categories":1662},[126],{"categories":1664},[105],{"categories":1666},[105],{"categories":1668},[99],{"categories":1670},[105],{"categories":1672},[126],{"categories":1674},[108],{"categories":1676},[],{"categories":1678},[105],{"categories":1680},[164],{"categories":1682},[],{"categories":1684},[],{"categories":1686},[],{"categories":1688},[99],{"categories":1690},[126],{"categories":1692},[108],{"categories":1694},[105],{"categories":1696},[147],{"categories":1698},[108],{"categories":1700},[],{"categories":1702},[108],{"categories":1704},[],{"categories":1706},[105],{"categories":1708},[108],{"categories":1710},[105],{"categories":1712},[],{"categories":1714},[105],{"categories":1716},[105],{"categories":1718},[126],{"categories":1720},[147],{"categories":1722},[108],{"categories":1724},[147],{"categories":1726},[102],{"categories":1728},[],{"categories":1730},[],{"categories":1732},[105],{"categories":1734},[99],{"categories":1736},[126],{"categories":1738},[],{"categories":1740},[],{"categories":1742},[157],{"categories":1744},[147],{"categories":1746},[],{"categories":1748},[105],{"categories":1750},[],{"categories":1752},[164],{"categories":1754},[105],{"categories":1756},[71],{"categories":1758},[157],{"categories":1760},[],{"categories":1762},[108],{"categories":1764},[105],{"categories":1766},[108],{"categories":1768},[108],{"categories":1770},[105],{"categories":1772},[],{"categories":1774},[99],{"categories":1776},[105],{"categories":1778},[102],{"categories":1780},[157],{"categories":1782},[147],{"categories":1784},[],{"categories":1786},[],{"categories":1788},[],{"categories":1790},[108],{"categories":1792},[147],{"categories":1794},[126],{"categories":1796},[105],{"categories":1798},[126],{"categories":1800},[147],{"categories":1802},[],{"categories":1804},[147],{"categories":1806},[126],{"categories":1808},[102],{"categories":1810},[105],{"categories":1812},[126],{"categories":1814},[164],{"categories":1816},[],{"categories":1818},[],{"categories":1820},[150],{"categories":1822},[105,157],{"categories":1824},[126],{"categories":1826},[105],{"categories":1828},[108],{"categories":1830},[108],{"categories":1832},[105],{"categories":1834},[],{"categories":1836},[157],{"categories":1838},[105],{"categories":1840},[150],{"categories":1842},[108],{"categories":1844},[164],{"categories":1846},[71],{"categories":1848},[],{"categories":1850},[99],{"categories":1852},[108],{"categories":1854},[108],{"categories":1856},[157],{"categories":1858},[105],{"categories":1860},[105],{"categories":1862},[],{"categories":1864},[],{"categories":1866},[],{"categories":1868},[71],{"categories":1870},[126],{"categories":1872},[105],{"categories":1874},[105],{"categories":1876},[105],{"categories":1878},[],{"categories":1880},[150],{"categories":1882},[102],{"categories":1884},[],{"categories":1886},[108],{"categories":1888},[71],{"categories":1890},[],{"categories":1892},[147],{"categories":1894},[147],{"categories":1896},[],{"categories":1898},[157],{"categories":1900},[147],{"categories":1902},[105],{"categories":1904},[],{"categories":1906},[126],{"categories":1908},[105],{"categories":1910},[147],{"categories":1912},[108],{"categories":1914},[126],{"categories":1916},[],{"categories":1918},[108],{"categories":1920},[147],{"categories":1922},[105],{"categories":1924},[],{"categories":1926},[105],{"categories":1928},[105],{"categories":1930},[71],{"categories":1932},[126],{"categories":1934},[150],{"categories":1936},[150],{"categories":1938},[],{"categories":1940},[],{"categories":1942},[],{"categories":1944},[108],{"categories":1946},[157],{"categories":1948},[157],{"categories":1950},[],{"categories":1952},[],{"categories":1954},[105],{"categories":1956},[],{"categories":1958},[108],{"categories":1960},[105],{"categories":1962},[],{"categories":1964},[105],{"categories":1966},[102],{"categories":1968},[105],{"categories":1970},[164],{"categories":1972},[108],{"categories":1974},[105],{"categories":1976},[157],{"categories":1978},[126],{"categories":1980},[108],{"categories":1982},[],{"categories":1984},[126],{"categories":1986},[108],{"categories":1988},[108],{"categories":1990},[],{"categories":1992},[102],{"categories":1994},[108],{"categories":1996},[],{"categories":1998},[105],{"categories":2000},[99],{"categories":2002},[126],{"categories":2004},[71],{"categories":2006},[108],{"categories":2008},[108],{"categories":2010},[99],{"categories":2012},[105],{"categories":2014},[],{"categories":2016},[],{"categories":2018},[147],{"categories":2020},[105,102],{"categories":2022},[],{"categories":2024},[99],{"categories":2026},[150],{"categories":2028},[105],{"categories":2030},[157],{"categories":2032},[105],{"categories":2034},[108],{"categories":2036},[105],{"categories":2038},[105],{"categories":2040},[126],{"categories":2042},[108],{"categories":2044},[],{"categories":2046},[],{"categories":2048},[108],{"categories":2050},[105],{"categories":2052},[71],{"categories":2054},[],{"categories":2056},[105],{"categories":2058},[108],{"categories":2060},[],{"categories":2062},[105],{"categories":2064},[164],{"categories":2066},[150],{"categories":2068},[108],{"categories":2070},[105],{"categories":2072},[71],{"categories":2074},[],{"categories":2076},[105],{"categories":2078},[164],{"categories":2080},[147],{"categories":2082},[105],{"categories":2084},[],{"categories":2086},[164],{"categories":2088},[126],{"categories":2090},[105],{"categories":2092},[105],{"categories":2094},[99],{"categories":2096},[],{"categories":2098},[],{"categories":2100},[147],{"categories":2102},[105],{"categories":2104},[150],{"categories":2106},[164],{"categories":2108},[164],{"categories":2110},[126],{"categories":2112},[],{"categories":2114},[],{"categories":2116},[105],{"categories":2118},[],{"categories":2120},[105,157],{"categories":2122},[126],{"categories":2124},[108],{"categories":2126},[157],{"categories":2128},[105],{"categories":2130},[99],{"categories":2132},[],{"categories":2134},[],{"categories":2136},[99],{"categories":2138},[164],{"categories":2140},[105],{"categories":2142},[],{"categories":2144},[147,105],{"categories":2146},[71],{"categories":2148},[99],{"categories":2150},[],{"categories":2152},[102],{"categories":2154},[102],{"categories":2156},[105],{"categories":2158},[157],{"categories":2160},[108],{"categories":2162},[126],{"categories":2164},[164],{"categories":2166},[147],{"categories":2168},[105],{"categories":2170},[105],{"categories":2172},[105],{"categories":2174},[99],{"categories":2176},[105],{"categories":2178},[108],{"categories":2180},[126],{"categories":2182},[],{"categories":2184},[],{"categories":2186},[150],{"categories":2188},[157],{"categories":2190},[105],{"categories":2192},[147],{"categories":2194},[150],{"categories":2196},[105],{"categories":2198},[105],{"categories":2200},[108],{"categories":2202},[108],{"categories":2204},[105,102],{"categories":2206},[],{"categories":2208},[147],{"categories":2210},[],{"categories":2212},[105],{"categories":2214},[126],{"categories":2216},[99],{"categories":2218},[99],{"categories":2220},[108],{"categories":2222},[105],{"categories":2224},[102],{"categories":2226},[157],{"categories":2228},[164],{"categories":2230},[],{"categories":2232},[126],{"categories":2234},[105],{"categories":2236},[105],{"categories":2238},[126],{"categories":2240},[157],{"categories":2242},[105],{"categories":2244},[108],{"categories":2246},[126],{"categories":2248},[105],{"categories":2250},[147],{"categories":2252},[105],{"categories":2254},[105],{"categories":2256},[71],{"categories":2258},[111],{"categories":2260},[108],{"categories":2262},[105],{"categories":2264},[126],{"categories":2266},[108],{"categories":2268},[164],{"categories":2270},[105],{"categories":2272},[],{"categories":2274},[105],{"categories":2276},[],{"categories":2278},[],{"categories":2280},[],{"categories":2282},[102],{"categories":2284},[105],{"categories":2286},[108],{"categories":2288},[126],{"categories":2290},[126],{"categories":2292},[126],{"categories":2294},[126],{"categories":2296},[],{"categories":2298},[99],{"categories":2300},[108],{"categories":2302},[126],{"categories":2304},[99],{"categories":2306},[108],{"categories":2308},[105],{"categories":2310},[105,108],{"categories":2312},[108],{"categories":2314},[71],{"categories":2316},[126],{"categories":2318},[126],{"categories":2320},[108],{"categories":2322},[105],{"categories":2324},[],{"categories":2326},[126],{"categories":2328},[164],{"categories":2330},[99],{"categories":2332},[105],{"categories":2334},[105],{"categories":2336},[],{"categories":2338},[157],{"categories":2340},[],{"categories":2342},[99],{"categories":2344},[108],{"categories":2346},[126],{"categories":2348},[105],{"categories":2350},[126],{"categories":2352},[99],{"categories":2354},[126],{"categories":2356},[126],{"categories":2358},[],{"categories":2360},[102],{"categories":2362},[108],{"categories":2364},[126],{"categories":2366},[126],{"categories":2368},[126],{"categories":2370},[126],{"categories":2372},[126],{"categories":2374},[126],{"categories":2376},[126],{"categories":2378},[126],{"categories":2380},[126],{"categories":2382},[126],{"categories":2384},[150],{"categories":2386},[99],{"categories":2388},[105],{"categories":2390},[105],{"categories":2392},[],{"categories":2394},[105,99],{"categories":2396},[],{"categories":2398},[108],{"categories":2400},[126],{"categories":2402},[108],{"categories":2404},[105],{"categories":2406},[105],{"categories":2408},[105],{"categories":2410},[105],{"categories":2412},[105],{"categories":2414},[108],{"categories":2416},[102],{"categories":2418},[147],{"categories":2420},[126],{"categories":2422},[105],{"categories":2424},[],{"categories":2426},[],{"categories":2428},[108],{"categories":2430},[147],{"categories":2432},[105],{"categories":2434},[],{"categories":2436},[],{"categories":2438},[164],{"categories":2440},[105],{"categories":2442},[],{"categories":2444},[],{"categories":2446},[99],{"categories":2448},[102],{"categories":2450},[105],{"categories":2452},[102],{"categories":2454},[147],{"categories":2456},[],{"categories":2458},[126],{"categories":2460},[],{"categories":2462},[147],{"categories":2464},[105],{"categories":2466},[164],{"categories":2468},[],{"categories":2470},[164],{"categories":2472},[],{"categories":2474},[],{"categories":2476},[108],{"categories":2478},[],{"categories":2480},[102],{"categories":2482},[99],{"categories":2484},[147],{"categories":2486},[157],{"categories":2488},[],{"categories":2490},[],{"categories":2492},[105],{"categories":2494},[99],{"categories":2496},[164],{"categories":2498},[],{"categories":2500},[108],{"categories":2502},[108],{"categories":2504},[126],{"categories":2506},[105],{"categories":2508},[108],{"categories":2510},[105],{"categories":2512},[108],{"categories":2514},[105],{"categories":2516},[111],{"categories":2518},[126],{"categories":2520},[],{"categories":2522},[164],{"categories":2524},[157],{"categories":2526},[108],{"categories":2528},[],{"categories":2530},[105],{"categories":2532},[108],{"categories":2534},[102],{"categories":2536},[99],{"categories":2538},[105],{"categories":2540},[147],{"categories":2542},[157],{"categories":2544},[157],{"categories":2546},[105],{"categories":2548},[150],{"categories":2550},[105],{"categories":2552},[108],{"categories":2554},[102],{"categories":2556},[108],{"categories":2558},[105],{"categories":2560},[105],{"categories":2562},[108],{"categories":2564},[126],{"categories":2566},[],{"categories":2568},[99],{"categories":2570},[105],{"categories":2572},[108],{"categories":2574},[105],{"categories":2576},[105],{"categories":2578},[],{"categories":2580},[147],{"categories":2582},[102],{"categories":2584},[126],{"categories":2586},[105],{"categories":2588},[105],{"categories":2590},[147],{"categories":2592},[164],{"categories":2594},[150],{"categories":2596},[105],{"categories":2598},[126],{"categories":2600},[105],{"categories":2602},[108],{"categories":2604},[71],{"categories":2606},[105],{"categories":2608},[108],{"categories":2610},[150],{"categories":2612},[],{"categories":2614},[108],{"categories":2616},[157],{"categories":2618},[147],{"categories":2620},[105],{"categories":2622},[99],{"categories":2624},[102],{"categories":2626},[157],{"categories":2628},[],{"categories":2630},[108],{"categories":2632},[105],{"categories":2634},[],{"categories":2636},[126],{"categories":2638},[],{"categories":2640},[126],{"categories":2642},[105],{"categories":2644},[108],{"categories":2646},[108],{"categories":2648},[108],{"categories":2650},[],{"categories":2652},[],{"categories":2654},[105],{"categories":2656},[105],{"categories":2658},[],{"categories":2660},[147],{"categories":2662},[108],{"categories":2664},[164],{"categories":2666},[99],{"categories":2668},[],{"categories":2670},[],{"categories":2672},[126],{"categories":2674},[157],{"categories":2676},[105],{"categories":2678},[105],{"categories":2680},[105],{"categories":2682},[157],{"categories":2684},[126],{"categories":2686},[147],{"categories":2688},[105],{"categories":2690},[105],{"categories":2692},[105],{"categories":2694},[126],{"categories":2696},[105],{"categories":2698},[126],{"categories":2700},[108],{"categories":2702},[108],{"categories":2704},[157],{"categories":2706},[108],{"categories":2708},[105],{"categories":2710},[157],{"categories":2712},[147],{"categories":2714},[],{"categories":2716},[108],{"categories":2718},[],{"categories":2720},[],{"categories":2722},[102],{"categories":2724},[105],{"categories":2726},[108],{"categories":2728},[99],{"categories":2730},[108],{"categories":2732},[164],{"categories":2734},[],{"categories":2736},[108],{"categories":2738},[],{"categories":2740},[99],{"categories":2742},[108],{"categories":2744},[],{"categories":2746},[108],{"categories":2748},[105],{"categories":2750},[126],{"categories":2752},[105],{"categories":2754},[108],{"categories":2756},[126],{"categories":2758},[108],{"categories":2760},[157],{"categories":2762},[147],{"categories":2764},[99],{"categories":2766},[],{"categories":2768},[108],{"categories":2770},[147],{"categories":2772},[126],{"categories":2774},[105],{"categories":2776},[147],{"categories":2778},[99],{"categories":2780},[],{"categories":2782},[108],{"categories":2784},[108],{"categories":2786},[105],{"categories":2788},[],{"categories":2790},[108],{"categories":2792},[111],{"categories":2794},[126],{"categories":2796},[108],{"categories":2798},[102],{"categories":2800},[],{"categories":2802},[105],{"categories":2804},[111],{"categories":2806},[105],{"categories":2808},[108],{"categories":2810},[126],{"categories":2812},[99],{"categories":2814},[71],{"categories":2816},[105],{"categories":2818},[105],{"categories":2820},[105],{"categories":2822},[126],{"categories":2824},[102],{"categories":2826},[105],{"categories":2828},[147],{"categories":2830},[126],{"categories":2832},[71],{"categories":2834},[105],{"categories":2836},[],{"categories":2838},[],{"categories":2840},[71],{"categories":2842},[150],{"categories":2844},[108],{"categories":2846},[108],{"categories":2848},[126],{"categories":2850},[105],{"categories":2852},[99],{"categories":2854},[147],{"categories":2856},[108],{"categories":2858},[105],{"categories":2860},[164],{"categories":2862},[105],{"categories":2864},[108],{"categories":2866},[],{"categories":2868},[105],{"categories":2870},[105],{"categories":2872},[126],{"categories":2874},[99],{"categories":2876},[],{"categories":2878},[105],{"categories":2880},[105],{"categories":2882},[157],{"categories":2884},[147],{"categories":2886},[105,108],{"categories":2888},[164,102],{"categories":2890},[105],{"categories":2892},[],{"categories":2894},[108],{"categories":2896},[],{"categories":2898},[157],{"categories":2900},[105],{"categories":2902},[126],{"categories":2904},[],{"categories":2906},[108],{"categories":2908},[],{"categories":2910},[108],{"categories":2912},[99],{"categories":2914},[108],{"categories":2916},[105],{"categories":2918},[71],{"categories":2920},[164],{"categories":2922},[102],{"categories":2924},[102],{"categories":2926},[99],{"categories":2928},[99],{"categories":2930},[105],{"categories":2932},[108],{"categories":2934},[105],{"categories":2936},[105],{"categories":2938},[99],{"categories":2940},[105],{"categories":2942},[164],{"categories":2944},[126],{"categories":2946},[105],{"categories":2948},[108],{"categories":2950},[105],{"categories":2952},[],{"categories":2954},[157],{"categories":2956},[],{"categories":2958},[108],{"categories":2960},[99],{"categories":2962},[],{"categories":2964},[71],{"categories":2966},[105],{"categories":2968},[],{"categories":2970},[126],{"categories":2972},[108],{"categories":2974},[157],{"categories":2976},[105],{"categories":2978},[108],{"categories":2980},[157],{"categories":2982},[108],{"categories":2984},[126],{"categories":2986},[99],{"categories":2988},[126],{"categories":2990},[157],{"categories":2992},[105],{"categories":2994},[147],{"categories":2996},[105],{"categories":2998},[105],{"categories":3000},[105],{"categories":3002},[105],{"categories":3004},[108],{"categories":3006},[105],{"categories":3008},[108],{"categories":3010},[105],{"categories":3012},[99],{"categories":3014},[105],{"categories":3016},[108],{"categories":3018},[147],{"categories":3020},[99],{"categories":3022},[108],{"categories":3024},[147],{"categories":3026},[],{"categories":3028},[105],{"categories":3030},[105],{"categories":3032},[157],{"categories":3034},[],{"categories":3036},[108],{"categories":3038},[164],{"categories":3040},[105],{"categories":3042},[126],{"categories":3044},[164],{"categories":3046},[108],{"categories":3048},[102],{"categories":3050},[102],{"categories":3052},[105],{"categories":3054},[99],{"categories":3056},[],{"categories":3058},[105],{"categories":3060},[],{"categories":3062},[99],{"categories":3064},[105],{"categories":3066},[108],{"categories":3068},[108],{"categories":3070},[],{"categories":3072},[157],{"categories":3074},[157],{"categories":3076},[164],{"categories":3078},[147],{"categories":3080},[],{"categories":3082},[105],{"categories":3084},[99],{"categories":3086},[105],{"categories":3088},[157],{"categories":3090},[99],{"categories":3092},[126],{"categories":3094},[126],{"categories":3096},[],{"categories":3098},[126],{"categories":3100},[108],{"categories":3102},[147],{"categories":3104},[150],{"categories":3106},[105],{"categories":3108},[],{"categories":3110},[126],{"categories":3112},[157],{"categories":3114},[102],{"categories":3116},[105],{"categories":3118},[99],{"categories":3120},[71],{"categories":3122},[99],{"categories":3124},[],{"categories":3126},[],{"categories":3128},[126],{"categories":3130},[],{"categories":3132},[108],{"categories":3134},[108],{"categories":3136},[108],{"categories":3138},[],{"categories":3140},[105],{"categories":3142},[],{"categories":3144},[126],{"categories":3146},[99],{"categories":3148},[147],{"categories":3150},[105],{"categories":3152},[126],{"categories":3154},[126],{"categories":3156},[],{"categories":3158},[126],{"categories":3160},[99],{"categories":3162},[105],{"categories":3164},[],{"categories":3166},[108],{"categories":3168},[108],{"categories":3170},[99],{"categories":3172},[],{"categories":3174},[],{"categories":3176},[],{"categories":3178},[147],{"categories":3180},[108],{"categories":3182},[105],{"categories":3184},[],{"categories":3186},[],{"categories":3188},[],{"categories":3190},[147],{"categories":3192},[],{"categories":3194},[99],{"categories":3196},[],{"categories":3198},[],{"categories":3200},[147],{"categories":3202},[105],{"categories":3204},[126],{"categories":3206},[],{"categories":3208},[164],{"categories":3210},[126],{"categories":3212},[164],{"categories":3214},[105],{"categories":3216},[],{"categories":3218},[],{"categories":3220},[108],{"categories":3222},[],{"categories":3224},[],{"categories":3226},[108],{"categories":3228},[105],{"categories":3230},[],{"categories":3232},[108],{"categories":3234},[126],{"categories":3236},[164],{"categories":3238},[150],{"categories":3240},[108],{"categories":3242},[108],{"categories":3244},[],{"categories":3246},[],{"categories":3248},[],{"categories":3250},[126],{"categories":3252},[],{"categories":3254},[],{"categories":3256},[147],{"categories":3258},[99],{"categories":3260},[],{"categories":3262},[102],{"categories":3264},[164],{"categories":3266},[105],{"categories":3268},[157],{"categories":3270},[99],{"categories":3272},[150],{"categories":3274},[102],{"categories":3276},[157],{"categories":3278},[],{"categories":3280},[],{"categories":3282},[108],{"categories":3284},[99],{"categories":3286},[147],{"categories":3288},[99],{"categories":3290},[108],{"categories":3292},[71],{"categories":3294},[108],{"categories":3296},[],{"categories":3298},[105],{"categories":3300},[126],{"categories":3302},[157],{"categories":3304},[],{"categories":3306},[147],{"categories":3308},[126],{"categories":3310},[99],{"categories":3312},[108],{"categories":3314},[105],{"categories":3316},[102],{"categories":3318},[108,71],{"categories":3320},[108],{"categories":3322},[157],{"categories":3324},[105],{"categories":3326},[150],{"categories":3328},[164],{"categories":3330},[108],{"categories":3332},[],{"categories":3334},[108],{"categories":3336},[105],{"categories":3338},[102],{"categories":3340},[],{"categories":3342},[],{"categories":3344},[105],{"categories":3346},[150],{"categories":3348},[105],{"categories":3350},[],{"categories":3352},[126],{"categories":3354},[],{"categories":3356},[126],{"categories":3358},[157],{"categories":3360},[108],{"categories":3362},[105],{"categories":3364},[164],{"categories":3366},[157],{"categories":3368},[],{"categories":3370},[126],{"categories":3372},[105],{"categories":3374},[],{"categories":3376},[105],{"categories":3378},[108],{"categories":3380},[105],{"categories":3382},[108],{"categories":3384},[105],{"categories":3386},[105],{"categories":3388},[105],{"categories":3390},[105],{"categories":3392},[102],{"categories":3394},[],{"categories":3396},[111],{"categories":3398},[126],{"categories":3400},[105],{"categories":3402},[],{"categories":3404},[157],{"categories":3406},[105],{"categories":3408},[105],{"categories":3410},[108],{"categories":3412},[126],{"categories":3414},[105],{"categories":3416},[105],{"categories":3418},[102],{"categories":3420},[108],{"categories":3422},[147],{"categories":3424},[],{"categories":3426},[150],{"categories":3428},[105],{"categories":3430},[],{"categories":3432},[126],{"categories":3434},[164],{"categories":3436},[],{"categories":3438},[],{"categories":3440},[126],{"categories":3442},[126],{"categories":3444},[164],{"categories":3446},[99],{"categories":3448},[108],{"categories":3450},[108],{"categories":3452},[105],{"categories":3454},[102],{"categories":3456},[],{"categories":3458},[],{"categories":3460},[126],{"categories":3462},[150],{"categories":3464},[157],{"categories":3466},[108],{"categories":3468},[147],{"categories":3470},[150],{"categories":3472},[150],{"categories":3474},[],{"categories":3476},[126],{"categories":3478},[105],{"categories":3480},[105],{"categories":3482},[157],{"categories":3484},[],{"categories":3486},[126],{"categories":3488},[126],{"categories":3490},[126],{"categories":3492},[],{"categories":3494},[108],{"categories":3496},[105],{"categories":3498},[],{"categories":3500},[99],{"categories":3502},[102],{"categories":3504},[],{"categories":3506},[105],{"categories":3508},[105],{"categories":3510},[],{"categories":3512},[157],{"categories":3514},[],{"categories":3516},[],{"categories":3518},[],{"categories":3520},[],{"categories":3522},[105],{"categories":3524},[126],{"categories":3526},[],{"categories":3528},[],{"categories":3530},[105],{"categories":3532},[105],{"categories":3534},[105],{"categories":3536},[150],{"categories":3538},[105],{"categories":3540},[150],{"categories":3542},[],{"categories":3544},[150],{"categories":3546},[150],{"categories":3548},[71],{"categories":3550},[108],{"categories":3552},[157],{"categories":3554},[],{"categories":3556},[],{"categories":3558},[150],{"categories":3560},[157],{"categories":3562},[157],{"categories":3564},[157],{"categories":3566},[],{"categories":3568},[99],{"categories":3570},[157],{"categories":3572},[157],{"categories":3574},[99],{"categories":3576},[157],{"categories":3578},[102],{"categories":3580},[157],{"categories":3582},[157],{"categories":3584},[157],{"categories":3586},[150],{"categories":3588},[126],{"categories":3590},[126],{"categories":3592},[105],{"categories":3594},[157],{"categories":3596},[150],{"categories":3598},[71],{"categories":3600},[150],{"categories":3602},[150],{"categories":3604},[150],{"categories":3606},[],{"categories":3608},[102],{"categories":3610},[],{"categories":3612},[71],{"categories":3614},[157],{"categories":3616},[157],{"categories":3618},[157],{"categories":3620},[108],{"categories":3622},[126,102],{"categories":3624},[150],{"categories":3626},[],{"categories":3628},[],{"categories":3630},[150],{"categories":3632},[],{"categories":3634},[150],{"categories":3636},[126],{"categories":3638},[108],{"categories":3640},[],{"categories":3642},[157],{"categories":3644},[105],{"categories":3646},[147],{"categories":3648},[],{"categories":3650},[105],{"categories":3652},[],{"categories":3654},[126],{"categories":3656},[99],{"categories":3658},[150],{"categories":3660},[],{"categories":3662},[157],{"categories":3664},[126],[3666,3737,3801,3868],{"id":3667,"title":3668,"ai":3669,"body":3674,"categories":3702,"created_at":72,"date_modified":72,"description":64,"extension":74,"faq":72,"featured":75,"kicker_label":72,"meta":3703,"navigation":77,"path":3721,"published_at":3722,"question":72,"scraped_at":3723,"seo":3724,"sitemap":3725,"source_id":3726,"source_name":3727,"source_type":85,"source_url":3728,"stem":3729,"tags":3730,"thumbnail_url":3732,"tldr":3733,"tweet":3734,"unknown_tags":3735,"__hash__":3736},"summaries\u002Fsummaries\u002F39dde3bc67a5d66f-replay-logs-fail-agents-use-vm-snapshots-instead-summary.md","Replay Logs Fail Agents: Use VM Snapshots Instead",{"provider":7,"model":8,"input_tokens":3670,"output_tokens":3671,"processing_time_ms":3672,"cost_usd":3673},6744,1589,18772,0.0021208,{"type":14,"value":3675,"toc":3697},[3676,3680,3683,3687,3690,3694],[17,3677,3679],{"id":3678},"replay-model-breaks-for-long-running-agents","Replay Model Breaks for Long-Running Agents",[22,3681,3682],{},"Traditional replay durability—wrapping steps in a journal for replay on resume—built reliable async workflows like order processing without double-charging cards. It caches executed steps, provides audit trails, and enables resuming after human input or failures. But agents invert this: LLMs orchestrate tools in loops, turning every LLM call and tool into journal steps. After one turn, logs balloon; multi-turn interactions hit limits on entry count or size. Agent runtimes double every 4-7 months—from hours to days—making agents sessions, not transactions. Replay forces rigid, deterministic code outside steps, complicates versioning, and can't capture compute state like files, memory, or subprocesses (e.g., cloned repos, dev servers).",[17,3684,3686],{"id":3685},"split-durability-context-logs-execution-snapshots","Split Durability: Context Logs + Execution Snapshots",[22,3688,3689],{},"Agents need two states: context (append-only log of system\u002Fuser messages, tool calls\u002Fresults, assistant responses) and execution (VM state: files, memory, subprocesses). Store context in databases, object storage, or distributed filesystems—durable across code versions, crashes, scales well. For execution, snapshot\u002Frestore the machine: save when idle (user lunches), restore on next message. This preserves Git clones, installed packages, datasets cheaply vs. always-on VMs. Recover selectively: snapshot for LLM outages (retry after 15min), restart execution from context log for machine bugs\u002Fcrashes. Agents force shift from 30-year stateless compute (CGI 1993 → LAMP → Node\u002FServerless) to stateful compute.",[17,3691,3693],{"id":3692},"firecracker-snapshots-14mb-sub-second-ops","Firecracker Snapshots: 14MB, Sub-Second Ops",[22,3695,3696],{},"CRIU (2011) enabled userspace process checkpoint\u002Frestore via 'parasite' injection—transparent, container-compatible, but limited to single processes (no ffmpeg\u002FChrome), misses closed files, slow with registries. Firecracker microVMs snapshot entire machines, resuming subprocesses seamlessly. Naive 512MB RAM snapshots bloat storage\u002Ftransfer; compress with seekable format (decompress only accessed pages on restore), plus layering, yields 14MB tunable size. Results: snapshots \u003C1s, restores ~100-200ms. Open-source CLI 'fc-run' (docker-like) runs\u002Fsnaps\u002Frestores\u002Fforces VMs fast—15,000 starts\u002Fmin (30 FPS video equivalent), powers Trigger.dev's agent compute.",{"title":64,"searchDepth":65,"depth":65,"links":3698},[3699,3700,3701],{"id":3678,"depth":65,"text":3679},{"id":3685,"depth":65,"text":3686},{"id":3692,"depth":65,"text":3693},[108],{"content_references":3704,"triage":3716},[3705,3709,3711,3713],{"type":3706,"title":3707,"context":3708},"tool","CRIU","mentioned",{"type":3706,"title":3710,"context":3708},"Firecracker microVMs",{"type":3706,"title":3712,"context":3708},"fc-run",{"type":3714,"title":3715,"context":3708},"other","IBM mainframe checkpoint\u002Frestore",{"relevance":3717,"novelty":3718,"quality":3718,"actionability":3718,"composite":3719,"reasoning":3720},5,4,4.35,"Category: AI Automation. The article provides a deep dive into the challenges of replay durability in AI agents and presents a practical solution using VM snapshots, which directly addresses the pain points of developers working with long-running AI agents. It offers actionable insights on how to implement this approach, making it highly relevant for the target audience.","\u002Fsummaries\u002F39dde3bc67a5d66f-replay-logs-fail-agents-use-vm-snapshots-instead-summary","2026-05-10 20:00:06","2026-05-11 15:00:18",{"title":3668,"description":64},{"loc":3721},"39dde3bc67a5d66f","AI Engineer","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=svCnShDvgQg","summaries\u002F39dde3bc67a5d66f-replay-logs-fail-agents-use-vm-snapshots-instead-summary",[3731,90,92,91],"agents","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FsvCnShDvgQg\u002Fhqdefault.jpg","Replay durability constrains agent code with growing logs; split into context logs (DB durable) and execution snapshots (14MB Firecracker VMs, \u003C1s save\u002F100ms restore) for multi-day sessions.","Conference talk by Trigger.dev CEO [Eric Allam](https:\u002F\u002Fx.com\u002Fmaverickdotdev) contrasting replay journaling (step-wise LLM\u002Ftool logs for recovery) with OS-level snapshots on Firecracker microVMs for preserving agent execution state like files and subprocesses, plus DB logs for context. Includes backend history and recovery demos.",[92,91],"VojlT4fEepnScoQLqNWr4Dm8ssvFRptLWxpXbhvMJUc",{"id":3738,"title":3739,"ai":3740,"body":3745,"categories":3773,"created_at":72,"date_modified":72,"description":64,"extension":74,"faq":72,"featured":75,"kicker_label":72,"meta":3774,"navigation":77,"path":3786,"published_at":3787,"question":72,"scraped_at":3788,"seo":3789,"sitemap":3790,"source_id":3791,"source_name":3792,"source_type":3793,"source_url":3794,"stem":3795,"tags":3796,"thumbnail_url":72,"tldr":3798,"tweet":72,"unknown_tags":3799,"__hash__":3800},"summaries\u002Fsummaries\u002F063a66d42b325c1b-offline-in-car-music-search-with-local-ai-embeddin-summary.md","Offline In-Car Music Search with Local AI Embeddings",{"provider":7,"model":8,"input_tokens":3741,"output_tokens":3742,"processing_time_ms":3743,"cost_usd":3744},9189,1824,15486,0.00224295,{"type":14,"value":3746,"toc":3768},[3747,3751,3754,3758,3761,3765],[17,3748,3750],{"id":3749},"convert-song-metadata-to-embeddable-text-descriptions-for-semantic-search","Convert Song Metadata to Embeddable Text Descriptions for Semantic Search",[22,3752,3753],{},"Extract ID3 tags from Free Music Archive's 8,000 royalty-free MP3s using Mutagen to build a songs.csv with 7,994 valid tracks, including title, artist, album, genre, and duration (skipping files under 5s). Map genres to mood heuristics like hip-hop (energy 0.75, valence 0.55, danceability 0.80, tempo 95) or folk (0.35, 0.55, 0.40, 95) since FMA lacks Spotify-style audio features. Transform each track into a natural-language string, e.g., \"Food by AWOL from AWOL - A Way Of Life. Genre: Hip-Hop. Mood: energetic, danceable.\" Threshold moods: energy >0.7=energetic, \u003C0.3=calm; valence >0.7=happy, \u003C0.3=melancholic; danceability >0.7=danceable. Embed these 384-dim vectors with FastEmbed's all-MiniLM-L6-v2 (ONNX, CPU-only) at 220 tracks\u002Fsec, taking 36s total—text outperforms raw floats for capturing vibes like \"calm folk acoustic guitar.\"",[17,3755,3757],{"id":3756},"index-and-query-with-portable-qdrant-edge-shard","Index and Query with Portable Qdrant Edge Shard",[22,3759,3760],{},"Create a Qdrant Edge shard (in-process, no server) using Cosine distance for semantic similarity (direction over magnitude). Batch upsert points with full payloads (track_id, metadata, audio_path, moods) in 500-song chunks; total shard ~11.7MB vectors + HNSW index, portable by copying directory—no re-indexing across devices. At query time, embed input (e.g., \"upbeat hip hop for long drive\") and run HNSW ANN search (sub-ms on 7,994 points, ~95% recall). Filter by genre via payload (MatchTextAny). Expand moods: \"chill\" → \"calm relaxing lo-fi ambient chill song\" for richer embedding coverage, boosting recall on calm\u002Fambient tracks. Lazy-load shard\u002Fmodel as singletons for instant queries post-startup.",[17,3762,3764],{"id":3763},"integrate-local-voice-and-streamlit-playback","Integrate Local Voice and Streamlit Playback",[22,3766,3767],{},"Transcribe voice via Whisper 'small' (461MB disk, CPU fp16=False to avoid failures) on uploaded bytes\u002Ftemp WAV—handles accents for queries like \"calm folk acoustic guitar.\" Streamlit UI offers voice\u002Ftext\u002Fmood tabs (6 buttons: happy\u002Fsad\u002Fenergetic\u002Fchill\u002Fromantic\u002Fparty), dark Spotify theme. Custom HTML5 player base64-encodes MP3 bytes (data:audio\u002Fmpeg URI) with play\u002Fpause icons—no file server, but limits to shorter clips (full 4min tracks bloat DOM). Player state machine loads relative\u002Fabsolute audio_path from payload, persists across reruns. Central config.py unifies paths\u002Fmodels (e.g., EMBEDDING_DIM=384, TOP_K=5) for easy swaps. Beats alternatives: Qdrant Edge > SQLite-vec (slower HNSW), FAISS (no native persist\u002Fpayload filter), Chroma (bigger footprint), clouds (needs internet).",{"title":64,"searchDepth":65,"depth":65,"links":3769},[3770,3771,3772],{"id":3749,"depth":65,"text":3750},{"id":3756,"depth":65,"text":3757},{"id":3763,"depth":65,"text":3764},[108],{"content_references":3775,"triage":3782},[3776,3779],{"type":3777,"title":3778,"context":3708},"dataset","Free Music Archive (FMA)",{"type":3714,"title":3780,"url":3781,"context":3708},"CarTune GitHub Repository","https:\u002F\u002Fgithub.com\u002Fsarveshtalele\u002FHow-I-Built-a-Smart-In-Car-Media-Discovery-System",{"relevance":3718,"novelty":3783,"quality":3718,"actionability":3718,"composite":3784,"reasoning":3785},3,3.8,"Category: AI Automation. The article provides a detailed account of building an offline music search system using AI embeddings, which directly addresses practical applications for AI-powered product builders. It includes specific techniques like using FastEmbed and Qdrant for semantic search, making it actionable for developers.","\u002Fsummaries\u002F063a66d42b325c1b-offline-in-car-music-search-with-local-ai-embeddin-summary","2026-04-13 15:09:50","2026-04-13 17:52:57",{"title":3739,"description":64},{"loc":3786},"063a66d42b325c1b","Level Up Coding","article","https:\u002F\u002Fmedium.com\u002Fgitconnected\u002Fhow-i-built-a-smart-in-car-media-discovery-system-515b00d08bf7?source=rss----5517fd7b58a6---4","summaries\u002F063a66d42b325c1b-offline-in-car-music-search-with-local-ai-embeddin-summary",[89,3797,90,92],"ai-tools","CarTune enables voice-activated semantic music discovery on 7,994 songs using local Whisper transcription, FastEmbed vectors, and Qdrant Edge—no internet, runs fully on-device at 220 embeds\u002Fsec on CPU.",[92],"Tw3rSr5SOyNCRDVa9VHCEzrdWiuiFB8Sie15k1j5hZo",{"id":3802,"title":3803,"ai":3804,"body":3809,"categories":3837,"created_at":72,"date_modified":72,"description":64,"extension":74,"faq":72,"featured":75,"kicker_label":72,"meta":3838,"navigation":77,"path":3856,"published_at":3857,"question":72,"scraped_at":3858,"seo":3859,"sitemap":3860,"source_id":3861,"source_name":3792,"source_type":3793,"source_url":3862,"stem":3863,"tags":3864,"thumbnail_url":72,"tldr":3865,"tweet":72,"unknown_tags":3866,"__hash__":3867},"summaries\u002Fsummaries\u002F0e0abb84f145bb9a-offline-semantic-music-search-on-car-hardware-summary.md","Offline Semantic Music Search on Car Hardware",{"provider":7,"model":8,"input_tokens":3805,"output_tokens":3806,"processing_time_ms":3807,"cost_usd":3808},8985,1765,14440,0.00217265,{"type":14,"value":3810,"toc":3832},[3811,3815,3818,3822,3825,3829],[17,3812,3814],{"id":3813},"convert-song-metadata-to-semantic-text-descriptions-for-embedding","Convert Song Metadata to Semantic Text Descriptions for Embedding",[22,3816,3817],{},"Extract ID3 tags from 8,000 Free Music Archive MP3s using Mutagen to build a songs.csv with 7,994 valid tracks, including title, artist, album, genre, and duration. Map genres to heuristic audio features (energy 0-1, valence 0-1, danceability 0-1, tempo BPM): hip-hop (0.75 energy, 0.80 dance, 95 BPM), folk (0.35 energy, 0.40 dance, 95 BPM), punk (0.90 energy, 150 BPM). Threshold moods into words—energy >0.7=energetic, \u003C0.3=calm; valence >0.7=happy, \u003C0.3=melancholic—to form descriptions like \"Food by AWOL from AWOL - A Way Of Life. Genre: Hip-Hop. Mood: energetic, danceable.\" Embed these 384-dim all-MiniLM-L6-v2 vectors (FastEmbed ONNX, 220 tracks\u002Fsec on CPU, 36s total) instead of raw floats, as text embeddings capture semantic ties like \"calm acoustic folk\" better. Result: 11.7 MB raw vectors.",[17,3819,3821],{"id":3820},"build-portable-vector-index-with-qdrant-edge","Build Portable Vector Index with Qdrant Edge",[22,3823,3824],{},"Create in-process Qdrant Edge shard (no server) with Cosine distance for 384-dim vectors, HNSW for sub-ms ANN search (95%+ recall). Upsert batches of 500 points with full payloads (track_id, metadata, audio_path, features). Shard is portable—copy data\u002Fqdrant_shard\u002F directory to any machine, loads instantly without re-indexing. Beats alternatives: SQLite-vec slower HNSW; FAISS lacks native persistence\u002Fpayload filters; ChromaDB larger footprint; cloud DBs need internet. Lazy-load shard\u002Fmodel as singletons for zero-query startup cost after first use.",[17,3826,3828],{"id":3827},"voice-mood-and-ui-pipeline-for-in-car-use","Voice, Mood, and UI Pipeline for In-Car Use",[22,3830,3831],{},"Transcribe voice locally with Whisper small (461 MB disk, CPU fp16=False): tap button, record WAV bytes, temp file, get text like \"calm folk acoustic guitar.\" Expand moods: \"chill\" → \"calm relaxing lo-fi ambient chill song\" for richer embeddings. Search: embed query, optional genre filter (MatchTextAny), top_k=5 results by score. Streamlit UI (dark Spotify theme) shows results; custom HTML5 player base64-encodes MP3 bytes (data URI, autoplay) with play\u002Fpause icons—handles full tracks but large files bloat DOM. Player state machine loads relative\u002Fabsolute audio_path from payload. Config.py centralizes paths\u002Fmodels (e.g., EMBEDDING_MODEL=\"sentence-transformers\u002Fall-MiniLM-L6-v2\"). Full offline: works airplane mode on automotive CPU.",{"title":64,"searchDepth":65,"depth":65,"links":3833},[3834,3835,3836],{"id":3813,"depth":65,"text":3814},{"id":3820,"depth":65,"text":3821},{"id":3827,"depth":65,"text":3828},[108],{"content_references":3839,"triage":3853},[3840,3842,3843,3845,3847,3849,3851],{"type":3777,"title":3841,"context":3708},"Free Music Archive (FMA) dataset",{"type":3714,"title":3780,"url":3781,"context":3708},{"type":3706,"title":3844,"context":3708},"qdrant-edge-py",{"type":3706,"title":3846,"context":3708},"fastembed",{"type":3706,"title":3848,"context":3708},"openai-whisper",{"type":3706,"title":3850,"context":3708},"mutagen",{"type":3706,"title":3852,"context":3708},"streamlit",{"relevance":3783,"novelty":3783,"quality":3718,"actionability":3718,"composite":3854,"reasoning":3855},3.45,"Category: AI Automation. The article discusses building an offline music discovery system using AI tools, which aligns with the audience's interest in practical AI applications. It provides a detailed overview of the technical implementation, including embedding techniques and local processing, making it actionable for developers looking to integrate similar features.","\u002Fsummaries\u002F0e0abb84f145bb9a-offline-semantic-music-search-on-car-hardware-summary","2026-04-13 15:09:49","2026-04-14 14:37:34",{"title":3803,"description":64},{"loc":3856},"0e0abb84f145bb9a","https:\u002F\u002Flevelup.gitconnected.com\u002Fhow-i-built-a-smart-in-car-media-discovery-system-515b00d08bf7?source=rss----5517fd7b58a6---4","summaries\u002F0e0abb84f145bb9a-offline-semantic-music-search-on-car-hardware-summary",[89,3797,90,92],"CarTune enables voice\u002Ftext\u002Fmood-based music discovery on 7,994 songs using local Whisper transcription, FastEmbed vectors, and Qdrant Edge—no internet, runs on CPU in 36s to index.",[92],"DWj2ntij5nQcqAPa9qtuNc3AkfaeG2CwgJ0G_ND9yWo",{"id":3869,"title":3870,"ai":3871,"body":3876,"categories":4128,"created_at":72,"date_modified":72,"description":4129,"extension":74,"faq":72,"featured":75,"kicker_label":72,"meta":4130,"navigation":77,"path":4131,"published_at":4132,"question":72,"scraped_at":4133,"seo":4134,"sitemap":4135,"source_id":4136,"source_name":4137,"source_type":85,"source_url":4138,"stem":4139,"tags":4140,"thumbnail_url":72,"tldr":4141,"tweet":72,"unknown_tags":4142,"__hash__":4143},"summaries\u002Fsummaries\u002Fe925b9f48e97039f-hermes-agent-self-improving-skills-beat-stateless--summary.md","Hermes Agent: Self-Improving Skills Beat Stateless Agents",{"provider":7,"model":8,"input_tokens":3872,"output_tokens":3873,"processing_time_ms":3874,"cost_usd":3875},8535,2671,30951,0.00301985,{"type":14,"value":3877,"toc":4120},[3878,3882,3889,3892,3908,3911,3914,3925,3929,3932,3972,3975,3978,3982,3985,4011,4014,4019,4022,4026,4029,4040,4043,4057,4062,4065,4069,4076,4081,4085],[17,3879,3881],{"id":3880},"stateless-agents-waste-learned-workhermes-compounds-it","Stateless Agents Waste Learned Work—Hermes Compounds It",[22,3883,3884,3885,3888],{},"Most AI agent frameworks treat every interaction as isolated: you give a task, it executes via tools like APIs or code, then forgets everything. This mirrors early web browsers in 1995—plenty of options, no standards. Nick Puru argues this statelessness limits real value, as agents never improve. Hermes, an open-source framework from Nous Research (v0.6.0, 19k GitHub stars, MIT license), flips this by capturing full execution \"trajectories\" (every API call, decision, tool sequence) and distilling them into reusable \"skills\"—LLM-generated functions stored as code in ",[33,3886,3887],{},"\u002Fhermes\u002Fbackend\u002Fskills",".",[22,3890,3891],{},"For a first-time complex task like \"Pull Stripe revenue, cross-reference HubSpot pipeline, analyze in Python, generate chart, send Slack summary with 3 insights,\" Hermes chains 15-20 steps across 40+ tools (web search, terminal, browser automation, code execution, image gen, TTS, vision). Post-execution:",[3893,3894,3895,3899,3902,3905],"ol",{},[3896,3897,3898],"li",{},"Records trajectory.",[3896,3900,3901],{},"Analyzes: \"Can this be packaged as reusable?\"",[3896,3903,3904],{},"If yes, generates\u002Ftests\u002Fstores skill.",[3896,3906,3907],{},"Next similar request: Runs\u002Frefines skill (faster, cleaner).",[22,3909,3910],{},"Over time, it patterns your preferences (e.g., vague queries get context-aware nudges: \"You probably want skill X\"). Skills evolve per user—your Hermes shapes to workflows, unlike generic ChatGPT\u002FClaude resets. Puru: \"Hermes, it is designed to be getting better. It gets smarter the longer that it actually works with you.\"",[22,3912,3913],{},"This enables compounding: Week 1 manual 20-step revenue analysis → Week 4: Runs polished skill autonomously Tuesdays. Export trajectories to ShareGPT for fine-tuning your models via RL pipeline.",[3915,3916,3917],"blockquote",{},[22,3918,3919,3920,3924],{},"\"Most agent frameworks, they just throw that away completely. Like the task is done, the memor",[3921,3922,3923],"span",{},"y"," is gone, Hermes keeps it instead.\" — Nick Puru, explaining why trajectory capture changes agent architecture.",[17,3926,3928],{"id":3927},"deployment-matches-any-infrastructurefrom-laptop-to-serverless","Deployment Matches Any Infrastructure—From Laptop to Serverless",[22,3930,3931],{},"Hermes avoids lock-in with 6 backends, suiting varied needs:",[3933,3934,3935,3942,3948,3954,3960,3966],"ul",{},[3896,3936,3937,3941],{},[3938,3939,3940],"strong",{},"Local terminal",": Dev\u002Ftesting (your phone via Telegram).",[3896,3943,3944,3947],{},[3938,3945,3946],{},"Docker",": Production isolation.",[3896,3949,3950,3953],{},[3938,3951,3952],{},"SSH\u002FVPS",": Puru's choice ($5-10\u002Fmo, runs 24\u002F7 without idle costs).",[3896,3955,3956,3959],{},[3938,3957,3958],{},"Singularity",": Research clusters (GPU).",[3896,3961,3962,3965],{},[3938,3963,3964],{},"Daytona",": Persistent cloud dev.",[3896,3967,3968,3971],{},[3938,3969,3970],{},"Modal",": Serverless (hibernates idle, wakes on message—pay-per-second).",[22,3973,3974],{},"Messaging gateways (12 platforms: Telegram, Discord, Slack, WhatsApp, Signal, email, etc.) ensure continuity—start CLI, resume Discord, no context loss. Python-heavy (92.5%) integrates seamlessly with LLM APIs\u002Ftransformers. Install: Single curl command (60s), handles Python\u002FNode deps.",[22,3976,3977],{},"Puru runs on VPS for always-on jobs without babysitting hardware: \"I just want to keep it simple and see if I like this first through a VPS.\"",[17,3979,3981],{"id":3980},"trade-offs-learning-excels-for-personal-tools-not-speed-pipelines","Trade-offs: Learning Excels for Personal Tools, Not Speed Pipelines",[22,3983,3984],{},"Hermes prioritizes adaptation over raw speed\u002Forchestration (slower than CrewAI\u002FLangGraph for multi-step flows). Key caveats:",[3933,3986,3987,3993,3999,4005],{},[3896,3988,3989,3992],{},[3938,3990,3991],{},"OS",": No native Windows (use WSL2; experimental PRs incoming)—blocks Windows-heavy enterprises.",[3896,3994,3995,3998],{},[3938,3996,3997],{},"Learning scope",": Only complex tasks trigger skills; simple ones ignored. LLM-generated code may fail (needs tweaks)—\"not magic.\"",[3896,4000,4001,4004],{},[3938,4002,4003],{},"Security",": Local backend allows terminal access (runs as you); docs mandate Docker\u002FModal for prod (container boundary). Dangerous command checks exist, PR tightening.",[3896,4006,4007,4010],{},[3938,4008,4009],{},"Reliability",": Can loop\u002Fignore messages (v0.4+ fixes, but recurs). Gets stuck on interruptions.",[22,4012,4013],{},"\"If your use case is run this pipeline as fast as possible... those frameworks are going to be better. ... If ... build an agent that gets smarter the longer I use it, that's where Hermes is going to actually be much much better.\"",[3915,4015,4016],{},[22,4017,4018],{},"\"Hermes it is trading speed for learning and that's the bet that they are essentially making.\" — Nick Puru, on why Hermes optimizes for long-term intelligence over immediate execution.",[22,4020,4021],{},"Best for Mac\u002FLinux shops building internal\u002Fpersonal agents (e.g., revenue analysis, custom workflows). Avoid for Windows-native, ultra-secure no-container, or latency-critical ops.",[17,4023,4025],{"id":4024},"hermes-vs-openclaw-learning-depth-vs-ecosystem-breadth","Hermes vs. OpenClaw: Learning Depth vs. Ecosystem Breadth",[22,4027,4028],{},"OpenClaw (Peter Steinberger's 2025 weekend project: 300k+ stars in 4 months, 13k ClawHub skills, 2M MAUs, 24 platforms) is a TypeScript messaging gateway\u002Fcontrol plane—routes AI everywhere (iMessage to WeChat). Huge community\u002Ftutorials; human-maintained skills. No built-in learning: Memories via plugins (LanceDB vectors, lossless persistence)—manual config. No trajectory\u002FRL export.",[22,4030,4031,4032,4035,4036,4039],{},"Hermes (Python, Nous Research): Baked-in learning (autonomous skills, self-improvement). Fewer platforms (12), but cross-continuity shines. Infra edge: 6 backends vs. OpenClaw's Node\u002FDocker. ",[3938,4033,4034],{},"Killer feature",": ",[33,4037,4038],{},"hermesclaw migrate","—one-command pulls OpenClaw's soul.md, memories\u002Fskills\u002FAPI keys\u002Fconfig.",[22,4041,4042],{},"Puru rejects \"which is better?\"—\"fundamentally different architectural bets.\"",[3933,4044,4045,4051],{},[3896,4046,4047,4050],{},[3938,4048,4049],{},"OpenClaw",": Ops\u002Fplatform for customer-facing, multi-channel (e.g., 5 business channels Day 1).",[3896,4052,4053,4056],{},[3938,4054,4055],{},"Hermes",": Personal\u002Fresearch for compounding knowledge\u002Fexportable training data.",[3915,4058,4059],{},[22,4060,4061],{},"\"They're just completely different games. Pick the one that actually matches what you're going to be building.\" — Nick Puru, contrasting Hermes' learning focus with OpenClaw's distribution strengths.",[22,4063,4064],{},"Run both: Keep OpenClaw for breadth, Hermes for depth.",[17,4066,4068],{"id":4067},"frictionless-onboarding-proves-the-value","Frictionless Onboarding Proves the Value",[22,4070,4071,4072,4075],{},"Setup demo: ",[33,4073,4074],{},"curl"," GitHub installer → auto-detects\u002Finstalls deps → ready. Live walkthrough: Config APIs\u002Ftools, chat via terminal\u002FTelegram. Phone access: Message anywhere, VPS handles compute. Ships 40+ skills; custom ones via agentskills.io (npm-like). Puru migrated OpenClaw setups seamlessly.",[3915,4077,4078],{},[22,4079,4080],{},"\"One thing that I really like about Hermes is how simple this is to actually set up. So it's legitimately a few minute task.\" — Nick Puru, after live install, highlighting barrier-to-entry as a key adoption driver.",[17,4082,4084],{"id":4083},"key-takeaways","Key Takeaways",[3933,4086,4087,4090,4093,4099,4105,4108,4111,4114,4117],{},[3896,4088,4089],{},"Target complex, repeatable workflows (e.g., multi-API analysis) to trigger skill creation—simple queries won't learn.",[3896,4091,4092],{},"Start on VPS\u002FDocker for always-on without hardware; Modal for cheap serverless ($0 idle).",[3896,4094,4095,4096,4098],{},"Expect LLM skill bugs: Review\u002Fedit ",[33,4097,3887],{}," code manually.",[3896,4100,4101,4102,4104],{},"Migrate from OpenClaw with ",[33,4103,4038],{}," to test learning alongside breadth.",[3896,4106,4107],{},"Use for personal compounding agents; pick CrewAI\u002FLangGraph for speed, OpenClaw for multi-platform ops.",[3896,4109,4110],{},"Secure prod: Always containerize (Docker\u002FModal)—local terminal risks shell access.",[3896,4112,4113],{},"Track evolution: Full-text search past convos\u002Ftasks for memory; patterns nudge suggestions.",[3896,4115,4116],{},"Evaluate fit: Mac\u002FLinux internal tools yes; Windows\u002Fenterprise security no.",[3896,4118,4119],{},"Compound via RL: Export trajectories to ShareGPT for custom model fine-tuning.",{"title":64,"searchDepth":65,"depth":65,"links":4121},[4122,4123,4124,4125,4126,4127],{"id":3880,"depth":65,"text":3881},{"id":3927,"depth":65,"text":3928},{"id":3980,"depth":65,"text":3981},{"id":4024,"depth":65,"text":4025},{"id":4067,"depth":65,"text":4068},{"id":4083,"depth":65,"text":4084},[108],"🤖 Transform your business with AI: https:\u002F\u002Fsalesdone.ai\n📚 We help entrepreneurs & industry experts build & scale their AI Agency: https:\u002F\u002Fwww.skool.com\u002Ftheaiaccelerator\u002Fabout\n🤚 Join the best community for AI entrepreneurs and connect with 16,000+ members: - https:\u002F\u002Fwww.skool.com\u002Fsystems-to-scale-9517\u002Fabout\n\nSign up to our weekly AI newsletter - https:\u002F\u002Fai-core.beehiiv.com\u002F\n\n🙋 Connect With Me!\nInstagram -   \u002F nicholas.puru  \nX - https:\u002F\u002Fx.com\u002FNicholasPuru\nLinkedIn - https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fnicholas-puruczky-113818198\u002F\n\n\n0:00 - Hermes Agent: the self-improving AI framework\n1:21 - What Hermes actually is\n2:38 - The learning system explained\n5:08 - How it's different from ChatGPT & Claude\n5:27 - Deployment options (6 backends)\n7:09 - How the learning loop works under the hood\n10:47 - Limitations & honest caveats\n13:52 - Hermes vs Open Cloud comparison\n18:09 - Built-in Open Cloud migration tool\n19:16 - Live setup walkthrough\n23:14 - Using Hermes from your phone\n26:15 - Final thoughts: learning vs breadth",{},"\u002Fsummaries\u002Fe925b9f48e97039f-hermes-agent-self-improving-skills-beat-stateless-summary","2026-04-05 18:44:44","2026-04-06 16:39:24",{"title":3870,"description":4129},{"loc":4131},"e925b9f48e97039f","Nick Puru | AI Automation","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=J-kSdzHr9Ek","summaries\u002Fe925b9f48e97039f-hermes-agent-self-improving-skills-beat-stateless--summary",[3731,90,89,92],"Hermes creates reusable skills from complex task trajectories, compounding intelligence over time—unlike stateless agents that reset every interaction.",[92],"pMGcW2dS65o9UqDIyBQ7Kw90w39zvQQd5XKKlIbYbCk"]