diff --git a/datos/reddit_sentimiento_frameworks.csv b/datos/reddit_sentimiento_frameworks.csv index 73d0235..11ac31f 100644 --- a/datos/reddit_sentimiento_frameworks.csv +++ b/datos/reddit_sentimiento_frameworks.csv @@ -1,6 +1,6 @@ framework,total_menciones,positivos,neutros,negativos,% positivo,% neutro,% negativo -Django,3,3,0,0,100.0,0.0,0.0 -Spring,1,1,0,0,100.0,0.0,0.0 -Laravel,19,18,0,1,94.74,0.0,5.26 -Express,15,14,0,1,93.33,0.0,6.67 -FastAPI,2,1,0,1,50.0,0.0,50.0 +Django,4,4,0,0,100.0,0.0,0.0 +Spring,2,2,0,0,100.0,0.0,0.0 +Express,10,9,0,1,90.0,0.0,10.0 +Laravel,20,16,1,3,80.0,5.0,15.0 +FastAPI,4,3,0,1,75.0,0.0,25.0 diff --git a/datos/reddit_temas_emergentes.csv b/datos/reddit_temas_emergentes.csv index 362ebcb..36a55de 100644 --- a/datos/reddit_temas_emergentes.csv +++ b/datos/reddit_temas_emergentes.csv @@ -1,11 +1,11 @@ tema,menciones -IA/Machine Learning,139 -Performance,50 -Cloud,36 -Seguridad,36 -Testing,31 -DevOps,25 -Python,20 -TypeScript,17 -Microservicios,11 -Web3/Blockchain,6 +IA/Machine Learning,141 +Cloud,38 +Performance,38 +Seguridad,28 +DevOps,27 +Testing,27 +Python,19 +TypeScript,18 +Microservicios,5 +Web3/Blockchain,4 diff --git a/frontend/assets/data/reddit_interseccion_history.json b/frontend/assets/data/reddit_interseccion_history.json index d57901f..a2b8c60 100644 --- a/frontend/assets/data/reddit_interseccion_history.json +++ b/frontend/assets/data/reddit_interseccion_history.json @@ -1,10 +1,10 @@ { - "generated_at_utc": "2026-05-04T04:26:35Z", + "generated_at_utc": "2026-05-11T04:32:00Z", "dataset": "interseccion_github_reddit", "source_mode": "history", - "snapshot_count": 6, - "latest_snapshot_date": "2026-05-04", - "previous_snapshot_date": "2026-04-27", + "snapshot_count": 7, + "latest_snapshot_date": "2026-05-11", + "previous_snapshot_date": "2026-05-04", "coverage_pct": 30.0, "comparable_count": 3, "item_count": 10, @@ -95,7 +95,7 @@ "brecha_abs": null, "promedio_rank": null, "direccion": "incompleto", - "rank_github_prev": null, + "rank_github_prev": 5, "rank_reddit_prev": null, "delta_gap": null, "trend_direction": null @@ -770,6 +770,106 @@ "direccion": "incompleto" } ] + }, + { + "date": "2026-05-11", + "path": "datos/history/interseccion/year=2026/month=05/day=11/interseccion_github_reddit.csv", + "source_type": "history", + "row_count": 10, + "comparable_count": 3, + "coverage_pct": 30.0, + "items": [ + { + "tecnologia": "Python", + "tipo": "Lenguaje", + "ranking_github": 1, + "ranking_reddit": 7, + "brecha_abs": 6, + "promedio_rank": 4.0, + "direccion": "github_favorece" + }, + { + "tecnologia": "TypeScript", + "tipo": "Lenguaje", + "ranking_github": 2, + "ranking_reddit": 8, + "brecha_abs": 6, + "promedio_rank": 5.0, + "direccion": "github_favorece" + }, + { + "tecnologia": "JavaScript", + "tipo": "Lenguaje", + "ranking_github": 4, + "ranking_reddit": 10, + "brecha_abs": 6, + "promedio_rank": 7.0, + "direccion": "github_favorece" + }, + { + "tecnologia": "Angular", + "tipo": "Framework Frontend", + "ranking_github": 2, + "ranking_reddit": null, + "brecha_abs": null, + "promedio_rank": null, + "direccion": "incompleto" + }, + { + "tecnologia": "Next.js", + "tipo": "Framework Frontend", + "ranking_github": 1, + "ranking_reddit": null, + "brecha_abs": null, + "promedio_rank": null, + "direccion": "incompleto" + }, + { + "tecnologia": "React", + "tipo": "Framework Frontend", + "ranking_github": 3, + "ranking_reddit": null, + "brecha_abs": null, + "promedio_rank": null, + "direccion": "incompleto" + }, + { + "tecnologia": "Rust", + "tipo": "Lenguaje", + "ranking_github": 5, + "ranking_reddit": null, + "brecha_abs": null, + "promedio_rank": null, + "direccion": "incompleto" + }, + { + "tecnologia": "Sin especificar", + "tipo": "Lenguaje", + "ranking_github": 3, + "ranking_reddit": null, + "brecha_abs": null, + "promedio_rank": null, + "direccion": "incompleto" + }, + { + "tecnologia": "Svelte", + "tipo": "Framework Frontend", + "ranking_github": 4, + "ranking_reddit": null, + "brecha_abs": null, + "promedio_rank": null, + "direccion": "incompleto" + }, + { + "tecnologia": "Vue 3", + "tipo": "Framework Frontend", + "ranking_github": 5, + "ranking_reddit": null, + "brecha_abs": null, + "promedio_rank": null, + "direccion": "incompleto" + } + ] } ] } \ No newline at end of file diff --git a/frontend/assets/data/reddit_sentimiento_frameworks.csv b/frontend/assets/data/reddit_sentimiento_frameworks.csv index 73d0235..11ac31f 100644 --- a/frontend/assets/data/reddit_sentimiento_frameworks.csv +++ b/frontend/assets/data/reddit_sentimiento_frameworks.csv @@ -1,6 +1,6 @@ framework,total_menciones,positivos,neutros,negativos,% positivo,% neutro,% negativo -Django,3,3,0,0,100.0,0.0,0.0 -Spring,1,1,0,0,100.0,0.0,0.0 -Laravel,19,18,0,1,94.74,0.0,5.26 -Express,15,14,0,1,93.33,0.0,6.67 -FastAPI,2,1,0,1,50.0,0.0,50.0 +Django,4,4,0,0,100.0,0.0,0.0 +Spring,2,2,0,0,100.0,0.0,0.0 +Express,10,9,0,1,90.0,0.0,10.0 +Laravel,20,16,1,3,80.0,5.0,15.0 +FastAPI,4,3,0,1,75.0,0.0,25.0 diff --git a/frontend/assets/data/reddit_sentimiento_public.json b/frontend/assets/data/reddit_sentimiento_public.json index f0e275a..2de1584 100644 --- a/frontend/assets/data/reddit_sentimiento_public.json +++ b/frontend/assets/data/reddit_sentimiento_public.json @@ -1,15 +1,15 @@ { - "generated_at_utc": "2026-05-04T10:22:41Z", + "generated_at_utc": "2026-05-11T04:31:59Z", "dataset": "reddit_sentimiento_frameworks", "source_mode": "latest", "source_path": "datos/latest/reddit_sentimiento_frameworks.csv", - "source_updated_at_utc": "2026-05-04T10:22:36Z", + "source_updated_at_utc": "2026-05-11T04:31:51Z", "framework_count": 5, "frameworks": [ { "framework": "Django", - "total_menciones": 3, - "positivos": 3, + "total_menciones": 4, + "positivos": 4, "neutros": 0, "negativos": 0, "porcentaje_positivo": 100.0, @@ -18,8 +18,8 @@ }, { "framework": "Spring", - "total_menciones": 1, - "positivos": 1, + "total_menciones": 2, + "positivos": 2, "neutros": 0, "negativos": 0, "porcentaje_positivo": 100.0, @@ -27,41 +27,41 @@ "porcentaje_negativo": 0.0 }, { - "framework": "Laravel", - "total_menciones": 19, - "positivos": 18, + "framework": "Express", + "total_menciones": 10, + "positivos": 9, "neutros": 0, "negativos": 1, - "porcentaje_positivo": 94.74, + "porcentaje_positivo": 90.0, "porcentaje_neutro": 0.0, - "porcentaje_negativo": 5.26 + "porcentaje_negativo": 10.0 }, { - "framework": "Express", - "total_menciones": 15, - "positivos": 14, - "neutros": 0, - "negativos": 1, - "porcentaje_positivo": 93.33, - "porcentaje_neutro": 0.0, - "porcentaje_negativo": 6.67 + "framework": "Laravel", + "total_menciones": 20, + "positivos": 16, + "neutros": 1, + "negativos": 3, + "porcentaje_positivo": 80.0, + "porcentaje_neutro": 5.0, + "porcentaje_negativo": 15.0 }, { "framework": "FastAPI", - "total_menciones": 2, - "positivos": 1, + "total_menciones": 4, + "positivos": 3, "neutros": 0, "negativos": 1, - "porcentaje_positivo": 50.0, + "porcentaje_positivo": 75.0, "porcentaje_neutro": 0.0, - "porcentaje_negativo": 50.0 + "porcentaje_negativo": 25.0 } ], "summary": { "positive_leader": { "framework": "Django", - "total_menciones": 3, - "positivos": 3, + "total_menciones": 4, + "positivos": 4, "neutros": 0, "negativos": 0, "porcentaje_positivo": 100.0, @@ -70,23 +70,23 @@ }, "largest_sample": { "framework": "Laravel", - "total_menciones": 19, - "positivos": 18, - "neutros": 0, - "negativos": 1, - "porcentaje_positivo": 94.74, - "porcentaje_neutro": 0.0, - "porcentaje_negativo": 5.26 + "total_menciones": 20, + "positivos": 16, + "neutros": 1, + "negativos": 3, + "porcentaje_positivo": 80.0, + "porcentaje_neutro": 5.0, + "porcentaje_negativo": 15.0 }, "negative_leader": { "framework": "FastAPI", - "total_menciones": 2, - "positivos": 1, + "total_menciones": 4, + "positivos": 3, "neutros": 0, "negativos": 1, - "porcentaje_positivo": 50.0, + "porcentaje_positivo": 75.0, "porcentaje_neutro": 0.0, - "porcentaje_negativo": 50.0 + "porcentaje_negativo": 25.0 }, "framework_count": 5, "total_menciones": 40 diff --git a/frontend/assets/data/reddit_temas_emergentes.csv b/frontend/assets/data/reddit_temas_emergentes.csv index 362ebcb..36a55de 100644 --- a/frontend/assets/data/reddit_temas_emergentes.csv +++ b/frontend/assets/data/reddit_temas_emergentes.csv @@ -1,11 +1,11 @@ tema,menciones -IA/Machine Learning,139 -Performance,50 -Cloud,36 -Seguridad,36 -Testing,31 -DevOps,25 -Python,20 -TypeScript,17 -Microservicios,11 -Web3/Blockchain,6 +IA/Machine Learning,141 +Cloud,38 +Performance,38 +Seguridad,28 +DevOps,27 +Testing,27 +Python,19 +TypeScript,18 +Microservicios,5 +Web3/Blockchain,4 diff --git a/frontend/assets/data/reddit_temas_history.json b/frontend/assets/data/reddit_temas_history.json index bf78ac6..bff6bbf 100644 --- a/frontend/assets/data/reddit_temas_history.json +++ b/frontend/assets/data/reddit_temas_history.json @@ -1,119 +1,119 @@ { - "generated_at_utc": "2026-05-04T04:26:35Z", + "generated_at_utc": "2026-05-11T04:32:00Z", "dataset": "reddit_temas_emergentes", "source_mode": "history", - "snapshot_count": 6, - "latest_snapshot_date": "2026-05-04", - "previous_snapshot_date": "2026-04-27", + "snapshot_count": 7, + "latest_snapshot_date": "2026-05-11", + "previous_snapshot_date": "2026-05-04", "topic_count": 10, "summary": { "leader_topic": { "tema": "IA/Machine Learning", - "menciones": 139, - "menciones_previas": 130, - "delta_menciones": 9, - "growth_pct": 6.92, + "menciones": 141, + "menciones_previas": 139, + "delta_menciones": 2, + "growth_pct": 1.44, "trend_direction": "creciendo" }, "highest_growth_topic": { "tema": "IA/Machine Learning", - "menciones": 139, - "menciones_previas": 130, - "delta_menciones": 9, - "growth_pct": 6.92, + "menciones": 141, + "menciones_previas": 139, + "delta_menciones": 2, + "growth_pct": 1.44, "trend_direction": "creciendo" }, "largest_drop_topic": { "tema": "Performance", - "menciones": 50, - "menciones_previas": 53, - "delta_menciones": -3, - "growth_pct": -5.66, + "menciones": 38, + "menciones_previas": 50, + "delta_menciones": -12, + "growth_pct": -24.0, "trend_direction": "cayendo" }, - "total_menciones": 371, + "total_menciones": 345, "topic_count": 10 }, "latest_topics": [ { "tema": "IA/Machine Learning", - "menciones": 139, - "menciones_previas": 130, - "delta_menciones": 9, - "growth_pct": 6.92, + "menciones": 141, + "menciones_previas": 139, + "delta_menciones": 2, + "growth_pct": 1.44, + "trend_direction": "creciendo" + }, + { + "tema": "Cloud", + "menciones": 38, + "menciones_previas": 36, + "delta_menciones": 2, + "growth_pct": 5.56, "trend_direction": "creciendo" }, { "tema": "Performance", - "menciones": 50, - "menciones_previas": 53, - "delta_menciones": -3, - "growth_pct": -5.66, + "menciones": 38, + "menciones_previas": 50, + "delta_menciones": -12, + "growth_pct": -24.0, "trend_direction": "cayendo" }, { - "tema": "Cloud", - "menciones": 36, - "menciones_previas": 30, - "delta_menciones": 6, - "growth_pct": 20.0, - "trend_direction": "creciendo" + "tema": "Seguridad", + "menciones": 28, + "menciones_previas": 36, + "delta_menciones": -8, + "growth_pct": -22.22, + "trend_direction": "cayendo" }, { - "tema": "Seguridad", - "menciones": 36, - "menciones_previas": 34, + "tema": "DevOps", + "menciones": 27, + "menciones_previas": 25, "delta_menciones": 2, - "growth_pct": 5.88, + "growth_pct": 8.0, "trend_direction": "creciendo" }, { "tema": "Testing", - "menciones": 31, - "menciones_previas": 32, - "delta_menciones": -1, - "growth_pct": -3.12, + "menciones": 27, + "menciones_previas": 31, + "delta_menciones": -4, + "growth_pct": -12.9, "trend_direction": "cayendo" }, - { - "tema": "DevOps", - "menciones": 25, - "menciones_previas": 25, - "delta_menciones": 0, - "growth_pct": 0.0, - "trend_direction": "estable" - }, { "tema": "Python", - "menciones": 20, - "menciones_previas": 23, - "delta_menciones": -3, - "growth_pct": -13.04, + "menciones": 19, + "menciones_previas": 20, + "delta_menciones": -1, + "growth_pct": -5.0, "trend_direction": "cayendo" }, { "tema": "TypeScript", - "menciones": 17, - "menciones_previas": 20, - "delta_menciones": -3, - "growth_pct": -15.0, - "trend_direction": "cayendo" + "menciones": 18, + "menciones_previas": 17, + "delta_menciones": 1, + "growth_pct": 5.88, + "trend_direction": "creciendo" }, { "tema": "Microservicios", - "menciones": 11, - "menciones_previas": 13, - "delta_menciones": -2, - "growth_pct": -15.38, + "menciones": 5, + "menciones_previas": 11, + "delta_menciones": -6, + "growth_pct": -54.55, "trend_direction": "cayendo" }, { "tema": "Web3/Blockchain", - "menciones": 6, + "menciones": 4, "menciones_previas": 6, - "delta_menciones": 0, - "growth_pct": 0.0, - "trend_direction": "estable" + "delta_menciones": -2, + "growth_pct": -33.33, + "trend_direction": "cayendo" } ], "snapshots": [ @@ -470,6 +470,65 @@ "participacion_pct": 1.62 } ] + }, + { + "date": "2026-05-11", + "path": "datos/history/reddit_temas/year=2026/month=05/day=11/reddit_temas_emergentes.csv", + "source_type": "history", + "row_count": 10, + "total_menciones": 345, + "top_topics": [ + { + "tema": "IA/Machine Learning", + "menciones": 141, + "participacion_pct": 40.87 + }, + { + "tema": "Cloud", + "menciones": 38, + "participacion_pct": 11.01 + }, + { + "tema": "Performance", + "menciones": 38, + "participacion_pct": 11.01 + }, + { + "tema": "Seguridad", + "menciones": 28, + "participacion_pct": 8.12 + }, + { + "tema": "DevOps", + "menciones": 27, + "participacion_pct": 7.83 + }, + { + "tema": "Testing", + "menciones": 27, + "participacion_pct": 7.83 + }, + { + "tema": "Python", + "menciones": 19, + "participacion_pct": 5.51 + }, + { + "tema": "TypeScript", + "menciones": 18, + "participacion_pct": 5.22 + }, + { + "tema": "Microservicios", + "menciones": 5, + "participacion_pct": 1.45 + }, + { + "tema": "Web3/Blockchain", + "menciones": 4, + "participacion_pct": 1.16 + } + ] } ], "series": [ @@ -505,76 +564,91 @@ "date": "2026-05-04", "menciones": 139, "participacion_pct": 37.47 + }, + { + "date": "2026-05-11", + "menciones": 141, + "participacion_pct": 40.87 } ] }, { - "tema": "Performance", + "tema": "Cloud", "points": [ { "date": "2026-03-30", - "menciones": 43, - "participacion_pct": 11.5 + "menciones": 27, + "participacion_pct": 7.22 }, { "date": "2026-04-06", - "menciones": 50, - "participacion_pct": 14.01 + "menciones": 31, + "participacion_pct": 8.68 }, { "date": "2026-04-13", - "menciones": 58, - "participacion_pct": 14.25 + "menciones": 41, + "participacion_pct": 10.07 }, { "date": "2026-04-20", - "menciones": 56, - "participacion_pct": 13.83 + "menciones": 46, + "participacion_pct": 11.36 }, { "date": "2026-04-27", - "menciones": 53, - "participacion_pct": 14.48 + "menciones": 30, + "participacion_pct": 8.2 }, { "date": "2026-05-04", - "menciones": 50, - "participacion_pct": 13.48 + "menciones": 36, + "participacion_pct": 9.7 + }, + { + "date": "2026-05-11", + "menciones": 38, + "participacion_pct": 11.01 } ] }, { - "tema": "Cloud", + "tema": "Performance", "points": [ { "date": "2026-03-30", - "menciones": 27, - "participacion_pct": 7.22 + "menciones": 43, + "participacion_pct": 11.5 }, { "date": "2026-04-06", - "menciones": 31, - "participacion_pct": 8.68 + "menciones": 50, + "participacion_pct": 14.01 }, { "date": "2026-04-13", - "menciones": 41, - "participacion_pct": 10.07 + "menciones": 58, + "participacion_pct": 14.25 }, { "date": "2026-04-20", - "menciones": 46, - "participacion_pct": 11.36 + "menciones": 56, + "participacion_pct": 13.83 }, { "date": "2026-04-27", - "menciones": 30, - "participacion_pct": 8.2 + "menciones": 53, + "participacion_pct": 14.48 }, { "date": "2026-05-04", - "menciones": 36, - "participacion_pct": 9.7 + "menciones": 50, + "participacion_pct": 13.48 + }, + { + "date": "2026-05-11", + "menciones": 38, + "participacion_pct": 11.01 } ] }, @@ -610,76 +684,91 @@ "date": "2026-05-04", "menciones": 36, "participacion_pct": 9.7 + }, + { + "date": "2026-05-11", + "menciones": 28, + "participacion_pct": 8.12 } ] }, { - "tema": "Testing", + "tema": "DevOps", "points": [ { "date": "2026-03-30", - "menciones": 16, - "participacion_pct": 4.28 + "menciones": 36, + "participacion_pct": 9.63 }, { "date": "2026-04-06", - "menciones": 21, - "participacion_pct": 5.88 + "menciones": 33, + "participacion_pct": 9.24 }, { "date": "2026-04-13", - "menciones": 30, - "participacion_pct": 7.37 + "menciones": 39, + "participacion_pct": 9.58 }, { "date": "2026-04-20", - "menciones": 31, - "participacion_pct": 7.65 + "menciones": 36, + "participacion_pct": 8.89 }, { "date": "2026-04-27", - "menciones": 32, - "participacion_pct": 8.74 + "menciones": 25, + "participacion_pct": 6.83 }, { "date": "2026-05-04", - "menciones": 31, - "participacion_pct": 8.36 + "menciones": 25, + "participacion_pct": 6.74 + }, + { + "date": "2026-05-11", + "menciones": 27, + "participacion_pct": 7.83 } ] }, { - "tema": "DevOps", + "tema": "Testing", "points": [ { "date": "2026-03-30", - "menciones": 36, - "participacion_pct": 9.63 + "menciones": 16, + "participacion_pct": 4.28 }, { "date": "2026-04-06", - "menciones": 33, - "participacion_pct": 9.24 + "menciones": 21, + "participacion_pct": 5.88 }, { "date": "2026-04-13", - "menciones": 39, - "participacion_pct": 9.58 + "menciones": 30, + "participacion_pct": 7.37 }, { "date": "2026-04-20", - "menciones": 36, - "participacion_pct": 8.89 + "menciones": 31, + "participacion_pct": 7.65 }, { "date": "2026-04-27", - "menciones": 25, - "participacion_pct": 6.83 + "menciones": 32, + "participacion_pct": 8.74 }, { "date": "2026-05-04", - "menciones": 25, - "participacion_pct": 6.74 + "menciones": 31, + "participacion_pct": 8.36 + }, + { + "date": "2026-05-11", + "menciones": 27, + "participacion_pct": 7.83 } ] }, @@ -715,6 +804,11 @@ "date": "2026-05-04", "menciones": 20, "participacion_pct": 5.39 + }, + { + "date": "2026-05-11", + "menciones": 19, + "participacion_pct": 5.51 } ] }, @@ -750,6 +844,11 @@ "date": "2026-05-04", "menciones": 17, "participacion_pct": 4.58 + }, + { + "date": "2026-05-11", + "menciones": 18, + "participacion_pct": 5.22 } ] }, @@ -785,6 +884,11 @@ "date": "2026-05-04", "menciones": 11, "participacion_pct": 2.96 + }, + { + "date": "2026-05-11", + "menciones": 5, + "participacion_pct": 1.45 } ] }, @@ -820,6 +924,11 @@ "date": "2026-05-04", "menciones": 6, "participacion_pct": 1.62 + }, + { + "date": "2026-05-11", + "menciones": 4, + "participacion_pct": 1.16 } ] }