This repository has been archived by the owner on Jun 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
round1.json
1 lines (1 loc) · 125 KB
/
round1.json
1
{"1522980920004804608": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 157, "end": 180, "url": "https://t.co/ttbaX4E5Kj", "expanded_url": "http://keymapdb.com", "display_url": "keymapdb.com"}, {"start": 184, "end": 207, "url": "https://t.co/KTR5D6YEv1", "expanded_url": "https://github.com/precondition/keymapdb", "display_url": "github.com/precondition/k\u2026"}], "day_list": [{"day": "day 94", "start": 0, "end": 6}]}, "id": "1522980920004804608", "public_metrics": {"retweet_count": 7, "reply_count": 0, "like_count": 8, "quote_count": 0}, "text": "day 94 of #100DaysOfCode\n\n- Changed the implementation of commit_new_tweets.py to support multiple files in one commit.\n- Started reading the source code of https://t.co/ttbaX4E5Kj \ud83d\udc40\n\nhttps://t.co/KTR5D6YEv1", "conversation_id": "1522980920004804608", "author_id": "2699175613", "created_at": "2022-05-07T16:45:21.000Z"}], "1522258201986490390": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 183, "end": 206, "url": "https://t.co/epISDC7mqB", "expanded_url": "https://github.com/attomos/hdoc-tracker/commit/abd2add7c65bd9763dc27eb6e0d4e3ea292ec73d", "display_url": "github.com/attomos/hdoc-t\u2026"}], "day_list": [{"day": "day 93", "start": 0, "end": 6}], "src_list": [{"src": "https://t.co/epISDC7mqB", "start": 183, "end": 206, "fixed": false}]}, "id": "1522258201986490390", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 7, "quote_count": 0}, "text": "day 93 of #100DaysOfCode\n\nAdd unit tests for the merge_tweets function.\nAlways felt great when writing a unit test to cover a bug, but found another bug from failed test cases.\n\nsrc: https://t.co/epISDC7mqB", "conversation_id": "1522258201986490390", "author_id": "2699175613", "created_at": "2022-05-05T16:53:32.000Z"}, {"entities": {"hashtags": [{"start": 152, "end": 166, "tag": "100DaysOfCode"}], "urls": [{"start": 127, "end": 150, "url": "https://t.co/g5Y1u8YyeE", "expanded_url": "https://github.com/attomos/hdoc-tracker/commit/7fc5d7e858a90026e8f99a1587cb249c34950e5a", "display_url": "github.com/attomos/hdoc-t\u2026"}], "src_list": [{"src": "https://t.co/g5Y1u8YyeE", "start": 127, "end": 150, "fixed": false}]}, "id": "1522258536423514117", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 1, "quote_count": 0}, "text": "Another bug fix for a case where there are no new tweets.\nIt should not restart and fetch all tweets from the beginning.\n\nsrc: https://t.co/g5Y1u8YyeE\n\n#100DaysOfCode", "conversation_id": "1522258201986490390", "author_id": "2699175613", "created_at": "2022-05-05T16:54:51.000Z"}], "1521872735601053696": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 253, "end": 276, "url": "https://t.co/5JjwbEyTkF", "expanded_url": "https://github.com/attomos/hdoc-tracker/commit/b09db7186b8f0b2365a08a03b3a04fcc42a8e4b5", "display_url": "github.com/attomos/hdoc-t\u2026"}], "day_list": [{"day": "day 92", "start": 0, "end": 6}], "src_list": [{"src": "https://t.co/5JjwbEyTkF", "start": 253, "end": 276, "fixed": false}]}, "id": "1521872735601053696", "public_metrics": {"retweet_count": 11, "reply_count": 1, "like_count": 9, "quote_count": 0}, "text": "day 92 of #100DaysOfCode\n\nSpent some time to fix tweets merge bug\nPreviously, I replaced the same key with new tweets.\nBecause since_id is used, some tweets were missing.\n\nNow the code is getting messy, need to add tests and refactor them soon. \ud83e\udd75\n\nsrc: https://t.co/5JjwbEyTkF", "conversation_id": "1521872735601053696", "author_id": "2699175613", "created_at": "2022-05-04T15:21:49.000Z"}], "1521775626910240768": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 218, "end": 241, "url": "https://t.co/ZRej1vQLr2", "expanded_url": "https://github.com/attomos/hdoc-tracker/commit/6deaabe4c7a135aea43bb72d990fd1c9b1a89200", "display_url": "github.com/attomos/hdoc-t\u2026"}], "day_list": [{"day": "day 91", "start": 0, "end": 6}], "src_list": [{"src": "https://t.co/ZRej1vQLr2", "start": 218, "end": 241, "fixed": false}]}, "id": "1521775626910240768", "public_metrics": {"retweet_count": 16, "reply_count": 1, "like_count": 11, "quote_count": 0}, "text": "day 91 of #100DaysOfCode\n\nworking on hdoc-tracker\n- finish a new data pipeline to fetch tweets incrementally\n- added merge logic to merge new replies for each conversation\n- added a support for round 2 and more!\n\nsrc: https://t.co/ZRej1vQLr2", "conversation_id": "1521775626910240768", "author_id": "2699175613", "created_at": "2022-05-04T08:55:57.000Z"}], "1521530908884357120": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 250, "end": 273, "url": "https://t.co/GI1bD0XtuU", "expanded_url": "https://github.com/attomos/hdoc-tracker/pull/6/commits/0e669d57716223fbc0f20b32a56a07625af2b299", "display_url": "github.com/attomos/hdoc-t\u2026"}], "day_list": [{"day": "day 90", "start": 0, "end": 6}], "src_list": [{"src": "https://t.co/GI1bD0XtuU", "start": 250, "end": 273, "fixed": false}]}, "id": "1521530908884357120", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 3, "quote_count": 0}, "text": "day 90 of #100DaysOfCode\n\nworking on hdoc-tracker\n- altered the data fetching logic to support round 2++\n\nI think I don't need to keep data in the repo anymore. Which is great.\nWrote unit tests for this change. Need 1 more hour to finish it. \ud83e\udd75\n\nsrc: https://t.co/GI1bD0XtuU", "conversation_id": "1521530908884357120", "author_id": "2699175613", "created_at": "2022-05-03T16:43:32.000Z"}], "1521142696005365762": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 273, "end": 296, "url": "https://t.co/qxmCcMlETZ", "expanded_url": "https://twitter.com/attomos/status/1521142696005365762/photo/1", "display_url": "pic.twitter.com/qxmCcMlETZ", "media_key": "3_1521142404853551104"}], "annotations": [{"start": 134, "end": 140, "probability": 0.6716, "type": "Product", "normalized_text": "Twitter"}], "day_list": [{"day": "day 89", "start": 0, "end": 6}]}, "id": "1521142696005365762", "public_metrics": {"retweet_count": 15, "reply_count": 1, "like_count": 13, "quote_count": 0}, "text": "day 89 of #100DaysOfCode\n\nworking on hdoc-tracker\n- implemented a logic to collect some metadata each time the script fetch data from Twitter, e.g. time elapsed, how many tweets were fetch (currently just print it in the stdout though)\n\n...and the pipeline is broken atm \ud83d\ude05 https://t.co/qxmCcMlETZ", "conversation_id": "1521142696005365762", "author_id": "2699175613", "created_at": "2022-05-02T15:00:54.000Z"}, {"entities": {"hashtags": [{"start": 245, "end": 259, "tag": "100DaysOfCode"}], "urls": [{"start": 98, "end": 121, "url": "https://t.co/dO5SJPXfQs", "expanded_url": "https://python-poetry.org/docs/cli/#add", "display_url": "python-poetry.org/docs/cli/#add"}, {"start": 260, "end": 283, "url": "https://t.co/aiDEYfO11i", "expanded_url": "https://twitter.com/attomos/status/1521144560612614144/photo/1", "display_url": "pic.twitter.com/aiDEYfO11i", "media_key": "3_1521143615476563970"}]}, "id": "1521144560612614144", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 2, "quote_count": 0}, "text": "fixed\n\nMaybe I should migrate this part of the project to use Poetry.\nI need something like this.\nhttps://t.co/dO5SJPXfQs\n\nAny suggestions are welcome.\nSomething that can replace pip and be able to automatically adds dependencies to some file.\n\n#100DaysOfCode https://t.co/aiDEYfO11i", "conversation_id": "1521142696005365762", "author_id": "2699175613", "created_at": "2022-05-02T15:08:19.000Z"}], "1520808552461262848": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 88", "start": 0, "end": 6}]}, "id": "1520808552461262848", "public_metrics": {"retweet_count": 8, "reply_count": 0, "like_count": 6, "quote_count": 0}, "text": "day 88 of #100DaysOfCode \n\nworking on hdoc-tracker\n- design another persistent data model to keep track of current round and fetch tweets incrementally (instead of fetch all tweets every time)\n- remove hard-coded variables in data fetching code as the 2nd round is coming soon \ud83e\udd75", "conversation_id": "1520808552461262848", "author_id": "2699175613", "created_at": "2022-05-01T16:53:08.000Z"}], "1520390320101289984": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 242, "end": 265, "url": "https://t.co/qbUZPL7rT5", "expanded_url": "http://hdoc-tracker.vercel.app", "display_url": "hdoc-tracker.vercel.app"}], "day_list": [{"day": "day 87", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/qbUZPL7rT5", "start": 242, "end": 265, "fixed": false}]}, "id": "1520390320101289984", "public_metrics": {"retweet_count": 7, "reply_count": 2, "like_count": 7, "quote_count": 0}, "text": "day 87 of #100DaysOfCode\n\nWorking on hdoc-tracker\n- use job dependency in GitHub actions to add data to Upstash\n- refactor SVG icons active state prop\n- fix a bug where activity graph is not synced with updated tweets during searching\n\ndemo: https://t.co/qbUZPL7rT5", "conversation_id": "1520390320101289984", "author_id": "2699175613", "created_at": "2022-04-30T13:11:14.000Z"}, {"entities": {"hashtags": [{"start": 66, "end": 80, "tag": "100DaysOfCode"}], "urls": [{"start": 41, "end": 64, "url": "https://t.co/tO8aiJ4jI5", "expanded_url": "https://github.com/attomos/hdoc-tracker/commit/14a99136f451cd6a149d6b67e348833175f48115", "display_url": "github.com/attomos/hdoc-t\u2026"}], "src_list": [{"src": "https://t.co/tO8aiJ4jI5", "start": 41, "end": 64, "fixed": false}]}, "id": "1520436382115655686", "public_metrics": {"retweet_count": 1, "reply_count": 1, "like_count": 4, "quote_count": 0}, "text": "Almost forgot to add the source. \ud83d\ude05\n\nsrc: https://t.co/tO8aiJ4jI5\n\n#100DaysOfCode", "conversation_id": "1520390320101289984", "author_id": "2699175613", "created_at": "2022-04-30T16:14:16.000Z"}], "1520099006549950464": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "annotations": [{"start": 93, "end": 102, "probability": 0.4663, "type": "Organization", "normalized_text": "Cloudflare"}], "day_list": [{"day": "day 86", "start": 0, "end": 6}]}, "id": "1520099006549950464", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 6, "quote_count": 0}, "text": "day 86 of #100DaysOfCode \n\nRevisit the hdoc-tracker project after a long break.\n- Working on Cloudflare Workers and use HTTP based Redis client for upstash (ioredis -> upstash-redis).\n- Also handle some state related to data fetching.", "conversation_id": "1520099006549950464", "author_id": "2699175613", "created_at": "2022-04-29T17:53:39.000Z"}], "1515007070071926796": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 85", "start": 0, "end": 6}]}, "id": "1515007070071926796", "public_metrics": {"retweet_count": 3, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "day 85 of #100DaysOfCode \n\nContinued working on my JWT debugging tool.\nPutting it all together, but ended up having a broken UI \ud83e\udd2f", "conversation_id": "1515007070071926796", "author_id": "2699175613", "created_at": "2022-04-15T16:40:07.000Z"}], "1514631549114728449": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 84", "start": 0, "end": 6}]}, "id": "1514631549114728449", "public_metrics": {"retweet_count": 12, "reply_count": 1, "like_count": 12, "quote_count": 0}, "text": "day 84 of #100DaysOfCode \n\nInstead of working on my JWT debugging tool.\nI was watching videos about state machine instead. \ud83d\ude05", "conversation_id": "1514631549114728449", "author_id": "2699175613", "created_at": "2022-04-14T15:47:56.000Z"}], "1514286675303706624": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 168, "end": 191, "url": "https://t.co/Cmc3NWW4E7", "expanded_url": "https://github.com/pmndrs/valtio", "display_url": "github.com/pmndrs/valtio"}], "day_list": [{"day": "day 83", "start": 0, "end": 6}]}, "id": "1514286675303706624", "public_metrics": {"retweet_count": 3, "reply_count": 0, "like_count": 3, "quote_count": 0}, "text": "day 83 of #100DaysOfCode \n\nContinued working on my JWT debugging tool.\nI have been thinking about the design of the app and how I should manage the app state.\n\nExplore https://t.co/Cmc3NWW4E7 a little.", "conversation_id": "1514286675303706624", "author_id": "2699175613", "created_at": "2022-04-13T16:57:32.000Z"}], "1513923110357323780": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 82", "start": 0, "end": 6}]}, "id": "1513923110357323780", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 7, "quote_count": 0}, "text": "day 82 of #100DaysOfCode \n\nContinued working on my JWT debugging tool.\nI was reading about state management and some security concerns.\nI'm definitely not going to store state in localStorage or anything that JS can access directly.\nMaybe integrate with Vault is a good start?", "conversation_id": "1513923110357323780", "author_id": "2699175613", "created_at": "2022-04-12T16:52:51.000Z"}], "1513558682533240833": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 81", "start": 0, "end": 6}]}, "id": "1513558682533240833", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 3, "quote_count": 0}, "text": "day 81 of #100DaysOfCode \n\nContinued working on my JWT debugging tool.\nAlso, try out pnpm for the first time.\n\nNot much progress, just some design in Figma and read CodeMirror documentation.", "conversation_id": "1513558682533240833", "author_id": "2699175613", "created_at": "2022-04-11T16:44:45.000Z"}], "1513140713277763588": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 181, "end": 204, "url": "https://t.co/C45r4bNDc1", "expanded_url": "https://github.com/vercel/next.js/tree/canary/examples/with-service-worker", "display_url": "github.com/vercel/next.js\u2026"}, {"start": 213, "end": 236, "url": "https://t.co/uIwAdlot6e", "expanded_url": "https://github.com/shadowwalker/next-pwa", "display_url": "github.com/shadowwalker/n\u2026"}], "annotations": [{"start": 65, "end": 74, "probability": 0.6302, "type": "Product", "normalized_text": "TypeScript"}], "day_list": [{"day": "day 80", "start": 0, "end": 6}]}, "id": "1513140713277763588", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "day 80 of #100DaysOfCode \n\nLearned about how to use workbox with TypeScript for my next project.\nIt's a JWT debugging tool that works offline.\n\nNot sure if I should start with this https://t.co/C45r4bNDc1 or this https://t.co/uIwAdlot6e", "conversation_id": "1513140713277763588", "author_id": "2699175613", "created_at": "2022-04-10T13:03:53.000Z"}], "1512824257189146627": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 108, "end": 131, "url": "https://t.co/HIucSGjsni", "expanded_url": "https://www.youtube.com/watch?v=6HNUqDL-pI8", "display_url": "youtube.com/watch?v=6HNUqD\u2026"}, {"start": 139, "end": 162, "url": "https://t.co/pE4qieZxOr", "expanded_url": "https://attomos.dev/feed.xml", "display_url": "attomos.dev/feed.xml"}], "day_list": [{"day": "day 79", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/pE4qieZxOr", "start": 139, "end": 162, "fixed": false}]}, "id": "1512824257189146627", "public_metrics": {"retweet_count": 16, "reply_count": 0, "like_count": 5, "quote_count": 0}, "text": "day 79 of #100DaysOfCode\n\n- Working on my blog (styling + atom feed)\n- Also learn about RSS from this video https://t.co/HIucSGjsni\n\ndemo: https://t.co/pE4qieZxOr", "conversation_id": "1512824257189146627", "author_id": "2699175613", "created_at": "2022-04-09T16:06:24.000Z"}], "1512473623415914497": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 251, "end": 274, "url": "https://t.co/BqUfKnSUi6", "expanded_url": "https://attomos.dev", "display_url": "attomos.dev"}], "day_list": [{"day": "day 78", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/BqUfKnSUi6", "start": 251, "end": 274, "fixed": false}]}, "id": "1512473623415914497", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 4, "quote_count": 0}, "text": "day 78 of #100DaysOfCode \n\n- Rebuilt my blog with 11ty and open-props.\n- Registered my custom domain for the first time. \ud83d\ude33\n- Enjoyed using open-props so far, esp. custom queries \ud83d\ude08\n\nNo new posts yet, just migrated old posts from GH pages there.\n\ndemo: https://t.co/BqUfKnSUi6", "conversation_id": "1512473623415914497", "author_id": "2699175613", "created_at": "2022-04-08T16:53:06.000Z"}], "1512086039317577730": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 77", "start": 0, "end": 6}]}, "id": "1512086039317577730", "public_metrics": {"retweet_count": 7, "reply_count": 1, "like_count": 10, "quote_count": 0}, "text": "day 77 of #100DaysOfCode \n\n- Design my blog from scratch and learn 11ty from 11ty Rocks!\n\nCurrently, it's built with Gatsby but I remember I had to rebuild it few times in 3 years.\nLet's see if I can use 11ty and don't have to fix the build process for 10 or even 11 years. \ud83d\ude05", "conversation_id": "1512086039317577730", "author_id": "2699175613", "created_at": "2022-04-07T15:12:59.000Z"}], "1511703716940120065": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 76", "start": 0, "end": 6}]}, "id": "1511703716940120065", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 3, "quote_count": 0}, "text": "day 76 of #100DaysOfCode\n\n- Continued to migrate my data from static JSON file to Upstash Redis and Cloudflare Workers.\n\nAll went well, however I won't be able to use company's laptop to call these APIs anymore. They all got blocked now. (1)", "conversation_id": "1511703716940120065", "author_id": "2699175613", "created_at": "2022-04-06T13:53:46.000Z"}, {"entities": {"hashtags": [{"start": 189, "end": 203, "tag": "100DaysOfCode"}]}, "id": "1511704142028611602", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 1, "quote_count": 0}, "text": "It's a bit unfortunate, I have to use my personal machine only. \ud83e\udd72\nSo I need to take a break from hdoc-tracker project until 22 April.\n\nI think I'm gonna rebuild my blog as part of the next #100DaysOfCode project.", "conversation_id": "1511703716940120065", "author_id": "2699175613", "created_at": "2022-04-06T13:55:28.000Z"}], "1511385814106001409": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 75", "start": 0, "end": 6}]}, "id": "1511385814106001409", "public_metrics": {"retweet_count": 8, "reply_count": 2, "like_count": 10, "quote_count": 0}, "text": "day 75 of #100DaysOfCode\n\nContinued with progress tracker.\n- Decided to go with Upstash for storing my data and Cloudflare Workers for serving the REST API.\n\nI'm using ioredis to connect to the db.\nReally impressed by Upstash ease of use and how fast I can write the data so far.", "conversation_id": "1511385814106001409", "author_id": "2699175613", "created_at": "2022-04-05T16:50:32.000Z"}], "1510962551311372291": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 74", "start": 0, "end": 6}]}, "id": "1510962551311372291", "public_metrics": {"retweet_count": 6, "reply_count": 2, "like_count": 6, "quote_count": 0}, "text": "day 74 of #100DaysOfCode\n\n- Did some research on how I should store data for my progress tracker project.\nLooking for something serverless friendly.\nAny suggestions? \ud83d\udc40\n\nThe data is a JSON file right now and it keeps growing every day.\nIt certainly won't scale well for R2 onwards", "conversation_id": "1510962551311372291", "author_id": "2699175613", "created_at": "2022-04-04T12:48:39.000Z"}, {"entities": {"hashtags": [{"start": 90, "end": 104, "tag": "100DaysOfCode"}], "urls": [{"start": 13, "end": 36, "url": "https://t.co/ofpzmRAsnU", "expanded_url": "https://blog.cloudflare.com/workers-secrets-environment/", "display_url": "blog.cloudflare.com/workers-secret\u2026"}, {"start": 39, "end": 62, "url": "https://t.co/sHmFecSMyY", "expanded_url": "https://developers.cloudflare.com/workers/examples/fetch-json/", "display_url": "developers.cloudflare.com/workers/exampl\u2026"}, {"start": 65, "end": 88, "url": "https://t.co/1n39YZQmdH", "expanded_url": "https://www.serverless.com/blog/choosing-a-database-with-serverless", "display_url": "serverless.com/blog/choosing-\u2026"}]}, "id": "1510963292310671362", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "text": "resources\n\n- https://t.co/ofpzmRAsnU\n- https://t.co/sHmFecSMyY\n- https://t.co/1n39YZQmdH\n\n#100DaysOfCode", "conversation_id": "1510962551311372291", "author_id": "2699175613", "created_at": "2022-04-04T12:51:35.000Z"}], "1510572197357625345": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 73", "start": 0, "end": 6}]}, "id": "1510572197357625345", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 10, "quote_count": 0}, "text": "day 73 of #100DaysOfCode\n\n- Try esbuild for the 1st time, just use it to minify my custom web component (day 11's project)\n- Learned how to ignore unwanted files (.npmignore) and repository metadata (package.json)\n- Added a keyboard shortcuts dialog to my progress tracker project", "conversation_id": "1510572197357625345", "author_id": "2699175613", "created_at": "2022-04-03T10:57:31.000Z"}, {"entities": {"hashtags": [{"start": 59, "end": 73, "tag": "100DaysOfCode"}], "urls": [{"start": 5, "end": 28, "url": "https://t.co/jB4NJga9Ty", "expanded_url": "https://github.com/attomos/hdoc-ribbon/blob/34bbed0335354097d4fa91b672c5fb8205b72d5f/package.json#L6-L12", "display_url": "github.com/attomos/hdoc-r\u2026"}, {"start": 34, "end": 57, "url": "https://t.co/rk6AqGmztp", "expanded_url": "https://www.npmjs.com/package/hdoc-ribbon", "display_url": "npmjs.com/package/hdoc-r\u2026", "images": [{"url": "https://pbs.twimg.com/news_img/1510572283068256257/ohbeW-P8?format=png&name=orig", "width": 1200, "height": 630}, {"url": "https://pbs.twimg.com/news_img/1510572283068256257/ohbeW-P8?format=png&name=150x150", "width": 150, "height": 150}], "status": 200, "title": "npm: hdoc-ribbon", "description": "hdoc-ribbon is a custom HTML element I worked on as part of my #100DaysOfCode journey to learn new stuffs and re-learn many things. Latest version: 1.3.2, last published: 12 minutes ago. Start using hdoc-ribbon in your project by running `npm i hdoc-ribbon`. There are no other projects in the npm registry using hdoc-ribbon.", "unwound_url": "https://www.npmjs.com/package/hdoc-ribbon"}], "src_list": [{"src": "https://t.co/jB4NJga9Ty", "start": 5, "end": 28, "fixed": false}]}, "id": "1510572282585833478", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "text": "src: https://t.co/jB4NJga9Ty\nnpm: https://t.co/rk6AqGmztp\n\n#100DaysOfCode", "conversation_id": "1510572197357625345", "author_id": "2699175613", "created_at": "2022-04-03T10:57:51.000Z"}], "1510283391668678661": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 94, "end": 117, "url": "https://t.co/6aGHRt4kp7", "expanded_url": "http://web.dev", "display_url": "web.dev"}, {"start": 119, "end": 142, "url": "https://t.co/0QtTxDJ2sf", "expanded_url": "https://open-props.style/", "display_url": "open-props.style"}, {"start": 143, "end": 166, "url": "https://t.co/N3L0wrPTx6", "expanded_url": "https://web.dev/patterns/layout/", "display_url": "web.dev/patterns/layou\u2026", "images": [{"url": "https://pbs.twimg.com/news_img/1521501078428303360/HyliL9TO?format=jpg&name=orig", "width": 1200, "height": 800}, {"url": "https://pbs.twimg.com/news_img/1521501078428303360/HyliL9TO?format=jpg&name=150x150", "width": 150, "height": 150}], "status": 200, "title": "Layout patterns", "description": "A collection of layout patterns built using modern CSS APIs that will help you build common interfaces such as cards, dynamic grid areas, and full-page layouts.", "unwound_url": "https://web.dev/patterns/layout/"}], "day_list": [{"day": "day 72", "start": 0, "end": 6}]}, "id": "1510283391668678661", "public_metrics": {"retweet_count": 6, "reply_count": 1, "like_count": 2, "quote_count": 0}, "text": "day 72 of #100DaysOfCode\n\nSpent some time learning open-props and common layout patterns from https://t.co/6aGHRt4kp7\n\nhttps://t.co/0QtTxDJ2sf\nhttps://t.co/N3L0wrPTx6\n\nBut ended up messing around with Post CSS source code instead.", "conversation_id": "1510283391668678661", "author_id": "2699175613", "created_at": "2022-04-02T15:49:54.000Z"}, {"entities": {"hashtags": [{"start": 164, "end": 178, "tag": "100DaysOfCode"}], "urls": [{"start": 115, "end": 138, "url": "https://t.co/QOJrtAKCM7", "expanded_url": "https://stackoverflow.com/questions/48380267/css-variables-root-vs-host", "display_url": "stackoverflow.com/questions/4838\u2026"}, {"start": 139, "end": 162, "url": "https://t.co/Z4R3mUomZ0", "expanded_url": "https://web.dev/shadowdom-v1/", "display_url": "web.dev/shadowdom-v1/"}]}, "id": "1510283487462395905", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "text": "The thing is I tried to create a custom component with open-props.\nI think I need to read more about CSS scoping.\n\nhttps://t.co/QOJrtAKCM7\nhttps://t.co/Z4R3mUomZ0\n\n#100DaysOfCode", "conversation_id": "1510283391668678661", "author_id": "2699175613", "created_at": "2022-04-02T15:50:17.000Z"}], "1509913693877768193": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 257, "end": 280, "url": "https://t.co/1DmN578Jd9", "expanded_url": "https://twitter.com/attomos/status/1509913693877768193/photo/1", "display_url": "pic.twitter.com/1DmN578Jd9", "media_key": "3_1509913441728827393"}], "day_list": [{"day": "day 71", "start": 0, "end": 6}]}, "id": "1509913693877768193", "public_metrics": {"retweet_count": 7, "reply_count": 1, "like_count": 4, "quote_count": 0}, "text": "day 71 of #100DaysOfCode\n\nContinue with my progress tracker project.\n\n- Finished implementing \"replies\" functionality (fixed CSS and unit tests).\n- Learned few more things in Svelte, e.g., component event, recursive component renders, and CustomEvent type. https://t.co/1DmN578Jd9", "conversation_id": "1509913693877768193", "author_id": "2699175613", "created_at": "2022-04-01T15:20:52.000Z"}, {"entities": {"hashtags": [{"start": 60, "end": 74, "tag": "100DaysOfCode"}], "urls": [{"start": 6, "end": 29, "url": "https://t.co/z1FVkUDrjM", "expanded_url": "https://hdoc-tracker-p6oipe0s5-attomos.vercel.app/", "display_url": "\u2026-tracker-p6oipe0s5-attomos.vercel.app"}, {"start": 35, "end": 58, "url": "https://t.co/owVGqRZtH2", "expanded_url": "https://github.com/attomos/hdoc-tracker/pull/2", "display_url": "github.com/attomos/hdoc-t\u2026"}], "src_list": [{"src": "https://t.co/owVGqRZtH2", "start": 35, "end": 58, "fixed": false}], "demo_list": [{"demo": "https://t.co/z1FVkUDrjM", "start": 6, "end": 29, "fixed": false}]}, "id": "1509913900417892357", "public_metrics": {"retweet_count": 0, "reply_count": 1, "like_count": 0, "quote_count": 0}, "text": "demo: https://t.co/z1FVkUDrjM\nsrc: https://t.co/owVGqRZtH2\n\n#100DaysOfCode", "conversation_id": "1509913693877768193", "author_id": "2699175613", "created_at": "2022-04-01T15:21:41.000Z"}, {"entities": {"hashtags": [{"start": 143, "end": 157, "tag": "100DaysOfCode"}], "urls": [{"start": 2, "end": 25, "url": "https://t.co/W3lBbLLBCA", "expanded_url": "https://svelte.dev/tutorial/component-events", "display_url": "svelte.dev/tutorial/compo\u2026"}, {"start": 28, "end": 51, "url": "https://t.co/suOuex2i3w", "expanded_url": "https://svelte.dev/repl/347b37e18b5d4a65bbacfd097536db02?version=3.24.0", "display_url": "svelte.dev/repl/347b37e18\u2026", "images": [{"url": "https://pbs.twimg.com/news_img/1509914222201032706/A2xX11Gu?format=jpg&name=orig", "width": 640, "height": 640}, {"url": "https://pbs.twimg.com/news_img/1509914222201032706/A2xX11Gu?format=jpg&name=150x150", "width": 150, "height": 150}], "status": 200, "title": "Recursive Component Renders Flat \u2022 REPL \u2022 Svelte", "description": "Cybernetically enhanced web apps", "unwound_url": "https://svelte.dev/repl/347b37e18b5d4a65bbacfd097536db02?version=3.24.0"}, {"start": 54, "end": 77, "url": "https://t.co/useCrtpmZ2", "expanded_url": "https://svelte.dev/tutorial/svelte-self", "display_url": "svelte.dev/tutorial/svelt\u2026"}, {"start": 80, "end": 103, "url": "https://t.co/3kD2YUhG5Y", "expanded_url": "https://stackoverflow.com/questions/64087782/svelte-event-parameter-type-for-typescript", "display_url": "stackoverflow.com/questions/6408\u2026"}]}, "id": "1509914216316411904", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 1, "quote_count": 0}, "text": "- https://t.co/W3lBbLLBCA\n- https://t.co/suOuex2i3w\n- https://t.co/useCrtpmZ2\n- https://t.co/3kD2YUhG5Y\n\nresources for things I learned today\n\n#100DaysOfCode", "conversation_id": "1509913693877768193", "author_id": "2699175613", "created_at": "2022-04-01T15:22:56.000Z"}], "1509562233785061378": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 220, "end": 243, "url": "https://t.co/TqLo3plgia", "expanded_url": "https://twitter.com/attomos/status/1509562233785061378/video/1", "display_url": "pic.twitter.com/TqLo3plgia", "media_key": "7_1509560695603732486"}], "day_list": [{"day": "day 70", "start": 0, "end": 6}]}, "id": "1509562233785061378", "public_metrics": {"retweet_count": 9, "reply_count": 1, "like_count": 14, "quote_count": 0}, "text": "day 70 of #100DaysOfCode\n\nMade some progress with my progress tracker project.\n- Added \"replies\" functionality.\n\nMostly redo data structure part.\n\nNot going to deploy this now.\nI need to fix some styling and unit tests. https://t.co/TqLo3plgia", "conversation_id": "1509562233785061378", "author_id": "2699175613", "created_at": "2022-03-31T16:04:17.000Z"}], "1509208373774143489": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 69", "start": 0, "end": 6}]}, "id": "1509208373774143489", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 5, "quote_count": 0}, "text": "day 69 of #100DaysOfCode\n\n- Continued learning more IndexedDB API, only `clear` method this time.\n- Also try out dialog element for the first time (`open, close, showModal, returnValue, and ::backdrop`). It's quite nice to work with. \ud83d\ude0d", "conversation_id": "1509208373774143489", "author_id": "2699175613", "created_at": "2022-03-30T16:38:10.000Z"}], "1508846643277631489": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 68", "start": 0, "end": 6}]}, "id": "1508846643277631489", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "day 68 of #100DaysOfCode\n\n- Continued learning about IndexedDB API\n- Learned how to use delete and getAll methods in IDBObjectStore\n- Next, I'd like to compare the native API and those wrappers (specifically, I'd to see how `liveQuery` works in Dexie.js) \ud83e\udd14", "conversation_id": "1508846643277631489", "author_id": "2699175613", "created_at": "2022-03-29T16:40:47.000Z"}], "1508470323943190533": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 90, "end": 113, "url": "https://t.co/IxtBrTAP3z", "expanded_url": "https://www.youtube.com/watch?v=VNFDoawcmNc", "display_url": "youtube.com/watch?v=VNFDoa\u2026"}, {"start": 114, "end": 137, "url": "https://t.co/kKYaPtml7L", "expanded_url": "https://github.com/mdn/to-do-notifications", "display_url": "github.com/mdn/to-do-noti\u2026"}], "day_list": [{"day": "day 67", "start": 0, "end": 6}]}, "id": "1508470323943190533", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 7, "quote_count": 0}, "text": "day 67 of #100DaysOfCode \n\n- Learned about IndexedDB today from this video and this repo\nhttps://t.co/IxtBrTAP3z\nhttps://t.co/kKYaPtml7L\n- According to the video and a little Google search, I should use API wrapper like idb-keyval or Dexie.js \ud83e\udd14", "conversation_id": "1508470323943190533", "author_id": "2699175613", "created_at": "2022-03-28T15:45:25.000Z"}], "1508123049790689284": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "annotations": [{"start": 264, "end": 270, "probability": 0.9018, "type": "Product", "normalized_text": "Twitter"}], "day_list": [{"day": "day 66", "start": 0, "end": 6}]}, "id": "1508123049790689284", "public_metrics": {"retweet_count": 7, "reply_count": 1, "like_count": 5, "quote_count": 1}, "text": "day 66 of #100DaysOfCode\n\n- Added links to demo and source to each tweet if they're available.\n\nAlso, this is a good time to share the source for this project, even it's not 100% done yet\ud83d\ude09\nIt's built with Svelte and Tailwind CSS + Python scripts to get data from Twitter API.", "conversation_id": "1508123049790689284", "author_id": "2699175613", "created_at": "2022-03-27T16:45:29.000Z"}, {"entities": {"hashtags": [{"start": 60, "end": 74, "tag": "100DaysOfCode"}], "urls": [{"start": 6, "end": 29, "url": "https://t.co/RUdHzhtdjW", "expanded_url": "https://hdoc-tracker.vercel.app/", "display_url": "hdoc-tracker.vercel.app"}, {"start": 35, "end": 58, "url": "https://t.co/hAjwzOA5aO", "expanded_url": "https://github.com/attomos/hdoc-tracker", "display_url": "github.com/attomos/hdoc-t\u2026"}], "src_list": [{"src": "https://t.co/hAjwzOA5aO", "start": 35, "end": 58, "fixed": false}], "demo_list": [{"demo": "https://t.co/RUdHzhtdjW", "start": 6, "end": 29, "fixed": false}]}, "id": "1508123148814004224", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 2, "quote_count": 0}, "text": "demo: https://t.co/RUdHzhtdjW\nsrc: https://t.co/hAjwzOA5aO\n\n#100DaysOfCode", "conversation_id": "1508123049790689284", "author_id": "2699175613", "created_at": "2022-03-27T16:45:52.000Z"}], "1507746243308851205": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 274, "end": 297, "url": "https://t.co/1HhBgooBRS", "expanded_url": "https://twitter.com/attomos/status/1507746243308851205/video/1", "display_url": "pic.twitter.com/1HhBgooBRS", "media_key": "7_1507746043357954048"}], "day_list": [{"day": "day 65", "start": 0, "end": 6}]}, "id": "1507746243308851205", "public_metrics": {"retweet_count": 8, "reply_count": 2, "like_count": 10, "quote_count": 0}, "text": "day 65 of #100DaysOfCode\n\nContinue to make some progress in my tracker project.\n- Added more info in each tweet (includes URL to author profile and tweet's created time that links to the tweet)\n- Fixed a bug that shows the latest streak instead of 0 streaks when I was idle https://t.co/1HhBgooBRS", "conversation_id": "1507746243308851205", "author_id": "2699175613", "created_at": "2022-03-26T15:48:11.000Z"}], "1505949450665357313": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 77, "end": 100, "url": "https://t.co/HdmBEUhBYg", "expanded_url": "https://www.youtube.com/watch?v=Xr0r2Ft_ROQ", "display_url": "youtube.com/watch?v=Xr0r2F\u2026"}], "day_list": [{"day": "day 64", "start": 0, "end": 6}]}, "id": "1505949450665357313", "public_metrics": {"retweet_count": 2, "reply_count": 1, "like_count": 4, "quote_count": 0}, "text": "day 64 of #100DaysOfCode\n\nLearn more about web accessibility from this video\nhttps://t.co/HdmBEUhBYg\n\nI highly recommend it, especially to anyone who wants to learn more about web accessibility.\n\nHere's a quick update for my progress tracker project.\n- Improved color contrast \ud83d\ude09", "conversation_id": "1505949450665357313", "author_id": "2699175613", "created_at": "2022-03-21T16:48:22.000Z"}, {"entities": {"hashtags": [{"start": 265, "end": 279, "tag": "100DaysOfCode"}], "urls": [{"start": 280, "end": 303, "url": "https://t.co/vIKTacrPYu", "expanded_url": "https://twitter.com/attomos/status/1505951613038776321/photo/1", "display_url": "pic.twitter.com/vIKTacrPYu", "media_key": "3_1505951352371159041"}, {"start": 280, "end": 303, "url": "https://t.co/vIKTacrPYu", "expanded_url": "https://twitter.com/attomos/status/1505951613038776321/photo/1", "display_url": "pic.twitter.com/vIKTacrPYu", "media_key": "3_1505951364102635520"}]}, "id": "1505951613038776321", "public_metrics": {"retweet_count": 1, "reply_count": 1, "like_count": 3, "quote_count": 0}, "text": "\ud83e\uddf5 I use VisBug to do quickly check the color contrast on my UI.\nAlso learn this in the process.\nI've been using Vimium extension for years and never really use insert mode.\n\nUsing VisBug on top of Vimium, I think it would be nice if VisBug has keyboard shortcuts.\n\n#100DaysOfCode https://t.co/vIKTacrPYu", "conversation_id": "1505949450665357313", "author_id": "2699175613", "created_at": "2022-03-21T16:56:58.000Z"}, {"entities": {"hashtags": [{"start": 264, "end": 278, "tag": "100DaysOfCode"}], "urls": [{"start": 279, "end": 302, "url": "https://t.co/4YqApkBXlS", "expanded_url": "https://twitter.com/attomos/status/1505953046614114307/photo/1", "display_url": "pic.twitter.com/4YqApkBXlS", "media_key": "3_1505952890430853121"}], "annotations": [{"start": 13, "end": 18, "probability": 0.3203, "type": "Organization", "normalized_text": "VisBug"}]}, "id": "1505953046614114307", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 3, "quote_count": 0}, "text": "\ud83e\uddf5 Turns out VisBug has keyboard shortcuts for quickly navigating to each tool.\nFor example, x for a11y tool, m/p for margin/padding tools, etc.\n\nTo use these VisBug shortcuts on top of Vimium, all I need to do is press i to enter insert mode (to ignore all keys)\n\n#100DaysOfCode https://t.co/4YqApkBXlS", "conversation_id": "1505949450665357313", "author_id": "2699175613", "created_at": "2022-03-21T17:02:40.000Z"}], "1505573228776812550": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 280, "end": 303, "url": "https://t.co/3LNdG5aY5V", "expanded_url": "https://twitter.com/attomos/status/1505573228776812550/photo/1", "display_url": "pic.twitter.com/3LNdG5aY5V", "media_key": "3_1505571500736188418"}], "annotations": [{"start": 168, "end": 172, "probability": 0.5378, "type": "Product", "normalized_text": "macOS"}, {"start": 177, "end": 183, "probability": 0.53, "type": "Product", "normalized_text": "Windows"}, {"start": 218, "end": 224, "probability": 0.6955, "type": "Product", "normalized_text": "Windows"}], "day_list": [{"day": "day 63", "start": 0, "end": 6}]}, "id": "1505573228776812550", "public_metrics": {"retweet_count": 9, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "day 63 of #100DaysOfCode \n\n- Learned about svelte-check\n- Fixed all ts errors and most ts warnings\n\n- Learned about WSL extension in VS Code\nI occasionally switch from macOS to Windows and had problems with VS Code on Windows (git perf, Python path in WSL).\nCan't complain now. \ud83d\ude07 https://t.co/3LNdG5aY5V", "conversation_id": "1505573228776812550", "author_id": "2699175613", "created_at": "2022-03-20T15:53:24.000Z"}], "1505226758655975425": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 243, "end": 266, "url": "https://t.co/RUdHzhtdjW", "expanded_url": "https://hdoc-tracker.vercel.app/", "display_url": "hdoc-tracker.vercel.app"}, {"start": 267, "end": 290, "url": "https://t.co/3HfmyW1HYF", "expanded_url": "https://twitter.com/attomos/status/1505226758655975425/photo/1", "display_url": "pic.twitter.com/3HfmyW1HYF", "media_key": "3_1505225709966737408"}, {"start": 267, "end": 290, "url": "https://t.co/3HfmyW1HYF", "expanded_url": "https://twitter.com/attomos/status/1505226758655975425/photo/1", "display_url": "pic.twitter.com/3HfmyW1HYF", "media_key": "3_1505225729629638656"}, {"start": 267, "end": 290, "url": "https://t.co/3HfmyW1HYF", "expanded_url": "https://twitter.com/attomos/status/1505226758655975425/photo/1", "display_url": "pic.twitter.com/3HfmyW1HYF", "media_key": "3_1505225767210594306"}], "day_list": [{"day": "day 62", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/RUdHzhtdjW", "start": 243, "end": 266, "fixed": false}]}, "id": "1505226758655975425", "public_metrics": {"retweet_count": 10, "reply_count": 0, "like_count": 7, "quote_count": 1}, "text": "day 62 of #100DaysOfCode \n\nA productive day for my progress tracker project.\n- Fixed all responsiveness issues \n- Fixed inconsistent width issue in the main layout\n- Added about page to add some context on what this project does WIP \ud83d\ude05.\n\ndemo: https://t.co/RUdHzhtdjW https://t.co/3HfmyW1HYF", "conversation_id": "1505226758655975425", "author_id": "2699175613", "created_at": "2022-03-19T16:56:39.000Z"}], "1505154803965792257": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 225, "end": 248, "url": "https://t.co/TsEjIfur8o", "expanded_url": "https://hdoc-tracker-git-responsive-attomos.vercel.app/", "display_url": "\u2026ker-git-responsive-attomos.vercel.app"}], "day_list": [{"day": "day 61", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/TsEjIfur8o", "start": 225, "end": 248, "fixed": false}]}, "id": "1505154803965792257", "public_metrics": {"retweet_count": 12, "reply_count": 2, "like_count": 5, "quote_count": 0}, "text": "day 61 of #100DaysOfCode\n\n- Made the progress tracker UI more responsive (80% done).\n\nThe remaining tasks for responsive UI are\n- design how to make theme toggle works on small screens\n- same thing for the rounds menu\n\ndemo: https://t.co/TsEjIfur8o", "conversation_id": "1505154803965792257", "author_id": "2699175613", "created_at": "2022-03-19T12:10:44.000Z"}, {"entities": {"hashtags": [{"start": 89, "end": 103, "tag": "100DaysOfCode"}]}, "id": "1505155107507552256", "public_metrics": {"retweet_count": 3, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "Today, I spent ~2 hours on my progress tracker project.\n\nThat should count as 2 days in #100DaysOfCode challenge \ud83d\ude0a", "conversation_id": "1505154803965792257", "author_id": "2699175613", "created_at": "2022-03-19T12:11:56.000Z"}], "1505154234526089216": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 250, "end": 273, "url": "https://t.co/wELjRjFBEk", "expanded_url": "https://stackoverflow.com/a/64131834/606355", "display_url": "stackoverflow.com/a/64131834/606\u2026"}], "day_list": [{"day": "day 60", "start": 0, "end": 6}]}, "id": "1505154234526089216", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 2, "quote_count": 0}, "text": "day 60 of #100DaysOfCode\n\n- Fixed various bugs in my progress tracker UI (home/end keys don't work because I have `tabindex` set in the main element).\n- Learned about Svelte custom directives and how to deal with TS warnings regarding custom event.\n\nhttps://t.co/wELjRjFBEk", "conversation_id": "1505154234526089216", "author_id": "2699175613", "created_at": "2022-03-19T12:08:28.000Z"}, {"entities": {"hashtags": [{"start": 0, "end": 14, "tag": "100DaysOfCode"}], "urls": [{"start": 141, "end": 164, "url": "https://t.co/TsEjIfur8o", "expanded_url": "https://hdoc-tracker-git-responsive-attomos.vercel.app/", "display_url": "\u2026ker-git-responsive-attomos.vercel.app"}], "annotations": [{"start": 29, "end": 34, "probability": 0.3095, "type": "Organization", "normalized_text": "Vercel"}], "demo_list": [{"demo": "https://t.co/TsEjIfur8o", "start": 141, "end": 164, "fixed": false}]}, "id": "1505154493423714304", "public_metrics": {"retweet_count": 3, "reply_count": 0, "like_count": 1, "quote_count": 0}, "text": "#100DaysOfCode \n\nNot sure if Vercel will delete this feature branch deployment once it's merge to the main branch.\n\nI will out soon \ud83d\ude48\n\ndemo: https://t.co/TsEjIfur8o", "conversation_id": "1505154234526089216", "author_id": "2699175613", "created_at": "2022-03-19T12:09:30.000Z"}], "1504859753679585280": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 59", "start": 0, "end": 6}]}, "id": "1504859753679585280", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 8, "quote_count": 0}, "text": "day 59 of #100DaysOfCode \n\n- Adjusted dark mode colors of progress tracker project.\n- Added adaptive SVG favicon. But I was having issue trying to make it change the favicon when system theme changed by adding listener to `window.matchMedia(\"(prefers-color-scheme: dark)\")`.", "conversation_id": "1504859753679585280", "author_id": "2699175613", "created_at": "2022-03-18T16:38:18.000Z"}, {"entities": {"hashtags": [{"start": 0, "end": 14, "tag": "100DaysOfCode"}]}, "id": "1504860001298677762", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "#100DaysOfCode \n\nNot sure why `matchMedia` does not work as expected.\nI will continue to debug this tomorrow.", "conversation_id": "1504859753679585280", "author_id": "2699175613", "created_at": "2022-03-18T16:39:17.000Z"}], "1504502502674563073": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 143, "end": 166, "url": "https://t.co/BJKO2MJZXR", "expanded_url": "https://tailwindcss.com/", "display_url": "tailwindcss.com"}, {"start": 241, "end": 264, "url": "https://t.co/DT0a4WMjrJ", "expanded_url": "https://twitter.com/attomos/status/1504502502674563073/video/1", "display_url": "pic.twitter.com/DT0a4WMjrJ", "media_key": "7_1504501862594392071"}], "day_list": [{"day": "day 58", "start": 0, "end": 6}]}, "id": "1504502502674563073", "public_metrics": {"retweet_count": 9, "reply_count": 0, "like_count": 10, "quote_count": 0}, "text": "day 58 of #100DaysOfCode \n\n- Added a dark mode switch to my progress tracker project.\nGot ideas on how to structure and animate SVG icons from https://t.co/BJKO2MJZXR\n\n- Switched to Heroicons because it goes really well with Tailwind CSS. \ud83d\ude09 https://t.co/DT0a4WMjrJ", "conversation_id": "1504502502674563073", "author_id": "2699175613", "created_at": "2022-03-17T16:58:43.000Z"}], "1504140297911300097": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 242, "end": 265, "url": "https://t.co/dZ6OcrP7Y4", "expanded_url": "https://twitter.com/attomos/status/1504140297911300097/photo/1", "display_url": "pic.twitter.com/dZ6OcrP7Y4", "media_key": "3_1504140144299118593"}], "day_list": [{"day": "day 57", "start": 0, "end": 6}]}, "id": "1504140297911300097", "public_metrics": {"retweet_count": 3, "reply_count": 1, "like_count": 7, "quote_count": 0}, "text": "day 57 of #100DaysOfCode \n\nMade some progress on dark mode for my tracker project.\n\nNeed to add a toggle and handle localStorage from there.\nDropdown option also need to support dark mode.\nAlso figuring out how to use icons in dark mode too. https://t.co/dZ6OcrP7Y4", "conversation_id": "1504140297911300097", "author_id": "2699175613", "created_at": "2022-03-16T16:59:27.000Z"}], "1503767528409296896": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 56", "start": 0, "end": 6}]}, "id": "1503767528409296896", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "day 56 of #100DaysOfCode \n\nWorked on dark mode for my progress tracker project.", "conversation_id": "1503767528409296896", "author_id": "2699175613", "created_at": "2022-03-15T16:18:12.000Z"}], "1503409021197643776": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 200, "end": 223, "url": "https://t.co/tJ00te2nr2", "expanded_url": "https://svelte.dev/tutorial/reactive-statements", "display_url": "svelte.dev/tutorial/react\u2026"}, {"start": 233, "end": 256, "url": "https://t.co/RUdHzhtdjW", "expanded_url": "https://hdoc-tracker.vercel.app/", "display_url": "hdoc-tracker.vercel.app", "status": 200, "title": "#100DaysOfCode Progress Tracker", "unwound_url": "https://hdoc-tracker.vercel.app/"}, {"start": 257, "end": 280, "url": "https://t.co/3bsSz719JS", "expanded_url": "https://twitter.com/attomos/status/1503409021197643776/photo/1", "display_url": "pic.twitter.com/3bsSz719JS", "media_key": "3_1503405270030237696"}], "day_list": [{"day": "day 55", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/RUdHzhtdjW", "start": 233, "end": 256, "fixed": false}]}, "id": "1503409021197643776", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 3, "quote_count": 0}, "text": "day 55 of #100DaysOfCode\n\nMade some progress for my tracker project.\n\n- Implemented basic search functionality (filtering top-level tweets atm)\n- Adjusted some colors\n- Fixed Svelte reactivity issues\nhttps://t.co/tJ00te2nr2 \ud83e\udd70\n\ndemo: https://t.co/RUdHzhtdjW https://t.co/3bsSz719JS", "conversation_id": "1503409021197643776", "author_id": "2699175613", "created_at": "2022-03-14T16:33:37.000Z"}, {"entities": {"hashtags": [{"start": 0, "end": 14, "tag": "100DaysOfCode"}]}, "id": "1503409806669148162", "public_metrics": {"retweet_count": 1, "reply_count": 0, "like_count": 1, "quote_count": 0}, "text": "#100DaysOfCode \n\nNext, I would like to work on adaptive SVG favicon and dark mode. \ud83e\udd29", "conversation_id": "1503409021197643776", "author_id": "2699175613", "created_at": "2022-03-14T16:36:44.000Z"}], "1503030450746724356": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 54", "start": 0, "end": 6}]}, "id": "1503030450746724356", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 8, "quote_count": 0}, "text": "day 54 of #100DaysOfCode \n\nContinued with my progress tracker project. \n\n- Moved the event handlers to document level so that keyboard shortcuts will work on the whole page. \n- Fixed a bug where <mark> is not visible because some property was renamed.", "conversation_id": "1503030450746724356", "author_id": "2699175613", "created_at": "2022-03-13T15:29:19.000Z"}], "1502685140040171524": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 276, "end": 299, "url": "https://t.co/ftie4nzc76", "expanded_url": "https://twitter.com/attomos/status/1502685140040171524/photo/1", "display_url": "pic.twitter.com/ftie4nzc76", "media_key": "3_1502683501006827521"}], "day_list": [{"day": "day 53", "start": 0, "end": 6}]}, "id": "1502685140040171524", "public_metrics": {"retweet_count": 6, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "day 53 of #100DaysOfCode\n\n- Added SPA fallback to Vercel config file (to help deal with client side routing in production)\n- Attempted to improve test coverage in Svelte components (faced few issues when testing components with svelte-navigator)\n\n62.22% coverage was too high https://t.co/ftie4nzc76", "conversation_id": "1502685140040171524", "author_id": "2699175613", "created_at": "2022-03-12T16:37:10.000Z"}], "1502321360164769798": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 270, "end": 293, "url": "https://t.co/vymjRBJJEU", "expanded_url": "https://twitter.com/attomos/status/1502321360164769798/photo/1", "display_url": "pic.twitter.com/vymjRBJJEU", "media_key": "3_1502321253990158340"}], "day_list": [{"day": "day 52", "start": 0, "end": 6}]}, "id": "1502321360164769798", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 6, "quote_count": 0}, "text": "day 52 of #100DaysOfCode\n\nAfter a hectic week, I'm back on my progress tracker project.\n\n- Fixed a bug where the streak calculation for the latest one is not correct + unit tests \ud83d\ude09\n- Use `div` tag instead of `a` tag in TweetBox component so that it won't change the URL https://t.co/vymjRBJJEU", "conversation_id": "1502321360164769798", "author_id": "2699175613", "created_at": "2022-03-11T16:31:38.000Z"}, {"entities": {"hashtags": [{"start": 189, "end": 203, "tag": "100DaysOfCode"}], "urls": [{"start": 204, "end": 227, "url": "https://t.co/21GdMNTb0Z", "expanded_url": "https://twitter.com/attomos/status/1502321598812286977/photo/1", "display_url": "pic.twitter.com/21GdMNTb0Z", "media_key": "3_1502321404267868162"}]}, "id": "1502321598812286977", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 1, "quote_count": 0}, "text": "Using div tag also improves my understanding of focus state.\nThere's a difference between `:focus` state and my own `.focused` class.\n\nSo TweetBox can now be navigated with `tab` key too.\n\n#100DaysOfCode https://t.co/21GdMNTb0Z", "conversation_id": "1502321360164769798", "author_id": "2699175613", "created_at": "2022-03-11T16:32:35.000Z"}], "1500497996978352131": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 83, "end": 100, "tag": "transitionalapps"}, {"start": 129, "end": 133, "tag": "TIL"}], "urls": [{"start": 195, "end": 218, "url": "https://t.co/9gFvYHRacO", "expanded_url": "https://stackoverflow.com/a/30742547/606355", "display_url": "stackoverflow.com/a/30742547/606\u2026"}], "day_list": [{"day": "day 51", "start": 0, "end": 6}]}, "id": "1500497996978352131", "public_metrics": {"retweet_count": 3, "reply_count": 1, "like_count": 2, "quote_count": 0}, "text": "day 51 of #100DaysOfCode \n\nMostly learning from conference videos about Svelte and #transitionalapps \ud83d\ude09\n\nDuring code refactoring, #TIL fromkeys class method from OrderedDict (also dict) in Python\nhttps://t.co/9gFvYHRacO\nAnd later found out that I simply need dict comprehension \ud83d\ude06", "conversation_id": "1500497996978352131", "author_id": "2699175613", "created_at": "2022-03-06T15:46:15.000Z"}, {"entities": {"hashtags": [{"start": 0, "end": 14, "tag": "100DaysOfCode"}], "urls": [{"start": 214, "end": 237, "url": "https://t.co/h1GzMsP8LL", "expanded_url": "https://twitter.com/attomos/status/1500499353344954370/photo/1", "display_url": "pic.twitter.com/h1GzMsP8LL", "media_key": "3_1500498926964645897"}]}, "id": "1500499353344954370", "public_metrics": {"retweet_count": 2, "reply_count": 0, "like_count": 1, "quote_count": 0}, "text": "#100DaysOfCode \n\nBecause I have some unit tests, I can refactor with more confidence now \ud83d\ude0a\n1: using fromkeys class method\n2: building OrderedDict from list of tuples\n3: building OrderedDict from dict comprehension https://t.co/h1GzMsP8LL", "conversation_id": "1500497996978352131", "author_id": "2699175613", "created_at": "2022-03-06T15:51:38.000Z"}], "1498700389562347520": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 160, "end": 183, "url": "https://t.co/m2ZgKUQ5i1", "expanded_url": "https://web.dev/", "display_url": "web.dev"}], "day_list": [{"day": "day 50", "start": 0, "end": 6}]}, "id": "1498700389562347520", "public_metrics": {"retweet_count": 3, "reply_count": 0, "like_count": 2, "quote_count": 0}, "text": "day 50 of #100DaysOfCode \n\nImproved the test coverage for both backend and UI code of my progress tracker project.\n\nAlso thinking about new learning path from https://t.co/m2ZgKUQ5i1", "conversation_id": "1498700389562347520", "author_id": "2699175613", "created_at": "2022-03-01T16:43:12.000Z"}], "1498337671441424384": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 153, "end": 176, "url": "https://t.co/RUdHzhtdjW", "expanded_url": "https://hdoc-tracker.vercel.app/", "display_url": "hdoc-tracker.vercel.app"}, {"start": 177, "end": 200, "url": "https://t.co/9Kl0MZgskN", "expanded_url": "https://twitter.com/attomos/status/1498337671441424384/photo/1", "display_url": "pic.twitter.com/9Kl0MZgskN", "media_key": "3_1498334910473707522"}], "day_list": [{"day": "day 49", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/RUdHzhtdjW", "start": 153, "end": 176, "fixed": false}]}, "id": "1498337671441424384", "public_metrics": {"retweet_count": 8, "reply_count": 0, "like_count": 6, "quote_count": 0}, "text": "day 49 of #100DaysOfCode\n\nContinue with my progress tracker website.\n\n- Fixed days count logic\n- Added client side routing using svelte-navigator\n\ndemo: https://t.co/RUdHzhtdjW https://t.co/9Kl0MZgskN", "conversation_id": "1498337671441424384", "author_id": "2699175613", "created_at": "2022-02-28T16:41:53.000Z"}], "1497976297670135810": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 129, "end": 152, "url": "https://t.co/OZ6n0g40dL", "expanded_url": "https://developer.chrome.com/", "display_url": "developer.chrome.com"}, {"start": 281, "end": 304, "url": "https://t.co/urU25N1L5O", "expanded_url": "https://twitter.com/attomos/status/1497976297670135810/photo/1", "display_url": "pic.twitter.com/urU25N1L5O", "media_key": "3_1497975200851234817"}], "annotations": [{"start": 105, "end": 121, "probability": 0.5251, "type": "Product", "normalized_text": "Chrome Developers"}], "day_list": [{"day": "day 48", "start": 0, "end": 6}]}, "id": "1497976297670135810", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 2, "quote_count": 0}, "text": "day 48 of #100DaysOfCode\n\nRevamped the overall UI for my tracker project.\nTry to imitate the layout from Chrome Developers site.\nhttps://t.co/OZ6n0g40dL\n\nPlanning for future rounds.\nThinking about app routing so that I can have different URL for each round.\n+ icons from IconPark. https://t.co/urU25N1L5O", "conversation_id": "1497976297670135810", "author_id": "2699175613", "created_at": "2022-02-27T16:45:55.000Z"}, {"entities": {"hashtags": [{"start": 0, "end": 4, "tag": "TIL"}, {"start": 266, "end": 280, "tag": "100DaysOfCode"}], "urls": [{"start": 241, "end": 264, "url": "https://t.co/lDgxVfbTSb", "expanded_url": "https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events", "display_url": "developer.mozilla.org/en-US/docs/Web\u2026"}]}, "id": "1497982792935698437", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "text": "#TIL pointer-events: none\n\nLearned this CSS property when I was making the search input with icon from Tailwind CSS.\nWhen clicking the search icon, this CSS property will let the event to go through the element and target whatever below it.\nhttps://t.co/lDgxVfbTSb\n\n#100DaysOfCode", "conversation_id": "1497976297670135810", "author_id": "2699175613", "created_at": "2022-02-27T17:11:43.000Z"}], "1497614683389321230": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 47", "start": 0, "end": 6}]}, "id": "1497614683389321230", "public_metrics": {"retweet_count": 9, "reply_count": 1, "like_count": 5, "quote_count": 0}, "text": "day 47 of #100DaysOfCode \n\nTrying to make UI of my tracker project more responsive.\nI broke the layout instead \ud83e\udd75", "conversation_id": "1497614683389321230", "author_id": "2699175613", "created_at": "2022-02-26T16:48:59.000Z"}, {"entities": {"hashtags": [{"start": 0, "end": 4, "tag": "TIL"}, {"start": 54, "end": 68, "tag": "100DaysOfCode"}], "urls": [{"start": 29, "end": 52, "url": "https://t.co/d5cz4NvSQ3", "expanded_url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat", "display_url": "developer.mozilla.org/en-US/docs/Web\u2026", "images": [{"url": "https://pbs.twimg.com/news_img/1523012866395283456/NYgTEF4C?format=png&name=orig", "width": 1920, "height": 1080}, {"url": "https://pbs.twimg.com/news_img/1523012866395283456/NYgTEF4C?format=png&name=150x150", "width": 150, "height": 150}], "status": 200, "title": "Array.prototype.flat() - JavaScript | MDN", "description": "The flat() method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.", "unwound_url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat"}]}, "id": "1497615828350484481", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "text": "#TIL Array.prototype.flat()\n\nhttps://t.co/d5cz4NvSQ3\n\n#100DaysOfCode", "conversation_id": "1497614683389321230", "author_id": "2699175613", "created_at": "2022-02-26T16:53:32.000Z"}], "1497254410766151680": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 226, "end": 249, "url": "https://t.co/gXYkztrLpi", "expanded_url": "https://twitter.com/attomos/status/1497254410766151680/photo/1", "display_url": "pic.twitter.com/gXYkztrLpi", "media_key": "3_1497253887346364417"}], "day_list": [{"day": "day 46", "start": 0, "end": 6}]}, "id": "1497254410766151680", "public_metrics": {"retweet_count": 9, "reply_count": 1, "like_count": 8, "quote_count": 0}, "text": "day 46 of #100DaysOfCode \n\nSetup unit test for my tracker project (frontend part) using swc-project/jest.\nSo far so good.\n\nWhen I have more tests, I would like to do some benchmarking between ts-jest and swc-project/jest too. https://t.co/gXYkztrLpi", "conversation_id": "1497254410766151680", "author_id": "2699175613", "created_at": "2022-02-25T16:57:23.000Z"}], "1496889198238121985": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 170, "end": 193, "url": "https://t.co/fDRLiELfDl", "expanded_url": "https://twitter.com/attomos/status/1496889198238121985/photo/1", "display_url": "pic.twitter.com/fDRLiELfDl", "media_key": "3_1496886245913694208"}, {"start": 170, "end": 193, "url": "https://t.co/fDRLiELfDl", "expanded_url": "https://twitter.com/attomos/status/1496889198238121985/photo/1", "display_url": "pic.twitter.com/fDRLiELfDl", "media_key": "3_1496886310371741697"}], "day_list": [{"day": "day 45", "start": 0, "end": 6}]}, "id": "1496889198238121985", "public_metrics": {"retweet_count": 10, "reply_count": 0, "like_count": 4, "quote_count": 0}, "text": "day 45 of #100DaysOfCode \n\nFixed a timezone bug that breaks the streak calculation. \ud83d\ude05\n\nAlso working on unit test in Svelte project (to catch bugs like these, of course). https://t.co/fDRLiELfDl", "conversation_id": "1496889198238121985", "author_id": "2699175613", "created_at": "2022-02-24T16:46:10.000Z"}], "1496530278491516928": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 44", "start": 0, "end": 6}]}, "id": "1496530278491516928", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 3, "quote_count": 0}, "text": "day 44 of #100DaysOfCode \n\nDid some debugging tutorial from freeCodeCamp \u00a0\ud83d\ude05", "conversation_id": "1496530278491516928", "author_id": "2699175613", "created_at": "2022-02-23T16:59:57.000Z"}], "1496167107608088576": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "urls": [{"start": 181, "end": 204, "url": "https://t.co/WhihOIBa3a", "expanded_url": "https://twitter.com/attomos/status/1496167107608088576/photo/1", "display_url": "pic.twitter.com/WhihOIBa3a", "media_key": "3_1496166139378139137"}], "day_list": [{"day": "day 43", "start": 0, "end": 6}]}, "id": "1496167107608088576", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 5, "quote_count": 0}, "text": "day 43 of #100DaysOfCode \n\nAdded test coverage (pytest) to my progress tracker project (data collecting part).\n\nI need to cool it down a little, doing only small tasks this week. \ud83e\udd75 https://t.co/WhihOIBa3a", "conversation_id": "1496167107608088576", "author_id": "2699175613", "created_at": "2022-02-22T16:56:50.000Z"}], "1495806424580255745": [{"entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 239, "end": 243, "tag": "TIL"}], "urls": [{"start": 272, "end": 295, "url": "https://t.co/b62Oto6Xfc", "expanded_url": "https://twitter.com/attomos/status/1495806424580255745/photo/1", "display_url": "pic.twitter.com/b62Oto6Xfc", "media_key": "3_1495805980722233344"}, {"start": 272, "end": 295, "url": "https://t.co/b62Oto6Xfc", "expanded_url": "https://twitter.com/attomos/status/1495806424580255745/photo/1", "display_url": "pic.twitter.com/b62Oto6Xfc", "media_key": "3_1495806196129083393"}], "day_list": [{"day": "day 42", "start": 0, "end": 6}]}, "id": "1495806424580255745", "public_metrics": {"retweet_count": 3, "reply_count": 0, "like_count": 5, "quote_count": 0}, "text": "day 42 of #100DaysOfCode \n\nAdd unit tests to my tracker project.\nCurrently, the project has tests for Python scripts only.\n\nWill add test coverage and other tests (unit test for UI, snapshot test, integration tests) to the project later.\n\n#TIL how to run tests in VS Code https://t.co/b62Oto6Xfc", "conversation_id": "1495806424580255745", "author_id": "2699175613", "created_at": "2022-02-21T17:03:37.000Z"}], "1495457470168580096": [{"author_id": "2699175613", "entities": {"urls": [{"start": 224, "end": 247, "url": "https://t.co/PwUsy82m5s", "expanded_url": "https://twitter.com/attomos/status/1495457470168580096/photo/1", "display_url": "pic.twitter.com/PwUsy82m5s", "media_key": "3_1495455829604323328"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 41", "start": 0, "end": 6}]}, "conversation_id": "1495457470168580096", "created_at": "2022-02-20T17:56:59.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 2, "quote_count": 0}, "id": "1495457470168580096", "text": "day 41 of #100DaysOfCode \n\nContinued my progress tracker project\nExtract more entities from tweet text.\nFor example, a demo link or a link to source code.\n\nHaven't decide how to put it in UI yet, in the detailed view maybe. https://t.co/PwUsy82m5s"}], "1495009175201808388": [{"author_id": "2699175613", "entities": {"urls": [{"start": 82, "end": 105, "url": "https://t.co/xdgnwdedub", "expanded_url": "https://codepen.io/attomos/full/PoOQLrpd", "display_url": "codepen.io/attomos/full/P\u2026"}, {"start": 183, "end": 206, "url": "https://t.co/yVD7oZb9rL", "expanded_url": "https://twitter.com/attomos/status/1495009175201808388/photo/1", "display_url": "pic.twitter.com/yVD7oZb9rL", "media_key": "3_1495009063444566017"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 40", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/xdgnwdedub", "start": 82, "end": 105, "fixed": false}]}, "conversation_id": "1495009175201808388", "created_at": "2022-02-19T12:15:37.000Z", "public_metrics": {"retweet_count": 7, "reply_count": 2, "like_count": 2, "quote_count": 0}, "id": "1495009175201808388", "text": "day 40 of #100DaysOfCode \n\n- Complete freeCodeCamp \"Tribute Page\" challenge\ndemo: https://t.co/xdgnwdedub\n- Add total days, longest streak, and current streak to the tracker project. https://t.co/yVD7oZb9rL"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 12, "end": 35, "url": "https://t.co/jLcMovxM7E", "expanded_url": "https://codepen.io/attomos/full/PoOQLrp", "display_url": "codepen.io/attomos/full/P\u2026"}], "hashtags": [{"start": 37, "end": 51, "tag": "100DaysOfCode"}], "demo_list": [{"demo": "https://t.co/jLcMovxM7E", "start": 12, "end": 35, "fixed": true}]}, "conversation_id": "1495009175201808388", "created_at": "2022-02-20T01:28:30.000Z", "public_metrics": {"retweet_count": 2, "reply_count": 1, "like_count": 2, "quote_count": 0}, "id": "1495208706946256897", "text": "fixed demo: https://t.co/jLcMovxM7E\n\n#100DaysOfCode"}], "1494709351227228165": [{"author_id": "2699175613", "entities": {"urls": [{"start": 267, "end": 290, "url": "https://t.co/CYPROPULGt", "expanded_url": "https://twitter.com/attomos/status/1494709351227228165/photo/1", "display_url": "pic.twitter.com/CYPROPULGt", "media_key": "3_1494708491009036296"}], "annotations": [{"start": 232, "end": 237, "probability": 0.3729, "type": "Product", "normalized_text": "GitHub"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 39", "start": 0, "end": 6}]}, "conversation_id": "1494709351227228165", "created_at": "2022-02-18T16:24:14.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1494709351227228165", "text": "day 39 of #100DaysOfCode \n\nReconsidered yesterday's decision.\nInstead of starting new projects, I could learn different things from keep building my progress tracker project.\n\nHere's my plan in Notion note.\nToday, I setup automated GitHub actions to update the data. https://t.co/CYPROPULGt"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 132, "end": 155, "url": "https://t.co/RUdHzhtdjW", "expanded_url": "https://hdoc-tracker.vercel.app/", "display_url": "hdoc-tracker.vercel.app"}], "hashtags": [{"start": 160, "end": 174, "tag": "100DaysOfCode"}]}, "conversation_id": "1494709351227228165", "created_at": "2022-02-18T16:25:44.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 1, "like_count": 0, "quote_count": 0}, "id": "1494709727649214467", "text": "If everything works as planned, I should see the new update (tweets from this conversation) deployed automatically to this URL soon https://t.co/RUdHzhtdjW\n\n\ud83e\udd70\n\n#100DaysOfCode"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 91, "end": 114, "url": "https://t.co/warPTXTVd1", "expanded_url": "https://twitter.com/attomos/status/1494716378141855746/photo/1", "display_url": "pic.twitter.com/warPTXTVd1", "media_key": "3_1494716370223009793"}], "hashtags": [{"start": 76, "end": 90, "tag": "100DaysOfCode"}]}, "conversation_id": "1494709351227228165", "created_at": "2022-02-18T16:52:09.000Z", "public_metrics": {"retweet_count": 2, "reply_count": 0, "like_count": 0, "quote_count": 0}, "id": "1494716378141855746", "text": "The scheduled workflow did work \ud83c\udf89\n\nWith an acceptable delay (~10 minutes).\n\n#100DaysOfCode https://t.co/warPTXTVd1"}], "1494354066734202880": [{"author_id": "2699175613", "entities": {"annotations": [{"start": 110, "end": 115, "probability": 0.381, "type": "Product", "normalized_text": "GitHub"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 39, "end": 53, "tag": "100DaysOfCode"}, {"start": 230, "end": 244, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 38", "start": 0, "end": 6}]}, "conversation_id": "1494354066734202880", "created_at": "2022-02-17T16:52:27.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 2, "like_count": 5, "quote_count": 0}, "id": "1494354066734202880", "text": "day 38 of #100DaysOfCode \n\nDeployed my #100DaysOfCode tracker to Vercel!\nWorking on the build scheduling with GitHub actions.\n\nNeed to work on a different project for tomorrow.\nWill continue this project when I started round 2 of #100DaysOfCode \ud83d\ude09"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 6, "end": 29, "url": "https://t.co/RUdHzhtdjW", "expanded_url": "https://hdoc-tracker.vercel.app/", "display_url": "hdoc-tracker.vercel.app"}], "hashtags": [{"start": 31, "end": 45, "tag": "100DaysOfCode"}], "demo_list": [{"demo": "https://t.co/RUdHzhtdjW", "start": 6, "end": 29, "fixed": false}]}, "conversation_id": "1494354066734202880", "created_at": "2022-02-17T16:53:09.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 2, "quote_count": 0}, "id": "1494354240969785349", "text": "demo: https://t.co/RUdHzhtdjW\n\n#100DaysOfCode"}], "1493993549503025155": [{"author_id": "2699175613", "entities": {"urls": [{"start": 276, "end": 299, "url": "https://t.co/PZU2FnNfh3", "expanded_url": "https://twitter.com/attomos/status/1493993549503025155/photo/1", "display_url": "pic.twitter.com/PZU2FnNfh3", "media_key": "3_1493992852074143745"}, {"start": 276, "end": 299, "url": "https://t.co/PZU2FnNfh3", "expanded_url": "https://twitter.com/attomos/status/1493993549503025155/photo/1", "display_url": "pic.twitter.com/PZU2FnNfh3", "media_key": "3_1493992895439077380"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 37", "start": 0, "end": 6}]}, "conversation_id": "1493993549503025155", "created_at": "2022-02-16T16:59:53.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 2, "quote_count": 0}, "id": "1493993549503025155", "text": "day 37 of #100DaysOfCode \n\nSmall improvements to the tracker project.\n- Added month legend to the activity graph.\n- Update tooltip text to include tweets count.\n\nI learned that I need to use document.createElementNS instead of document.createElement to create an svg element. https://t.co/PZU2FnNfh3"}], "1493630336731062273": [{"author_id": "2699175613", "conversation_id": "1493630336731062273", "created_at": "2022-02-15T16:56:37.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 6, "quote_count": 0}, "entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 36", "start": 0, "end": 6}]}, "id": "1493630336731062273", "text": "day 36 of #100DaysOfCode \n\nFixed a bug in data processing script for my tracker project.\nI just found that the order of reply tweets are out of place. \ud83d\ude05"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 231, "end": 254, "url": "https://t.co/Q2Kg3EmNTR", "expanded_url": "https://twitter.com/attomos/status/1493639098103640064/photo/1", "display_url": "pic.twitter.com/Q2Kg3EmNTR", "media_key": "3_1493637570252910593"}, {"start": 231, "end": 254, "url": "https://t.co/Q2Kg3EmNTR", "expanded_url": "https://twitter.com/attomos/status/1493639098103640064/photo/1", "display_url": "pic.twitter.com/Q2Kg3EmNTR", "media_key": "3_1493637742059999232"}], "hashtags": [{"start": 216, "end": 230, "tag": "100DaysOfCode"}]}, "conversation_id": "1493630336731062273", "created_at": "2022-02-15T17:31:26.000Z", "public_metrics": {"retweet_count": 6, "reply_count": 0, "like_count": 4, "quote_count": 0}, "id": "1493639098103640064", "text": "Before and after (notice the reply tweet at day 34).\n\nIn each conversation, reply tweets should be under the top-level tweet and sorted by created_at field (oldest first).\nI use OrderedDict in Python to solve this.\n\n#100DaysOfCode https://t.co/Q2Kg3EmNTR"}], "1493268793413758977": [{"author_id": "2699175613", "entities": {"urls": [{"start": 218, "end": 241, "url": "https://t.co/cnNYtAndEx", "expanded_url": "https://twitter.com/attomos/status/1493268793413758977/photo/1", "display_url": "pic.twitter.com/cnNYtAndEx", "media_key": "3_1493268523497713665"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 35", "start": 0, "end": 6}]}, "conversation_id": "1493268793413758977", "created_at": "2022-02-14T16:59:58.000Z", "public_metrics": {"retweet_count": 8, "reply_count": 0, "like_count": 3, "quote_count": 0}, "id": "1493268793413758977", "text": "day 35 of #100DaysOfCode\n\nImplement highlighted text in my tracker project. Currently, it's just a regular expression to match the day pattern.\nLearned about <mark> HTML element and white-space: pre-wrap in CSS. https://t.co/cnNYtAndEx"}], "1492906023442874369": [{"author_id": "2699175613", "entities": {"urls": [{"start": 275, "end": 298, "url": "https://t.co/EUIKNcGJWq", "expanded_url": "https://twitter.com/attomos/status/1492906023442874369/video/1", "display_url": "pic.twitter.com/EUIKNcGJWq", "media_key": "7_1492905856991907840"}], "annotations": [{"start": 88, "end": 94, "probability": 0.8059, "type": "Product", "normalized_text": "Twitter"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 34", "start": 0, "end": 6}]}, "conversation_id": "1492906023442874369", "created_at": "2022-02-13T16:58:27.000Z", "public_metrics": {"retweet_count": 9, "reply_count": 1, "like_count": 8, "quote_count": 0}, "id": "1492906023442874369", "text": "day 34 of #100DaysOfCode\n\nTrying to make the behavior of keyboard navigation similar to Twitter, where going up/down would keep the \"focused\" tweet on top of the list.\n\nFound that I need to compute getBoundingClientRect of the focused item and its scrollable parent element. https://t.co/EUIKNcGJWq"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 56, "end": 79, "url": "https://t.co/Hoy10rorEK", "expanded_url": "https://twitter.com/attomos/status/1492907465104818177/photo/1", "display_url": "pic.twitter.com/Hoy10rorEK", "media_key": "3_1492907010131918848"}], "hashtags": [{"start": 41, "end": 55, "tag": "100DaysOfCode"}]}, "conversation_id": "1492906023442874369", "created_at": "2022-02-13T17:04:11.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 1, "quote_count": 0}, "id": "1492907465104818177", "text": "Also need to take padding into account.\n\n#100DaysOfCode https://t.co/Hoy10rorEK"}], "1492542355291140096": [{"author_id": "2699175613", "entities": {"urls": [{"start": 208, "end": 231, "url": "https://t.co/uQwUqqrZED", "expanded_url": "https://twitter.com/attomos/status/1492542355291140096/video/1", "display_url": "pic.twitter.com/uQwUqqrZED", "media_key": "7_1492541048165662722"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 33", "start": 0, "end": 6}]}, "conversation_id": "1492542355291140096", "created_at": "2022-02-12T16:53:22.000Z", "public_metrics": {"retweet_count": 6, "reply_count": 1, "like_count": 5, "quote_count": 0}, "id": "1492542355291140096", "text": "day 33 of #100DaysOfCode\n\nMessing around with keyboard navigation on my tracker project.\nMainly listbox role and aria-selected attribute.\n\nHere's how it looks like when I press j, k, arrow down, or arrow up. https://t.co/uQwUqqrZED"}], "1492172883904593920": [{"author_id": "2699175613", "entities": {"urls": [{"start": 273, "end": 296, "url": "https://t.co/ektgUJIkFj", "expanded_url": "https://twitter.com/attomos/status/1492172883904593920/photo/1", "display_url": "pic.twitter.com/ektgUJIkFj", "media_key": "3_1492170614442196992"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 32", "start": 0, "end": 6}]}, "conversation_id": "1492172883904593920", "created_at": "2022-02-11T16:25:13.000Z", "public_metrics": {"retweet_count": 10, "reply_count": 0, "like_count": 5, "quote_count": 0}, "id": "1492172883904593920", "text": "day 32 of #100DaysOfCode \n\nFinish Basic JavaScript from freeCodeCamp.\nTook me about 12 days (1 pomodoro interval/day) to finish this module.\n\nRefreshed some basics. Hopefully, I can learn something new in the upcoming courses.\n\nWill go back to my tracker project tomorrow. https://t.co/ektgUJIkFj"}], "1491456817863729154": [{"author_id": "2699175613", "entities": {"urls": [{"start": 188, "end": 211, "url": "https://t.co/Qls7T50vKt", "expanded_url": "https://twitter.com/attomos/status/1491456817863729154/photo/1", "display_url": "pic.twitter.com/Qls7T50vKt", "media_key": "3_1491456504758939650"}, {"start": 188, "end": 211, "url": "https://t.co/Qls7T50vKt", "expanded_url": "https://twitter.com/attomos/status/1491456817863729154/photo/1", "display_url": "pic.twitter.com/Qls7T50vKt", "media_key": "3_1491456570538229760"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 31", "start": 0, "end": 6}]}, "conversation_id": "1491456817863729154", "created_at": "2022-02-09T16:59:49.000Z", "public_metrics": {"retweet_count": 7, "reply_count": 1, "like_count": 8, "quote_count": 0}, "id": "1491456817863729154", "text": "day 31 of #100DaysOfCode \n\nCreated the TweetBox component.\nWanted to use ::before pseudo-element to create the line of the left, but couldn't get it working.\n\nWill figure it out tomorrow. https://t.co/Qls7T50vKt"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 74, "end": 97, "url": "https://t.co/5vaUr6JfUB", "expanded_url": "https://twitter.com/attomos/status/1491467919444054017/photo/1", "display_url": "pic.twitter.com/5vaUr6JfUB", "media_key": "3_1491467714128650240"}], "hashtags": [{"start": 59, "end": 73, "tag": "100DaysOfCode"}]}, "conversation_id": "1491456817863729154", "created_at": "2022-02-09T17:43:56.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 1, "quote_count": 0}, "id": "1491467919444054017", "text": "Got it \u263a\ufe0f\n\nNeed to change the container display property.\n\n#100DaysOfCode https://t.co/5vaUr6JfUB"}], "1491094344975417344": [{"author_id": "2699175613", "entities": {"urls": [{"start": 88, "end": 111, "url": "https://t.co/MOiMznyeTY", "expanded_url": "https://twitter.com/attomos/status/1491094344975417344/photo/1", "display_url": "pic.twitter.com/MOiMznyeTY", "media_key": "3_1491093910114172929"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 30", "start": 0, "end": 6}]}, "conversation_id": "1491094344975417344", "created_at": "2022-02-08T16:59:29.000Z", "public_metrics": {"retweet_count": 21, "reply_count": 0, "like_count": 8, "quote_count": 0}, "id": "1491094344975417344", "text": "day 30 of #100DaysOfCode \n\nAdd tweets text to the tracker.\nI need to work more on CSS \ud83d\ude05 https://t.co/MOiMznyeTY"}], "1490730663020236802": [{"author_id": "2699175613", "entities": {"urls": [{"start": 280, "end": 303, "url": "https://t.co/vbeB07efrX", "expanded_url": "https://twitter.com/attomos/status/1490730663020236802/photo/1", "display_url": "pic.twitter.com/vbeB07efrX", "media_key": "3_1490729757339955200"}, {"start": 280, "end": 303, "url": "https://t.co/vbeB07efrX", "expanded_url": "https://twitter.com/attomos/status/1490730663020236802/photo/1", "display_url": "pic.twitter.com/vbeB07efrX", "media_key": "3_1490729796581888000"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 29", "start": 0, "end": 6}]}, "conversation_id": "1490730663020236802", "created_at": "2022-02-07T16:54:21.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 2, "quote_count": 0}, "id": "1490730663020236802", "text": "day 29 of #100DaysOfCode \n\nStill working on the progress tracker.\n\n- Fixed a Python bug that adds duplicate tweets to JSON.\n- Visualize tweets data in the ActivityGraph, currently from the tweets with the hashtag only.\n\nI'll fix the script to include all conversation tweets too. https://t.co/vbeB07efrX"}], "1490369454072467456": [{"author_id": "2699175613", "entities": {"urls": [{"start": 228, "end": 251, "url": "https://t.co/9MGRg31YhJ", "expanded_url": "https://twitter.com/attomos/status/1490369454072467456/photo/1", "display_url": "pic.twitter.com/9MGRg31YhJ", "media_key": "3_1490368270674714627"}, {"start": 228, "end": 251, "url": "https://t.co/9MGRg31YhJ", "expanded_url": "https://twitter.com/attomos/status/1490369454072467456/photo/1", "display_url": "pic.twitter.com/9MGRg31YhJ", "media_key": "3_1490368297660940288"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 45, "end": 59, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 28", "start": 0, "end": 6}]}, "conversation_id": "1490369454072467456", "created_at": "2022-02-06T16:59:02.000Z", "public_metrics": {"retweet_count": 6, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1490369454072467456", "text": "day 28 of #100DaysOfCode \n\nContinued with my #100DaysOfCode tracker.\n\nWrote a Python script to get related tweets.\nPretty much done since it's a small amount of data. But, I need to create a pipeline to update it automatically. https://t.co/9MGRg31YhJ"}], "1490009333559869440": [{"author_id": "2699175613", "entities": {"urls": [{"start": 266, "end": 289, "url": "https://t.co/TepjrHVhmp", "expanded_url": "https://twitter.com/attomos/status/1490009333559869440/photo/1", "display_url": "pic.twitter.com/TepjrHVhmp", "media_key": "3_1490003018242473984"}, {"start": 266, "end": 289, "url": "https://t.co/TepjrHVhmp", "expanded_url": "https://twitter.com/attomos/status/1490009333559869440/photo/1", "display_url": "pic.twitter.com/TepjrHVhmp", "media_key": "3_1490004203905122307"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 27", "start": 0, "end": 6}]}, "conversation_id": "1490009333559869440", "created_at": "2022-02-05T17:08:02.000Z", "public_metrics": {"retweet_count": 13, "reply_count": 0, "like_count": 7, "quote_count": 0}, "id": "1490009333559869440", "text": "day 27 of #100DaysOfCode \n\n- Worked on the day legend on the left.\n- Constructed the <rect> elements from Date objects instead of hard-coded 2D arrays filled with 1 with the help of date-fns.\n- Added tooltips.\n\nVisBug is an indispensable tool for alignment. \ud83e\udd29 https://t.co/TepjrHVhmp"}], "1489641131894018049": [{"author_id": "2699175613", "entities": {"urls": [{"start": 264, "end": 287, "url": "https://t.co/lNnXHpTl4g", "expanded_url": "https://twitter.com/attomos/status/1489641131894018049/photo/1", "display_url": "pic.twitter.com/lNnXHpTl4g", "media_key": "3_1489639833203265537"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 26", "start": 0, "end": 6}]}, "conversation_id": "1489641131894018049", "created_at": "2022-02-04T16:44:56.000Z", "public_metrics": {"retweet_count": 6, "reply_count": 0, "like_count": 5, "quote_count": 0}, "id": "1489641131894018049", "text": "day 26 of #100DaysOfCode \n\nBack to the front-end side a little for my progress tracker.\n\nTry different ways to create a grid layout similar to the GitHub contribution graph.\n1. Use grid layout from Tailwind CSS\n2. Draw SVG rects\n\nI kinda prefer the second option. https://t.co/lNnXHpTl4g"}], "1489282216341704713": [{"author_id": "2699175613", "entities": {"annotations": [{"start": 39, "end": 45, "probability": 0.6347, "type": "Product", "normalized_text": "Twitter"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 151, "end": 165, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 25", "start": 0, "end": 6}]}, "conversation_id": "1489282216341704713", "created_at": "2022-02-03T16:58:44.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 7, "quote_count": 0}, "id": "1489282216341704713", "text": "day 25 of #100DaysOfCode \n\nRe-learning Twitter APIs.\nStill failing with \"Client Forbidden\" error \ud83d\ude2d\n\nI was trying to get list of my own tweets to build #100DaysOfCode tracker."}, {"author_id": "2699175613", "entities": {"urls": [{"start": 259, "end": 282, "url": "https://t.co/y7fzUeGhYG", "expanded_url": "https://twitter.com/attomos/status/1489289956854210560/photo/1", "display_url": "pic.twitter.com/y7fzUeGhYG", "media_key": "3_1489287657465483265"}, {"start": 259, "end": 282, "url": "https://t.co/y7fzUeGhYG", "expanded_url": "https://twitter.com/attomos/status/1489289956854210560/photo/1", "display_url": "pic.twitter.com/y7fzUeGhYG", "media_key": "3_1489287991034277888"}], "annotations": [{"start": 19, "end": 25, "probability": 0.7939, "type": "Product", "normalized_text": "Twitter"}, {"start": 228, "end": 234, "probability": 0.714, "type": "Product", "normalized_text": "Twitter"}], "hashtags": [{"start": 244, "end": 258, "tag": "100DaysOfCode"}]}, "conversation_id": "1489282216341704713", "created_at": "2022-02-03T17:29:30.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "id": "1489289956854210560", "text": "After reading more Twitter API docs, seems like I don't have the access to full-archive search endpoint.\nLuckily, I can still use user Tweet timeline endpoint.\n\nWith correct tweet.fields, I think I can pull data I need from the Twitter API. \ud83d\udd25\n\n#100DaysOfCode https://t.co/y7fzUeGhYG"}], "1488905662738276354": [{"author_id": "2699175613", "entities": {"urls": [{"start": 275, "end": 298, "url": "https://t.co/KStWr2KZ59", "expanded_url": "https://twitter.com/attomos/status/1488905662738276354/photo/1", "display_url": "pic.twitter.com/KStWr2KZ59", "media_key": "3_1488904094840332292"}], "annotations": [{"start": 75, "end": 81, "probability": 0.7877, "type": "Product", "normalized_text": "Twitter"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 43, "end": 57, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 24", "start": 0, "end": 6}]}, "conversation_id": "1488905662738276354", "created_at": "2022-02-02T16:02:27.000Z", "public_metrics": {"retweet_count": 7, "reply_count": 0, "like_count": 5, "quote_count": 0}, "id": "1488905662738276354", "text": "day 24 of #100DaysOfCode\n\nStart working on #100DaysOfCode tracker.\n\nGot my Twitter API application approved.\nDidn't know that they need this much details.\nToo many bots, I guess \ud83d\ude05\n\nAlso created a new project using Vite with svelte-ts template.\nLightning Fast HMR for sure \u26a1\ufe0f https://t.co/KStWr2KZ59"}], "1488557231763197953": [{"author_id": "2699175613", "entities": {"urls": [{"start": 130, "end": 153, "url": "https://t.co/teinNsHgM4", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day19/", "display_url": "attomos.github.io/100-days-of-co\u2026"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 23", "start": 0, "end": 6}], "demo_list": [{"demo": "https://t.co/teinNsHgM4", "start": 130, "end": 153, "fixed": false}]}, "conversation_id": "1488557231763197953", "created_at": "2022-02-01T16:57:54.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1488557231763197953", "text": "day 23 of #100DaysOfCode \n\nFinish GitHub pinned repos clone.\n\nMostly having fun with refactoring and Svelte app deployment\n\ndemo: https://t.co/teinNsHgM4"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 54, "end": 77, "url": "https://t.co/Dou11DcNYB", "expanded_url": "https://github.com/typicode/json-server", "display_url": "github.com/typicode/json-\u2026"}], "hashtags": [{"start": 79, "end": 93, "tag": "100DaysOfCode"}]}, "conversation_id": "1488557231763197953", "created_at": "2022-02-01T17:07:01.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "id": "1488559524986654720", "text": "Another fun part is deploying JSON Server to Heroku.\n\nhttps://t.co/Dou11DcNYB\n\n#100DaysOfCode"}], "1488204053360222211": [{"author_id": "2699175613", "entities": {"urls": [{"start": 277, "end": 300, "url": "https://t.co/KWl5UaOkEw", "expanded_url": "https://twitter.com/attomos/status/1488204053360222211/video/1", "display_url": "pic.twitter.com/KWl5UaOkEw", "media_key": "7_1488202303702441986"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 22", "start": 0, "end": 6}]}, "conversation_id": "1488204053360222211", "created_at": "2022-01-31T17:34:30.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1488204053360222211", "text": "day 22 of #100DaysOfCode \n\nWith the help of dragula, I managed to make my GitHub pinned repo drag and drop functionality work.\n\nThanks to livereload plugin, I sent too many requests to GitHub.\nSomehow, I got HTTP 403 instead of 429 \ud83d\ude05.\n\nTODO\n- CSS\n- refactor data fetching code https://t.co/KWl5UaOkEw"}, {"author_id": "2699175613", "conversation_id": "1488204053360222211", "created_at": "2022-01-31T17:38:23.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 0, "quote_count": 0}, "entities": {"hashtags": [{"start": 244, "end": 258, "tag": "100DaysOfCode"}]}, "id": "1488205029698076673", "text": "One thing that's a bit annoying is dropping area/sensitivity in dragula.\n\nComparing this to the reference GitHub pinned repo dnd, my version was less sensitive when I'm dragging one repo to the drop zone.\n\nI'm figuring out how to adjust this.\n\n#100DaysOfCode"}], "1487456993510313984": [{"author_id": "2699175613", "conversation_id": "1487456993510313984", "created_at": "2022-01-29T16:05:57.000Z", "public_metrics": {"retweet_count": 6, "reply_count": 3, "like_count": 4, "quote_count": 0}, "entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 21", "start": 0, "end": 6}]}, "id": "1487456993510313984", "text": "day 21 of #100DaysOfCode \n\nContinued my GitHub pinned repo clone. (part 3)\n\nHad some issues when styling web components.\nDecided to deviate from the main task (dnd) to give Svelte a try for the first time.\n\nSo far, I'm impressed by its template syntax and great DX."}, {"author_id": "2699175613", "conversation_id": "1487456993510313984", "created_at": "2022-01-29T16:07:42.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 1, "quote_count": 0}, "entities": {"hashtags": [{"start": 154, "end": 168, "tag": "100DaysOfCode"}]}, "id": "1487457434834595840", "text": "TODO for tomorrow:\n- fetch GitHub repository data from API\n- fix minor CSS issues\n- finish drag and drop logic \ud83d\ude05\n- put Svelte project in Yarn workspaces\n\n#100DaysOfCode"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 45, "end": 68, "url": "https://t.co/oo8IOhhHtC", "expanded_url": "https://twitter.com/attomos/status/1487458186999128068/photo/1", "display_url": "pic.twitter.com/oo8IOhhHtC", "media_key": "3_1487458110339833856"}], "hashtags": [{"start": 30, "end": 44, "tag": "100DaysOfCode"}]}, "conversation_id": "1487456993510313984", "created_at": "2022-01-29T16:10:42.000Z", "public_metrics": {"retweet_count": 2, "reply_count": 1, "like_count": 1, "quote_count": 0}, "id": "1487458186999128068", "text": "forgot to put the screenshots #100DaysOfCode https://t.co/oo8IOhhHtC"}], "1487107150883299334": [{"author_id": "2699175613", "entities": {"urls": [{"start": 108, "end": 131, "url": "https://t.co/JFEFMM82Uz", "expanded_url": "https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API", "display_url": "developer.mozilla.org/en-US/docs/Web\u2026"}, {"start": 206, "end": 229, "url": "https://t.co/427OP0N4vp", "expanded_url": "https://twitter.com/attomos/status/1487107150883299334/video/1", "display_url": "pic.twitter.com/427OP0N4vp", "media_key": "7_1487106920674897926"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 20", "start": 0, "end": 6}]}, "conversation_id": "1487107150883299334", "created_at": "2022-01-28T16:55:48.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 1, "quote_count": 0}, "id": "1487107150883299334", "text": "day 20 of #100DaysOfCode \n\nContinued my GitHub pinned repo clone.\n\nLearned some drag and drop API from MDN.\nhttps://t.co/JFEFMM82Uz\n\nToday, I made the box draggable. Should be able to finish this tomorrow. https://t.co/427OP0N4vp"}], "1486736248068710404": [{"author_id": "2699175613", "entities": {"urls": [{"start": 66, "end": 89, "url": "https://t.co/Rlq3ZKOy7L", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/main/days/day17", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 96, "end": 119, "url": "https://t.co/URteAv1seQ", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day17/#align-self", "display_url": "attomos.github.io/100-days-of-co\u2026"}], "annotations": [{"start": 25, "end": 44, "probability": 0.4186, "type": "Product", "normalized_text": "Finish CSS Flexbox"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 19", "start": 0, "end": 6}], "src_list": [{"src": "https://t.co/Rlq3ZKOy7L", "start": 66, "end": 89, "fixed": false}], "demo_list": [{"demo": "https://t.co/URteAv1seQ", "start": 96, "end": 119, "fixed": false}]}, "conversation_id": "1486736248068710404", "created_at": "2022-01-27T16:21:58.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1486736248068710404", "text": "day 19 of #100DaysOfCode \n\nFinish CSS Flexbox visual note.\n \nsrc: https://t.co/Rlq3ZKOy7L\ndemo: https://t.co/URteAv1seQ"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 276, "end": 299, "url": "https://t.co/HOg1W2TQnz", "expanded_url": "https://twitter.com/attomos/status/1486737015542476812/photo/1", "display_url": "pic.twitter.com/HOg1W2TQnz", "media_key": "3_1486736667071315971"}], "annotations": [{"start": 60, "end": 65, "probability": 0.4557, "type": "Product", "normalized_text": "GitHub"}], "hashtags": [{"start": 261, "end": 275, "tag": "100DaysOfCode"}]}, "conversation_id": "1486736248068710404", "created_at": "2022-01-27T16:25:01.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 0, "like_count": 2, "quote_count": 0}, "id": "1486737015542476812", "text": "Also started a new project on day 19.\n\nI'm trying to create GitHub pinned repos UI, where I can drag to reorder items. Still WIP though.\n\nI recently noticed quite a bit of duplicate code.\nMaybe it's time to try Preact or some other lightweight alternatives. \ud83e\udd14\n\n#100DaysOfCode https://t.co/HOg1W2TQnz"}], "1486383215623700480": [{"author_id": "2699175613", "entities": {"urls": [{"start": 92, "end": 115, "url": "https://t.co/WqMNP5OsEo", "expanded_url": "https://twitter.com/attomos/status/1486383215623700480/photo/1", "display_url": "pic.twitter.com/WqMNP5OsEo", "media_key": "3_1486382990670573569"}, {"start": 92, "end": 115, "url": "https://t.co/WqMNP5OsEo", "expanded_url": "https://twitter.com/attomos/status/1486383215623700480/photo/1", "display_url": "pic.twitter.com/WqMNP5OsEo", "media_key": "3_1486383044143775744"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 18", "start": 0, "end": 6}]}, "conversation_id": "1486383215623700480", "created_at": "2022-01-26T16:59:08.000Z", "public_metrics": {"retweet_count": 6, "reply_count": 0, "like_count": 5, "quote_count": 0}, "id": "1486383215623700480", "text": "day 18 of #100DaysOfCode \n\nContinued from yesterday.\nAdded more Flexbox content to my note. https://t.co/WqMNP5OsEo"}], "1486016841596436483": [{"author_id": "2699175613", "entities": {"urls": [{"start": 209, "end": 232, "url": "https://t.co/7l0mtPsX7D", "expanded_url": "https://twitter.com/attomos/status/1486016841596436483/photo/1", "display_url": "pic.twitter.com/7l0mtPsX7D", "media_key": "3_1486015364429660165"}, {"start": 209, "end": 232, "url": "https://t.co/7l0mtPsX7D", "expanded_url": "https://twitter.com/attomos/status/1486016841596436483/photo/1", "display_url": "pic.twitter.com/7l0mtPsX7D", "media_key": "3_1486015390287536128"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "mentions": [{"start": 62, "end": 75, "username": "freeCodeCamp", "id": "1668100142"}], "day_list": [{"day": "day 17", "start": 0, "end": 6}]}, "conversation_id": "1486016841596436483", "created_at": "2022-01-25T16:43:18.000Z", "public_metrics": {"retweet_count": 7, "reply_count": 1, "like_count": 11, "quote_count": 0}, "id": "1486016841596436483", "text": "day 17 of #100DaysOfCode \n\nCompleted CSS Flexbox section from @freeCodeCamp \n\nCreated this quick visual reference for myself. (WIP)\nAnother purpose for this is to reinforce my understanding after learning it. https://t.co/7l0mtPsX7D"}], "1484927747235651585": [{"author_id": "2699175613", "entities": {"urls": [{"start": 117, "end": 140, "url": "https://t.co/UDVDJu8TNU", "expanded_url": "https://github.com/attomos/hdoc-ribbon/blob/19895b2343c090cb357cf51a055e6fbf68d24626/.releaserc.json#L3-L35", "display_url": "github.com/attomos/hdoc-r\u2026", "images": [{"url": "https://pbs.twimg.com/news_img/1484927753757786113/wMbhujGv?format=jpg&name=orig", "width": 1200, "height": 600}, {"url": "https://pbs.twimg.com/news_img/1484927753757786113/wMbhujGv?format=jpg&name=150x150", "width": 150, "height": 150}], "status": 200, "title": "hdoc-ribbon/.releaserc.json at 19895b2343c090cb357cf51a055e6fbf68d24626 \u00b7 attomos/hdoc-ribbon", "description": "A custom HTML element to put in my #100DaysOfCode projects. - hdoc-ribbon/.releaserc.json at 19895b2343c090cb357cf51a055e6fbf68d24626 \u00b7 attomos/hdoc-ribbon", "unwound_url": "https://github.com/attomos/hdoc-ribbon/blob/19895b2343c090cb357cf51a055e6fbf68d24626/.releaserc.json#L3-L35"}, {"start": 196, "end": 219, "url": "https://t.co/lf8k4FD4FR", "expanded_url": "https://github.com/attomos/hdoc-ribbon/blob/19895b2343c090cb357cf51a055e6fbf68d24626/.github/workflows/release.yml", "display_url": "github.com/attomos/hdoc-r\u2026"}, {"start": 277, "end": 300, "url": "https://t.co/7taS8eihvF", "expanded_url": "https://twitter.com/attomos/status/1484927747235651585/photo/1", "display_url": "pic.twitter.com/7taS8eihvF", "media_key": "3_1484924527893442560"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 16", "start": 0, "end": 6}]}, "conversation_id": "1484927747235651585", "created_at": "2022-01-22T16:35:38.000Z", "public_metrics": {"retweet_count": 9, "reply_count": 0, "like_count": 4, "quote_count": 0}, "id": "1484927747235651585", "text": "day 16 of #100DaysOfCode \n\nPut some love into my day 12's project by setting up semantic-release and GitHub Actions.\nhttps://t.co/UDVDJu8TNU\n\nTurns out that I need more plugins than I thought. \ud83d\ude05\n\nhttps://t.co/lf8k4FD4FR\n\nAlso learned about npm Unpublish Policy in the process. https://t.co/7taS8eihvF"}], "1484923826727436288": [{"author_id": "2699175613", "conversation_id": "1484923826727436288", "created_at": "2022-01-22T16:20:03.000Z", "public_metrics": {"retweet_count": 8, "reply_count": 0, "like_count": 10, "quote_count": 0}, "entities": {"hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 93, "end": 107, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 15", "start": 0, "end": 6}]}, "id": "1484923826727436288", "text": "day 15 of #100DaysOfCode \n\nStarted a static site using Next.js and TailwindCSS to log all my #100DaysOfCode progress.\n\nThinking about putting more details in there.\nOne tweet is too small to put all the details. \ud83e\udd75\n\nIt's still WIP. I'll share the link soon!"}], "1484210201456967687": [{"author_id": "2699175613", "entities": {"urls": [{"start": 281, "end": 304, "url": "https://t.co/ipxFhZ6Wn5", "expanded_url": "https://twitter.com/attomos/status/1484210201456967687/video/1", "display_url": "pic.twitter.com/ipxFhZ6Wn5", "media_key": "7_1484209500035121152"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 14", "start": 0, "end": 6}]}, "conversation_id": "1484210201456967687", "created_at": "2022-01-20T17:04:21.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 4, "quote_count": 0}, "id": "1484210201456967687", "text": "day 14 of #100DaysOfCode \n\nContinued from day 13, created a Slack-like sidebar navigation and persist selected tab in localStorage.\nAlways wanted to create something like this.\n\nNext, try to make the sidebar width resizable and implement double-click to restore to original width. https://t.co/ipxFhZ6Wn5"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 6, "end": 29, "url": "https://t.co/5uMQD7Xggu", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day14/", "display_url": "attomos.github.io/100-days-of-co\u2026"}, {"start": 35, "end": 58, "url": "https://t.co/4Xg26G9EuC", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/main/days/day14", "display_url": "github.com/attomos/100-da\u2026"}], "hashtags": [{"start": 95, "end": 109, "tag": "100DaysOfCode"}, {"start": 110, "end": 121, "tag": "JavaScript"}], "src_list": [{"src": "https://t.co/4Xg26G9EuC", "start": 35, "end": 58, "fixed": false}], "demo_list": [{"demo": "https://t.co/5uMQD7Xggu", "start": 6, "end": 29, "fixed": false}]}, "conversation_id": "1484210201456967687", "created_at": "2022-01-20T17:29:53.000Z", "public_metrics": {"retweet_count": 0, "reply_count": 0, "like_count": 2, "quote_count": 0}, "id": "1484216624899313664", "text": "demo: https://t.co/5uMQD7Xggu\nsrc: https://t.co/4Xg26G9EuC\n\nWould love to hear some feedback.\n\n#100DaysOfCode #JavaScript"}], "1483838036618379264": [{"author_id": "2699175613", "entities": {"urls": [{"start": 276, "end": 299, "url": "https://t.co/rWwRIhdbGE", "expanded_url": "https://twitter.com/attomos/status/1483838036618379264/photo/1", "display_url": "pic.twitter.com/rWwRIhdbGE", "media_key": "3_1483837467979816964"}, {"start": 276, "end": 299, "url": "https://t.co/rWwRIhdbGE", "expanded_url": "https://twitter.com/attomos/status/1483838036618379264/photo/1", "display_url": "pic.twitter.com/rWwRIhdbGE", "media_key": "3_1483837769046978561"}, {"start": 276, "end": 299, "url": "https://t.co/rWwRIhdbGE", "expanded_url": "https://twitter.com/attomos/status/1483838036618379264/photo/1", "display_url": "pic.twitter.com/rWwRIhdbGE", "media_key": "3_1483837794661593094"}, {"start": 276, "end": 299, "url": "https://t.co/rWwRIhdbGE", "expanded_url": "https://twitter.com/attomos/status/1483838036618379264/photo/1", "display_url": "pic.twitter.com/rWwRIhdbGE", "media_key": "3_1483837812336390145"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 13", "start": 0, "end": 6}]}, "conversation_id": "1483838036618379264", "created_at": "2022-01-19T16:25:30.000Z", "public_metrics": {"retweet_count": 9, "reply_count": 0, "like_count": 4, "quote_count": 0}, "id": "1483838036618379264", "text": "day 13 of #100DaysOfCode \n\nLearned about Yarn workspaces and start using it in my repo.\n\nI deliberately use TailwindCSS as dependencies for day 4 to 7 to see how Yarn workspaces can save some disk space.\n\nThe result is truly impressive!\n\nHowever, day 13 project is still WIP. https://t.co/rWwRIhdbGE"}], "1483483848403202052": [{"author_id": "2699175613", "entities": {"urls": [{"start": 195, "end": 218, "url": "https://t.co/8pHew9P6Zl", "expanded_url": "https://github.com/attomos/hdoc-ribbon", "display_url": "github.com/attomos/hdoc-r\u2026"}, {"start": 224, "end": 247, "url": "https://t.co/rk6AqGEIHx", "expanded_url": "https://www.npmjs.com/package/hdoc-ribbon", "display_url": "npmjs.com/package/hdoc-r\u2026"}, {"start": 281, "end": 304, "url": "https://t.co/GimkrJmNPr", "expanded_url": "https://twitter.com/attomos/status/1483483848403202052/video/1", "display_url": "pic.twitter.com/GimkrJmNPr", "media_key": "7_1483481724135026690"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 59, "end": 73, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 11", "start": 0, "end": 6}], "src_list": [{"src": "https://t.co/8pHew9P6Zl", "start": 195, "end": 218, "fixed": false}]}, "conversation_id": "1483483848403202052", "created_at": "2022-01-18T16:58:05.000Z", "public_metrics": {"retweet_count": 8, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1483483848403202052", "text": "day 11 of #100DaysOfCode \n\nCreated a custom element to put #100DaysOfCode ribbon. It has some customizability so that you can put it in either top right or top left corner of the web page.\n\nsrc: https://t.co/8pHew9P6Zl\nnpm: https://t.co/rk6AqGEIHx\nPlease check out the demo below. https://t.co/GimkrJmNPr"}], "1481662692138315778": [{"author_id": "2699175613", "entities": {"urls": [{"start": 281, "end": 304, "url": "https://t.co/RCPGwbsFnE", "expanded_url": "https://twitter.com/attomos/status/1481662692138315778/video/1", "display_url": "pic.twitter.com/RCPGwbsFnE", "media_key": "7_1481660008874246144"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}, {"start": 75, "end": 86, "tag": "JavaScript"}], "day_list": [{"day": "day 10", "start": 0, "end": 6}]}, "conversation_id": "1481662692138315778", "created_at": "2022-01-13T16:21:28.000Z", "public_metrics": {"retweet_count": 8, "reply_count": 1, "like_count": 7, "quote_count": 0}, "id": "1481662692138315778", "text": "day 10 of #100DaysOfCode\n\nSome updates on my Card Matching Game written in #JavaScript \nI've been working on this for 3 days and now the game logic is done.\n\nTODO:\n- make it responsive\n- make it more vivid\n- add sound effects\n- deployment\n\nHere's short video demo for this update. https://t.co/RCPGwbsFnE"}, {"author_id": "2699175613", "entities": {"urls": [{"start": 210, "end": 233, "url": "https://t.co/dTp1vTwX0t", "expanded_url": "https://card-matching-game-attomos.vercel.app/", "display_url": "card-matching-game-attomos.vercel.app"}], "hashtags": [{"start": 10, "end": 24, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 11", "start": 0, "end": 6}]}, "conversation_id": "1481662692138315778", "created_at": "2022-01-17T16:23:16.000Z", "public_metrics": {"retweet_count": 2, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1483112697269223424", "text": "day 11 of #100DaysOfCode \n\nFinish almost all the previous TODO items (responsive, sound effects, deployment) except one thing (make it more vivid).\n\nDeployed to Vercel (the deployment experience is quite nice)\nhttps://t.co/dTp1vTwX0t\n\nPlease give me some feedbacks \u263a\ufe0f"}], "1480944697543577601": [{"author_id": "2699175613", "entities": {"urls": [{"start": 279, "end": 302, "url": "https://t.co/ODx3eFHSOL", "expanded_url": "https://twitter.com/attomos/status/1480944697543577601/photo/1", "display_url": "pic.twitter.com/ODx3eFHSOL", "media_key": "3_1480944136488316931"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 9", "start": 0, "end": 5}]}, "conversation_id": "1480944697543577601", "created_at": "2022-01-11T16:48:25.000Z", "public_metrics": {"retweet_count": 2, "reply_count": 0, "like_count": 2, "quote_count": 1}, "id": "1480944697543577601", "text": "day 9 of #100DaysOfCode \n\nDecided to create Card Matching Game, continued from my day 8 project.\nToday, I just did the hardest part (for me) which is CSS and flipping animation. \ud83d\ude05\n\nTODO:\n- game logic\n- make it responsive\n- build and deploy to Vercel to avoid file caching issues https://t.co/ODx3eFHSOL"}], "1480576490022469633": [{"author_id": "2699175613", "entities": {"urls": [{"start": 216, "end": 239, "url": "https://t.co/F8xXwQV3YV", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/16295eb9cec23f2ce2bd400aa2ffe95d3ce4d8e9/days/first_game", "display_url": "github.com/attomos/100-da\u2026", "unwound_url": "https://github.com/attomos/100-days-of-code/tree/16295eb9cec23f2ce2bd400aa2ffe95d3ce4d8e9/days/first_game"}, {"start": 246, "end": 269, "url": "https://t.co/L648Dpswhc", "expanded_url": "https://attomos.github.io/100-days-of-code/days/first_game/", "display_url": "attomos.github.io/100-days-of-co\u2026"}, {"start": 270, "end": 293, "url": "https://t.co/LhfQ6EtHlH", "expanded_url": "https://twitter.com/attomos/status/1480576490022469633/photo/1", "display_url": "pic.twitter.com/LhfQ6EtHlH", "media_key": "3_1480575280590643201"}], "annotations": [{"start": 68, "end": 79, "probability": 0.4687, "type": "Product", "normalized_text": "Tailwind CSS"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 8", "start": 0, "end": 5}], "src_list": [{"src": "https://t.co/F8xXwQV3YV", "start": 216, "end": 239, "fixed": false}], "demo_list": [{"demo": "https://t.co/L648Dpswhc", "start": 246, "end": 269, "fixed": false}]}, "conversation_id": "1480576490022469633", "created_at": "2022-01-10T16:25:17.000Z", "public_metrics": {"retweet_count": 11, "reply_count": 1, "like_count": 3, "quote_count": 0}, "id": "1480576490022469633", "text": "day 8 of #100DaysOfCode \n\nCreated my first game using HTML, JS, and Tailwind CSS.\nNot sure if this is really my first game in JS, but at least it's first in this challenge for sure.\nNeed to keep working on it.\n\nsrc: https://t.co/F8xXwQV3YV\ndemo: https://t.co/L648Dpswhc https://t.co/LhfQ6EtHlH"}], "1480209499507945474": [{"author_id": "2699175613", "entities": {"urls": [{"start": 192, "end": 215, "url": "https://t.co/avnVAfwO0y", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/3a9593242c770e24320b3f4a55444a5b3e224e56/days/day7", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 222, "end": 245, "url": "https://t.co/ZtqrBKDHaF", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day7/", "display_url": "attomos.github.io/100-days-of-co\u2026"}, {"start": 246, "end": 269, "url": "https://t.co/FJMduk1LbW", "expanded_url": "https://twitter.com/attomos/status/1480209499507945474/photo/1", "display_url": "pic.twitter.com/FJMduk1LbW", "media_key": "3_1480208259382276098"}, {"start": 246, "end": 269, "url": "https://t.co/FJMduk1LbW", "expanded_url": "https://twitter.com/attomos/status/1480209499507945474/photo/1", "display_url": "pic.twitter.com/FJMduk1LbW", "media_key": "3_1480209121513066500"}], "annotations": [{"start": 126, "end": 132, "probability": 0.8183, "type": "Product", "normalized_text": "Twitter"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "mentions": [{"start": 89, "end": 102, "username": "freeCodeCamp", "id": "1668100142"}], "day_list": [{"day": "day 7", "start": 0, "end": 5}], "src_list": [{"src": "https://t.co/avnVAfwO0y", "start": 192, "end": 215, "fixed": false}], "demo_list": [{"demo": "https://t.co/ZtqrBKDHaF", "start": 222, "end": 245, "fixed": false}]}, "conversation_id": "1480209499507945474", "created_at": "2022-01-09T16:07:00.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 1, "quote_count": 0}, "id": "1480209499507945474", "text": "day 7 of #100DaysOfCode \n\nLearned some CSS Linear Gradient and CSS Transform basics from @freeCodeCamp \n\nToday, I worked on a Twitter Space Reminder Clone using Tailwind CSS as usual. \ud83d\ude0a\n\nsrc: https://t.co/avnVAfwO0y\ndemo: https://t.co/ZtqrBKDHaF https://t.co/FJMduk1LbW"}], "1479862441282400259": [{"author_id": "2699175613", "entities": {"urls": [{"start": 226, "end": 249, "url": "https://t.co/6JQh29muHh", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/a26b8d31b5c65c4290fba2fc6f3b1153e5bf50e5/days/day6", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 256, "end": 279, "url": "https://t.co/EmMsG3vJ6Q", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day6/", "display_url": "attomos.github.io/100-days-of-co\u2026"}, {"start": 280, "end": 303, "url": "https://t.co/6CgBZABLZL", "expanded_url": "https://twitter.com/attomos/status/1479862441282400259/photo/1", "display_url": "pic.twitter.com/6CgBZABLZL", "media_key": "3_1479862205096947714"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "mentions": [{"start": 59, "end": 72, "username": "freeCodeCamp", "id": "1668100142"}], "day_list": [{"day": "day 6", "start": 0, "end": 5}], "src_list": [{"src": "https://t.co/6JQh29muHh", "start": 226, "end": 249, "fixed": false}], "demo_list": [{"demo": "https://t.co/EmMsG3vJ6Q", "start": 256, "end": 279, "fixed": false}]}, "conversation_id": "1479862441282400259", "created_at": "2022-01-08T17:07:55.000Z", "public_metrics": {"retweet_count": 6, "reply_count": 0, "like_count": 2, "quote_count": 0}, "id": "1479862441282400259", "text": "day 6 of #100DaysOfCode \n\nLearned color theory basics from @freeCodeCamp \nand created HSL color slider.\nCircle is the main color and square is its complementary color.\nCould someone let me know if I did it correctly? \ud83d\ude05\n\nsrc: https://t.co/6JQh29muHh\ndemo: https://t.co/EmMsG3vJ6Q https://t.co/6CgBZABLZL"}], "1479656311792955393": [{"author_id": "2699175613", "entities": {"urls": [{"start": 278, "end": 301, "url": "https://t.co/XaoM3DUAXu", "expanded_url": "https://twitter.com/attomos/status/1479656311792955393/photo/1", "display_url": "pic.twitter.com/XaoM3DUAXu", "media_key": "3_1479654864372174854"}], "hashtags": [{"start": 263, "end": 277, "tag": "100DaysOfCode"}]}, "conversation_id": "1479656311792955393", "created_at": "2022-01-08T03:28:50.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 3, "quote_count": 0}, "id": "1479656311792955393", "text": "Fixed a small bug in my day 5 project.\n\nThe keyboard shortcuts `ctrl k` and `cmd k` are working fine on macOS.\n\nHowever, pressing `ctrl k` on Windows by default will trigger Google Search in Chrome browser.\nSo I need to call e.preventDefault() to prevent that \ud83d\ude05\n\n#100DaysOfCode https://t.co/XaoM3DUAXu"}], "1479515224403177474": [{"author_id": "2699175613", "entities": {"urls": [{"start": 126, "end": 149, "url": "https://t.co/UlAjtjpIH0", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day1/", "display_url": "attomos.github.io/100-days-of-co\u2026"}, {"start": 150, "end": 173, "url": "https://t.co/JgKo1mencG", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day2/", "display_url": "attomos.github.io/100-days-of-co\u2026"}, {"start": 174, "end": 197, "url": "https://t.co/6SE0hRgHHH", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day3/", "display_url": "attomos.github.io/100-days-of-co\u2026", "status": 200, "title": "D2P", "description": "D2P (Days to Pomodoro) is a simple webapp to estimate number of pomodoro intervals, given number of days to complete a task How many hours you spent for breakfast (put 0 if it's not part of working hours)? How many hours you spent for lunch (put 0 if it's not part of working hours)? How many hours you spent for dinner (put 0 if it's not part of working hours)? How many hours do you plan to work?", "unwound_url": "https://attomos.github.io/100-days-of-code/days/day3/"}, {"start": 198, "end": 221, "url": "https://t.co/4sXoQ4yLfY", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day4/", "display_url": "attomos.github.io/100-days-of-co\u2026"}], "hashtags": [{"start": 110, "end": 124, "tag": "100DaysOfCode"}]}, "conversation_id": "1479515224403177474", "created_at": "2022-01-07T18:08:12.000Z", "public_metrics": {"retweet_count": 1, "reply_count": 0, "like_count": 0, "quote_count": 0}, "id": "1479515224403177474", "text": "Links to my previous days' demos.\nFeel free to play around with them and give me some feedbacks/suggestions.\n\n#100DaysOfCode\n\nhttps://t.co/UlAjtjpIH0\nhttps://t.co/JgKo1mencG\nhttps://t.co/6SE0hRgHHH\nhttps://t.co/4sXoQ4yLfY"}], "1479514795829174274": [{"author_id": "2699175613", "entities": {"urls": [{"start": 214, "end": 237, "url": "https://t.co/sxheLXSxla", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/ec0689d204451587ba78f13915afa17f860cb7f3/days/day5", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 244, "end": 267, "url": "https://t.co/lmexIesDo1", "expanded_url": "https://attomos.github.io/100-days-of-code/days/day5/", "display_url": "attomos.github.io/100-days-of-co\u2026"}, {"start": 268, "end": 291, "url": "https://t.co/GazKrsmuJb", "expanded_url": "https://twitter.com/attomos/status/1479514795829174274/photo/1", "display_url": "pic.twitter.com/GazKrsmuJb", "media_key": "3_1479514309302493184"}], "annotations": [{"start": 60, "end": 71, "probability": 0.6946, "type": "Product", "normalized_text": "GitHub Pages"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 5", "start": 0, "end": 5}], "src_list": [{"src": "https://t.co/sxheLXSxla", "start": 214, "end": 237, "fixed": false}], "demo_list": [{"demo": "https://t.co/lmexIesDo1", "start": 244, "end": 267, "fixed": false}]}, "conversation_id": "1479514795829174274", "created_at": "2022-01-07T18:06:30.000Z", "public_metrics": {"retweet_count": 12, "reply_count": 0, "like_count": 3, "quote_count": 0}, "id": "1479514795829174274", "text": "day 5 of #100DaysOfCode \n\nI made my 100-days-of-code repo a GitHub Pages so that all days are accessible.\n\nFor the actual project of day 5, I created a simple search form found in Tailwind CSS documentation.\n\nsrc: https://t.co/sxheLXSxla\ndemo: https://t.co/lmexIesDo1 https://t.co/GazKrsmuJb"}], "1479139687893639169": [{"author_id": "2699175613", "entities": {"urls": [{"start": 235, "end": 258, "url": "https://t.co/p5Wc1EqCOl", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/4d0463ee1a95e9c73d4507bff814dc172c51ebb6/days/day4", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 259, "end": 282, "url": "https://t.co/CXHA2sQVdJ", "expanded_url": "https://twitter.com/attomos/status/1479139687893639169/photo/1", "display_url": "pic.twitter.com/CXHA2sQVdJ", "media_key": "3_1479134699805036546"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 4", "start": 0, "end": 5}]}, "conversation_id": "1479139687893639169", "created_at": "2022-01-06T17:15:57.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 1, "like_count": 1, "quote_count": 0}, "id": "1479139687893639169", "text": "day 4 of #100DaysOfCode \n\nStyled my day 3 app a little with Tailwind CSS.\n\nDon't progress much, but learned few things from Tailwind CSS today.\n- reusing styles with at apply\n- forms plugin makes it easier to style forms\n\nsource code: https://t.co/p5Wc1EqCOl https://t.co/CXHA2sQVdJ"}], "1478775335969705984": [{"author_id": "2699175613", "entities": {"urls": [{"start": 252, "end": 275, "url": "https://t.co/CYdp0jeKeI", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/main/days/day3", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 276, "end": 299, "url": "https://t.co/okJkyTDmEU", "expanded_url": "https://twitter.com/attomos/status/1478775335969705984/photo/1", "display_url": "pic.twitter.com/okJkyTDmEU", "media_key": "3_1478773287274496010"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 3", "start": 0, "end": 5}]}, "conversation_id": "1478775335969705984", "created_at": "2022-01-05T17:08:09.000Z", "public_metrics": {"retweet_count": 4, "reply_count": 0, "like_count": 1, "quote_count": 0}, "id": "1478775335969705984", "text": "day 3 of #100DaysOfCode \n\nI created a simple web app to estimate number of pomodoro intervals, given number of days to complete a task\n\nAt this point, it's just a simple form with a button.\nI'd like to continue working on this later tmr.\n\nsource code: https://t.co/CYdp0jeKeI https://t.co/okJkyTDmEU"}], "1478410778268995587": [{"author_id": "2699175613", "entities": {"urls": [{"start": 102, "end": 125, "url": "https://t.co/r092IrMIo0", "expanded_url": "https://stackoverflow.com/questions/19867599/what-is-the-difference-between-localstorage-sessionstorage-session-and-cookies", "display_url": "stackoverflow.com/questions/1986\u2026"}, {"start": 225, "end": 248, "url": "https://t.co/FJHDOgXN4u", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/main/days/day2", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 279, "end": 302, "url": "https://t.co/EqUT8QiMmY", "expanded_url": "https://twitter.com/attomos/status/1478410778268995587/video/1", "display_url": "pic.twitter.com/EqUT8QiMmY", "media_key": "7_1478410109575319552"}], "annotations": [{"start": 186, "end": 191, "probability": 0.7865, "type": "Product", "normalized_text": "GitHub"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "day_list": [{"day": "day 2", "start": 0, "end": 5}]}, "conversation_id": "1478410778268995587", "created_at": "2022-01-04T16:59:31.000Z", "public_metrics": {"retweet_count": 5, "reply_count": 1, "like_count": 2, "quote_count": 0}, "id": "1478410778268995587", "text": "day 2 of #100DaysOfCode\n\nLearned about localStorage, sessionStorage, and cookies from this SO thread.\nhttps://t.co/r092IrMIo0\n\nThen, extended my day 1 to make the bio editable and added GitHub username text. \u263a\ufe0f\n\nsource code: https://t.co/FJHDOgXN4u\n\nHere's the quick demo video. https://t.co/EqUT8QiMmY"}], "1478058931112988673": [{"author_id": "2699175613", "entities": {"urls": [{"start": 203, "end": 226, "url": "https://t.co/EkGQVbmLN2", "expanded_url": "https://github.com/attomos/100-days-of-code/tree/main/days/day1", "display_url": "github.com/attomos/100-da\u2026"}, {"start": 227, "end": 250, "url": "https://t.co/dwuqTffWPT", "expanded_url": "https://twitter.com/attomos/status/1478058931112988673/photo/1", "display_url": "pic.twitter.com/dwuqTffWPT", "media_key": "3_1478057625098981376"}], "hashtags": [{"start": 9, "end": 23, "tag": "100DaysOfCode"}], "mentions": [{"start": 74, "end": 87, "username": "freeCodeCamp", "id": "1668100142"}, {"start": 131, "end": 147, "username": "ThePracticalDev", "id": "2735246778"}], "day_list": [{"day": "day 1", "start": 0, "end": 5}]}, "conversation_id": "1478058931112988673", "created_at": "2022-01-03T17:41:24.000Z", "public_metrics": {"retweet_count": 3, "reply_count": 1, "like_count": 2, "quote_count": 0}, "id": "1478058931112988673", "text": "day 1 of #100DaysOfCode \n\nI refreshed some of HTML and CSS knowledge from @freeCodeCamp and try to create a bio header similar to @ThePracticalDev website.\n\nSmall step, but felt great : )\n\nsource code: https://t.co/EkGQVbmLN2 https://t.co/dwuqTffWPT"}], "1478057332596609029": [{"author_id": "2699175613", "entities": {"urls": [{"start": 109, "end": 132, "url": "https://t.co/vUGpQkS3Zj", "expanded_url": "https://100DaysOfCode.com", "display_url": "100DaysOfCode.com"}], "annotations": [{"start": 31, "end": 53, "probability": 0.4015, "type": "Other", "normalized_text": "100DaysOfCode Challenge"}], "hashtags": [{"start": 133, "end": 147, "tag": "100DaysOfCode"}], "mentions": [{"start": 99, "end": 108, "username": "ka11away", "id": "60510014"}]}, "conversation_id": "1478057332596609029", "created_at": "2022-01-03T17:35:03.000Z", "public_metrics": {"retweet_count": 1, "reply_count": 1, "like_count": 2, "quote_count": 0}, "id": "1478057332596609029", "text": "I'm publicly committing to the 100DaysOfCode Challenge starting today! Learn More and Join me! hey @ka11away https://t.co/vUGpQkS3Zj #100DaysOfCode"}], "1477663310128451585": [{"author_id": "2699175613", "entities": {"urls": [{"start": 111, "end": 134, "url": "https://t.co/jGMufM1yBJ", "expanded_url": "https://twitter.com/attomos/status/1477663310128451585/photo/1", "display_url": "pic.twitter.com/jGMufM1yBJ", "media_key": "3_1477661290784956416"}], "hashtags": [{"start": 83, "end": 97, "tag": "100DaysOfCode"}]}, "conversation_id": "1477663310128451585", "created_at": "2022-01-02T15:29:21.000Z", "public_metrics": {"retweet_count": 1, "reply_count": 0, "like_count": 0, "quote_count": 0}, "id": "1477663310128451585", "text": "Decided to re-learn web development from zero.\n\nPreparing myself to participate in #100DaysOfCode challenge. \ud83d\ude0a https://t.co/jGMufM1yBJ"}]}