{"$schema":"https://ejfox.com/schema/page-twin@1.json","kind":"blog_tag","url":"https://ejfox.com/blog/tag/data","json_url":"https://ejfox.com/blog/tag/data.json","generator":"ejfox.com/json-twin@1","data":{"tag":"data","count":14,"posts":[{"slug":"2020/things-ive-learned-about-elections","title":"Things I've learned about elections","date":"2020-02-09T03:19:38.000Z","type":"words","hidden":false,"dek":"In which we explore the knotted beauty of American democracy","modified":"2024-09-23T16:13:21.000Z","tags":["elections","politics","data","journalism","media","research"],"toc":[{"text":"Things I've learned about elections","slug":"things-ive-learned-about-elections","level":"h2","children":[{"text":"Edge cases","slug":"edge-cases","level":"h3","children":[]},{"text":"Races","slug":"races","level":"h3","children":[]},{"text":"Voting","slug":"voting","level":"h3","children":[]},{"text":"Reporting units","slug":"reporting-units","level":"h3","children":[]},{"text":"Election data","slug":"election-data","level":"h3","children":[]},{"text":"Primary elections","slug":"primary-elections","level":"h3","children":[]},{"text":"Voting machines","slug":"voting-machines","level":"h3","children":[]},{"text":"Coverage of elections","slug":"coverage-of-elections","level":"h3","children":[]},{"text":"Why do we have elections on Tuesdays?","slug":"why-do-we-have-elections-on-tuesdays","level":"h3","children":[]},{"text":"Resources","slug":"resources","level":"h3","children":[]}]}],"metadata":{"dek":"In which we explore the knotted beauty of American democracy","type":"words","hidden":false,"inprogress":true,"date":"2020-02-09T03:19:38.000Z","modified":"2024-09-23T16:13:21.000Z","tags":["elections","politics","data","journalism","media","research"],"words":2369,"images":1,"imageDetails":{"total":1,"cloudinary":0,"withDimensions":0},"links":71,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"Things I've learned about elections","slug":"things-ive-learned-about-elections","level":"h2","children":[{"text":"Edge cases","slug":"edge-cases","level":"h3","children":[]},{"text":"Races","slug":"races","level":"h3","children":[]},{"text":"Voting","slug":"voting","level":"h3","children":[]},{"text":"Reporting units","slug":"reporting-units","level":"h3","children":[]},{"text":"Election data","slug":"election-data","level":"h3","children":[]},{"text":"Primary elections","slug":"primary-elections","level":"h3","children":[]},{"text":"Voting machines","slug":"voting-machines","level":"h3","children":[]},{"text":"Coverage of elections","slug":"coverage-of-elections","level":"h3","children":[]},{"text":"Why do we have elections on Tuesdays?","slug":"why-do-we-have-elections-on-tuesdays","level":"h3","children":[]},{"text":"Resources","slug":"resources","level":"h3","children":[]}]}],"slug":"2020/things-ive-learned-about-elections"}},{"slug":"2021/lack-of-data","title":"The Lack of Data","date":"2021-05-17T08:00:10.000Z","type":"words","hidden":false,"dek":"An exploration of what we choose to track, and what we don't – and what that means if we want to make the world a better place","modified":"2024-09-27T17:44:44.000Z","tags":["data","datajournalism","dataviz","lackofdata","police","america"],"toc":[{"text":"The Lack of Data","slug":"the-lack-of-data","level":"h2","children":[]}],"metadata":{"date":"2021-05-17T08:00:10.000Z","type":"words","hidden":false,"inprogress":true,"dek":"An exploration of what we choose to track, and what we don't – and what that means if we want to make the world a better place","modified":"2024-09-27T17:44:44.000Z","tags":["data","datajournalism","dataviz","lackofdata","police","america"],"words":602,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":2,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"The Lack of Data","slug":"the-lack-of-data","level":"h2","children":[]}],"slug":"2021/lack-of-data"}},{"slug":"2021/nypd-ccrb-complaint-clusters","title":"Finding Clusters of NYPD Officers In CCRB Complaint Data","date":"2021-06-11T08:00:17.000Z","type":"words","hidden":false,"dek":"In which various tools and methods are explored for analyzing data that describes a network of complaints against NYPD officers (or any other PD with similar public data)","modified":"2024-09-23T16:13:24.000Z","tags":["data","nypd","visualization","network"],"toc":[{"text":"Finding Clusters of NYPD Officers In CCRB Complaint Data","slug":"finding-clusters-of-nypd-officers-in-ccrb-complaint-data","level":"h2","children":[{"text":"Why?","slug":"why","level":"h3","children":[]},{"text":"The Dataset","slug":"the-dataset","level":"h3","children":[]},{"text":"Analysis","slug":"analysis","level":"h3","children":[]},{"text":"Analyzing our data with Datasette / SQLite","slug":"analyzing-our-data-with-datasette--sqlite","level":"h3","children":[]},{"text":"Analyzing our data with Neo4J","slug":"analyzing-our-data-with-neo4j","level":"h3","children":[]},{"text":"Analyzing our data with Gephi","slug":"analyzing-our-data-with-gephi","level":"h3","children":[]},{"text":"Potential Next Steps","slug":"potential-next-steps","level":"h3","children":[]},{"text":"Flotsam & Jetsam","slug":"flotsam--jetsam","level":"h3","children":[]},{"text":"Hire me to do work like this","slug":"hire-me-to-do-work-like-this","level":"h3","children":[]}]}],"metadata":{"date":"2021-06-11T08:00:17.000Z","type":"words","hidden":false,"inprogress":false,"dek":"In which various tools and methods are explored for analyzing data that describes a network of complaints against NYPD officers (or any other PD with similar public data)","modified":"2024-09-23T16:13:24.000Z","tags":["data","nypd","visualization","network"],"words":3595,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":16,"codeBlocks":24,"headers":{"h2":1},"toc":[{"text":"Finding Clusters of NYPD Officers In CCRB Complaint Data","slug":"finding-clusters-of-nypd-officers-in-ccrb-complaint-data","level":"h2","children":[{"text":"Why?","slug":"why","level":"h3","children":[]},{"text":"The Dataset","slug":"the-dataset","level":"h3","children":[]},{"text":"Analysis","slug":"analysis","level":"h3","children":[]},{"text":"Analyzing our data with Datasette / SQLite","slug":"analyzing-our-data-with-datasette--sqlite","level":"h3","children":[]},{"text":"Analyzing our data with Neo4J","slug":"analyzing-our-data-with-neo4j","level":"h3","children":[]},{"text":"Analyzing our data with Gephi","slug":"analyzing-our-data-with-gephi","level":"h3","children":[]},{"text":"Potential Next Steps","slug":"potential-next-steps","level":"h3","children":[]},{"text":"Flotsam & Jetsam","slug":"flotsam--jetsam","level":"h3","children":[]},{"text":"Hire me to do work like this","slug":"hire-me-to-do-work-like-this","level":"h3","children":[]}]}],"slug":"2021/nypd-ccrb-complaint-clusters"}},{"slug":"2023/starting-a-studio-introducing-room-302","title":"Introducing room302.studio","date":"2023-04-10T05:00:00.000Z","type":"post","dek":"In which the author proudly presents his new venture: Room 302 Studio, an eclectic gathering of talent devoted to fostering joy-driven development","modified":"2024-09-20T04:21:55.000Z","tags":["data"],"toc":[{"text":"Introducing room302.studio","slug":"introducing-room302studio","level":"h2","children":[{"text":"Hire us","slug":"hire-us","level":"h3","children":[]},{"text":"Workshops and Events","slug":"workshops-and-events","level":"h3","children":[]},{"text":"Membership Options","slug":"membership-options","level":"h3","children":[]}]}],"metadata":{"dek":"In which the author proudly presents his new venture: Room 302 Studio, an eclectic gathering of talent devoted to fostering joy-driven development","date":"2023-04-10T05:00:00.000Z","modified":"2024-09-20T04:21:55.000Z","tags":["data"],"words":588,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":2,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"Introducing room302.studio","slug":"introducing-room302studio","level":"h2","children":[{"text":"Hire us","slug":"hire-us","level":"h3","children":[]},{"text":"Workshops and Events","slug":"workshops-and-events","level":"h3","children":[]},{"text":"Membership Options","slug":"membership-options","level":"h3","children":[]}]}],"type":"post","slug":"2023/starting-a-studio-introducing-room-302"}},{"slug":"2025/owning-my-cloudinary-photos","title":"Panic-Driven Development: Building A Tool To Back Up My Photos From Cloudinary","date":"2025-08-28T20:05:43.000Z","type":"post","dek":"In which the author rescues his most precious digital media from a server that he does not own or control","modified":"2025-08-28T20:12:25.000Z","tags":["data","photos","tauri","photography","personal"],"toc":[{"text":"Panic-Driven Development: Building A Tool To Back Up My Photos From Cloudinary","slug":"panic-driven-development-building-a-tool-to-back-up-my-photos-from-cloudinary","level":"h2","children":[{"text":"The Stack","slug":"the-stack","level":"h3","children":[]},{"text":"Racing the Clock (And Rate Limits)","slug":"racing-the-clock-and-rate-limits","level":"h3","children":[]},{"text":"Owning my own data","slug":"owning-my-own-data","level":"h3","children":[]},{"text":"The Aftermath: A Digital Hymn","slug":"the-aftermath-a-digital-hymn","level":"h3","children":[]}]}],"metadata":{"dek":"In which the author rescues his most precious digital media from a server that he does not own or control","inprogress":true,"tags":["data","photos","tauri","photography","personal"],"date":"2025-08-28T20:05:43.000Z","modified":"2025-08-28T20:12:25.000Z","words":610,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{"h2":1},"toc":[{"text":"Panic-Driven Development: Building A Tool To Back Up My Photos From Cloudinary","slug":"panic-driven-development-building-a-tool-to-back-up-my-photos-from-cloudinary","level":"h2","children":[{"text":"The Stack","slug":"the-stack","level":"h3","children":[]},{"text":"Racing the Clock (And Rate Limits)","slug":"racing-the-clock-and-rate-limits","level":"h3","children":[]},{"text":"Owning my own data","slug":"owning-my-own-data","level":"h3","children":[]},{"text":"The Aftermath: A Digital Hymn","slug":"the-aftermath-a-digital-hymn","level":"h3","children":[]}]}],"type":"post","slug":"2025/owning-my-cloudinary-photos"}},{"slug":"2025/paramilitary-telegram-leaks-001","title":"Processing Telegram Leaks for Fast Web Visualization","date":"2025-03-09T17:49:01.000Z","type":"post","dek":"In which I describe my workflow for transforming a Telegram database dump into a web-friendly format for analysis and visualization","modified":"2025-03-16T01:25:05.000Z","tags":["data","dataviz","journalism","politics"],"toc":[{"text":"Paramilitary Telegram Leaks: From Dump To Data","slug":"paramilitary-telegram-leaks-from-dump-to-data","level":"h2","children":[]},{"text":"From SQLite to Parquet: Processing Telegram Leaks for Fast Web Visualization","slug":"from-sqlite-to-parquet-processing-telegram-leaks-for-fast-web-visualization","level":"h2","children":[{"text":"The Challenge","slug":"the-challenge","level":"h3","children":[]},{"text":"The Workflow","slug":"the-workflow","level":"h3","children":[]},{"text":"The Frontend","slug":"the-frontend","level":"h3","children":[]},{"text":"Data Exploration Examples","slug":"data-exploration-examples","level":"h3","children":[]},{"text":"Building Custom Visualizations","slug":"building-custom-visualizations","level":"h3","children":[]}]}],"metadata":{"date":"2025-03-09T17:49:01.000Z","modified":"2025-03-16T01:25:05.000Z","title":"Processing Telegram Leaks for Fast Web Visualization","dek":"In which I describe my workflow for transforming a Telegram database dump into a web-friendly format for analysis and visualization","inprogress":true,"tags":["data","dataviz","journalism","politics"],"words":782,"images":6,"imageDetails":{"total":6,"cloudinary":6,"withDimensions":0},"links":21,"codeBlocks":5,"headers":{"h2":2},"toc":[{"text":"Paramilitary Telegram Leaks: From Dump To Data","slug":"paramilitary-telegram-leaks-from-dump-to-data","level":"h2","children":[]},{"text":"From SQLite to Parquet: Processing Telegram Leaks for Fast Web Visualization","slug":"from-sqlite-to-parquet-processing-telegram-leaks-for-fast-web-visualization","level":"h2","children":[{"text":"The Challenge","slug":"the-challenge","level":"h3","children":[]},{"text":"The Workflow","slug":"the-workflow","level":"h3","children":[]},{"text":"The Frontend","slug":"the-frontend","level":"h3","children":[]},{"text":"Data Exploration Examples","slug":"data-exploration-examples","level":"h3","children":[]},{"text":"Building Custom Visualizations","slug":"building-custom-visualizations","level":"h3","children":[]}]}],"type":"post","slug":"2025/paramilitary-telegram-leaks-001"}},{"slug":"projects/ccrb-clusters","title":"Clusters of NYPD Misconduct","date":"2021-06-15T04:00:00.000Z","type":"post","modified":"2025-08-26T19:52:56.000Z","tags":["data","nypd","journalism","database"],"toc":[],"metadata":{"title":"Clusters of NYPD Misconduct","date":"2021-06-15T04:00:00.000Z","modified":"2025-08-26T19:52:56.000Z","url":"https://gothamist.com/news/mapping-clusters-nypd-officers-repeatedly-accused-misconduct","tech":["Neo4j","SQLite","Gephi","Network Analysis","Cypher"],"featured":true,"state":"deployed","aiInvolvement":"human-only","context":"client","tags":["data","nypd","journalism","database"],"words":114,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":2,"codeBlocks":0,"headers":{},"toc":[],"type":"post","slug":"projects/ccrb-clusters"}},{"slug":"projects/dataproofer","title":"Dataproofer","date":"2015-11-03T05:00:00.000Z","type":"post","modified":"2025-08-26T19:53:33.000Z","tags":["data","javascript","tool","journalism"],"toc":[],"metadata":{"title":"Dataproofer","date":"2015-11-03T05:00:00.000Z","modified":"2025-08-26T19:53:33.000Z","url":"https://github.com/dataproofer/Dataproofer","tech":["JavaScript","Electron","Data Quality","CSV"],"featured":false,"state":"deployed","aiInvolvement":"human-only","context":"collaborative","tags":["data","javascript","tool","journalism"],"words":157,"images":1,"imageDetails":{"total":1,"cloudinary":1,"withDimensions":0},"links":3,"codeBlocks":1,"headers":{},"toc":[],"type":"post","slug":"projects/dataproofer"}},{"slug":"reading/Bergstrom-West-Calling Bullshit","title":"Calling Bullshit","type":"post","tags":["book","data","research"],"toc":[{"text":"Calling Bullshit","slug":"calling-bullshit","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"metadata":{"kindle-sync":{"bookId":"59385","title":"Calling Bullshit: The Art of Skepticism in a Data-Driven World","author":"Carl T. Bergstrom and Jevin D. West","asin":"B08191DV5T","lastAnnotatedDate":"2021-12-03","bookImageUrl":"https://m.media-amazon.com/images/I/81Dd92++GgS._SY160.jpg","highlightsCount":1},"tags":["book","data","research"],"words":71,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{"h1":1},"toc":[{"text":"Calling Bullshit","slug":"calling-bullshit","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"type":"post","slug":"reading/Bergstrom-West-Calling Bullshit"}},{"slug":"reading/D'Ignazio-Klein-Data Feminism","title":"Data Feminism","type":"post","tags":["data","activism"],"toc":[{"text":"Data Feminism","slug":"data-feminism","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"metadata":{"tags":["data","activism"],"kindle-sync":{"bookId":"47184","title":"Data Feminism (Strong Ideas)","author":"Catherine D'Ignazio and Lauren F. Klein","asin":"B08BT3SY5N","lastAnnotatedDate":"2021-05-25","bookImageUrl":"https://m.media-amazon.com/images/I/81vmeQxjkML._SY160.jpg","highlightsCount":5},"words":244,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{"h1":1},"toc":[{"text":"Data Feminism","slug":"data-feminism","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"type":"post","slug":"reading/D'Ignazio-Klein-Data Feminism"}},{"slug":"reading/Friedman-Ultimate Price","title":"Ultimate Price","type":"post","tags":["book","politics","culture","data"],"toc":[{"text":"Ultimate Price","slug":"ultimate-price","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"metadata":{"kindle-sync":{"bookId":"12125","title":"Ultimate Price: The Value We Place on Life","author":"Howard Steven Friedman","asin":"B084WQSDD8","lastAnnotatedDate":"2021-02-07","bookImageUrl":"https://m.media-amazon.com/images/I/81gWoGF2z6L._SY160.jpg","highlightsCount":6},"tags":["book","politics","culture","data"],"words":351,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{"h1":1},"toc":[{"text":"Ultimate Price","slug":"ultimate-price","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"type":"post","slug":"reading/Friedman-Ultimate Price"}},{"slug":"reading/Yau-Visualize This","title":"Visualize This","type":"post","tags":["dataviz","data"],"toc":[{"text":"Visualize This","slug":"visualize-this","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"metadata":{"tags":["dataviz","data"],"kindle-sync":{"bookId":"431","title":"Visualize This: The FlowingData Guide to Design, Visualization, and Statistics","author":"Nathan Yau","asin":"B005CCT19M","lastAnnotatedDate":"2011-07-24","bookImageUrl":"https://m.media-amazon.com/images/I/511lwSnx7IL._SY160.jpg","highlightsCount":2},"words":123,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":1,"codeBlocks":0,"headers":{"h1":1},"toc":[{"text":"Visualize This","slug":"visualize-this","level":"h1","children":[{"text":"Highlights","slug":"highlights","level":"h2","children":[]},{"text":"Metadata","slug":"metadata","level":"h2","children":[]}]}],"type":"post","slug":"reading/Yau-Visualize This"}},{"slug":"robots/someday/hudson-valley-maps","title":"Hudson Valley Systems & Trail Mapping Project","date":"2024-11-27T16:23:08.000Z","type":"post","modified":"2024-12-31T00:44:34.000Z","tags":["outdoors","data","amateurradio"],"toc":[{"text":"Hudson Valley Systems & Trail Mapping Project","slug":"hudson-valley-systems--trail-mapping-project","level":"h2","children":[{"text":"1. Scoping & Requirements Gathering","slug":"1-scoping--requirements-gathering","level":"h3","children":[]},{"text":"2. Data Acquisition & Processing","slug":"2-data-acquisition--processing","level":"h3","children":[]},{"text":"3. Cartographic Design & Layout","slug":"3-cartographic-design--layout","level":"h3","children":[]},{"text":"4. Review & Refinement","slug":"4-review--refinement","level":"h3","children":[]},{"text":"5. Production & Distribution","slug":"5-production--distribution","level":"h3","children":[]},{"text":"Hudson Valley Radio & Trail Mapping Project","slug":"hudson-valley-radio--trail-mapping-project","level":"h3","children":[]},{"text":"Forestpunk OSM Contribution: Mapping for Mutual Aid","slug":"forestpunk-osm-contribution-mapping-for-mutual-aid","level":"h3","children":[]},{"text":"The Forestpunk Approach to OSM","slug":"the-forestpunk-approach-to-osm","level":"h3","children":[]},{"text":"How To Start Contributing","slug":"how-to-start-contributing","level":"h3","children":[]},{"text":"Contributing With Purpose","slug":"contributing-with-purpose","level":"h3","children":[]}]}],"metadata":{"date":"2024-11-27T16:23:08.000Z","modified":"2024-12-31T00:44:34.000Z","share":true,"tags":["outdoors","data","amateurradio"],"words":2103,"images":0,"imageDetails":{"total":0,"cloudinary":0,"withDimensions":0},"links":1,"codeBlocks":4,"headers":{"h2":1},"toc":[{"text":"Hudson Valley Systems & Trail Mapping Project","slug":"hudson-valley-systems--trail-mapping-project","level":"h2","children":[{"text":"1. Scoping & Requirements Gathering","slug":"1-scoping--requirements-gathering","level":"h3","children":[]},{"text":"2. Data Acquisition & Processing","slug":"2-data-acquisition--processing","level":"h3","children":[]},{"text":"3. Cartographic Design & Layout","slug":"3-cartographic-design--layout","level":"h3","children":[]},{"text":"4. Review & Refinement","slug":"4-review--refinement","level":"h3","children":[]},{"text":"5. Production & Distribution","slug":"5-production--distribution","level":"h3","children":[]},{"text":"Hudson Valley Radio & Trail Mapping Project","slug":"hudson-valley-radio--trail-mapping-project","level":"h3","children":[]},{"text":"Forestpunk OSM Contribution: Mapping for Mutual Aid","slug":"forestpunk-osm-contribution-mapping-for-mutual-aid","level":"h3","children":[]},{"text":"The Forestpunk Approach to OSM","slug":"the-forestpunk-approach-to-osm","level":"h3","children":[]},{"text":"How To Start Contributing","slug":"how-to-start-contributing","level":"h3","children":[]},{"text":"Contributing With Purpose","slug":"contributing-with-purpose","level":"h3","children":[]}]}],"type":"post","slug":"robots/someday/hudson-valley-maps"}},{"slug":"week-notes/2024-02","title":"Overview of the Week","date":"2024-01-08T05:00:00.000Z","type":"post","dek":"In which the author navigates the complexities of balancing project management, coding challenges, and personal AI development while exploring new ways to showcase the Hudson Valley and enhance personal organization.","modified":"2024-10-14T23:52:43.000Z","tags":["weekly-notes","reflections","progress","coding","project","webdesign","vue","data","visualization","design"],"toc":[{"text":"Overview of the Week","slug":"overview-of-the-week","level":"h2","children":[]},{"text":"Projects Worked On","slug":"projects-worked-on","level":"h2","children":[{"text":"Setting the studio up with a CRM","slug":"setting-the-studio-up-with-a-crm","level":"h3","children":[]},{"text":"Hudson Valley Guide: knowhv.com","slug":"hudson-valley-guide-knowhvcom","level":"h3","children":[]},{"text":"Refactoring Electology","slug":"refactoring-electology","level":"h3","children":[]},{"text":"Redesigning my Scrapbook","slug":"redesigning-my-scrapbook","level":"h3","children":[]},{"text":"Lil Fox","slug":"lil-fox","level":"h3","children":[]},{"text":"Experimenting with Tres js","slug":"experimenting-with-tres-js","level":"h3","children":[]}]},{"text":"📘 Learning & Development","slug":"-learning--development","level":"h2","children":[]}],"metadata":{"tags":["weekly-notes","reflections","progress","coding","project","webdesign","vue","data","visualization","design"],"date":"2024-01-08T05:00:00.000Z","modified":"2024-10-14T23:52:43.000Z","dek":"In which the author navigates the complexities of balancing project management, coding challenges, and personal AI development while exploring new ways to showcase the Hudson Valley and enhance personal organization.","words":904,"images":1,"imageDetails":{"total":1,"cloudinary":1,"withDimensions":0},"links":2,"codeBlocks":0,"headers":{"h2":3},"toc":[{"text":"Overview of the Week","slug":"overview-of-the-week","level":"h2","children":[]},{"text":"Projects Worked On","slug":"projects-worked-on","level":"h2","children":[{"text":"Setting the studio up with a CRM","slug":"setting-the-studio-up-with-a-crm","level":"h3","children":[]},{"text":"Hudson Valley Guide: knowhv.com","slug":"hudson-valley-guide-knowhvcom","level":"h3","children":[]},{"text":"Refactoring Electology","slug":"refactoring-electology","level":"h3","children":[]},{"text":"Redesigning my Scrapbook","slug":"redesigning-my-scrapbook","level":"h3","children":[]},{"text":"Lil Fox","slug":"lil-fox","level":"h3","children":[]},{"text":"Experimenting with Tres js","slug":"experimenting-with-tres-js","level":"h3","children":[]}]},{"text":"📘 Learning & Development","slug":"-learning--development","level":"h2","children":[]}],"type":"post","slug":"week-notes/2024-02"}}]},"_links":{"self":"https://ejfox.com/blog/tag/data.json","html":"https://ejfox.com/blog/tag/data","tag_page":"/tag/data.json"}}