[{"_id":"6a12ba98a7a7d06e3d838215","type":"bookmark","tags":["ai","prompt-engineering"],"name":"CLI vs MCP: How AI Agents Choose the Right Tool for the Job - 14min","location":"https://www.youtube.com/watch?v=g9JIUM0MHgQ","language":"en","publishedOn":"2026-05-04T00:00:00.000Z","sourceCodeURL":"","description":"Both CLI and MCP are ways for AI agents to interact with the world. Martin Keen explains how agents use CLI commands or MCP tools for tasks across real developer workflows. Learn how context windows, schemas, and practical examples shape smarter AI development. 🚀","descriptionHtml":"<p>Both CLI and MCP are ways for AI agents to interact with the world. Martin Keen explains how agents use CLI commands or MCP tools for tasks across real developer workflows. Learn how context windows, schemas, and practical examples shape smarter AI development. 🚀</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"g9JIUM0MHgQ","stackoverflowQuestionId":null,"createdAt":"2026-05-24T08:45:12.022Z","updatedAt":"2026-05-24T08:45:12.022Z"},{"_id":"6a12ba64a7a7d06e3d83820f","type":"bookmark","tags":["ai","ai-learning","agentic-engineering"],"name":"The 7 Skills You Need to Build AI Agents - 14min","location":"https://www.youtube.com/watch?v=mtiOK2QG9Q0","language":"en","publishedOn":"2026-04-14T00:00:00.000Z","sourceCodeURL":"","description":"1. System Design \n2. Tool & contract design\n3. Retrieval engineering \n4. Reliability engineering \n5. Security and safety \n6. Evaluation and observability\n7. Product thinking","descriptionHtml":"<ol>\n<li>System Design </li>\n<li>Tool &amp; contract design</li>\n<li>Retrieval engineering </li>\n<li>Reliability engineering </li>\n<li>Security and safety </li>\n<li>Evaluation and observability</li>\n<li>Product thinking</li>\n</ol>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"mtiOK2QG9Q0","stackoverflowQuestionId":null,"createdAt":"2026-05-24T08:44:20.514Z","updatedAt":"2026-05-24T08:44:20.514Z"},{"_id":"6a12b9f1b5bcc46e4fa4cb9d","type":"bookmark","tags":["ai","ai-learning","prompt-engineering"],"name":"CAG vs Long Context: How AI Models Use and Remember Information - 10min","location":"https://www.youtube.com/watch?v=B_RrXwDupIg","language":"en","publishedOn":"2026-05-21T00:00:00.000Z","sourceCodeURL":"","description":"Long context and CAG are two powerful ways to give AI access to external knowledge. Martin Keen explains how long context, CAG, KV cache, and prompt caching let LLMs process documents faster and more efficiently 🤖. Learn when each method is best for real-world AI workloads.","descriptionHtml":"<p>Long context and CAG are two powerful ways to give AI access to external knowledge. Martin Keen explains how long context, CAG, KV cache, and prompt caching let LLMs process documents faster and more efficiently 🤖. Learn when each method is best for real-world AI workloads.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"B_RrXwDupIg","stackoverflowQuestionId":null,"createdAt":"2026-05-24T08:42:25.820Z","updatedAt":"2026-05-24T08:42:25.820Z"},{"_id":"6a0f18e8b5bcc46e4fa48b3a","type":"bookmark","tags":["package-manager","ai-agents","prompt-engineering"],"name":"APM - Agent Package Manager | Agent Package Manager","location":"https://microsoft.github.io/apm/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/microsoft/apm","description":"APM is a dependency manager for AI agents. Declare the skills, prompts, instructions, plugins, and MCP servers your project needs in one apm.yml, then any developer runs apm install and gets the same agent context across GitHub Copilot, Claude Code, Cursor, OpenCode, Codex, Gemini, and Windsurf.","descriptionHtml":"<p>APM is a dependency manager for AI agents. Declare the skills, prompts, instructions, plugins, and MCP servers your project needs in one apm.yml, then any developer runs apm install and gets the same agent context across GitHub Copilot, Claude Code, Cursor, OpenCode, Codex, Gemini, and Windsurf.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-21T14:38:32.509Z","updatedAt":"2026-05-21T14:38:32.509Z"},{"_id":"6a0eeea7a7a7d06e3d834b22","type":"bookmark","tags":["skills","agent","agentic-engineering","ai-engineering","ai"],"name":"anthropics/skills: Public repository for Agent Skills","location":"https://github.com/anthropics/skills","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/anthropics/skills","description":"Skills are folders of instructions, scripts, and resources that Claude loads dynamically to improve performance on specialized tasks. Skills teach Claude how to complete specific tasks in a repeatable way, whether that's creating documents with your company's brand guidelines, analyzing data using your organization's specific workflows, or automating personal tasks.","descriptionHtml":"<p>Skills are folders of instructions, scripts, and resources that Claude loads dynamically to improve performance on specialized tasks. Skills teach Claude how to complete specific tasks in a repeatable way, whether that's creating documents with your company's brand guidelines, analyzing data using your organization's specific workflows, or automating personal tasks.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-21T11:38:15.557Z","updatedAt":"2026-05-21T13:49:27.537Z"},{"_id":"6a0c8f2e8b48b132ac352e64","type":"bookmark","tags":["ai","ai-engineering","skills","mcp","rag"],"name":"What AI Agent Skills Are and How They Work - 12min","location":"https://www.youtube.com/watch?v=Lg-meK5IU8Q","language":"en","publishedOn":"2026-04-20T00:00:00.000Z","sourceCodeURL":"","description":"We're all using AI agents, but they still lack the procedural knowledge real work needs. Martin Keen explains how agent skills, LLMs, RAG, and MCP help agents follow workflows, automate tasks, and make smarter decisions. Learn how to build better AI agents. 🤖","descriptionHtml":"<p>We're all using AI agents, but they still lack the procedural knowledge real work needs. Martin Keen explains how agent skills, LLMs, RAG, and MCP help agents follow workflows, automate tasks, and make smarter decisions. Learn how to build better AI agents. 🤖</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"Lg-meK5IU8Q","stackoverflowQuestionId":null,"createdAt":"2026-05-19T16:26:22.726Z","updatedAt":"2026-05-19T16:26:22.726Z"},{"_id":"6a0c8b3fa1c10c32be52d208","type":"bookmark","tags":["ai-engineering","skills","specification"],"name":"Agent Skills Overview - Agent Skills","location":"https://agentskills.io/home","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/agentskills/agentskills","description":"**A standardized way to give AI agents new capabilities and expertise.**\n\nWhat are Agent Skills?\n\nAgent Skills are a lightweight, open format for extending AI agent capabilities with specialized knowledge and workflows.\nAt its core, a skill is a folder containing a SKILL.md file. This file includes metadata (name and description, at minimum) and instructions that tell an agent how to perform a specific task. Skills can also bundle scripts, reference materials, templates, and other resources.\n\n```\nmy-skill/\n├── SKILL.md          # Required: metadata + instructions\n├── scripts/          # Optional: executable code\n├── references/       # Optional: documentation\n├── assets/           # Optional: templates, resources\n└── ...               # Any additional files or directories\n```","descriptionHtml":"<p><strong>A standardized way to give AI agents new capabilities and expertise.</strong></p>\n<p>What are Agent Skills?</p>\n<p>Agent Skills are a lightweight, open format for extending AI agent capabilities with specialized knowledge and workflows.\nAt its core, a skill is a folder containing a SKILL.md file. This file includes metadata (name and description, at minimum) and instructions that tell an agent how to perform a specific task. Skills can also bundle scripts, reference materials, templates, and other resources.</p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">my</span>-skill/\n├── SKILL.md          <span class=\"hljs-comment\"># Required: metadata + instructions</span>\n├── scripts/          <span class=\"hljs-comment\"># Optional: executable code</span>\n├── references/       <span class=\"hljs-comment\"># Optional: documentation</span>\n├── assets/           <span class=\"hljs-comment\"># Optional: templates, resources</span>\n└── ...               <span class=\"hljs-comment\"># Any additional files or directories</span></code></pre>","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-19T16:09:35.011Z","updatedAt":"2026-05-19T16:10:25.540Z"},{"_id":"6a0c6943a1c10c32be52d1fd","type":"bookmark","tags":["ai-engineering","skills"],"name":"How AI agents & Claude skills work (Clearly Explained) - 35min","location":"https://www.youtube.com/watch?v=S_oN3vlzpMw","language":"en","publishedOn":"2026-04-08T00:00:00.000Z","sourceCodeURL":"","description":"I sit down with Ras Mic to break down how AI agents actually work and why most people are using them wrong. Ras Mic explains the mechanics of context windows, makes the case that agent md files are largely unnecessary, and shares his step-by-step methodology for building custom skills that make agents dramatically more productive. Whether you're coding with Claude Code or automating workflows with OpenClaw, this episode gives you the foundational knowledge to stop wasting tokens and start getting real results from your AI tools.\n\nTimestamps\n- 00:00 – Intro\n- 00:42 – The Models Are Good Now\n- 01:20 – How Context Windows Actually Work\n- 04:55 – The Power of Skills\n- 09:17 – How to create Skills\n- 16:35 – Skill Maxxing\n- 19:05 – What you need too build a project\n- 20:40 – Recursively Building and Improving Skills\n- 29:23 – Context Window Management and Token Efficiency\n- 33:02 – Closing Thoughts\n\nKey Points\n\nThe models (Opus 4.6, GPT 5.4) are exceptionally good now — the differentiator is the context and harness you build around them.\nAgent md and claude md files get loaded into context on every single turn, burning tokens and degrading performance as the context window fills up. 95% of users can skip them entirely.\nSkills use progressive disclosure: only the name and description sit in context until the agent determines it needs the full file, saving thousands of tokens per conversation.\nThe best way to create a skill is to walk through the workflow with the agent step by step, achieve a successful run, and then have the agent write the skill based on that real context.\nRecursively refine skills by feeding failures back into the agent and having it update the skill file so the same mistake is avoided going forward.\nScale for productivity by starting with one agent and building up workflows before adding sub-agents — start simple, then expand.\n\nNumbered Section Summaries\n\n1. The Models Are Good — Context Is What Matters\n\nRas Mic opens by declaring that the current generation of models, Opus 4.6 and GPT 5.4, are exceptionally capable. The conversation is no longer about which model is \"better\" in a general sense. What matters now is the quality of context you feed them — that is what separates quality output from slop.\n\n2. How Context Windows Work\n\nRas Mic walks through the anatomy of a context window: system prompt, agent.md files, skills, tools, the codebase, and the user conversation. All of these stack up as tokens, and the window has a hard limit (around 250,000 tokens). When you hit that limit, agents compact — and performance drops. Understanding this structure is the foundation for everything else in the episode.\n\n3. Skills and Progressive Disclosure\n\nSkills solve the token-bloat problem. A skill file contains a name, description, and the detailed instructions — but only the name and description are loaded into context. The agent reads the full file only when it determines the skill is relevant. This means a skill costs roughly 53 tokens per turn versus 944+ for an equivalent agent.md file.\n\n4. Building Skills the Right Way\n\nRas Mic shares his methodology: identify a workflow, walk through it with the agent step by step, correct mistakes in real time, and only create the skill after you have completed a successful run. He illustrates this with his sponsor email screening agent — the first attempt returned all-positive results because the agent had no criteria for rejection.\n\n5. Recursively Improving Skills\n\nEven after a skill is created, the agent will still hit edge cases and fail. Ras Mic treats each failure as an opportunity: identify the error, have the agent fix it, then tell the agent to update the skill so the failure is documented. After five iterations of this loop on his YouTube analytics report generator, the agent now executes flawlessly across eight data sources in about ten minutes.\n\n6. Scaling for Productivity Over Flash\n\nRas Mic started with a single agent handling everything — email, spreadsheets, research. Only after building reliable skills did he add sub-agents for marketing, business, and personal tasks. He argues that jumping straight to multi-agent architectures (or adopting tools like Paperclip without building foundational workflows first) optimizes for what looks cool rather than what is productive.","descriptionHtml":"<p>I sit down with Ras Mic to break down how AI agents actually work and why most people are using them wrong. Ras Mic explains the mechanics of context windows, makes the case that agent md files are largely unnecessary, and shares his step-by-step methodology for building custom skills that make agents dramatically more productive. Whether you're coding with Claude Code or automating workflows with OpenClaw, this episode gives you the foundational knowledge to stop wasting tokens and start getting real results from your AI tools.</p>\n<p>Timestamps</p>\n<ul>\n<li>00:00 – Intro</li>\n<li>00:42 – The Models Are Good Now</li>\n<li>01:20 – How Context Windows Actually Work</li>\n<li>04:55 – The Power of Skills</li>\n<li>09:17 – How to create Skills</li>\n<li>16:35 – Skill Maxxing</li>\n<li>19:05 – What you need too build a project</li>\n<li>20:40 – Recursively Building and Improving Skills</li>\n<li>29:23 – Context Window Management and Token Efficiency</li>\n<li>33:02 – Closing Thoughts</li>\n</ul>\n<p>Key Points</p>\n<p>The models (Opus 4.6, GPT 5.4) are exceptionally good now — the differentiator is the context and harness you build around them.\nAgent md and claude md files get loaded into context on every single turn, burning tokens and degrading performance as the context window fills up. 95% of users can skip them entirely.\nSkills use progressive disclosure: only the name and description sit in context until the agent determines it needs the full file, saving thousands of tokens per conversation.\nThe best way to create a skill is to walk through the workflow with the agent step by step, achieve a successful run, and then have the agent write the skill based on that real context.\nRecursively refine skills by feeding failures back into the agent and having it update the skill file so the same mistake is avoided going forward.\nScale for productivity by starting with one agent and building up workflows before adding sub-agents — start simple, then expand.</p>\n<p>Numbered Section Summaries</p>\n<ol>\n<li>The Models Are Good — Context Is What Matters</li>\n</ol>\n<p>Ras Mic opens by declaring that the current generation of models, Opus 4.6 and GPT 5.4, are exceptionally capable. The conversation is no longer about which model is \"better\" in a general sense. What matters now is the quality of context you feed them — that is what separates quality output from slop.</p>\n<ol start=\"2\">\n<li>How Context Windows Work</li>\n</ol>\n<p>Ras Mic walks through the anatomy of a context window: system prompt, agent.md files, skills, tools, the codebase, and the user conversation. All of these stack up as tokens, and the window has a hard limit (around 250,000 tokens). When you hit that limit, agents compact — and performance drops. Understanding this structure is the foundation for everything else in the episode.</p>\n<ol start=\"3\">\n<li>Skills and Progressive Disclosure</li>\n</ol>\n<p>Skills solve the token-bloat problem. A skill file contains a name, description, and the detailed instructions — but only the name and description are loaded into context. The agent reads the full file only when it determines the skill is relevant. This means a skill costs roughly 53 tokens per turn versus 944+ for an equivalent agent.md file.</p>\n<ol start=\"4\">\n<li>Building Skills the Right Way</li>\n</ol>\n<p>Ras Mic shares his methodology: identify a workflow, walk through it with the agent step by step, correct mistakes in real time, and only create the skill after you have completed a successful run. He illustrates this with his sponsor email screening agent — the first attempt returned all-positive results because the agent had no criteria for rejection.</p>\n<ol start=\"5\">\n<li>Recursively Improving Skills</li>\n</ol>\n<p>Even after a skill is created, the agent will still hit edge cases and fail. Ras Mic treats each failure as an opportunity: identify the error, have the agent fix it, then tell the agent to update the skill so the failure is documented. After five iterations of this loop on his YouTube analytics report generator, the agent now executes flawlessly across eight data sources in about ten minutes.</p>\n<ol start=\"6\">\n<li>Scaling for Productivity Over Flash</li>\n</ol>\n<p>Ras Mic started with a single agent handling everything — email, spreadsheets, research. Only after building reliable skills did he add sub-agents for marketing, business, and personal tasks. He argues that jumping straight to multi-agent architectures (or adopting tools like Paperclip without building foundational workflows first) optimizes for what looks cool rather than what is productive.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"S_oN3vlzpMw","stackoverflowQuestionId":null,"createdAt":"2026-05-19T13:44:35.737Z","updatedAt":"2026-05-19T13:44:35.737Z"},{"_id":"6a0c5e96a1c10c32be52d1f3","type":"bookmark","tags":["ai-engineering","ai","programming","harness"],"name":"Harness engineering for coding agent users","location":"https://martinfowler.com/articles/harness-engineering.html","language":"en","publishedOn":"2026-04-02T00:00:00.000Z","sourceCodeURL":"","description":"To let coding agents work with less supervision, we need ways to increase our confidence in their result. As software engineers, we have a natural trust barrier with AI-generated code - LLMs are non-deterministic, they don't know our context, and they don't really understand the code, they think in tokens. This article explores a mental model that brings together emerging concepts from context and harness engineering to build that trust.","descriptionHtml":"<p>To let coding agents work with less supervision, we need ways to increase our confidence in their result. As software engineers, we have a natural trust barrier with AI-generated code - LLMs are non-deterministic, they don't know our context, and they don't really understand the code, they think in tokens. This article explores a mental model that brings together emerging concepts from context and harness engineering to build that trust.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-19T12:59:02.964Z","updatedAt":"2026-05-19T12:59:02.964Z"},{"_id":"6a0c2fb7a1c10c32be52cb2f","type":"bookmark","tags":["github-copilot","skills","agent","ai","prompt-engineering"],"name":"Awesome GitHub Copilot | Awesome GitHub Copilot","location":"https://awesome-copilot.github.com/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/github/awesome-copilot","description":"Community-contributed agents, instructions, and skills to enhance your GitHub Copilot experience","descriptionHtml":"<p>Community-contributed agents, instructions, and skills to enhance your GitHub Copilot experience</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-19T09:39:03.571Z","updatedAt":"2026-05-19T09:39:03.571Z"},{"_id":"69fdf2125051c22543b87119","type":"bookmark","tags":["typescript","schema-validation","validation","schema"],"name":"Zod homepage","location":"https://zod.dev/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/colinhacks/zod","description":"Zod is a TypeScript-first validation library. Using Zod, you can define schemas you can use to validate data, from a simple string to a complex nested object.","descriptionHtml":"<p>Zod is a TypeScript-first validation library. Using Zod, you can define schemas you can use to validate data, from a simple string to a complex nested object.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-08T14:24:18.713Z","updatedAt":"2026-05-08T14:24:18.713Z"},{"_id":"69fcaacb5051c22543b86ac5","type":"bookmark","tags":["angular","angular-signals","angular-changedetection"],"name":"Zoneless Angular - Angular Experts","location":"https://angularexperts.io/blog/zoneless-angular","language":"en","publishedOn":null,"sourceCodeURL":"","description":"Zoneless change detection isn’t some optional experiment — it’s the direction Angular is headed. And the sooner you start embracing OnPush, Signals, and smart reactive patterns, the smoother your ride will be.\n\nSo whether you’re prepping a legacy app or starting fresh, now’s the time to think beyond the Zone.\n\n**Video** - https://www.youtube.com/watch?v=ar-xd_dsaVE ","descriptionHtml":"<p>Zoneless change detection isn’t some optional experiment — it’s the direction Angular is headed. And the sooner you start embracing OnPush, Signals, and smart reactive patterns, the smoother your ride will be.</p>\n<p>So whether you’re prepping a legacy app or starting fresh, now’s the time to think beyond the Zone.</p>\n<p><strong>Video</strong> - <a href=\"https://www.youtube.com/watch?v=ar-xd_dsaVE\">https://www.youtube.com/watch?v=ar-xd_dsaVE</a> </p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-07T15:07:55.781Z","updatedAt":"2026-05-07T15:08:28.540Z"},{"_id":"69fc92725051c22543b86aba","type":"bookmark","tags":["ai-development","skills","ngrx","angular"],"name":"GitHub - angular-experts-io/ax-skills","location":"https://github.com/angular-experts-io/ax-skills/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/angular-experts-io/ax-skills/","description":"A curated collection of mostly handcrafted skills encoding our more than a decade's worth of best practices, proven patterns, and lessons learned for Angular / NgRx frontend development, which scales from SaaS MVP to enterprise-scale environments","descriptionHtml":"<p>A curated collection of mostly handcrafted skills encoding our more than a decade's worth of best practices, proven patterns, and lessons learned for Angular / NgRx frontend development, which scales from SaaS MVP to enterprise-scale environments</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-07T13:24:02.556Z","updatedAt":"2026-05-07T13:24:02.556Z"},{"_id":"69f9f31a5051c22543b85d36","type":"bookmark","tags":["ai","mcp","mcp-server","python","finance","claude"],"name":"Step-by-Step Guide: Building an MCP Server using Python-SDK, AlphaVantage & Claude AI | by Syed Hasan | Medium","location":"https://medium.com/@syed_hasan/step-by-step-guide-building-an-mcp-server-using-python-sdk-alphavantage-claude-ai-7a2bfb0c3096","language":"en","publishedOn":null,"sourceCodeURL":"","description":"Step-by-Step Guide: Building an MCP Server using Python-SDK, AlphaVantage & Claude AI","descriptionHtml":"<p>Step-by-Step Guide: Building an MCP Server using Python-SDK, AlphaVantage &amp; Claude AI</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-05-05T13:39:38.338Z","updatedAt":"2026-05-05T13:39:38.338Z"},{"_id":"69c3aa6723b88a381b5a599a","type":"bookmark","tags":["frontend","material-ui","react","react-component"],"name":"Material UI: React components that implement Material Design","location":"https://mui.com/material-ui/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/mui/material-ui","description":"Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.","descriptionHtml":"<p>Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-25T09:27:03.033Z","updatedAt":"2026-03-25T09:28:43.412Z"},{"_id":"69c0071876e96e382d449526","type":"bookmark","tags":["neural-networks","ai-learning"],"name":"GANs for Good- A Virtual Expert Panel by DeepLearning.AI - YouTube","location":"https://www.youtube.com/watch?v=9d4jmPmTWmc","language":"en","publishedOn":null,"sourceCodeURL":"","description":"To celebrate the launch of GANs Specialization, we’ve assembled a panel of GANs experts. They will discuss some of their current projects and the importance and future of GANs and also provide practical career advice for ML practitioners. ","descriptionHtml":"<p>To celebrate the launch of GANs Specialization, we’ve assembled a panel of GANs experts. They will discuss some of their current projects and the importance and future of GANs and also provide practical career advice for ML practitioners. </p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-22T15:13:28.681Z","updatedAt":"2026-03-22T15:13:28.681Z"},{"_id":"69b6a5e876e96e382d448102","type":"bookmark","tags":["ai-learning","dataset","deep-learning","neural-networks"],"name":"The EMNIST Dataset | NIST","location":"https://www.nist.gov/itl/products-and-services/emnist-dataset","language":"en","publishedOn":null,"sourceCodeURL":"","description":"The EMNIST dataset is a set of handwritten character digits derived from the NIST Special Database 19  and converted to a 28x28 pixel image format and dataset structure that directly matches the [MNIST dataset](http://yann.lecun.com/exdb/mnist/) . Further information on the dataset contents and conversion process can be found in the paper available at https://arxiv.org/abs/1702.05373v1 ","descriptionHtml":"<p>The EMNIST dataset is&nbsp;a&nbsp;set of handwritten character digits derived from the NIST Special Database 19 &nbsp;and converted to&nbsp;a&nbsp;28x28 pixel image format&nbsp;and dataset structure that directly matches the <a href=\"http://yann.lecun.com/exdb/mnist/\">MNIST dataset</a> . Further information on the dataset contents&nbsp;and conversion process can be found in the paper&nbsp;available&nbsp;at <a href=\"https://arxiv.org/abs/1702.05373v1\">https://arxiv.org/abs/1702.05373v1</a> </p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-15T12:28:24.422Z","updatedAt":"2026-03-15T12:28:27.651Z"},{"_id":"69b5a19176e96e382d447f75","type":"bookmark","tags":["ai-learning","cnn","neural-networks","deep-learning","computer-vision"],"name":"CS231n Deep Learning for Computer Vision","location":"https://cs231n.github.io/convolutional-networks/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"Convolutional Neural Networks are very similar to ordinary Neural Networks from the previous chapter: they are made up of neurons that have learnable weights and biases. Each neuron receives some inputs, performs a dot product and optionally follows it with a non-linearity. The whole network still expresses a single differentiable score function: from the raw image pixels on one end to class scores at the other. And they still have a loss function (e.g. SVM/Softmax) on the last (fully-connected) layer and all the tips/tricks we developed for learning regular Neural Networks still apply.\n\nSo what changes? ConvNet architectures make the explicit assumption that the inputs are images, which allows us to encode certain properties into the architecture. These then make the forward function more efficient to implement and vastly reduce the amount of parameters in the network.","descriptionHtml":"<p>Convolutional Neural Networks are very similar to ordinary Neural Networks from the previous chapter: they are made up of neurons that have learnable weights and biases. Each neuron receives some inputs, performs a dot product and optionally follows it with a non-linearity. The whole network still expresses a single differentiable score function: from the raw image pixels on one end to class scores at the other. And they still have a loss function (e.g. SVM/Softmax) on the last (fully-connected) layer and all the tips/tricks we developed for learning regular Neural Networks still apply.</p>\n<p>So what changes? ConvNet architectures make the explicit assumption that the inputs are images, which allows us to encode certain properties into the architecture. These then make the forward function more efficient to implement and vastly reduce the amount of parameters in the network.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-14T17:57:37.996Z","updatedAt":"2026-03-14T17:57:37.996Z"},{"_id":"69b2e6db76e96e382d447db7","type":"bookmark","tags":["python"],"name":"Python args and kwargs: Demystified","location":"https://realpython.com/python-kwargs-and-args/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"Sometimes, when you look at a function definition in Python, you might see that it takes two strange arguments: `*args` and `**kwargs`. If you’ve ever wondered what these peculiar variables are, or why your IDE defines them in `main()`, then this article is for you. You’ll learn how to use args and kwargs in Python to add more flexibility to your functions.","descriptionHtml":"<p>Sometimes, when you look at a function definition in Python, you might see that it takes two strange arguments: <code>*args</code> and <code>**kwargs</code>. If you’ve ever wondered what these peculiar variables are, or why your IDE defines them in <code>main()</code>, then this article is for you. You’ll learn how to use args and kwargs in Python to add more flexibility to your functions.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-12T16:16:27.150Z","updatedAt":"2026-03-12T16:16:27.150Z"},{"_id":"69b15c7876e96e382d447463","type":"bookmark","tags":["neural-networks","deep-learning","ai-learning","pytorch"],"name":"Differences between torch.nn and torch.nn.functional - GeeksforGeeks","location":"https://www.geeksforgeeks.org/deep-learning/differences-between-torch-nn-and-torch-nn-functional/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"A neural network is a subset of machine learning that uses the interconnected layers of nodes to process the data and find patterns. These patterns or meaningful insights help us in strategic decision-making for various use cases. PyTorch is a Deep-learning framework that allows us to do this.\n\nIt includes various modules for creating and training the neural networks. Among these, torch.nn and torch.nn.functional are popular. Let us discuss them in more detail in this article.","descriptionHtml":"<p>A neural network is a subset of machine learning that uses the interconnected layers of nodes to process the data and find patterns. These patterns or meaningful insights help us in strategic decision-making for various use cases. PyTorch is a Deep-learning framework that allows us to do this.</p>\n<p>It includes various modules for creating and training the neural networks. Among these, torch.nn and torch.nn.functional are popular. Let us discuss them in more detail in this article.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-11T12:13:44.700Z","updatedAt":"2026-03-11T12:13:44.700Z"},{"_id":"69afd64a23b88a381b5a1264","type":"bookmark","tags":["python","torchvision","docs"],"name":"Transforming images, videos, boxes and more — Torchvision documentation","location":"https://docs.pytorch.org/vision/stable/transforms.html","language":"en","publishedOn":null,"sourceCodeURL":"","description":"### Transforming images, videos, boxes and more\n\nTorchvision supports common computer vision transformations in the `torchvision.transforms.v2` module. Transforms can be used to transform and augment data, for both training or inference. The following objects are supported:\n- Images as pure tensors, Image or PIL image\n- Videos as Video\n- Axis-aligned and rotated bounding boxes as BoundingBoxes\n- Segmentation and detection masks as Mask\n- KeyPoints as KeyPoints.","descriptionHtml":"<h3 id=\"transforming-images-videos-boxes-and-more\">Transforming images, videos, boxes and more</h3>\n<p>Torchvision supports common computer vision transformations in the <code>torchvision.transforms.v2</code> module. Transforms can be used to transform and augment data, for both training or inference. The following objects are supported:</p>\n<ul>\n<li>Images as pure tensors, Image or PIL image</li>\n<li>Videos as Video</li>\n<li>Axis-aligned and rotated bounding boxes as BoundingBoxes</li>\n<li>Segmentation and detection masks as Mask</li>\n<li>KeyPoints as KeyPoints.</li>\n</ul>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-10T08:28:58.034Z","updatedAt":"2026-03-10T08:28:58.034Z"},{"_id":"69afcc5076e96e382d445ce0","type":"bookmark","tags":["pytorch","torchvision","docs","ai-learning","dataset"],"name":"Datasets — Torchvision documentation","location":"https://docs.pytorch.org/vision/stable/datasets.html","language":"en","publishedOn":null,"sourceCodeURL":"","description":"Torchvision provides many built-in datasets in the `torchvision.datasets` module, as well as utility classes for building your own datasets.\n\nHere you find datasets for:\n- Image classification\n- Image detection or segmentation\n- Optical Flow\n- Stereo Matching\n- Image pairs\n- Video classification\n- Video prediction","descriptionHtml":"<p>Torchvision provides many built-in datasets in the <code>torchvision.datasets</code> module, as well as utility classes for building your own datasets.</p>\n<p>Here you find datasets for:</p>\n<ul>\n<li>Image classification</li>\n<li>Image detection or segmentation</li>\n<li>Optical Flow</li>\n<li>Stereo Matching</li>\n<li>Image pairs</li>\n<li>Video classification</li>\n<li>Video prediction</li>\n</ul>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-03-10T07:46:24.894Z","updatedAt":"2026-03-10T07:46:34.714Z"},{"_id":"699c6e1e23b88a381b59d4e4","type":"bookmark","tags":["ai-learning","neural-networks","autoencoders"],"name":"Autoencoders: Unsupervised learning using neural networks","location":"https://medium.com/@jagansaravana27/autoencoders-unsupervised-learning-using-neural-networks-f99bd9935b6c","language":"en","publishedOn":null,"sourceCodeURL":"","description":"This blog will explore the basic principles behind autoencoders, how they work, and their powerful application in modern machine learning. We’ll also discuss key concepts in a discussion format so you can understand the importance of this unsupervised learning approach.","descriptionHtml":"<p>This blog will explore the basic principles behind autoencoders, how they work, and their powerful application in modern machine learning. We’ll also discuss key concepts in a discussion format so you can understand the importance of this unsupervised learning approach.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-02-23T15:11:26.982Z","updatedAt":"2026-02-23T15:11:26.982Z"},{"_id":"6970acad76e96e382d43a459","type":"bookmark","tags":["pytorch","python","machine-learning","ai","ai-learning"],"name":"What does optimizer.step() do in PyTorch? | by whyamit404 | Medium","location":"https://medium.com/@whyamit404/what-does-optimizer-step-do-in-pytorch-83f0fb0cbfe5","language":"en","publishedOn":null,"sourceCodeURL":"","description":"This guide dives deep into how `optimizer.step()` works, why it’s essential, and how you can leverage its mechanics for advanced workflows.\n\nWhether you’re troubleshooting vanishing gradients, experimenting with new optimization techniques, or fine-tuning your model for production, mastering this one line of code can make all the difference.\n\nThis guide assumes you’ve worked with **PyTorch** before and are familiar with basic training loops. Together, we’ll go beyond the basics and uncover what happens when `optimizer.step()` gets called — and why that matters.","descriptionHtml":"<p>This guide dives deep into how <code>optimizer.step()</code> works, why it’s essential, and how you can leverage its mechanics for advanced workflows.</p>\n<p>Whether you’re troubleshooting vanishing gradients, experimenting with new optimization techniques, or fine-tuning your model for production, mastering this one line of code can make all the difference.</p>\n<p>This guide assumes you’ve worked with <strong>PyTorch</strong> before and are familiar with basic training loops. Together, we’ll go beyond the basics and uncover what happens when <code>optimizer.step()</code> gets called — and why that matters.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-01-21T10:38:37.689Z","updatedAt":"2026-01-21T10:38:37.689Z"},{"_id":"6970a8cf23b88a381b595264","type":"bookmark","tags":["python","pytorch","machine-learning"],"name":"PyTorch numel: Calculate The Number Of Elements In A PyTorch Tensor","location":"https://mr-amit.medium.com/pytorch-numel-calculate-the-number-of-elements-in-a-pytorch-tensor-bfc9b9c98196","language":"en","publishedOn":null,"sourceCodeURL":"","description":"By the end of this guide, you’ll walk away with:\n\n1. A deep understanding of how numel() works and why it’s invaluable in advanced workflows.\n2. Practical insights into leveraging numel() to optimize memory usage, debug tensor operations, and dynamically adapt model designs.\n3. Real-world examples and code snippets that will help you integrate numel() into your PyTorch projects seamlessly.","descriptionHtml":"<p>By the end of this guide, you’ll walk away with:</p>\n<ol>\n<li>A deep understanding of how numel() works and why it’s invaluable in advanced workflows.</li>\n<li>Practical insights into leveraging numel() to optimize memory usage, debug tensor operations, and dynamically adapt model designs.</li>\n<li>Real-world examples and code snippets that will help you integrate numel() into your PyTorch projects seamlessly.</li>\n</ol>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-01-21T10:22:07.793Z","updatedAt":"2026-01-21T10:22:07.793Z"},{"_id":"696a08bb76e96e382d438feb","type":"bookmark","tags":["pytorch","docs","python","beginners","tutorials","ai","ai-learning","machine-learning"],"name":"Pytorch Quickstart tutorial","location":"https://docs.pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/pytorch/tutorials/blob/main/beginner_source/basics/quickstart_tutorial.py","description":"This section runs through the API for common tasks in machine learning. Refer to the links in each section to dive deeper.","descriptionHtml":"<p>This section runs through the API for common tasks in machine learning. Refer to the links in each section to dive deeper.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-01-16T09:45:31.295Z","updatedAt":"2026-01-19T09:53:19.285Z"},{"_id":"6968c24923b88a381b5939e7","type":"bookmark","tags":["machine-learning","ai-learning","dataset"],"name":"GitHub - zalandoresearch/fashion-mnist: A MNIST-like fashion product database. Benchmark","location":"https://github.com/zalandoresearch/fashion-mnist?tab=readme-ov-file","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/zalandoresearch/fashion-mnist","description":"\n\n`Fashion-MNIST` is a dataset of Zalando's article images—consisting of a training set of 60,000 examples and a test set of 10,000 examples. Each example is a 28x28 grayscale image, associated with a label from 10 classes. We intend `Fashion-MNIST` to serve as a direct **drop-in replacement** for the original [MNIST dataset](http://yann.lecun.com/exdb/mnist/) for benchmarking machine learning algorithms. It shares the same image size and structure of training and testing splits.","descriptionHtml":"<p><code>Fashion-MNIST</code> is a dataset of Zalando's article images—consisting of a training set of 60,000 examples and a test set of 10,000 examples. Each example is a 28x28 grayscale image, associated with a label from 10 classes. We intend <code>Fashion-MNIST</code> to serve as a direct <strong>drop-in replacement</strong> for the original <a href=\"http://yann.lecun.com/exdb/mnist/\">MNIST dataset</a> for benchmarking machine learning algorithms. It shares the same image size and structure of training and testing splits.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-01-15T10:32:41.712Z","updatedAt":"2026-03-11T12:06:06.862Z"},{"_id":"695c0af876e96e382d435981","type":"bookmark","tags":["ai","ai-learning","machine-learning","python","tensorflow","computer-vision","natural-language-processing"],"name":"Dive into Deep Learning — Dive into Deep Learning 1.0.3 documentation","location":"https://d2l.ai/index.html","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/d2l-ai/d2l-en","description":"Interactive deep learning book with code, math, and discussions\n\nImplemented with PyTorch, NumPy/MXNet, JAX, and TensorFlow","descriptionHtml":"<p>Interactive deep learning book with code, math, and discussions</p>\n<p>Implemented with PyTorch, NumPy/MXNet, JAX, and TensorFlow</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-01-05T19:03:20.226Z","updatedAt":"2026-01-05T19:03:20.226Z"},{"_id":"695c0a7b23b88a381b58feb5","type":"bookmark","tags":["python","data-visualization","visualization"],"name":"Bokeh home page","location":"https://bokeh.org/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/bokeh/bokeh","description":"Bokeh is a Python library for creating interactive visualizations for modern web browsers. It helps you build beautiful graphics, ranging from simple plots to complex dashboards with streaming datasets. With Bokeh, you can create JavaScript-powered visualizations without writing any JavaScript yourself.","descriptionHtml":"<p>Bokeh is a Python library for creating interactive visualizations for modern web browsers. It helps you build beautiful graphics, ranging from simple plots to complex dashboards with streaming datasets. With Bokeh, you can create JavaScript-powered visualizations without writing any JavaScript yourself.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2026-01-05T19:01:15.067Z","updatedAt":"2026-01-05T19:01:15.067Z"},{"_id":"695b779623b88a381b58fba4","type":"bookmark","tags":["ai-learning","ai","machine-learning","neural-networks"],"name":"But what is a neural network? | Deep learning chapter 1 (part of a list) - 18min","location":"https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi","language":"en","publishedOn":"2017-10-05T00:00:00.000Z","sourceCodeURL":"","description":"What are the neurons, why are there layers, and what is the math underlying it?\nHelp fund future projects: https://www.patreon.com/3blue1brown\nWritten/interactive form of this series: https://www.3blue1brown.com/topics/neural-networks\n\nFor those who want to learn more, I highly recommend the book by Michael Nielsen that introduces neural networks and deep learning: https://goo.gl/Zmczdy\n\nThere are two neat things about this book.  First, it's available for free, so consider joining me in making a donation to Nielsen if you get something out of it.  And second, it's centered around walking through some code and data, which you can download yourself, and which covers the same example that I introduced in this video.  Yay for active learning!\nhttps://github.com/mnielsen/neural-networks-and-deep-learning","descriptionHtml":"<p>What are the neurons, why are there layers, and what is the math underlying it?\nHelp fund future projects: <a href=\"https://www.patreon.com/3blue1brown\">https://www.patreon.com/3blue1brown</a>\nWritten/interactive form of this series: <a href=\"https://www.3blue1brown.com/topics/neural-networks\">https://www.3blue1brown.com/topics/neural-networks</a></p>\n<p>For those who want to learn more, I highly recommend the book by Michael Nielsen that introduces neural networks and deep learning: <a href=\"https://goo.gl/Zmczdy\">https://goo.gl/Zmczdy</a></p>\n<p>There are two neat things about this book.  First, it's available for free, so consider joining me in making a donation to Nielsen if you get something out of it.  And second, it's centered around walking through some code and data, which you can download yourself, and which covers the same example that I introduced in this video.  Yay for active learning!\n<a href=\"https://github.com/mnielsen/neural-networks-and-deep-learning\">https://github.com/mnielsen/neural-networks-and-deep-learning</a></p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"aircAruvnKk","stackoverflowQuestionId":null,"createdAt":"2026-01-05T08:34:30.086Z","updatedAt":"2026-01-05T08:35:16.855Z"},{"_id":"6946dad823b88a381b58d1bb","type":"bookmark","tags":["machine-learning","ai-learning","dataset"],"name":"Home - UCI Machine Learning Repository","location":"https://archive.ics.uci.edu/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"We currently maintain 688 datasets as a service to the machine learning community. Here, you can donate and find datasets used by millions of people all around the world!","descriptionHtml":"<p>We currently maintain 688 datasets as a service to the machine learning community. Here, you can donate and find datasets used by millions of people all around the world!</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-12-20T17:20:24.163Z","updatedAt":"2025-12-20T17:20:24.163Z"},{"_id":"6946534876e96e382d432fee","type":"bookmark","tags":["python","ai-learning","machine-learning","course","pandas","seaborn","matplotlib"],"name":"Python code accompanying the course \"A deep understanding of deep learning (with Python intro)\"","location":"https://github.com/mikexcohen/DeepUnderstandingOfDeepLearning","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/mikexcohen/DeepUnderstandingOfDeepLearning","description":"Python code accompanying the course \"A deep understanding of deep learning (with Python intro)\" - mikexcohen/DeepUnderstandingOfDeepLearning","descriptionHtml":"<p>Python code accompanying the course \"A deep understanding of deep learning (with Python intro)\" - mikexcohen/DeepUnderstandingOfDeepLearning</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-12-20T07:42:00.117Z","updatedAt":"2025-12-20T07:42:18.651Z"},{"_id":"693bee3776e96e382d431253","type":"bookmark","tags":["angular","angular-signals"],"name":"Angular Resource API - Everything You Have To Know (so far) - 27min","location":"https://www.youtube.com/watch?v=W7-lsoL-Gi8","language":"en","publishedOn":"2024-11-19T00:00:00.000Z","sourceCodeURL":"","description":"Angular 19 is here, and one of the most exciting features it brings is a new experimental Resource API.  This is another massive step towards making RxJS optional in Angular and making Signals seamlessly work with async code. In my opinion, we are currently only at the beginning, and soon, we will see many other features and patterns built on top of this reactive primitive. In this video, you will learn everything you have to know about it, like resource creation, error handling, resource reloading, handling concurrency requests, etc.","descriptionHtml":"<p>Angular 19 is here, and one of the most exciting features it brings is a new experimental Resource API.  This is another massive step towards making RxJS optional in Angular and making Signals seamlessly work with async code. In my opinion, we are currently only at the beginning, and soon, we will see many other features and patterns built on top of this reactive primitive. In this video, you will learn everything you have to know about it, like resource creation, error handling, resource reloading, handling concurrency requests, etc.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"W7-lsoL-Gi8","stackoverflowQuestionId":null,"createdAt":"2025-12-12T10:28:07.884Z","updatedAt":"2025-12-12T10:28:07.884Z"},{"_id":"6937bc3a23b88a381b58a8b8","type":"bookmark","tags":["paper","ai","machine-learning","ai-learning","deep-learning"],"name":"Dropout: A Simple Way to Prevent Neural Networks from Overfitting","location":"https://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf","language":"en","publishedOn":null,"sourceCodeURL":"","description":"**Abstract**\n\nDeep neural nets with a large number of parameters are very powerful machine learning\nsystems. However, overfitting is a serious problem in such networks. Large networks are also\nslow to use, making it difficult to deal with overfitting by combining the predictions of many\ndifferent large neural nets at test time. Dropout is a technique for addressing this problem.\nThe key idea is to randomly drop units (along with their connections) from the neural\nnetwork during training. This prevents units from co-adapting too much. During training,\ndropout samples from an exponential number of different “thinned” networks. At test time,\nit is easy to approximate the effect of averaging the predictions of all these thinned networks\nby simply using a single unthinned network that has smaller weights. This significantly\nreduces overfitting and gives major improvements over other regularization methods. We\nshow that dropout improves the performance of neural networks on supervised learning\ntasks in vision, speech recognition, document classification and computational biology,\nobtaining state-of-the-art results on many benchmark data sets.\nKeywords: neural networks, regularization, model combination, deep learning\n","descriptionHtml":"<p><strong>Abstract</strong></p>\n<p>Deep neural nets with a large number of parameters are very powerful machine learning\nsystems. However, overfitting is a serious problem in such networks. Large networks are also\nslow to use, making it difficult to deal with overfitting by combining the predictions of many\ndifferent large neural nets at test time. Dropout is a technique for addressing this problem.\nThe key idea is to randomly drop units (along with their connections) from the neural\nnetwork during training. This prevents units from co-adapting too much. During training,\ndropout samples from an exponential number of different “thinned” networks. At test time,\nit is easy to approximate the effect of averaging the predictions of all these thinned networks\nby simply using a single unthinned network that has smaller weights. This significantly\nreduces overfitting and gives major improvements over other regularization methods. We\nshow that dropout improves the performance of neural networks on supervised learning\ntasks in vision, speech recognition, document classification and computational biology,\nobtaining state-of-the-art results on many benchmark data sets.\nKeywords: neural networks, regularization, model combination, deep learning</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-12-09T06:05:46.233Z","updatedAt":"2025-12-09T06:05:46.233Z"},{"_id":"68ef649d76e96e382d42293c","type":"bookmark","tags":["pytorch","python","ai","artificial-intelligence","deep-learning","machine-learning"],"name":"What is PyTorch? (Machine/Deep Learning) - 11min","location":"https://www.youtube.com/watch?v=fJ40w_2h8kk","language":"en","publishedOn":"2023-10-11T00:00:00.000Z","sourceCodeURL":"","description":"Very high level overview of pytorch and its capabailities.\n\nPyTorch is a popular open-source framework for machine learning and deep learning, backed by the PyTorch Foundation. It simplifies data preparation, model building, and training with features like data loaders, pre-defined layers, automatic gradient calculation, and optimization functions. In this video, PyTorch contributor Sahdev Zala and Distinguished Engineer Brad Topol present PyTorch's key features and explain why you should consider becoming a contributor.","descriptionHtml":"<p>Very high level overview of pytorch and its capabailities.</p>\n<p>PyTorch is a popular open-source framework for machine learning and deep learning, backed by the PyTorch Foundation. It simplifies data preparation, model building, and training with features like data loaders, pre-defined layers, automatic gradient calculation, and optimization functions. In this video, PyTorch contributor Sahdev Zala and Distinguished Engineer Brad Topol present PyTorch's key features and explain why you should consider becoming a contributor.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"fJ40w_2h8kk","stackoverflowQuestionId":null,"createdAt":"2025-10-15T09:08:45.213Z","updatedAt":"2025-10-15T09:08:45.213Z"},{"_id":"68badd1176e96e382d41b450","type":"bookmark","tags":["email","security","server"],"name":"CertMike Explains DMARC, DKIM and SPF - 6min","location":"https://www.youtube.com/watch?v=Q8NUW3CZRvw","language":"en","publishedOn":"2024-08-15T00:00:00.000Z","sourceCodeURL":"","description":"DMARC, DKIM and SPF are three protocols that are widely used as enhanced security of email communications. The security that these protocols provide during email correspondences and how they can be used and serve domains as a layer of protection is a crucial topic for CISSP, Security+, CISM, CCSP, CySA+ and other cybersecurity exams.\n\nIn this video, certification and cybersecurity expert Mike Chapple breaks down the basics of DMARC, DKIM and SPF to help you prepare for your exam.\n\nIt shows example based on linkedin.com domain with the help of the `dig` tool","descriptionHtml":"<p>DMARC, DKIM and SPF are three protocols that are widely used as enhanced security of email communications. The security that these protocols provide during email correspondences and how they can be used and serve domains as a layer of protection is a crucial topic for CISSP, Security+, CISM, CCSP, CySA+ and other cybersecurity exams.</p>\n<p>In this video, certification and cybersecurity expert Mike Chapple breaks down the basics of DMARC, DKIM and SPF to help you prepare for your exam.</p>\n<p>It shows example based on linkedin.com domain with the help of the <code>dig</code> tool</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"Q8NUW3CZRvw","stackoverflowQuestionId":null,"createdAt":"2025-09-05T12:52:33.386Z","updatedAt":"2025-09-05T12:52:33.386Z"},{"_id":"68bada9223b88a381b5774d6","type":"bookmark","tags":["email","server","dns"],"name":"Mail server DNS records - setup and configuration explained - 18min","location":"https://www.youtube.com/watch?v=o66UFsodUYo","language":"en","publishedOn":"2020-09-21T00:00:00.000Z","sourceCodeURL":"","description":"In this video, I explain to you which DNS records you should configure to run a fully functioning mail server with a good reputation. #DNS #MailServer #HomeLab\n\nDOCS: https://github.com/christianlempa/cheat-sheets/blob/main/networking/dns-record-mailserver.md\n\n","descriptionHtml":"<p>In this video, I explain to you which DNS records you should configure to run a fully functioning mail server with a good reputation. #DNS #MailServer #HomeLab</p>\n<p>DOCS: <a href=\"https://github.com/christianlempa/cheat-sheets/blob/main/networking/dns-record-mailserver.md\">https://github.com/christianlempa/cheat-sheets/blob/main/networking/dns-record-mailserver.md</a></p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"o66UFsodUYo","stackoverflowQuestionId":null,"createdAt":"2025-09-05T12:41:54.301Z","updatedAt":"2025-09-05T12:41:54.301Z"},{"_id":"689c60e476e96e382d4147ba","type":"bookmark","tags":["git","git-hooks","commit"],"name":"Husky Homepage ","location":"https://typicode.github.io/husky/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/typicode/husky","description":"Automatically lint your commit messages, code, and run tests upon committing or pushing.","descriptionHtml":"<p>Automatically lint your commit messages, code, and run tests upon committing or pushing.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-08-13T09:54:44.467Z","updatedAt":"2025-08-13T09:54:44.467Z"},{"_id":"68947a2e76e96e382d413b47","type":"bookmark","tags":["matplotlib","python","docs","charts","visualization"],"name":"Matplotlib documentation","location":"https://matplotlib.org/stable/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/matplotlib/matplotlib","description":"Python library for creating static, animated, & interactive visualizations.","descriptionHtml":"<p>Python library for creating static, animated, &amp; interactive visualizations.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-08-07T10:04:30.624Z","updatedAt":"2025-08-11T13:47:33.026Z"},{"_id":"6872522f76e96e382d4107c5","type":"bookmark","tags":["ai-learning","ai","tokenization"],"name":"Let's build the GPT Tokenizer - 2h:13min","location":"https://www.youtube.com/watch?v=zduSFxRajkE","language":"en","publishedOn":"2024-02-20T00:00:00.000Z","sourceCodeURL":"","description":"The Tokenizer is a necessary and pervasive component of Large Language Models (LLMs), where it translates between strings and tokens (text chunks). Tokenizers are a completely separate stage of the LLM pipeline: they have their own training sets, training algorithms (Byte Pair Encoding), and after training implement two fundamental functions: encode() from strings to tokens, and decode() back from tokens to strings. In this lecture we build from scratch the Tokenizer used in the GPT series from OpenAI. In the process, we will see that a lot of weird behaviors and problems of LLMs actually trace back to tokenization. We'll go through a number of these issues, discuss why tokenization is at fault, and why someone out there ideally finds a way to delete this stage entirely.\n","descriptionHtml":"<p>The Tokenizer is a necessary and pervasive component of Large Language Models (LLMs), where it translates between strings and tokens (text chunks). Tokenizers are a completely separate stage of the LLM pipeline: they have their own training sets, training algorithms (Byte Pair Encoding), and after training implement two fundamental functions: encode() from strings to tokens, and decode() back from tokens to strings. In this lecture we build from scratch the Tokenizer used in the GPT series from OpenAI. In the process, we will see that a lot of weird behaviors and problems of LLMs actually trace back to tokenization. We'll go through a number of these issues, discuss why tokenization is at fault, and why someone out there ideally finds a way to delete this stage entirely.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"zduSFxRajkE","stackoverflowQuestionId":null,"createdAt":"2025-07-12T12:16:47.157Z","updatedAt":"2025-07-12T12:16:47.157Z"},{"_id":"686f525a23b88a381b56d2fd","type":"bookmark","tags":["git","git-commit","commit-message"],"name":"gitmoji","location":"https://gitmoji.dev/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/carloscuesta/gitmoji","description":"Gitmoji is an emoji guide for your commit messages. Aims to be a standarization cheatshee /t for using emojis on GitHub's commit messages.","descriptionHtml":"<p>Gitmoji is an emoji guide for your commit messages. Aims to be a standarization cheatshee /t for using emojis on GitHub's commit messages.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-07-10T05:40:42.904Z","updatedAt":"2025-07-10T05:40:42.904Z"},{"_id":"686f510c76e96e382d40feb3","type":"bookmark","tags":["angular","commit-message","git","linter"],"name":"Understanding Semantic Commit Messages Using Git and Angular","location":"https://nitayneeman.com/blog/understanding-semantic-commit-messages-using-git-and-angular/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"Let’s explain the Semantic Commits term and demonstrate practical examples of commit messages, inspired by the Conventional Commit specification and Angular conventions.","descriptionHtml":"<p>Let’s explain the Semantic Commits term and demonstrate practical examples of commit messages, inspired by the Conventional Commit specification and Angular conventions.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-07-10T05:35:08.107Z","updatedAt":"2025-07-10T05:35:08.107Z"},{"_id":"686b81a023b88a381b56be74","type":"bookmark","tags":["chatgpt","ai","deep-learning","introduction","large-language-model","llm","ai-learning"],"name":"Deep Dive into LLMs like ChatGPT - 3h:31min","location":"https://www.youtube.com/watch?v=7xTGNNLPyMI","language":"en","publishedOn":"2025-02-05T00:00:00.000Z","sourceCodeURL":"","description":"This is a general audience deep dive into the Large Language Model (LLM) AI technology that powers ChatGPT and related products. It is covers the full training stack of how the models are developed, along with mental models of how to think about their \"psychology\", and how to get the best use them in practical applications. I have one \"Intro to LLMs\" video already from ~year ago, but that is just a re-recording of a random talk, so I wanted to loop around and do a lot more comprehensive version.\n","descriptionHtml":"<p>This is a general audience deep dive into the Large Language Model (LLM) AI technology that powers ChatGPT and related products. It is covers the full training stack of how the models are developed, along with mental models of how to think about their \"psychology\", and how to get the best use them in practical applications. I have one \"Intro to LLMs\" video already from ~year ago, but that is just a re-recording of a random talk, so I wanted to loop around and do a lot more comprehensive version.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":"7xTGNNLPyMI","stackoverflowQuestionId":null,"createdAt":"2025-07-07T08:13:20.396Z","updatedAt":"2025-07-07T08:13:34.607Z"},{"_id":"6863e2b276e96e382d40d273","type":"bookmark","tags":["ai-learning","gpt","llm"],"name":"Better language models and their implications | OpenAI","location":"https://openai.com/index/better-language-models/","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/openai/gpt-2","description":"We’ve trained a large-scale unsupervised language model which generates coherent paragraphs of text, achieves state-of-the-art performance on many language modeling benchmarks, and performs rudimentary reading comprehension, machine translation, question answering, and summarization—all without task-specific training.\n\nOur model, called GPT‑2 (a successor to GPT⁠), was trained simply to predict the next word in 40GB of Internet text. Due to our concerns about malicious applications of the technology, we are not releasing the trained model. As an experiment in responsible disclosure, we are instead releasing a much [smaller model](https://github.com/openai/gpt-2) for researchers to experiment with, as well as a (technical paper)[https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf]","descriptionHtml":"<p>We’ve trained a large-scale unsupervised language model which generates coherent paragraphs of text, achieves state-of-the-art performance on many language modeling benchmarks, and performs rudimentary reading comprehension, machine translation, question answering, and summarization—all without task-specific training.</p>\n<p>Our model, called GPT‑2 (a successor to GPT⁠), was trained simply to predict the next word in 40GB of Internet text. Due to our concerns about malicious applications of the technology, we are not releasing the trained model. As an experiment in responsible disclosure, we are instead releasing a much <a href=\"https://github.com/openai/gpt-2\">smaller model</a> for researchers to experiment with, as well as a (technical paper)[<a href=\"https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf%5D\">https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf]</a></p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-07-01T13:29:22.601Z","updatedAt":"2025-07-01T13:29:22.601Z"},{"_id":"6863dde923b88a381b56a1a0","type":"bookmark","tags":["ai-learning","tools","llm"],"name":"LLM Visualization","location":"https://bbycroft.net/llm","language":"en","publishedOn":null,"sourceCodeURL":"","description":"","descriptionHtml":"","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-07-01T13:08:57.862Z","updatedAt":"2025-07-01T13:08:57.862Z"},{"_id":"6863ddb323b88a381b56a19c","type":"bookmark","tags":["ai-learning","tools","tokenization","app","ai"],"name":"Tiktokenizer","location":"https://tiktokenizer.vercel.app/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"","descriptionHtml":"","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-07-01T13:08:03.608Z","updatedAt":"2025-07-01T13:08:03.608Z"},{"_id":"6863d6f276e96e382d40d25c","type":"bookmark","tags":["ai-learning","llm","dataset"],"name":"FineWeb: decanting the web for the finest text data at scale - a Hugging Face Space by HuggingFaceFW","location":"https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1","language":"en","publishedOn":null,"sourceCodeURL":"","description":"This application helps create large, high-quality datasets for training large language models by processing and filtering web data. Users can obtain datasets with optimized deduplication and filter...","descriptionHtml":"<p>This application helps create large, high-quality datasets for training large language models by processing and filtering web data. Users can obtain datasets with optimized deduplication and filter...</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-07-01T12:39:14.895Z","updatedAt":"2025-07-01T12:39:14.895Z"},{"_id":"6819d9e276e96e382d3fce36","type":"bookmark","tags":["javascript","lodash","migration","typescript","eslint"],"name":"GitHub - you-dont-need/You-Dont-Need-Lodash-Underscore:","location":"https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore","language":"en","publishedOn":null,"sourceCodeURL":"https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore","description":" List of JavaScript methods which you can use natively + ESLint Plugin","descriptionHtml":"<p> List of JavaScript methods which you can use natively + ESLint Plugin</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-05-06T09:44:02.482Z","updatedAt":"2025-05-06T09:44:02.482Z"},{"_id":"6819d8d523b88a381b55c812","type":"bookmark","tags":["semserver","versioning"],"name":"Online Semver checker","location":"https://jubianchi.github.io/semver-check/#/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"More and more projects try to follow Semantic Versioning to reduce package versioning nightmare and every dependency manager implements its own semantic versioner. Composer and NPM for example don't handle version constraints the same way. It's hard sometimes to be sure how some library version will behave against some constraint.\n\nThis tiny webapp checks if a given version satisfies another given constraint.","descriptionHtml":"<p>More and more projects try to follow Semantic Versioning to reduce package versioning nightmare and every dependency manager implements its own semantic versioner. Composer and NPM for example don't handle version constraints the same way. It's hard sometimes to be sure how some library version will behave against some constraint.</p>\n<p>This tiny webapp checks if a given version satisfies another given constraint.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-05-06T09:39:33.891Z","updatedAt":"2025-05-06T09:39:33.891Z"},{"_id":"681333ca23b88a381b55a62b","type":"bookmark","tags":["angular","rxjs"],"name":"Exploring the takeUntilDestroyed Operator in Angular","location":"https://medium.com/@chandrashekharsingh25/exploring-the-takeuntildestroyed-operator-in-angular-d7244c24a43e","language":"en","publishedOn":null,"sourceCodeURL":"","description":"In this article, we’ll break down the takeUntilDestroyed operator, explain its functionality, and demonstrate how to use it.","descriptionHtml":"<p>In this article, we’ll break down the takeUntilDestroyed operator, explain its functionality, and demonstrate how to use it.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-05-01T08:41:46.129Z","updatedAt":"2025-05-01T08:41:46.129Z"},{"_id":"6808207976e96e382d3f6a2e","type":"bookmark","tags":["软件","小学英语","imported-browser"],"name":"英语课打字","location":"https://momodazi.codinghou.cn/category/englishcategory","userId":"05d2567b-beae-417c-8b9d-662c5697b707","userDisplayName":"Bo","public":true,"likeCount":0,"createdAt":"2025-04-22T23:04:25.949Z","updatedAt":"2025-04-27T23:04:04.158Z","descriptionHtml":"","stackoverflowQuestionId":null,"youtubeVideoId":null,"language":"eo","description":"","sourceCodeURL":"","publishedOn":null},{"_id":"67d9752a23b88a381b54e65e","type":"bookmark","tags":["angular","angular-signals"],"name":"Angular linkedSignal(): The Missing Link in Signal-Based Reactivity","location":"https://blog.angular-university.io/angular-linkedsignal/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"The `linkedSignal` primitive fills an important gap in Angular’s signal-based reactivity model.\n\nIt allows developers to define reactive yet writable relationships between signals, making it perfect for cases like field resets and other scenarios.\n\nWhile it’s not meant to replace `computed` or `signal` at all, it provides a powerful alternative when writable computed values are needed.","descriptionHtml":"<p>The <code>linkedSignal</code> primitive fills an important gap in Angular’s signal-based reactivity model.</p>\n<p>It allows developers to define reactive yet writable relationships between signals, making it perfect for cases like field resets and other scenarios.</p>\n<p>While it’s not meant to replace <code>computed</code> or <code>signal</code> at all, it provides a powerful alternative when writable computed values are needed.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-03-18T13:29:14.314Z","updatedAt":"2025-05-01T14:05:56.632Z"},{"_id":"67d96ce723b88a381b54e2e1","type":"bookmark","tags":["angular"],"name":"Angular ng-content and Content Projection - The Complete Guide","location":"https://blog.angular-university.io/angular-ng-content/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"One of the Angular features that help us the most in building reusable components is Content Projection and ng-content.\n\nIn this post, we are going to learn how to use this feature to design components that have a very simple but still powerful API - the post is as much about component design as it's about content projection!","descriptionHtml":"<p>One of the Angular features that help us the most in building reusable components is Content Projection and ng-content.</p>\n<p>In this post, we are going to learn how to use this feature to design components that have a very simple but still powerful API - the post is as much about component design as it's about content projection!</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-03-18T12:53:59.707Z","updatedAt":"2025-03-18T12:53:59.707Z"},{"_id":"67d442a476e96e382d3ec7fa","type":"bookmark","tags":["angular","angular-signals"],"name":"Angular Signal Components: input, output (Complete Guide)","location":"https://blog.angular-university.io/angular-signal-components/","language":"en","publishedOn":null,"sourceCodeURL":"","description":"A complete guide to Angular signal components, the new component authoring format. This includes signal-based inputs, outputs, and two-way binding with model().","descriptionHtml":"<p>A complete guide to Angular signal components, the new component authoring format. This includes signal-based inputs, outputs, and two-way binding with model().</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-03-14T14:52:20.529Z","updatedAt":"2025-03-14T14:52:20.529Z"},{"_id":"67d4400723b88a381b54d1ec","type":"bookmark","tags":["angular"],"name":"Angular Best practices - Skipping component subtrees","location":"https://angular.dev/best-practices/skipping-subtrees","language":"en","publishedOn":null,"sourceCodeURL":"","description":"JavaScript, by default, uses mutable data structures that you can reference from multiple different components. Angular runs change detection over your entire component tree to make sure that the most up-to-date state of your data structures is reflected in the DOM.","descriptionHtml":"<p>JavaScript, by default, uses mutable data structures that you can reference from multiple different components. Angular runs change detection over your entire component tree to make sure that the most up-to-date state of your data structures is reflected in the DOM.</p>\n","userId":"33d22b0e-9474-46b3-9da4-b1fb5d273abc","userDisplayName":"adixchen","public":true,"likeCount":0,"youtubeVideoId":null,"stackoverflowQuestionId":null,"createdAt":"2025-03-14T14:41:11.365Z","updatedAt":"2025-03-14T14:41:11.365Z"}]