﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>slaveOftime blogs</title><link>https://www.slaveoftime.fun/</link><description>This site is my personal blogs, I will try some technology on this site when needed.</description><category>blog</category><category>vlog</category><category>developing</category><category>dotnet</category><category>csharp</category><category>fsharp</category><a10:link rel="self" type="application/rss+xml" href="https://www.slaveoftime.fun/feed" /><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">c83633fb-c460-4108-9d4e-8d73c9123b1d</guid><link>https://www.slaveoftime.fun/blog/official-cli-+-open-relay:-the-resilient-path-after-third-party-wrapper-bans</link><category>open-relay</category><category>oly</category><category>cli</category><category>ai-agent</category><category>anthropic</category><category>claude-code</category><category>wrappers</category><title>Official CLI + Open Relay: The Resilient Path After Third-Party Wrapper Bans</title><description>When Anthropic blocked OpenClaw and OpenCode, a more resilient path emerged: official CLIs plus Open Relay for session supervision</description><pubDate>Sat, 11 Apr 2026 00:00:00 Z</pubDate><a10:updated>2026-04-11T00:30:47Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">782bcef1-8f45-4d21-90d2-3f1e6aa6f65a</guid><link>https://www.slaveoftime.fun/blog/official-cli-+-open-relay:-the-resilient-path-after-third-party-wrapper-bans</link><category>open-relay</category><category>oly</category><category>cli</category><category>ai-agent</category><category>anthropic</category><category>claude-code</category><category>wrappers</category><title>Official CLI + Open Relay: The Resilient Path After Third-Party Wrapper Bans</title><description>When Anthropic blocked OpenClaw and OpenCode, a more resilient path emerged: official CLIs plus Open Relay for session supervision</description><pubDate>Sat, 11 Apr 2026 00:00:00 Z</pubDate><a10:updated>2026-04-11T00:36:42Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">039c178a-60c7-435b-88b1-4870aa644e15</guid><link>https://www.slaveoftime.fun/blog/how-binwen-built-his-own-jarvis---from-a-tiny-heartbeat-script-to-a-supervisor-for-ai-workers</link><category>jarvis</category><category>ai</category><category>cli</category><category>supervisor</category><category>openrelay</category><category>oly</category><title>How binwen built his own Jarvis - from a tiny heartbeat script to a supervisor for AI workers</title><description>A short story about how a tiny F# heartbeat script grew into a supervisor-first system for managing AI workers with durable state, skills, and 24/7 continuity.</description><pubDate>Thu, 09 Apr 2026 00:00:00 Z</pubDate><a10:updated>2026-04-09T04:24:33Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">e3f2d6c1-5f7d-47f2-b36e-8657b52f5f85</guid><link>https://www.slaveoftime.fun/blog/%E6%8A%8A%E4%B8%AA%E4%BA%BA%E5%BE%AE%E4%BF%A1%E5%8F%98%E6%88%90-agent-%E5%87%BA%E5%8F%A3%EF%BC%8C%E7%94%A8-wechat-relay-%E6%8E%A5%E4%B8%8A-open-relay</link><category>wechat</category><category>wechat-relay</category><category>open-relay</category><category>oly</category><category>agent</category><category>cli</category><category>bridge</category><title>把个人微信变成 Agent 出口，用 wechat-relay 接上 open-relay</title><description>wechat-relay 把个人微信账号变成一个可编程的消息桥，配合 open-relay 和 oly，可以让任意 agent cli 通过 WeChat bridge 进入真实聊天场景。</description><pubDate>Thu, 09 Apr 2026 00:00:00 Z</pubDate><a10:updated>2026-04-10T12:10:23Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">be9a7aff-3641-44cc-b93b-7a61063e7204</guid><link>https://www.slaveoftime.fun/blog/letting-copilot-manage-qwen-a-simple-experiment-in-agent-to-agent-cli-collaboration</link><category>copilot</category><category>qwen</category><category>claude</category><category>cli</category><category>ai</category><category>oly</category><title>Letting Copilot Manage Qwen A Simple Experiment in Agent to Agent CLI Collaboration</title><description>What I wanted to test in this experiment was something simpler with oly, can we use a plain CLI approach to let one agent interact with any other CLI or agent CLI, including ones with multi-turn or even complex interactive flows?</description><pubDate>Mon, 23 Mar 2026 00:00:00 Z</pubDate><a10:updated>2026-03-23T10:42:03Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">d51c5264-96a8-45c8-bc19-612f6d8b5f24</guid><link>https://www.slaveoftime.fun/blog/i-built-oly-because-i-was-tired-of-babysitting-long-running-cli-tools</link><category>cli</category><category>ai</category><category>opensource</category><category>productivity</category><title>I built oly because I was tired of babysitting long-running CLI tools</title><description>A short story about why I built oly, a tool for running interactive CLI sessions like managed services.</description><pubDate>Thu, 12 Mar 2026 00:00:00 Z</pubDate><a10:updated>2026-03-12T09:05:26Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">2693d7ae-2553-49c8-bbbe-9d80293ae985</guid><link>https://www.slaveoftime.fun/blog/%E8%AF%AF%E5%B7%AE%E8%BF%90%E5%8A%A8%E5%AD%A6%E8%AE%A1%E7%AE%97%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AC%94%E8%AE%B0-pid%E6%8E%A7%E5%88%B6</link><category>机器人学</category><category> 误差运动学</category><category> PID控制</category><category> 运动控制</category><title>误差运动学计算的一些笔记-PID控制</title><description>机器人控制器的工作是将任务规范转换为执行器处的力和力矩。实现上述行为的控制策略被称为运动控制（motion control）、力控制（force control）、运动-力混合控制（hybrid motion-force control）或阻抗控制（impedance control）</description><pubDate>Mon, 26 Jan 2026 00:00:00 Z</pubDate><a10:updated>2026-03-12T09:05:27Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">0f97e7e5-0967-47bd-829a-04b8f8e1829a</guid><link>https://www.slaveoftime.fun/blog/%E6%AD%A3%E5%90%91%E8%BF%90%E5%8A%A8%E5%AD%A6%E8%AE%A1%E7%AE%97%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AC%94%E8%AE%B0-%E6%8C%87%E6%95%B0%E7%A7%AF%E5%85%AC%E5%BC%8Fpoe</link><category>机器人学</category><category> 正向运动学</category><category> 指数积公式</category><category> PoE</category><title>正向运动学计算的一些笔记-指数积公式PoE</title><description>基于空间坐标系和物体坐标系的指数积公式（PoE）计算方法</description><pubDate>Sun, 04 Jan 2026 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:33:13Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">3f9eba2a-0ae8-4aa1-bd0a-791637e80b39</guid><link>https://www.slaveoftime.fun/blog/use-ssh.net-to-sync-my-blogs</link><category>fsharp</category><category>ssh</category><category>script</category><title>Use SSH.NET to sync my blogs</title><description>Before for this simple technical playground blog website, I always use github actions to trigger a full build for dynamic and static posts to deploy to IIS.</description><pubDate>Thu, 20 Nov 2025 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:35Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">8b70bab0-ad9f-4af1-9d6c-12e8bc6c239a</guid><link>https://www.slaveoftime.fun/blog/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-blazor.diagrams</link><category>blazor</category><category>dotnet</category><category>diagrams</category><title>如何使用 Blazor.Diagrams</title><description>使用 Blazor.Diagrams 我可以容易地为用户定制流程图看板</description><pubDate>Fri, 15 Aug 2025 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:24Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">27026c89-9c19-400c-a0ef-39431fa1d273</guid><link>https://www.slaveoftime.fun/blog/how-to-extend-the-request-capabilities-of-the-dotnet-semantic-kernel-default-connector</link><category>dotnet</category><category> semantic kernel</category><category> httpclient</category><category> ai</category><category> json merge</category><title>How to extend the request capabilities of the dotnet Semantic Kernel Default Connector</title><description>Learn how to extend the capabilities of the .NET Semantic Kernel by customizing HTTP requests when the default connectors do not meet your configuration needs. This guide includes step-by-step implementation and code examples.</description><pubDate>Fri, 08 Aug 2025 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:27Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">03e99eeb-976c-4288-b53e-4acbef7f2b17</guid><link>https://www.slaveoftime.fun/blog/optimizing-markdown-rendering-in-blazor-for-llm-chat-applications</link><category>Blazor</category><category> Markdown</category><category> Markdig</category><category> Performance</category><category> UI/UX</category><category> LLM</category><category> Chat Applications</category><category> F#</category><category> C#</category><title>Optimizing Markdown Rendering in Blazor for LLM Chat Applications</title><description>Discover how to leverage Markdig and Blazor's diffing capabilities to build high-performance, interactive Markdown rendering for chat applications, avoiding full DOM re-renders.</description><pubDate>Fri, 01 Aug 2025 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:19Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">b6a2df58-8b2f-4fb7-a91b-9c3d7b481fbc</guid><link>https://www.slaveoftime.fun/blog/single-fsharp-script-to-write-a-mcp-server---simplified-integration-for-dynamic-script-execution</link><category>F#</category><category> MCP server</category><category> dynamic script execution</category><category> ModelContextProtocol</category><category> scripting automation</category><category> LLM integration</category><title>Single fsharp script to write a MCP server - Simplified Integration for Dynamic Script Execution</title><description>Discover how to use F# to build a Model Context Protocol (MCP) server for executing dynamic scripts like F#, C#, JavaScript, and PowerShell, with seamless integration into LLM applications.</description><pubDate>Tue, 29 Jul 2025 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:27Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">4a21019a-181b-4c4b-9fc9-1e990aa52fc7</guid><link>https://www.slaveoftime.fun/blog/make-it-easier-for-llm-to-use-commands</link><category>LLM</category><category> Brainloop</category><category> AI</category><category> dotnet</category><title>Make it easier for LLM to use commands</title><description>Learn how to create a seamless LLM integration by using placeholder markers and auto-generated argument schemas for command-based functions</description><pubDate>Wed, 23 Jul 2025 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:27Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">558331b1-7954-48af-b7fb-5c2b312007cc</guid><link>https://www.slaveoftime.fun/blog/expose-services-hosted-in-windows-docker-desktop</link><category>docker</category><category>Windows</category><category>WSL</category><title>Expose services hosted in Windows docker desktop</title><description>Wasted hours to figure out how to expose my service hosted in my local Windows11 PC for public access</description><pubDate>Thu, 26 Dec 2024 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:22Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">2c43084e-9658-4408-9d3e-fce0e65edd3b</guid><link>https://www.slaveoftime.fun/blog/build-a-simple-script-to-generate-certificates-from-let's-encrypt-org</link><category>certificate</category><category>acme</category><category>fsharp</category><title>Build a simple script to generate certificates from Let's Encrypt org</title><description>Got some time to figure out how to get free certificate from Let's Encrypt org with DNS-01 challenge</description><pubDate>Wed, 25 Dec 2024 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:34Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">2217f89d-d27a-4b2c-b682-de839da000b5</guid><link>https://www.slaveoftime.fun/blog/explorer-server-sent-event-(sse)</link><category>web</category><category>sse</category><category>htmx</category><category>blazor</category><category>fsharp</category><category>dotnet</category><title>Explorer Server Sent Event (SSE)</title><description>In dotnet 9 there is an official support for SSE, but this concept is quit new to me before, need to explore ...</description><pubDate>Fri, 22 Nov 2024 00:00:00 Z</pubDate><a10:updated>2026-04-11T00:36:43Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">d989d48f-16b1-4024-aa91-00ddf0f987f9</guid><link>https://www.slaveoftime.fun/blog/the-usage-of-blazor.diagrams</link><category>blazor</category><category>dotnet</category><category>diagrams</category><title>The usage of Blazor.Diagrams</title><description>With Blazor.Diagrams, I can easily create customizable dashboards for users</description><pubDate>Tue, 11 Jun 2024 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:24Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">7b534578-badf-4fa9-b08c-6551885e780f</guid><link>https://www.slaveoftime.fun/blog/summary-some-use-cases-of-fun.blazor</link><category>fsharp</category><category>blazor</category><category>Fun.Blazor</category><title>Summary some use cases of Fun.Blazor</title><description>It takes some time and hard work to get this point, but the release 4.0.0 of Fun.Blazor makes me very happy and satisfy.</description><pubDate>Thu, 08 Feb 2024 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:24Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">e02bfc42-8d8f-4112-834d-333f8e0232f5</guid><link>https://www.slaveoftime.fun/blog/navigation-and-form-enhancement-in-dotnet-8-blazor-is-not-enough</link><category>blazor</category><category>fsharp</category><category>blazor</category><category>htmx</category><title>Navigation and form enhancement in dotnet 8 blazor is not enough</title><description>I tried to get the benefit from the navigation and form enhancement of blazor in dotnet 8 for my blog site, but with no luck...</description><pubDate>Sat, 25 Nov 2023 00:00:00 Z</pubDate><a10:updated>2026-04-11T00:36:43Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">61f920d5-5cc2-4fc0-92e6-072ecbb04314</guid><link>https://www.slaveoftime.fun/blog/dotnet-native-aot-%E5%8A%A0-minimal-api-%E5%8A%A0-blazor-%E5%88%9D%E4%BD%93%E9%AA%8C</link><category>dotnet</category><category>blazor</category><category>csharp</category><title>dotnet native AOT 加 minimal API 加 blazor 初体验</title><description>最近 dotnet 8 preview 5 发布，想尝试一下在 native AOT 模式下，asp.net core minimal API + blazor 的效果。</description><pubDate>Mon, 26 Jun 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:19Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">5cb4baac-83a0-4394-8c11-59920265c2f2</guid><link>https://www.slaveoftime.fun/blog/learn-rust-by-building-a-simple-load-test-tool</link><category>rust</category><category>load-test</category><category>http-client</category><category>dotnet</category><title>Learn rust by building a simple load test tool</title><description>After I tried rust by rebuilding my recipe website, I thought I know enough to use rust to build more stuff, at least will not spend too much time. So I tried to build a load test tool ...</description><pubDate>Thu, 15 Jun 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:35Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">ecffea5e-708d-431f-888f-12871a0f674b</guid><link>https://www.slaveoftime.fun/blog/try-use-rust-to-rebuild-my-recipe-website</link><category>rust</category><category>htmx</category><category>actix-web</category><title>Try use rust to rebuild my recipe website</title><description>Rust is on my radar for many years, but never had opportunities to use it, but recently I found a chance.</description><pubDate>Wed, 07 Jun 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:21Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">85fa0cce-dc28-4ddf-9064-cdc0677e6fb7</guid><link>https://www.slaveoftime.fun/blog/make-more-names---part-3</link><category>machine_learning</category><category>torchsharp</category><category>fsharp</category><category>notes</category><title>Make more names - part 3</title><description>Yeah... maybe it is time to start to learn machine learning. Will follow the star Andrej Karpathy</description><pubDate>Fri, 24 Mar 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:17Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">c1903b5b-cea8-4e16-9b14-7ad2e5e54bd1</guid><link>https://www.slaveoftime.fun/blog/make-more-names---part-2</link><category>machine_learning</category><category>torchsharp</category><category>fsharp</category><category>notes</category><title>Make more names - part 2</title><description>Yeah... maybe it is time to start to learn machine learning. Will follow the star Andrej Karpathy</description><pubDate>Tue, 21 Mar 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:17Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">d638c6a7-34bb-4151-b31b-30b34730df42</guid><link>https://www.slaveoftime.fun/blog/make-more-names---part-1</link><category>machine_learning</category><category>torchsharp</category><category>fsharp</category><category>notes</category><title>Make more names - part 1</title><description>Yeah... maybe it is time to start to learn machine learning. Will follow the star Andrej Karpathy</description><pubDate>Mon, 13 Mar 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:17Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">a52c8e09-982e-4c4f-9777-d05868f3d8e9</guid><link>https://www.slaveoftime.fun/blog/how-easy-it-is-to-make-dialog-and-toast-in-blazor</link><category>blazor</category><category>fsharp</category><category>blazor</category><title>How easy it is to make dialog and toast in blazor</title><description>How to implement simple dialogs and toasts functions with fsharp and blazor, it can be very simple and fully controlled by your self.</description><pubDate>Sun, 12 Feb 2023 00:00:00 Z</pubDate><a10:updated>2026-04-11T00:36:43Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">398e4feb-8e12-4a9d-94cd-7a460a4b5aea</guid><link>https://www.slaveoftime.fun/blog/how-to-create-rss-feed-in-dotnet</link><category>notes</category><category>web</category><category>RSS</category><category>dotnet</category><title>How to create RSS feed in dotnet</title><description>There are so many ways to create RSS, here I choose the internal solution with dotnet</description><pubDate>Thu, 09 Feb 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:40Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">d8252347-2f82-408a-b381-1566d0473957</guid><link>https://www.slaveoftime.fun/blog/paragraph-p-in-html</link><category>notes</category><category>web</category><category>html</category><title>Paragraph p in html</title><description>Mistakes for mindset about html tags</description><pubDate>Mon, 06 Feb 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:22Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">142ce52b-6beb-4a88-a776-ddfed6d77844</guid><link>https://www.slaveoftime.fun/blog/a-post-for-describe-the-post-site-itself</link><category>blog</category><category>fsharp</category><title>A post for describe the post site itself</title><description>This blog site is rebuilt for many times, now, there is one more to go ...</description><pubDate>Wed, 01 Feb 2023 00:00:00 Z</pubDate><a10:updated>2026-04-11T00:36:43Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">80a4496e-5425-4757-9a11-693522a9245d</guid><link>https://www.slaveoftime.fun/blog/mix-giraffe,-htmx-and-blazor-together</link><category>fsharp</category><category>Giraffe</category><category>HTMX</category><category>blazor</category><title>Mix Giraffe, HTMX and blazor together</title><description>It may look very weird to combine those stuff together, but when I found this hammer and looking for nails, there really are some...</description><pubDate>Sat, 28 Jan 2023 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:11Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">75a604ec-a59c-4ca7-af67-7d0b0814b361</guid><link>https://www.slaveoftime.fun/blog/make-blazor-lazy-with-custom-elements</link><category>fsharp</category><category>blazor</category><category>custom elements</category><title>Make blazor lazy with custom elements</title><description>Blazor server is good, but for some use cases it is a little bit heavy. What if I can run blazor host only when necessary?</description><pubDate>Sat, 05 Nov 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:10Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">10b4812e-d11f-4078-964a-40bfccdb9c36</guid><link>https://www.slaveoftime.fun/blog/%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84-cicd-%E8%84%9A%E6%9C%AC%E5%B8%AE%E5%8A%A9%E5%BA%93</link><category>CICD</category><category>dotnet</category><category>fsharp</category><category>脚本</category><title>介绍一个简单的 CICD 脚本帮助库</title><description>自己做项目的时候经常要写一些自动化脚本，但是一直没有用到一个满意的，于是自己妄图来写了一个。</description><pubDate>Thu, 03 Nov 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:35Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">27898413-4e94-4915-b9b0-c6a9e081d1b3</guid><link>https://www.slaveoftime.fun/blog/use-odata-with-fsharp-and-swagger-in-frontend-and-backend</link><category>fsharp</category><category>odata</category><category>swagger</category><title>Use OData with fsharp and swagger in frontend and backend</title><description>Use the new Fun.OData.Query computation expression DSL to consume the apis which is setup with OData MVC and swagger</description><pubDate>Sun, 29 May 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:17:28Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">4846e40f-ee95-4f30-961b-db8484ae588c</guid><link>https://www.slaveoftime.fun/blog/real-enterprise-application-with-fun.blazor</link><category>fsharp</category><category>blazor</category><category>aspnetcore</category><title>Real enterprise application with Fun.Blazor</title><description>Enough counter demo, let's have a look for a real enterprise application which is build with Fun.Blazor</description><pubDate>Wed, 25 May 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:56Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">fadfef0a-0957-40bf-86ca-2ba93a919e79</guid><link>https://www.slaveoftime.fun/blog/blazor-%E5%8F%A6%E7%B1%BB%E4%BD%BF%E7%94%A8-%E5%B0%8F%E7%BB%93</link><category>blazor</category><category>.NET</category><title>Blazor 另类使用 小结</title><description>最近一段时间都在折腾 Blazor 的另类使用 Fun.Blazor，现在 2.0 beta 快差不多了，也是时候做一个小结了。</description><pubDate>Fri, 25 Mar 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:10Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">7853850c-31f8-4162-b9ff-f610e45511e6</guid><link>https://www.slaveoftime.fun/blog/use-signalr-to-improve-hot-reload-for-fun.blazor</link><category>fsharp</category><category>blazor</category><category>SignalR</category><title>Use SignalR to improve hot-reload for Fun.Blazor</title><description>SignalR client can support blazor wasm, so if use that we may have hot-reload for Fun.Blazor in wasm mode.</description><pubDate>Mon, 07 Mar 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:25Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">d959e36a-f4fe-4a10-88af-5e738633db0f</guid><link>https://www.slaveoftime.fun/blog/hot-reload-in-fun.blazor</link><category>fsharp</category><category>blazor</category><category>Fun.Blazor</category><title>Hot-reload in Fun.Blazor</title><description>Hot-reload is very important for building frontend application, because it can save life. Here is the journey for how I make it work and hot to use it.</description><pubDate>Mon, 28 Feb 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:24Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">5cfa9459-5736-4f6c-8358-91de492e0d33</guid><link>https://www.slaveoftime.fun/blog/recreated-blog-site-with-fun.blazor-v2</link><category>fsharp</category><category>blazor</category><title>Recreated blog site with Fun.Blazor V2</title><description>Fun.Blazor V2 is in beta, I want to use it and try more real stuff</description><pubDate>Sun, 20 Feb 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:25Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">e2c6cec0-0c46-44b5-838b-85d6ed31d3b5</guid><link>https://www.slaveoftime.fun/blog/blazor%E5%92%8C%E6%A0%91%E8%8E%93%E6%B4%BE%E6%98%AF%E4%B8%AA%E5%A5%BD%E6%90%AD%E9%85%8D%F0%9F%91%8D</link><category>blazor</category><category>樹莓派</category><title>Blazor和树莓派是个好搭配👍</title><description>我摸鱼想做的就是当我离开家的时候，我用手机可以远程连接到我的树莓派，然后通过浏览器登录后，来控制四轮机器人运动，并实时预览摄像头画面</description><pubDate>Sun, 09 Jan 2022 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:34Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">15936233-ccd2-4b40-97b0-cde439360d28</guid><link>https://www.slaveoftime.fun/blog/%E4%BD%BF%E7%94%A8-tailwindcss-%E4%B8%BA%E6%88%91%E7%9A%84-blazor-%E5%8D%9A%E5%AE%A2%E6%B7%BB%E5%8A%A0%E9%BB%91%E6%9A%97%E6%A8%A1%E5%BC%8F</link><category>blazor</category><category>tailwindcss</category><category>暗黑模式</category><title>使用 tailwindcss 为我的 blazor 博客添加黑暗模式</title><description>最近几年黑暗模式越来越流行，不管是系统成面还是 UI 设计趋势，感觉不光是程序员喜欢黑色主题，大家都好这口，可能是因为大家都越来越喜欢晚睡了吧</description><pubDate>Mon, 19 Jul 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:25Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">b7153846-a280-4598-b8f9-cbc6dfe09a75</guid><link>https://www.slaveoftime.fun/blog/experiment-on-computation-expression-style-for-blazor-with-f#</link><category>feliz</category><category>fsharp</category><category>blazor</category><category>computation_expression</category><title>Experiment on computation expression style for Blazor with F#</title><description>Before I use Feliz style for the auto generated dsl but find its a little redundant, so let`s try CE style</description><pubDate>Sun, 18 Jul 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:10Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">c4907725-73ad-4352-89c2-442a9ff2fb6e</guid><link>https://www.slaveoftime.fun/blog/%E4%B8%8D%E7%94%A8%E6%A8%A1%E6%9D%BF%E5%86%99blazor%E7%9A%84%E5%B0%9D%E8%AF%95%EF%BC%8C%E6%8A%98%E8%85%BE%E6%97%A0%E6%AD%A2%E5%A2%83</link><category>blazor</category><category>fsharp</category><category>dsl</category><title>不用模板写blazor的尝试，折腾无止境</title><description>上回说到我用blazor重写了个人博客，当时用的是fsharp，我暴力生成了MudBlazor的DSL来使用。。。</description><pubDate>Sun, 18 Jul 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:16Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">2109cd23-f528-4c85-b4cc-dd7092c1df4b</guid><link>https://www.slaveoftime.fun/blog/improve-computation-expression-style-dsl-for-fun.blazor</link><category>computation_expression</category><category>fsharp</category><category>dsl</category><title>Improve computation expression style DSL for Fun.Blazor</title><description>Still trying to mess around with the frontend DSL powered by fsharp computation expression</description><pubDate>Sun, 18 Jul 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:16Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">ec88a7bb-9931-4023-b3ef-9f15408b5ea4</guid><link>https://www.slaveoftime.fun/blog/%E4%BD%BF%E7%94%A8-blazor-%E9%87%8D%E5%86%99%E4%BA%86%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E5%90%8E%E7%9A%84%E6%84%9F%E6%83%B3</link><category>blazor</category><category>fsharp</category><title>使用 Blazor 重写了个人博客后的感想</title><description>近年来 Blazor 越发火热，虽然不及 react, vue, angular等，但是在 .net 生态，它却是如此特别和重要</description><pubDate>Sun, 18 Jul 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:25Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">1ba77930-d671-4fe1-ac6c-e1a62eff964f</guid><link>https://www.slaveoftime.fun/blog/%E6%BC%AB%E8%B0%88-xss(%E8%B7%A8%E7%AB%99%E7%82%B9%E8%84%9A%E6%9C%AC%E6%94%BB%E5%87%BB)%EF%BC%8Ccsrf(%E8%B7%A8%E7%AB%99%E7%82%B9%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0%EF%BC%8C%E8%B7%A8%E5%9F%9F%E6%94%BB%E5%87%BB)</link><category>时间笔记</category><category>XSS</category><category>跨站点脚本攻击</category><category>CSRF</category><category>跨站点请求伪造</category><category>跨域攻击</category><title>漫谈 XSS(跨站点脚本攻击)，CSRF(跨站点请求伪造，跨域攻击)</title><description>我一直被站点安全相关的的名词困惑着，一方面是觉得它们很神秘，另一方面它们本身也很抽象。</description><pubDate>Tue, 06 Jul 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:35Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">85a8cfe4-5323-4f00-a254-3f8f65b9fb6a</guid><link>https://www.slaveoftime.fun/blog/giraffe-style-routing-for-fun.blazor</link><category>fsharp</category><category>blazor</category><category>giraffe</category><title>Giraffe style routing for Fun.Blazor</title><description>Before I experimented Feliz.Router with Fun.Blazor and find some inconvenience so this time I tried to use giraffe style to see how it is going on.</description><pubDate>Thu, 01 Jul 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:10Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">5d1dca9c-1c5f-4a22-9cc0-0a481f71fa1b</guid><link>https://www.slaveoftime.fun/blog/%E2%80%9C%E6%88%91%E7%88%B8%E6%98%AF%E5%9C%A8%E5%BE%AE%E8%BD%AF%E6%94%B6%E5%9E%83%E5%9C%BE%E7%9A%84%E2%80%9D%EF%BC%8C.net-gc%E5%BC%80%E5%88%9B%E4%BA%BA%E7%9A%84%E5%84%BF%E5%AD%90%E8%AF%B4</link><category>.NET</category><category>GC</category><category>垃圾回收</category><title>“我爸是在微软收垃圾的”，.NET GC开创人的儿子说</title><description>.NET GC 一直都是面试必问题，虽然我不知道有什么意义，但是由于行业内卷逐渐严重，我也只能大概学习一番，有备无患</description><pubDate>Tue, 23 Feb 2021 00:00:00 Z</pubDate><a10:updated>2025-10-01T08:07:28Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">b5dea27a-5bca-4c28-bd35-8e1a4089833b</guid><link>https://www.slaveoftime.fun/blog/%E6%BC%AB%E8%B0%88%E7%99%BB%E5%BD%95%E3%80%81%E9%AA%8C%E8%AF%81%E3%80%81%E6%8E%88%E6%9D%83%E3%80%81-sso</link><category>时间笔记</category><category>单点登录</category><category>SSO</category><title>漫谈登录、验证、授权、 SSO</title><description>我们经常会听说登陆(login), 验证(authenticate), 授权(authorize)。他们的区别和具体的实现到底是怎么做的呢？以及和单点登陆(SSO)的关系又是什么呢？和cookie, session, JWT又有怎样的联系呢？</description><pubDate>Thu, 28 Jan 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:35Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">799fc99e-bfa1-4534-a5b1-874f73bb39ed</guid><link>https://www.slaveoftime.fun/blog/%E4%B8%89%E5%8D%81%E6%83%91%E4%B8%8D%E7%AB%8B%EF%BC%8C%E9%9D%A2%E8%AF%95%E6%9C%89%E7%82%B9%E6%83%A8</link><category>时间笔记</category><category>面试</category><title>三十惑不立，面试有点惨</title><description>距离上一次面试已经三年多了，换工作的原因可以说很多，也可以说很少；面试的结果可以说有点惨，也可以说特别惨。</description><pubDate>Tue, 19 Jan 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:35Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">2a65da15-5fb0-4b4c-99f3-0bafb51e1c05</guid><link>https://www.slaveoftime.fun/blog/%E6%BC%AB%E8%B0%88-base64</link><category>时间笔记</category><category>BASE64</category><category>面试</category><category>扎💔</category><category>F#</category><title>漫谈 BASE64</title><description>前几天参加了三年来第一次面试，二面面试回答如抢答，被问及base64的目的时顿时语塞</description><pubDate>Tue, 19 Jan 2021 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:40Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">30a7bb34-a3dd-4391-b48d-8ada2129dcce</guid><link>https://www.slaveoftime.fun/blog/%E5%AF%B9%E4%BA%8E%E5%85%A8%E6%A0%88%E5%BC%80%E5%8F%91%E4%B8%80%E7%82%B9%E4%B8%8D%E6%88%90%E7%86%9F%E7%9A%84%E6%8A%B1%E6%80%A8%E5%92%8C%E8%87%AA%E6%88%91%E5%AE%89%E6%85%B0</link><category>.NET</category><category>全栈</category><title>对于全栈开发一点不成熟的抱怨和自我安慰</title><description>作为全栈开发多年，会写几个后端服务，会写一点前端交互，对其中的快乐与痛苦也略有感悟。</description><pubDate>Sat, 09 May 2020 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:15:39Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">4e01d69c-0641-4d0c-a764-8e65ba109fb2</guid><link>https://www.slaveoftime.fun/blog/react-%E7%9A%84%E5%8F%A6%E7%B1%BB%E7%94%A8%E6%B3%95%E7%B3%BB%E5%88%97%EF%BC%88%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%EF%BC%89--5-%EF%BC%88%E5%85%A8%E6%A0%88)</link><category>react</category><category>fSharp</category><category>fable</category><category>MVU</category><category>俄罗斯方块</category><category>tetris</category><category>orleans</category><title>React 的另类用法系列（俄罗斯方块）- 5 （全栈)</title><description>这次的分享主要是后端的实现，以及与前端的集成。另外，为了学习Orleans，我在后端的实现上用了它，虽然这样会增加复杂度，并且显得过度设计，但是出于学习的目的，还是很有趣的。</description><pubDate>Sun, 03 May 2020 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:17:26Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">c2384c75-4268-4cf5-811f-ec0f816a3dae</guid><link>https://www.slaveoftime.fun/blog/react-%E7%9A%84%E5%8F%A6%E7%B1%BB%E7%94%A8%E6%B3%95%E7%B3%BB%E5%88%97%EF%BC%88%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%EF%BC%89--4-(event-sourcing%EF%BC%89</link><category>react</category><category>fSharp</category><category>fable</category><category>MVU</category><category>俄罗斯方块</category><category>tetris</category><title>React 的另类用法系列（俄罗斯方块）- 4 (Event sourcing）</title><description>实现俄罗斯方块的方式很多，但是用event-sourcing的方式做的还是很少，毕竟我没有见过，所以在此做一个简单的尝试</description><pubDate>Tue, 17 Mar 2020 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:58Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">622df978-67b3-4cac-a3e5-c6961c547ccc</guid><link>https://www.slaveoftime.fun/blog/react-%E7%9A%84%E5%8F%A6%E7%B1%BB%E7%94%A8%E6%B3%95%E7%B3%BB%E5%88%97%EF%BC%88%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%EF%BC%89--3-(%E9%A1%B9%E7%9B%AE%E6%90%AD%E5%BB%BA&amp;%E4%B8%BB%E9%A1%B5%E9%80%BB%E8%BE%91%E6%9E%84%E5%BB%BA%EF%BC%89</link><category>react</category><category>fSharp</category><category>fable</category><category>MVU</category><category>俄罗斯方块</category><category>tetris</category><title>React 的另类用法系列（俄罗斯方块）- 3 (项目搭建&amp;主页逻辑构建）</title><description>这次的分享主要是项目搭建，以及根据先前的设计做主页的实现</description><pubDate>Wed, 04 Mar 2020 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:17:27Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">18151447-e18a-4827-b74a-18e491ea4bdb</guid><link>https://www.slaveoftime.fun/blog/react-%E7%9A%84%E5%8F%A6%E7%B1%BB%E7%94%A8%E6%B3%95%E7%B3%BB%E5%88%97%EF%BC%88%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%EF%BC%89--2-(ui%E8%AE%BE%E8%AE%A1%EF%BC%89</link><category>react</category><category>fSharp</category><category>fable</category><category>MVU</category><category>俄罗斯方块</category><category>tetris</category><title>React 的另类用法系列（俄罗斯方块）- 2 (UI设计）</title><description>通过简单的UI设计，明确自己要实现的功能，理清自己的思路</description><pubDate>Tue, 25 Feb 2020 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:17:27Z</a10:updated></item><item xml:base="https://www.slaveoftime.fun/"><guid isPermaLink="false">aacf395b-7bd0-453f-b440-28dcc69ca54e</guid><link>https://www.slaveoftime.fun/blog/react-%E7%9A%84%E5%8F%A6%E7%B1%BB%E7%94%A8%E6%B3%95%E7%B3%BB%E5%88%97%EF%BC%88%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%EF%BC%89--1</link><category>react</category><category>fSharp</category><category>fable</category><category>MVU</category><category>俄罗斯方块</category><category>tetris</category><title>React 的另类用法系列（俄罗斯方块）- 1</title><description>React 这么流行，生态如此之广，资料也很多，在此我就分享一个比较另类的使用姿势。。。</description><pubDate>Sat, 22 Feb 2020 00:00:00 Z</pubDate><a10:updated>2026-01-26T07:16:58Z</a10:updated></item></channel></rss>