<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="https://spring.didispace.com/rss.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <atom:link href="https://spring.didispace.com/rss.xml" rel="self" type="application/rss+xml"/>
    <title>TJ君专栏</title>
    <link>https://spring.didispace.com/</link>
    <description>推荐各种GitHub上的优质开源项目、好用的在线工具、以及各种免费资源等</description>
    <language>zh-CN</language>
    <pubDate>Wed, 11 Jun 2025 06:23:10 GMT</pubDate>
    <lastBuildDate>Wed, 11 Jun 2025 06:23:10 GMT</lastBuildDate>
    <generator>vuepress-plugin-feed2</generator>
    <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
    <category>开源推荐</category>
    <category>工具推荐</category>
    <category>Java</category>
    <category>IntelliJ IDEA</category>
    <category>Spring Boot</category>
    <category>程序人生</category>
    <category>日常记录</category>
    <category>Mac使用技巧</category>
    <item>
      <title>别再花冤枉钱！BilldDesk 开源方案替代商业远程桌面</title>
      <link>https://spring.didispace.com/tj/20250611-billddesk.html</link>
      <guid>https://spring.didispace.com/tj/20250611-billddesk.html</guid>
      <source url="https://spring.didispace.com/rss.xml">别再花冤枉钱！BilldDesk 开源方案替代商业远程桌面</source>
      <description>在当今数字化办公与远程协作愈发普及的时代，远程桌面控制软件成为了众多企业和个人不可或缺的工具。无论是企业的技术支持人员需要远程协助客户解决设备问题，还是员工需要在家中远程访问办公室的电脑完成工作任务，亦或是个人想要随时随地控制自己的另一台设备，远程桌面软件都能提供便捷的解决方案。 在这个领域，ToDesk、向日葵等商业远程桌面软件广为人知。它们凭借丰富的功能和稳定的性能，占据了较大的市场份额。然而，这些商业软件往往需要用户支付一定的费用来获取更高级的功能，对于一些小型企业或个人开发者来说，成本可能成为了一个阻碍因素。 这时，开源项目BilldDesk进入了我们的视野。</description>
      <category>开源推荐</category>
      <pubDate>Wed, 11 Jun 2025 12:22:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>在当今数字化办公与远程协作愈发普及的时代，远程桌面控制软件成为了众多企业和个人不可或缺的工具。无论是企业的技术支持人员需要远程协助客户解决设备问题，还是员工需要在家中远程访问办公室的电脑完成工作任务，亦或是个人想要随时随地控制自己的另一台设备，远程桌面软件都能提供便捷的解决方案。</p>
<p>在这个领域，ToDesk、向日葵等商业远程桌面软件广为人知。它们凭借丰富的功能和稳定的性能，占据了较大的市场份额。然而，这些商业软件往往需要用户支付一定的费用来获取更高级的功能，对于一些小型企业或个人开发者来说，成本可能成为了一个阻碍因素。</p>
<p>这时，开源项目BilldDesk进入了我们的视野。</p>
<p><img src="https://static.didispace.com/images3/ebf6327f64b96672465ad1020f8f9683.png" alt=""></p>
<p>BilldDesk是一个基于Vue3 + WebRTC + Nodejs + Electron搭建的远程桌面控制项目，目前已经实现了类似ToDesk、向日葵等商业软件的功能。接下来，让我们对BilldDesk和这些商业产品进行一番对比。</p>
<h2> 产品对比</h2>
<p><img src="https://static.didispace.com/images3/e3e061b546ae09927b30855f249bb6cf.png" alt=""></p>
<ul>
<li><strong>功能方面</strong>：商业远程桌面软件通常拥有全面且成熟的功能体系，如高清流畅的远程控制、文件快速传输、多设备兼容等。BilldDesk同样具备这些核心功能，从项目的README文档中可以看到，它展示了文件传输的预览图片，并且支持跨平台使用，无论是在网页端、桌面客户端还是移动客户端都能正常运行。同时，从CHANGELOG文件中可以了解到，BilldDesk不断在进行功能的优化和新增，例如在特定版本中实现了浏览器打开客户端、同步仓库等功能。</li>
<li><strong>成本方面</strong>：商业软件的高级功能往往需要付费订阅，对于一些预算有限的用户来说可能是一笔不小的开支。而BilldDesk完全开源（可商用），用户可以自由下载和使用其代码，根据自己的需求进行定制和部署，大大降低了使用成本。项目README中明确提到欢迎用户进行私有化部署，这为企业和个人提供了更多的灵活性。</li>
<li><strong>技术栈方面</strong>：商业软件的技术栈通常是经过长期研发和优化的，但相对封闭。BilldDesk采用了流行的开源技术栈，前端使用Vue3及相关技术，后端使用Nodejs、Koa2、Sequelize等，桌面客户端基于Electron，移动客户端使用Flutter3。这些技术不仅具有良好的社区支持和生态环境，还方便开发者进行二次开发和扩展。</li>
</ul>
<h2> 核心特点总结</h2>
<ul>
<li><strong>开源免费</strong>：BilldDesk的开源性质使得用户无需支付高额的授权费用，就可以使用和修改代码，这对于小型企业和个人开发者来说是一个巨大的优势。</li>
<li><strong>跨平台支持</strong>：项目支持多种平台，包括网页端、桌面客户端（Windows、Mac、Linux）和移动客户端，满足了不同用户在不同设备上的使用需求。</li>
<li><strong>持续更新</strong>：从CHANGELOG文件可以看出，BilldDesk一直在不断更新和优化，修复bug、新增功能，保证了项目的稳定性和功能性。</li>
<li><strong>社区参与</strong>：项目欢迎用户提PR和issue，这意味着用户可以直接参与到项目的开发和维护中，与开发者共同推动项目的发展。</li>
</ul>
<h2> 注意事项</h2>
<p>在使用BilldDesk时，需要注意以下几点：</p>
<ol>
<li>打包时，需要确保当前项目初始化了git，因为打包过程中会使用<code>standard-version</code>进行发版。</li>
<li>官方建议主控和被控使用同一个版本，以确保远程控制的稳定性。</li>
<li>如果使用浏览器作为主控/被控，建议使用Chrome浏览器、Via浏览器或Safari浏览器。</li>
</ol>
<p>综上所述，BilldDesk作为一个开源的远程桌面控制项目，在功能、成本和技术栈等方面都具有一定的优势，是商业远程桌面软件的优质平替方案。无论是对于想要降低成本的企业，还是对于热衷于开源项目的开发者来说，BilldDesk都值得一试。</p>
<p>最后奉上开源地址：https://github.com/galaxy-s10/billd-desk</p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/ebf6327f64b96672465ad1020f8f9683.png" type="image/png"/>
    </item>
    <item>
      <title>开发者必备路线图：从此告别技术迷茫</title>
      <link>https://spring.didispace.com/tj/tj-developer-roadmap.html</link>
      <guid>https://spring.didispace.com/tj/tj-developer-roadmap.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开发者必备路线图：从此告别技术迷茫</source>
      <description>作为程序员，我经常遇到这样的困境： 第一痛：技术方向迷茫 每次打开招聘网站，前端要学Vue3+TS，后端要精通云原生，DevOps还要懂K8s——到底该先学哪个？我曾经像无头苍蝇般在各种技术栈间反复横跳，浪费大量时间。 第二痛：学习路径混乱 好不容易选定方向，网上教程却五花八门。就像上周想学React，搜到10个教程10种路线，有的让先学Class组件，有的直接上Hooks，根本不知道哪个才是正确打开方式。 第三痛：技术更新焦虑 刚学会Webpack，Vite就横空出世；好不容易搞懂RESTful，GraphQL又开始流行。这种永远追不上技术潮流的无力感，相信每个开发者都深有体会。</description>
      <category>工具推荐</category>
      <pubDate>Tue, 13 May 2025 11:43:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>作为程序员，我经常遇到这样的困境：</p>
<p><strong>第一痛：技术方向迷茫</strong><br>
每次打开招聘网站，前端要学Vue3+TS，后端要精通云原生，DevOps还要懂K8s——到底该先学哪个？我曾经像无头苍蝇般在各种技术栈间反复横跳，浪费大量时间。</p>
<p><strong>第二痛：学习路径混乱</strong><br>
好不容易选定方向，网上教程却五花八门。就像上周想学React，搜到10个教程10种路线，有的让先学Class组件，有的直接上Hooks，根本不知道哪个才是正确打开方式。</p>
<p><strong>第三痛：技术更新焦虑</strong><br>
刚学会Webpack，Vite就横空出世；好不容易搞懂RESTful，GraphQL又开始流行。这种永远追不上技术潮流的无力感，相信每个开发者都深有体会。</p>
<p>直到我发现这个<strong>开发者路线图开源项目</strong>，这些问题迎刃而解：</p>
<ol>
<li>
<p><strong>树状可视化路线</strong><br>
<img src="https://roadmap.sh/roadmaps/frontend.png" alt=""><br>
就像游戏技能树，前端/后端/DevOps等23个技术领域都有清晰路径。每个技术节点可点击查看详细学习资源，还能根据当前水平自动调整难度。</p>
</li>
<li>
<p><strong>万人共建的知识库</strong><br>
上周发现Node.js路线里的Express版本过时，提交PR后当天就被合并。这种由400+贡献者共同维护的路线图，比任何个人整理的都更全面及时。</p>
</li>
<li>
<p><strong>多语言智能适配</strong><br>
项目支持中文版（自动翻译+人工校对），最近还新增了AI学习助手功能。输入"如何从Java转Go"，就能生成专属过渡路线，简直像有个职业导师随身相伴。</p>
</li>
</ol>
<p>实际使用中，我常用它来做：</p>
<ul>
<li>面试前快速查漏补缺（对照岗位要求勾选已掌握技能）</li>
<li>技术选型时参考趋势（路线图会标注技术的流行度）</li>
<li>制定季度学习计划（自动生成可导出的学习清单）</li>
</ul>
<p>目前已有超过20万开发者在使用，很多团队直接将其作为新人培养手册。如果你也想告别无效学习，那么收下这个开源项目吧：</p>
<ul>
<li>GitHub地址：<a href="https://github.com/kamranahmedse/developer-roadmap" target="_blank" rel="noopener noreferrer">https://github.com/kamranahmedse/developer-roadmap</a></li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://roadmap.sh/roadmaps/frontend.png" type="image/png"/>
    </item>
    <item>
      <title>真正免费可用的在线声音克隆工具：TransDuck</title>
      <link>https://spring.didispace.com/tj/20250511-free-voiceclone.html</link>
      <guid>https://spring.didispace.com/tj/20250511-free-voiceclone.html</guid>
      <source url="https://spring.didispace.com/rss.xml">真正免费可用的在线声音克隆工具：TransDuck</source>
      <description>最近，需要克隆自己的声音，或者克隆一些影视剧中的配音，因为只是偶尔用，大部分工具又都是付费的，所以一直在寻找有没有比较轻量级，可以免费偶尔使用的克隆声音工具。 今天就给大家推荐最近发现的这个在线工具：TransDuck 功能介绍 用户可以通过录制自己的声音或者上传音频来复刻声音进行文字转语音。目前支持语言包括：中文、英语、日语、韩语。用户除了克隆相同语种的颜色之外，也可以在这四种语言之间互相克隆，比如：录制中文声音，然后为英语、日语、韩语来进行配音。</description>
      <category>开源推荐</category>
      <pubDate>Sun, 11 May 2025 12:22:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>最近，需要克隆自己的声音，或者克隆一些影视剧中的配音，因为只是偶尔用，大部分工具又都是付费的，所以一直在寻找有没有比较轻量级，可以免费偶尔使用的克隆声音工具。</p>
<p>今天就给大家推荐最近发现的这个在线工具：<a href="https://transduck.com" target="_blank" rel="noopener noreferrer">TransDuck</a></p>
<h1> 功能介绍</h1>
<p>用户可以通过录制自己的声音或者上传音频来复刻声音进行文字转语音。目前支持语言包括：中文、英语、日语、韩语。用户除了克隆相同语种的颜色之外，也可以在这四种语言之间互相克隆，比如：录制中文声音，然后为英语、日语、韩语来进行配音。</p>
<p><strong>录制音色</strong></p>
<p>录制音色：顾名思义，就是通过录音的方式来创建克隆音色，录一句话，然后在文本转语音和视频翻译的时候就都可以用了。就是如果要应用不同的语速、语调和情绪的场景，可以多创建几个。因为在克隆的时候，会根据样本的语速、语调和情绪来克隆。</p>
<p><img src="https://static.didispace.com/images3/e9495319cd4ae9648af74105fd8267ac.png" alt=""></p>
<p><strong>上传音频</strong></p>
<p>上传音频：用户如果有已经录制过的音频，或者从网络上下载一下有趣的音频（比如：海绵宝宝的声音、哪吒的声音）都可以上传作为样本来克隆。</p>
<p><img src="https://static.didispace.com/images3/266c08c0175f59cf9f71b6e9a7511670.png" alt=""></p>
<p>另外，TransDuck除了声音克隆功能之外，还有AI配音、字幕提取、视频翻译等功能，大部分功能都有大量免费额度，非常好用，强烈推荐！</p>
<p>最后奉上网站地址：<strong><a href="https://transduck.com" target="_blank" rel="noopener noreferrer">https://transduck.com</a></strong></p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/e9495319cd4ae9648af74105fd8267ac.png" type="image/png"/>
    </item>
    <item>
      <title>Cursor的免费开源平替：Void</title>
      <link>https://spring.didispace.com/tj/20250512-opensource-void.html</link>
      <guid>https://spring.didispace.com/tj/20250512-opensource-void.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Cursor的免费开源平替：Void</source>
      <description>今天要跟大家分享一个我最近发现的超棒开源项目：Void。 它是一个免费的 AI 编程编辑器，堪称是 Cursor 的开源替代品，目前已经狂揽17.3K Star！ 为什么 Void 如何受欢迎？ 完全免费，开源可控 Void 是一个开源项目，使用 Apache-2.0 许可证，意味着你可以自由使用、修改和分发代码。更棒的是，你的数据完全掌握在自己手中，Void 不会存储你的编码数据，确保隐私安全 。</description>
      <category>开源推荐</category>
      <pubDate>Mon, 12 May 2025 12:22:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>今天要跟大家分享一个我最近发现的超棒开源项目：<strong>Void</strong>。</p>
<p><img src="https://static.didispace.com/images3/5855d6b588f823075fbe2eef3af4c9d5.png" alt=""></p>
<p>它是一个免费的 AI 编程编辑器，堪称是 Cursor 的开源替代品，目前已经狂揽17.3K Star！</p>
<h2> 为什么 Void 如何受欢迎？</h2>
<p><strong>完全免费，开源可控</strong></p>
<p>Void 是一个开源项目，使用 Apache-2.0 许可证，意味着你可以自由使用、修改和分发代码。更棒的是，你的数据完全掌握在自己手中，Void 不会存储你的编码数据，确保隐私安全 。</p>
<p><strong>强大的 AI 编程助手</strong></p>
<p>Void 集成了 AI 技术，支持代码自动补全、内联编辑、智能搜索等功能，极大提升了编程效率。你可以直接与大型语言模型（如 Claude、GPT 或 Gemini）进行交互，享受智能编程的乐趣 。</p>
<p><strong>与 VS Code 高度兼容</strong></p>
<p>Void 是基于 VS Code 构建的，意味着你可以轻松迁移现有的主题、快捷键和设置，只需简单的配置即可开始使用 。</p>
<p><strong>活跃的社区支持</strong></p>
<p>Void 拥有一个活跃的社区，你可以通过 Discord 与开发者和其他用户交流，获取支持和反馈 。</p>
<h2> 如何开始使用 Void？</h2>
<ol>
<li>访问 Void 的官方网站：<strong>voideditor.com</strong></li>
<li>下载适用于 Mac、Windows 的版本</li>
</ol>
<p><img src="https://static.didispace.com/images3/2266c39e0a491edd4236b42055a474ad.png" alt=""></p>
<blockquote>
<p>对于 Linux 用户，还可以选择直接从 GitHub 源代码构建 。</p>
</blockquote>
<h2> 总结</h2>
<p>如果你正在寻找一个免费的、开源的 AI 编程编辑器，Void 是一个值得尝试的选择。它不仅功能强大，而且尊重用户隐私，适合各种开发者使用。快来体验一下吧！</p>
<p>最后奉上项目地址：<strong>https://github.com/voideditor/void</strong></p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/5855d6b588f823075fbe2eef3af4c9d5.png" type="image/png"/>
    </item>
    <item>
      <title>两款超好用的视频翻译软件，适合两种不同的场景，必有一款适合你</title>
      <link>https://spring.didispace.com/tj/2-video-translate-tools.html</link>
      <guid>https://spring.didispace.com/tj/2-video-translate-tools.html</guid>
      <source url="https://spring.didispace.com/rss.xml">两款超好用的视频翻译软件，适合两种不同的场景，必有一款适合你</source>
      <description>大家好，我是TJ 今天给大家推荐2个视频翻译工具​，分别是： TransDuck YouTube中文配音 这两款工具的核心功能非常类似，核心提供一个视频语言翻译的能力。比如：你要看一个英文视频，它可以帮助你将这个英文视频变为中文视频，日文视频或者韩文视频等其他语言的视频。这里所说的语言翻译可不只是字幕哦，而是音频也都直接做了翻译。</description>
      <category>工具推荐</category>
      <pubDate>Thu, 21 Dec 2023 01:22:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ</p>
<p>今天给大家推荐2个视频翻译工具​，分别是：</p>
<ul>
<li><a href="https://transduck.com/" target="_blank" rel="noopener noreferrer">TransDuck</a></li>
<li><a href="https://youtube-dubbing.com/" target="_blank" rel="noopener noreferrer">YouTube中文配音</a></li>
</ul>
<p>这两款工具的核心功能非常类似，核心提供一个视频语言翻译的能力。比如：你要看一个英文视频，它可以帮助你将这个英文视频变为中文视频，日文视频或者韩文视频等其他语言的视频。这里所说的语言翻译可不只是字幕哦，而是音频也都直接做了翻译。</p>
<p>但是这两个工具有有一些区别，下面具体分别做一些介绍，帮助有翻译视频需求的用户选到合适自己的一款。</p>
<h2> <a href="https://youtube-dubbing.com/" target="_blank" rel="noopener noreferrer">YouTube中文配音</a></h2>
<p>官方网站：https://www.youtube-dubbing.com/</p>
<p>这是一款浏览器插件，非常轻量化，您只需要在Chrome市场里直接搜索安装就可以使用了。</p>
<p><img src="https://static.didispace.com/images3/ff3a533285edc063766bdd23d004393c.png" alt=""></p>
<p>它主要提供了对YouTube视频的语音翻译功能，这是目前TJ用下来翻译效果最好的了。所以强烈推荐一下～</p>
<p>另外非常值得一提的是，对于YouTube上一些热门的学习类频道。这款插件是做了额外的优化的，所以翻译质量非常高，这也是的在线播放的翻译音频质量也很高！据说，目前已经优化了有大几万视频了。而且后台还一直在运行优化翻译和配音。</p>
<p>所以，如果您长期混迹油管且主要以观看为目的，那么可以试试这款插件。</p>
<h2> <a href="https://transduck.com/" target="_blank" rel="noopener noreferrer">TransDuck</a></h2>
<p>官方网站：https://transduck.com/</p>
<p>这是最近新出的一个视频翻译软件。它的基础能力其实跟YouTube中文配音一样，实现了对视频音频的翻译，然后变成其他语言的视频。</p>
<p>但是还是存在两个核心区别：</p>
<ol>
<li>任意视频的翻译：<a href="https://transduck.com/" target="_blank" rel="noopener noreferrer">TransDuck</a>提供上传视频的功能，所以任何视频都可以翻译，不局限于一些视频平台的视频。</li>
<li>可下载结果视频；视频通过<a href="https://transduck.com/" target="_blank" rel="noopener noreferrer">TransDuck</a>翻译好之后，是可以下载的。同时，工具还提供了对视频平台一键翻译的能力。</li>
</ol>
<p><img src="https://static.didispace.com/images3/a8ecf2449e71d2ac3e38d8a54e268ed9.png" alt=""></p>
<p>所以，TJ认为这款工具更适合视频创作者。如果您有一些视频想要推向不同语言的观看者，获得一些不同地区用户的观众。那么就非常适合了，可以高效的帮您转换视频语言，帮助你更好的做好内容出海或内容引进。</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/ff3a533285edc063766bdd23d004393c.png" type="image/png"/>
    </item>
    <item>
      <title>GitHub上的开源复刻：暗黑破坏神2</title>
      <link>https://spring.didispace.com/tj/opengames-opendiablo2.html</link>
      <guid>https://spring.didispace.com/tj/opengames-opendiablo2.html</guid>
      <source url="https://spring.didispace.com/rss.xml">GitHub上的开源复刻：暗黑破坏神2</source>
      <description>现在的00后少年可能已经不太了解《暗黑破坏神2》这款由暴雪打造的经典游戏。该游戏上市的时候，国内个人家用电脑还没有那么普及，网络游戏也没有那么风靡，现在的孩子可能无法想象，那时候网吧里的很多人都是在玩这款单机游戏！ 元旦逛GitHub的时候，居然发现有大神复刻了一个暗黑破坏神2，该项目名称叫：OpenDiablo2，它的Logo有没有让你回忆起以前的图标呢？ 该项目目前已经收获了8.9k的Star，非常受欢迎！</description>
      <category>开源推荐</category>
      <pubDate>Mon, 04 Jan 2021 23:49:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>现在的00后少年可能已经不太了解《暗黑破坏神2》这款由暴雪打造的经典游戏。该游戏上市的时候，国内个人家用电脑还没有那么普及，网络游戏也没有那么风靡，现在的孩子可能无法想象，那时候网吧里的很多人都是在玩这款单机游戏！</p>
<p>元旦逛GitHub的时候，居然发现有大神复刻了一个暗黑破坏神2，该项目名称叫：OpenDiablo2，它的Logo有没有让你回忆起以前的图标呢？</p>
<p><img src="https://static.didispace.com/images/pasted-369.png" alt=""></p>
<p>该项目目前已经收获了8.9k的Star，非常受欢迎！</p>
<p><img src="https://static.didispace.com/images/pasted-375.png" alt=""></p>
<p>仔细看看，这款复刻游戏居然是用golang编写的，对于掌握Go语言，还只是用于网络与运维应用的开发者来说，或许也是一个学习用它来做游戏的一个优秀案例。</p>
<p>先不说如何学了，我们一起来看看它的效果吧：</p>
<p><img src="https://static.didispace.com/images/pasted-373.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-374.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-372.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-371.png" alt=""></p>
<p>有没有找回童年的赶脚？</p>
<p><strong>关注公众号：TJ君，回复“OpenDiablo”，获取仓库地址</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-369.png" type="image/png"/>
    </item>
    <item>
      <title>开源白板+AI：画出UI需求，自动获得代码</title>
      <link>https://spring.didispace.com/tj/opensource-draw-a-ui.html</link>
      <guid>https://spring.didispace.com/tj/opensource-draw-a-ui.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开源白板+AI：画出UI需求，自动获得代码</source>
      <description>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！ 不知道大家是否还记得，TJ之前有推荐过一个开源的协作式数字白板：tldraw 昨天，TJ发现了一个更有意思的东西：DrawAUI。它一个基于tldraw的扩展开源项目，既然是扩展，那肯定实现了更强的能力。</description>
      <category>工具推荐</category>
      <category>开源推荐</category>
      <pubDate>Thu, 16 Nov 2023 02:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！</p>
<p>不知道大家是否还记得，TJ之前有推荐过一个开源的协作式数字白板：<strong>tldraw</strong></p>
<p><img src="https://static.didispace.com/images2/202309/tj-opensource-tldraw/1694491190963.png" alt=""></p>
<p>昨天，TJ发现了一个更有意思的东西：<strong>DrawAUI</strong>。它一个基于<a href="/tj/tj-opensource-tldraw.html" target="blank">tldraw</a>的扩展开源项目，既然是扩展，那肯定实现了更强的能力。</p>
<p><strong>DrawAUI</strong>将gpt-4-vision的api加入了<a href="/tj/tj-opensource-tldraw.html" target="blank">tldraw</a>，使得协作式白板除了描述需求的能力之外，还能利用AI来理解需求，并直接产生前端代码。</p>
<p>真的有这么神奇吗？下面通过一个小视频来体验这个神奇的能力：</p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202309/tj-opensource-tldraw/1694491190963.png" type="image/png"/>
    </item>
    <item>
      <title>一个可以在多平台运行的任天堂GameBoy的模拟器</title>
      <link>https://spring.didispace.com/tj/opensource-goboy.html</link>
      <guid>https://spring.didispace.com/tj/opensource-goboy.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个可以在多平台运行的任天堂GameBoy的模拟器</source>
      <description>今天为大家带来一个很有趣的游戏模拟器GoBoy GoBoy GoBoy是一个可以在多平台运行的任天堂GameBoy和GameBoy Color的模拟器，目前这个模拟器可以运行大多数的GameBoy游戏和一部分GameBoy Color的游戏。同时还有声音和颜色的支持，是不是很多80后小时候偷偷玩GameBoy的回忆涌上心头了？</description>
      <category>开源推荐</category>
      <pubDate>Thu, 04 Feb 2021 11:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p><img src="https://static.didispace.com/images/pasted-443.png" alt=""></p>
<p>今天为大家带来一个很有趣的游戏模拟器GoBoy</p>
<p><img src="https://static.didispace.com/images/pasted-444.png" alt=""></p>
<h2> GoBoy</h2>
<p>GoBoy是一个可以在多平台运行的任天堂GameBoy和GameBoy Color的模拟器，目前这个模拟器可以运行大多数的GameBoy游戏和一部分GameBoy Color的游戏。同时还有声音和颜色的支持，是不是很多80后小时候偷偷玩GameBoy的回忆涌上心头了？</p>
<p>这个模拟器是作者当初作为一个开发练习用的项目，目前仍然在不断更新中。</p>
<p>模拟器包含了调试函数，便于使用者理解该如何使用操作这个模拟器，方便自己个性化的写一个类似的模拟器出来。</p>
<p>这些调试函数会将每一步的操作码及数值打到控制台显示，不过这个可是会降低模拟器速度的哟。</p>
<p>是不是很心动？赶紧来看下具体怎么弄！</p>
<h2> 如何安装</h2>
<p>想知道怎么用吗？首先我们要去github上下载一个最新版本的GoBoy，地址如下：</p>
<p><a href="https://github.com/Humpheh/goboy/releases/tag/v0.5" target="_blank" rel="noopener noreferrer">https://github.com/Humpheh/goboy/releases/tag/v0.5</a></p>
<p>安装go后，可以通过运行以下命令将GoBoy安装到自己的go bin中：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>如果你有1.11.版本的Go，你也可以这么做</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>GoBoy可以在MacOS、windows、linux多个平台上运行，不过需要注意的是在win10上运行需要安装MinGW ，在Linux上安装则需要安装gtk。</p>
<p>GoBoy使用go的库像素进行控件的绑定和图形渲染，所以需要安装OpenGL。</p>
<h2> 用法</h2>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>控制键有: ← ↑ ↓ → Z X Enter Backspace；在DMG模式下调色板可以被=循环调用，游戏时可以用F切换为全屏显示。</p>
<p>另外，一些要知道的设置命令：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>调试或者实验的设置命令：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2> 调试</h2>
<p>有一些很有用的键盘快捷键用于调试：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2> 保存</h2>
<p>如果加载的游戏rom是支持电池存储的，则记住要用<code>&lt;rom name&gt;.sav</code>（例如塞尔达.gb.sav)文件，和加载的rom放在一起保存，其中会包含盒带中RAM的转储。程序中会默认循环在游戏运行时每秒更新一次这个保存文件。</p>
<h2> 测试</h2>
<p>GoBoy目前通过了Blargg的“cpu指令”和“指令定时”测试ROM中的所有测试。</p>
<h2> 最后</h2>
<p>整个项目的地址如下：https://github.com/Humpheh/goboy</p>
<p>如果你还想深入了解，这里有一些关于GameBoy的资料供参考：</p>
<ul>
<li>http://www.codeslinger.co.uk/pages/projects/gameboy/files/GB.pdf</li>
<li>https://github.com/retrio/gb-test-roms</li>
<li>http://www.codeslinger.co.uk/pages/projects/gameboy/beginning.html</li>
<li>http://bgb.bircd.org/ - invaluable for debugging</li>
<li>https://github.com/AntonioND/giibiiadvance/tree/master/docs</li>
<li>https://github.com/trekawek/coffee-gb</li>
</ul>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-443.png" type="image/png"/>
    </item>
    <item>
      <title>Java中sin、log、tan等复杂数学运算怎么搞？</title>
      <link>https://spring.didispace.com/tj/opensource-java-math-mxreflection.html</link>
      <guid>https://spring.didispace.com/tj/opensource-java-math-mxreflection.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Java中sin、log、tan等复杂数学运算怎么搞？</source>
      <description>还记不记得求学时代各种复杂的数学公式？sin、log2、tan等等等，是不是看到这就觉得算起来麻烦？ 通过MXReflection框架，你可以使用Java计算这些曾经我们觉得无比复杂的数学运算和函数，只需使用与类相关的字段。 MXReflection可以从指定字段读取值，并将结果注入@Expression注释字段。 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.github.ismail-mekni&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;mxreflection&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt;</description>
      <category>Java</category>
      <pubDate>Fri, 26 Feb 2021 19:34:09 GMT</pubDate>
      <content:encoded><![CDATA[<p>还记不记得求学时代各种复杂的数学公式？sin、log2、tan等等等，是不是看到这就觉得算起来麻烦？</p>
<p>通过MXReflection框架，你可以使用Java计算这些曾经我们觉得无比复杂的数学运算和函数，只需使用与类相关的字段。</p>
<p>MXReflection可以从指定字段读取值，并将结果注入@Expression注释字段。</p>
<div class="language-xml line-numbers-mode" data-ext="xml"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>那如何使用这个框架呢?</p>
<p>很简单，只需要两个java注释。</p>
<p>1、通过@Arg值，我们可以指定要在目标函数中使用的自定义参数名称。</p>
<p>2、@Expression注释值包含带有参数的函数表达式。</p>
<p>这个框架的使用其实不难，下面是两个计算案例，通过案例其实很容易理解该怎么使用此框架：</p>
<h2> 案例1</h2>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Output:</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2> 案例2</h2>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Output:</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>MXReflection框架支持mXparser数学库中提供的数学集合如下：</p>
<ul>
<li>Operators (+, -, *, /, #, !, ^)</li>
<li>Binary Relations (=, ==, =&lt;, =&gt;, &lt;, &gt;, &lt;&gt;, !=, ~=)</li>
<li>Boolean Operators (&amp;, &amp;&amp;, /, ~&amp;, ~&amp;&amp;, ~/, |, ||…)</li>
<li>Bitwise Operators (@~, @&amp;, @^, @|, @&lt;&lt;, @&gt;&gt;)</li>
<li>Unary Functions (sin, cos, tan, tg, ctan, ctg, cot, sec,…)</li>
<li>Binary Functions (log, mod, C, Bern, Stirl1, Stirl2, …)</li>
<li>3-args Functions (if, chi, CHi, Chi, cHi, pUni, cUni, qUni, pNor, cNor, qNor)</li>
<li>Variadic Functions (iff, min, max, ConFrac, ConPol, gcd, …)</li>
<li>Iterated Operators (sum, prod, avg, vari, stdi, mini, maxi)</li>
<li>Calculus Operators (int, der, der-, der+, dern, diff, difb)</li>
<li>Math Constants (pi, e, [gam], [phi], [PN], [B*], [F’d], [F’a], …)</li>
<li>Physical Constants ([c], [G.], [g], [hP], [h-], [lP], [mP], [tP])</li>
<li>Astronomical Constants ([ly], [au], [pc], [kpc], [Earth-R-eq], …)</li>
<li>Random Variables ([Uni], [Int], [Int1], [Int2], [Int3], [Int4], …)</li>
<li>Metric prefixes ([%], [%%], [Y], [sept], [Z], [sext], [E], …)</li>
<li>Parser Symbols ((, ), ,, 😉</li>
<li>Units</li>
</ul>
<p>在参数解析方面，MXReflection支持以数字内容作为参数的所有字段数据类型。您可以将所有Java类型与返回数值结果的toString实现一起使用。支持的结果字段java类型有：</p>
<ul>
<li>Double</li>
<li>double</li>
<li>Long</li>
<li>long</li>
<li>String</li>
<li>BigInteger</li>
</ul>
<p>但是要注意的是注意，对于long、long和BigInteger，MXReflection使用在注入前解析最终结果。建议确保表达式返回整数类型。</p>
<p><strong>关注公众号：TJ君，回复关键词<code>mxreflection</code>，获取源码库及项目示例！</strong></p>
]]></content:encoded>
    </item>
    <item>
      <title>一款小而全而美的第三方登录开源组件</title>
      <link>https://spring.didispace.com/tj/opensource-justauth.html</link>
      <guid>https://spring.didispace.com/tj/opensource-justauth.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款小而全而美的第三方登录开源组件</source>
      <description>随着微信、支付宝等航母级应用在众人身边的普及，越来越多的应用、网站在登陆的时候除了提供注册用户外，还直接提供第三方登录的方式，也就是直接关联微信、支付宝这类应用，用已有的账号和密码来快速完成当前应用或网站的登录注册。 第三方登录的好处对于应用来说，在于降低用户注册的成本，毕竟有时候只要点一下就可以登陆和需要填写各种信息注册的两种选择下，往往就是使用和放弃的区别。 对于用户来说，通过第三方登录，直接获取用户头像昵称等基本个人信息，无需用户自行设置；共享账号已有的用户关系，用户进入产品中就能找到熟悉的人，发现同样使用该应用也用同样第三方方式登录的好友，会有惊喜感；另外用户在使用多个应用时，只需使用第三方登录即可，无需记得每个平台的账户和密码。便捷程度上的确是未来发展的大趋势。</description>
      <category>开源推荐</category>
      <pubDate>Sat, 18 Sep 2021 17:14:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>随着微信、支付宝等航母级应用在众人身边的普及，越来越多的应用、网站在登陆的时候除了提供注册用户外，还直接提供第三方登录的方式，也就是直接关联微信、支付宝这类应用，用已有的账号和密码来快速完成当前应用或网站的登录注册。</p>
<p>第三方登录的好处对于应用来说，在于降低用户注册的成本，毕竟有时候只要点一下就可以登陆和需要填写各种信息注册的两种选择下，往往就是使用和放弃的区别。</p>
<p>对于用户来说，通过第三方登录，直接获取用户头像昵称等基本个人信息，无需用户自行设置；共享账号已有的用户关系，用户进入产品中就能找到熟悉的人，发现同样使用该应用也用同样第三方方式登录的好友，会有惊喜感；另外用户在使用多个应用时，只需使用第三方登录即可，无需记得每个平台的账户和密码。便捷程度上的确是未来发展的大趋势。</p>
<p>今天呢，小编给大家分享的就是一款超级全面的第三方登录开源工具。</p>
<h2> JustAuth</h2>
<p>JustAuth曾经被评为Gitee 最有价值开源项目，是一款小而全而美的第三方登录开源组件。</p>
<p><img src="https://static.didispace.com/images/pasted-567.png" alt=""></p>
<p>截止目前为止，JustAuth已集成支持如：</p>
<blockquote>
<p>Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么、推特、飞书、京东、阿里云、喜马拉雅、Amazon、Slack和 Line 等多个第三方平台的授权登录。</p>
</blockquote>
<p>也就是说，作为一个第三方授权登录的工具类库，它可以让我们脱离繁琐的第三方登录 SDK，让登录变得十分简单。</p>
<p>除了上述的这些平台，开发计划仍然还在持续扩展中，作者表示不会停下自己的脚步。</p>
<p>而工具的初衷，就是简单。所以相关的API就是奔着最简单去设计的，尽量让用户用起来没有障碍感！</p>
<p>对于实现的功能的自我介绍，作者倒是没有花太多的华丽辞藻：</p>
<p><img src="https://static.didispace.com/images/pasted-568.png" alt=""></p>
<p>小编先带你看下如何快速开始使用：</p>
<h4> 引入依赖</h4>
<div class="language-xml line-numbers-mode" data-ext="xml"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4> 引入快照版本</h4>
<p>(快照版本是功能的尝鲜，并不保证稳定性。建议不要在生产环境中使用。)</p>
<p>如下任选一种 HTTP 工具 依赖，项目内如果已有，请忽略。另外需要特别注意，如果项目中已经引入了低版本的依赖，请先排除低版本依赖后，再引入高版本或者最新版本的依赖</p>
<ul>
<li>hutool-http</li>
</ul>
<div class="language-xml line-numbers-mode" data-ext="xml"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul>
<li>httpclient</li>
</ul>
<div class="language-xml line-numbers-mode" data-ext="xml"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul>
<li>okhttp</li>
</ul>
<div class="language-xml line-numbers-mode" data-ext="xml"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3> 调用api</h3>
<p><strong>普通方式</strong></p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>**Builder 方式一 静态配置 AuthConfig **</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>**Builder 方式二 动态获取并配置 AuthConfig **</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>Builder 方式支持自定义的平台</strong></p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>想进一步深入探讨该工具，实现各平台第三方登录功能的？</p>
<p><strong>关注公众号“TJ君”，回复“第三方”，获取仓库地址！</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-567.png" type="image/png"/>
    </item>
    <item>
      <title>又一款优秀的开源Markdown编辑器：MarkText</title>
      <link>https://spring.didispace.com/tj/opensource-marktext.html</link>
      <guid>https://spring.didispace.com/tj/opensource-marktext.html</guid>
      <source url="https://spring.didispace.com/rss.xml">又一款优秀的开源Markdown编辑器：MarkText</source>
      <description>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！ 最近忙着做新项目，所以没怎么更新。趁着失眠，给大家推荐一个最近看到的一个不错的开源Markdown编辑器。 是的！又一个优秀的开源Markdown编辑器，不得不说这个真卷。但对用户来说，又多了一个选择，还是非常不错的。</description>
      <category>工具推荐</category>
      <category>开源推荐</category>
      <pubDate>Sun, 29 Oct 2023 00:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！</p>
<p>最近忙着做新项目，所以没怎么更新。趁着失眠，给大家推荐一个最近看到的一个不错的开源Markdown编辑器。</p>
<p>是的！又一个优秀的开源Markdown编辑器，不得不说这个真卷。但对用户来说，又多了一个选择，还是非常不错的。</p>
<!-- more -->
<p>这款编辑器叫做：<strong>MarkText</strong></p>
<p>它的UI如下：</p>
<p><img src="https://static.didispace.com/images3/7edf7894b8f31074f02f098b218a8c96.png" alt=""></p>
<p>关于这款编辑器有什么特点，我们可以先从作者为什么要编写它来认识，作者是这样说的：</p>
<ul>
<li>我爱写作。我曾经使用过很多 Markdown 编辑器，但还没有一个编辑器可以完全满足我的需求。我不喜欢当我写一些难以忍受的错误时会被打扰。MarkText 使用 virtual DOM 来渲染页面，具有高效和开源的附加优势。这样，任何喜欢 Markdown 和写作的人都可以使用 MarkText。</li>
<li>如上所述，MarkText 是完全自由开源的，并且将永远是开源的。我们希望所有 Markdown 爱好者都可以贡献自己的代码，并帮助将 MarkText 开发为流行的 Markdown 编辑器。</li>
<li>Markdown 编辑器很多，各有优点，有一些拥有独特的特性。我们很难满足每个 Markdown 用户的需求，但是我们希望 MarkText 能够尽可能满足每个 Markdown 用户的需求。尽管最新的 MarkText 仍不完美，但我们将尽力使它尽可能地完善。</li>
</ul>
<p>可以看到作者是非常有情怀的，如果您跟作者一样喜欢写作，可以尝试使用看看。从作者对自由软件来看，很可能也会长期免费开源下去，所以，一起支持一下吧～</p>
<p>下面一起欣赏下这款编辑器的多种主题：</p>
<p><img src="https://static.didispace.com/images3/bbe505727ffcd8409635a396beb9c051.png" alt=""></p>
<p><img src="https://static.didispace.com/images3/82ca4bd4a13d56d278f7a41e98f2dc0a.png" alt=""></p>
<p>这里就简单放几个，大家看看。感兴趣的话，更多信息可以通过下面的项目地址获得：</p>
<p>项目地址：https://github.com/marktext/marktext/</p>
<p>如果您觉得TJ的分享不错，欢迎点赞分享，您的支持是我持续更新的最大动力！</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/7edf7894b8f31074f02f098b218a8c96.png" type="image/png"/>
    </item>
    <item>
      <title>推荐一个Node.js多版本管理的可视化工具</title>
      <link>https://spring.didispace.com/tj/opensource-nvm-desktop.html</link>
      <guid>https://spring.didispace.com/tj/opensource-nvm-desktop.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐一个Node.js多版本管理的可视化工具</source>
      <description>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！ 关于Node.js的开发者来说，在开发机器上管理多个不同版本的Node.js是一个常见痛点。之前在开发者安全大全专栏中，提到过解决方法：使用nvm，如果对于nvm还不了解的话，可以前往了解。 对于TJ来说，因为习惯敲命令了，所以nvm其实已经够用了。但是，有的小伙伴还是更喜欢可视化的管理工具。所以，今天就给大家推荐一款开源的nvm桌面版工具，名为：nvm-desktop。</description>
      <category>工具推荐</category>
      <category>开源推荐</category>
      <pubDate>Wed, 15 Nov 2023 01:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！</p>
<p>关于Node.js的开发者来说，在开发机器上管理多个不同版本的Node.js是一个常见痛点。之前在<a href="/installation-guide/" target="blank">开发者安全大全</a>专栏中，提到过解决方法：<a href="/installation-guide/dev-env/nvm-nodejs.html" target="blank">使用nvm</a>，如果对于nvm还不了解的话，可以前往了解。</p>
<p>对于TJ来说，因为习惯敲命令了，所以nvm其实已经够用了。但是，有的小伙伴还是更喜欢可视化的管理工具。所以，今天就给大家推荐一款开源的nvm桌面版工具，名为：<strong>nvm-desktop</strong>。</p>
<p><strong>nvm-desktop</strong>使用 Electron 构建，支持 Macos 和 Windows。它可以完美地为不同的项目单独设置和切换 Node 版本，不依赖操作系统的任何特定功能和 shell。</p>
<p>既然是可视化工具，那么界面和操作体验，肯定是大家所关心的，下面就来一起欣赏下它的界面：</p>
<p><img src="https://static.didispace.com/images3/13efd3359e08a9cbb4b9f167968d2185.png" alt=""></p>
<p><img src="https://static.didispace.com/images3/3f6e10658bd0a26a0a60604fe0808586.png" alt=""></p>
<p>怎么样，符合你的预期吗？</p>
<p>最后，老规矩，奉上开源项目地址：https://github.com/1111mp/nvm-desktop</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/13efd3359e08a9cbb4b9f167968d2185.png" type="image/png"/>
    </item>
    <item>
      <title>又在GitHub上挖到个宝藏：Switch模拟器！</title>
      <link>https://spring.didispace.com/tj/opensource-switch.html</link>
      <guid>https://spring.didispace.com/tj/opensource-switch.html</guid>
      <source url="https://spring.didispace.com/rss.xml">又在GitHub上挖到个宝藏：Switch模拟器！</source>
      <description>这两天喜欢玩游戏的程序猿可有福了，前两天刚给大家介绍过暴雪大放送活动，还不知道的点这里：暴雪来送大礼了，速领！ 想必也有很多小伙伴一直都羡慕那些手握Switch的同伴，今天小编准备教你的就是，如何在PC端玩Switch！ 首先给大家介绍下，这个模拟器是基于C#搭建的，所以需要小伙伴们先下一个.NET 5.0 (或者更高版本) SDK作为环境基础。</description>
      <category>开源推荐</category>
      <pubDate>Tue, 06 Apr 2021 10:32:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>这两天喜欢玩游戏的程序猿可有福了，前两天刚给大家介绍过暴雪大放送活动，还不知道的点这里：暴雪来送大礼了，速领！</p>
<p>想必也有很多小伙伴一直都羡慕那些手握Switch的同伴，今天小编准备教你的就是，如何在PC端玩Switch！</p>
<p><img src="https://static.didispace.com/images/pasted-445.png" alt=""></p>
<p>首先给大家介绍下，这个模拟器是基于C#搭建的，所以需要小伙伴们先下一个.NET 5.0 (或者更高版本) SDK作为环境基础。</p>
<p><img src="https://static.didispace.com/images/pasted-446.png" alt=""></p>
<p>安装完之后下载模拟器文件：Ryujinx-master</p>
<p><img src="https://static.didispace.com/images/pasted-447.png" alt=""></p>
<p>将Ryujinx-master解压到小伙伴心仪的路径，建议使用英文路径，避免出现各种中文路径识别问题</p>
<p>解压之后是这个样子</p>
<p><img src="https://static.didispace.com/images/pasted-448.png" alt=""></p>
<p>这个时候先做一件事情，下载一个组件gtk-3.24.20.zip，放到这个目录下：C:\Users\XXX\AppData\Local\Gtk\3.24.20，其中XXX就是各位自己的电脑名字替代，因为模拟器在自运行过程中会自动去github下载这个文件，小编安装时不知道是不是网络的关系，连着两次下载失败导致安装失败，所以就提前下好了放在这个路径下。</p>
<p><img src="https://static.didispace.com/images/pasted-449.png" alt=""></p>
<p>Gtk准备好之后，将命令行指向Ryujinx-master的解压路径，执行命令dotnet build -c Release，等待自动执行完成，不慢，挺快的。</p>
<p><img src="https://static.didispace.com/images/pasted-450.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-451.png" alt=""></p>
<p>然后找到刚才的文件夹，找到Ryujinx\bin\Release\net5.0目录下面的可执行文件Ryujinx.exe，双击！</p>
<p><img src="https://static.didispace.com/images/pasted-452.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-453.png" alt=""></p>
<p>模拟器就这样打开了，别急，还有几个动作，首先要找一个密钥文件，点击模拟器的File - Open Ryujinx Folder，在弹出的界面选择system文件夹，放入密钥文件prod.keys</p>
<p><img src="https://static.didispace.com/images/pasted-454.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-455.png" alt=""></p>
<p>然后还要下载固件Firmware文件，点击模拟器Tools - Install Firmware，装入。</p>
<p><img src="https://static.didispace.com/images/pasted-459.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-456.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-457.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-458.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-460.png" alt=""></p>
<p>这个时候还有最后一个步骤要做！</p>
<p>就是下载游戏！！！小编此刻正在疯狂下载中</p>
<p><img src="https://static.didispace.com/images/pasted-461.png" alt=""></p>
<p>等下载完游戏，点击Options - Setting 加入游戏就可以开始欢乐游戏了！！！</p>
<p><img src="https://static.didispace.com/images/pasted-462.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-463.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-467.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-468.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-465.png" alt=""></p>
<p>小伙伴们还在等什么，赶紧上吧！</p>
<p>如果有不知道去哪里找密钥文件、Firmware、游戏的小伙伴，赶紧转发点赞，如果喜欢的人多，小编会做一篇后续跟进报道，揭秘如何下载各种密钥文件、Firmware、游戏内容！</p>
<p><strong>关注公众号“TJ君”，回复“switch模拟器”，获取下载资源以及后续资源跟进！</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-445.png" type="image/png"/>
    </item>
    <item>
      <title>目前用下来最溜的MacOS微信多开工具！</title>
      <link>https://spring.didispace.com/tj/opensource-wechat-openmore.html</link>
      <guid>https://spring.didispace.com/tj/opensource-wechat-openmore.html</guid>
      <source url="https://spring.didispace.com/rss.xml">目前用下来最溜的MacOS微信多开工具！</source>
      <description>一个生活微信，一个工作微信是很多上班族的基本配置。 但由于微信客户端在PC端上只能打开一个，这使得在上班时候就非常不便，一个号在PC端上登录，一个在手机上使用，但是上班时候又不能一直看手机，不然老板还以为你在玩呢。 所以，对于打开多个微信客户端的需求就来了！ 查了一下百度，有几个基本的多开方法，简单总结下大致有以下三类： 第一类：创建微信应用的副本，通过复刻多个微信应用来实现。</description>
      <category>开源推荐</category>
      <pubDate>Mon, 18 Jan 2021 11:41:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>一个生活微信，一个工作微信是很多上班族的基本配置。</p>
<p>但由于微信客户端在PC端上只能打开一个，这使得在上班时候就非常不便，一个号在PC端上登录，一个在手机上使用，但是上班时候又不能一直看手机，不然老板还以为你在玩呢。</p>
<p>所以，对于打开多个微信客户端的需求就来了！</p>
<p>查了一下百度，有几个基本的多开方法，简单总结下大致有以下三类：</p>
<p>第一类：创建微信应用的副本，通过复刻多个微信应用来实现。</p>
<p><img src="https://static.didispace.com/images/pasted-414.png" alt=""></p>
<p>第二类：使用下面命令实现</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>优化下命令，这样可以关闭终端</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>上面的两类虽然都能实现，但都不那么方便，昨天小编发现了一个更好用的工具：WeChatTweak-macOS</p>
<p>先上一波效果：</p>
<p><img src="https://static.didispace.com/images/pasted-415.png" alt=""></p>
<p>是不是很简洁？只需要在微信图标上右键，就能快速开启新的微信客户端！</p>
<p>有咩有觉得很好用呀？赶紧上车，开启微信多开之路吧！</p>
<p>关注公众号“<strong>TJ君</strong>”，回复“<strong>微信多开</strong>”，获取仓库地址及快速上手指南</p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-414.png" type="image/png"/>
    </item>
    <item>
      <title>一款颜值超高，功能还特别强大的SSH工具：Xterminal</title>
      <link>https://spring.didispace.com/tj/ssh-xterminal.html</link>
      <guid>https://spring.didispace.com/tj/ssh-xterminal.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款颜值超高，功能还特别强大的SSH工具：Xterminal</source>
      <description>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！ 今天给大家推荐一款好看又强大的SSH工具：Xterminal 。 下面给大家盘点下 Xterminal 中的重要特性，看看是否适合你的口味。</description>
      <category>工具推荐</category>
      <pubDate>Tue, 26 Dec 2023 13:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！</p>
<p>今天给大家推荐一款好看又强大的SSH工具：Xterminal 。</p>
<p><img src="https://static.didispace.com/images3/99a3df58d937dfa208399ec032217810.png" alt=""></p>
<p>下面给大家盘点下 Xterminal 中的重要特性，看看是否适合你的口味。</p>
<!-- more -->
<h2> 亮点</h2>
<ol>
<li>兼容常用操作系统，具体支持列表如下：</li>
</ol>
<p><img src="https://static.didispace.com/images3/2dcdd55adaf73e2143f42b13966e7a52.png" alt=""></p>
<ol start="2">
<li>自定义布局，满足个性化需求</li>
</ol>
<p>这个功能很出彩，TJ认为是让这个SSH工具焕发魅力的核心。用户可以根据自己的使用习惯去调整布局，让自己找到最舒服的使用姿势。</p>
<p><img src="https://static.didispace.com/images3/26484f7a57682db556122c980cececb7.png" alt=""></p>
<ol start="3">
<li>实时系统监控，支持图表化现实系统状态</li>
</ol>
<p><img src="https://static.didispace.com/images3/4adbc0a4b243d55774d03480578dad33.png" alt=""></p>
<ol start="4">
<li>命令行提示，自动补全命令，一些记忆模糊的命令也能快速定位，效率提高不是一点点。</li>
</ol>
<p><img src="https://static.didispace.com/images3/295be39d9370ee1f11b4e098ba1db0e0.png" alt=""></p>
<ol start="5">
<li>书签跳转，另一个效率神器，可以帮助我们快捷的在服务器不同目录间跳转</li>
</ol>
<p><img src="https://static.didispace.com/images3/7f5a1099506cbdf08aa646a41bdfd490.png" alt=""></p>
<p>怎么样？UI和功能是否都符合你的预期呢？如果喜欢的话，不妨下载了试试看。</p>
<p>最后奉上相关链接：</p>
<ul>
<li>官方网站：https://www.terminal.icu/</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/99a3df58d937dfa208399ec032217810.png" type="image/png"/>
    </item>
    <item>
      <title>推荐一款让你纵横Github的读码神器：Octotree</title>
      <link>https://spring.didispace.com/tj/tj-20190509.html</link>
      <guid>https://spring.didispace.com/tj/tj-20190509.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐一款让你纵横Github的读码神器：Octotree</source>
      <description>当我们想深入了解一个开源项目的时候，通常我们有以下几种姿势： 懒汉型 通过Web的方式，逐个的点击页面寻找和查看具体的源码内容。 优点：不依赖任何工具，无须任何额外的操作 缺点：效率低下，查找文件不便，切换查看更不便 极客型 通过git clone或download的方式，将项目源文件下载到本地，然后通过自己最顺手的IDE打开阅读。</description>
      <category>工具推荐</category>
      <pubDate>Thu, 09 May 2019 09:43:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>当我们想深入了解一个开源项目的时候，通常我们有以下几种姿势：</p>
<p><strong>懒汉型</strong></p>
<p>通过Web的方式，逐个的点击页面寻找和查看具体的源码内容。</p>
<p><img src="https://static.didispace.com/images/pasted-226.png" alt=""></p>
<p><strong>优点</strong>：不依赖任何工具，无须任何额外的操作
<strong>缺点</strong>：效率低下，查找文件不便，切换查看更不便</p>
<p><strong>极客型</strong></p>
<p>通过git clone或download的方式，将项目源文件下载到本地，然后通过自己最顺手的IDE打开阅读。</p>
<p><img src="https://static.didispace.com/images/pasted-227.png" alt=""></p>
<p><strong>优点</strong>：依靠强大的IDE功能可以快速的搜索以及高效的查看源码
<strong>缺点</strong>：需要下载源码，并且依赖第三方工具</p>
<h3> 本期推荐</h3>
<p>上面的方式从效率与成本上来说，都各有优缺点。那么是不是有什么方式，可以同时兼顾呢？</p>
<p>下面就隆重请出本期的重点推荐：Chrome插件Octotree。</p>
<p>TJ我将其定义为：<strong>优雅型</strong>。</p>
<p>先来看看效果，比如我们来看看它自己的源代码（该插件本身也是个开源项目，有兴趣的读者也可以直接查看哦：https://github.com/ovity/octotree）：</p>
<p><img src="https://static.didispace.com/images/pasted-228.png" alt=""></p>
<p>可以看到，在页面的左侧区域会展现出当前打开项目的树状结构。我们可以很轻松的在这里查看到整个项目的目录结构，可以很方便的定位和打开我们想要查看的源代码文件。再也不用像<strong>懒汉型</strong>方式那样，一个个目录的点开刷新页面逐层查看那么笨拙、低效，同时由于通过Chrome插件的方式扩展，所以我们也不需要额外的成本支出。</p>
<p>所以，我觉得如果用两次字来形容，那么”优雅“二字当之无愧。如果要用一个字来形容，那么我觉得只能用”骚“字了，你们觉得呢？</p>
<h3> 如何安装</h3>
<p>如果您对这个插件感兴趣，并且还不知道如何安装Chrome插件，那么就继续看下去：</p>
<p>第一步：打开Chrome的扩展商店，搜索”Octotree“</p>
<p><img src="https://static.didispace.com/images/pasted-229.png" alt=""></p>
<p>第二步：在搜索结果中，点击”添加至Chrome“即可完成安装！</p>
<p><img src="https://static.didispace.com/images/pasted-230.png" alt=""></p>
<p>第三步：重启Chrome，打开Github，开始探索神器的Github大陆吧~</p>
<p><strong>如果因为各种原因，您无法通过Google安装插件。</strong></p>
<p><strong>那么关注我的公众号"程序猿DD"，回复：Octotree，直接获取安装文件。</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-226.png" type="image/png"/>
    </item>
    <item>
      <title>30天帮你一步步学会Python的开源项目</title>
      <link>https://spring.didispace.com/tj/tj-30-days-of-python.html</link>
      <guid>https://spring.didispace.com/tj/tj-30-days-of-python.html</guid>
      <source url="https://spring.didispace.com/rss.xml">30天帮你一步步学会Python的开源项目</source>
      <description>最近发现一个不错的免费开源学习项目：30天学会Python 如果您最近有学习Python的打算，不妨看看这个是否适合你？ 项目地址：https://github.com/Asabeneh/30-Days-Of-Python 该项目内容的设计很棒，不是单纯的堆叠内容，而是制定了一个30天的学习计划，这样可以循序渐进的帮助读者来学习Python编程语言。</description>
      <category>开源推荐</category>
      <pubDate>Wed, 08 Mar 2023 09:53:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>最近发现一个不错的免费开源学习项目：30天学会Python</p>
<p><img src="https://static.didispace.com/images2/202303/tj-30-days-of-python/1678240682090.png" alt=""></p>
<p>如果您最近有学习Python的打算，不妨看看这个是否适合你？</p>
<p>项目地址：https://github.com/Asabeneh/30-Days-Of-Python</p>
<p>该项目内容的设计很棒，不是单纯的堆叠内容，而是制定了一个30天的学习计划，这样可以循序渐进的帮助读者来学习Python编程语言。</p>
<p>Python类教程那么多了，为什么推荐它呢，我觉得该项目有以下几点优势：</p>
<ul>
<li>适合初学者：该项目提供了一个逐步学习Python的计划，适合那些没有编程经验或想要进一步了解Python的人。</li>
<li>全面而深入：该项目涵盖了Python编程的许多方面，包括基本语法、数据类型、函数、模块、面向对象编程等，可以帮助您全面了解Python。</li>
<li>实践性强：该项目不仅提供理论知识，还包括许多实际的编程练习，可以帮助您巩固所学的知识并提高编程技能。</li>
<li>社区支持：该项目有一个活跃的社区，您可以在其中与其他学习者交流和分享经验。</li>
<li>免费开源：该项目是免费开源的，您可以自由地下载、使用和修改它。</li>
</ul>
<p>总之，如果您想要学习Python编程，并且想要一个系统化、全面、实践性强的学习计划，那么这个项目是一个非常好的选择。</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-30-days-of-python/1678240682090.png" type="image/png"/>
    </item>
    <item>
      <title>基于OpenAI的代码编辑器：Cursor</title>
      <link>https://spring.didispace.com/tj/tj-ai-code-cursor.html</link>
      <guid>https://spring.didispace.com/tj/tj-ai-code-cursor.html</guid>
      <source url="https://spring.didispace.com/rss.xml">基于OpenAI的代码编辑器：Cursor</source>
      <description>大家好，我是TJ 最近随着OpenAI的一系列大动作，把软件领域搅的天翻地覆。各行各业各领域，都出现了大量新产品。 开发工具领域首当其冲，各种新工具层出不穷，今天TJ就给大家推荐一个全新的开发工具：Cursor 从官网介绍可以看到，Cursor基于OpenAI实现，继承了最新的GPT-4模型，支持Mac、Windows、Linux三大平台。</description>
      <category>工具推荐</category>
      <pubDate>Mon, 27 Mar 2023 18:56:59 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ</p>
<p>最近随着OpenAI的一系列大动作，把软件领域搅的天翻地覆。各行各业各领域，都出现了大量新产品。</p>
<p>开发工具领域首当其冲，各种新工具层出不穷，今天TJ就给大家推荐一个全新的开发工具：Cursor</p>
<p><img src="https://static.didispace.com/images2/202303/tj-ai-code-cursor/1679914689928.png" alt="Cursor"></p>
<p>从官网介绍可以看到，Cursor基于OpenAI实现，继承了最新的GPT-4模型，支持Mac、Windows、Linux三大平台。</p>
<p>下面大家看看这个开发工具有多厉害，感性兴趣的读者也可以通过下方链接去官网下载了一起体验：</p>
<ul>
<li>官方网站：https://www.cursor.so/</li>
</ul>
<h2> 生成代码</h2>
<ol>
<li>通过快捷键cmd + k唤出AI指令输入框</li>
</ol>
<p><img src="https://static.didispace.com/images2/202303/tj-ai-code-cursor/1679914721150.png" alt=""></p>
<ol start="2">
<li>比如，我这里输入“读取文件”。马上就产生了下面的实现内容：</li>
</ol>
<p><img src="https://static.didispace.com/images2/202303/tj-ai-code-cursor/1679914734566.png" alt=""></p>
<h2> 解释代码</h2>
<ol>
<li>
<p>选中你看不懂的代码，按快捷键cmd + L</p>
</li>
<li>
<p>说出你的疑问，AI在右侧就会给出解释</p>
</li>
</ol>
<p><img src="https://static.didispace.com/images2/202303/tj-ai-code-cursor/1679914746897.png" alt=""></p>
<p>这功能也许非常实用吧，毕竟我们每天都在维护屎山，有了这根搅屎棍的帮助，也许屎山啃起来可以容易一些了吧！</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-ai-code-cursor/1679914689928.png" type="image/png"/>
    </item>
    <item>
      <title>任何人均可上手的数据库与API搭建平台</title>
      <link>https://spring.didispace.com/tj/tj-apitable.html</link>
      <guid>https://spring.didispace.com/tj/tj-apitable.html</guid>
      <source url="https://spring.didispace.com/rss.xml">任何人均可上手的数据库与API搭建平台</source>
      <description>编写API可能对于很多后端开发人员来说，并不是什么难事儿，但如果您主要从事前端功能，那么可能还是有一些门槛。 那么有没有工具可以帮助我们降低编写API的学习门槛和复杂度呢？ 今天就来给大家推荐一个不错的开源工具：APITable APITable是一个面向API的可视化数据库，它适用于所有人，甚至没有编程基础的人。你可以是一名程序员，也可以是PMO，甚至销售、HR等职业的人均可使用。</description>
      <category>开源推荐</category>
      <pubDate>Sun, 26 Feb 2023 13:30:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>编写API可能对于很多后端开发人员来说，并不是什么难事儿，但如果您主要从事前端功能，那么可能还是有一些门槛。</p>
<p>那么有没有工具可以帮助我们降低编写API的学习门槛和复杂度呢？</p>
<p>今天就来给大家推荐一个不错的开源工具：<strong>APITable</strong></p>
<p><img src="https://static.didispace.com/images2/202302/tj-apitable/1677389985244.png" alt="APITable"></p>
<p>APITable是一个面向API的可视化数据库，它适用于所有人，甚至没有编程基础的人。你可以是一名程序员，也可以是PMO，甚至销售、HR等职业的人均可使用。</p>
<p>由于APITable的核心是帮助用户轻松简便的创建和管理数据库，所以只要您了解类似Excel这样的软件，也不需要如何精通，那么就可以快速上手来实现一些应用场景，比如，你可以用它来实现项目管理、任务管理、问题管理，</p>
<p><img src="https://static.didispace.com/images2/202302/tj-apitable/1677390022382.png" alt=""></p>
<p>也可以用来管理你的客户关系，再有了基础数据之后，还能用它来创建更有用的BI图表或者Dashboard。</p>
<p><img src="https://static.didispace.com/images2/202302/tj-apitable/1677390034027.png" alt=""></p>
<p>APITable还提供了一个非常有用的功能，就是一键生成API面板。让您设计的数据表快速的提供API能力，供其他地方使用。</p>
<p><img src="https://static.didispace.com/images2/202302/tj-apitable/1677390043650.png" alt=""></p>
<p>所以您可以将其视为一个集数据库和API提供能力的低代码平台，不需要编写一行代码，就可以完成数据存储和API的实现。</p>
<p>除此之外，APITable还提供一系列企业级的优秀功能，包括：</p>
<ul>
<li>实时协作，允许多用户同时操作，协作数据行可达100K+</li>
<li>快速上手，内置了10+个模版帮助用户快速创建应用场景</li>
<li>实用美观，基础CRUD，各种字段操作，各种视图类型，一键API面板</li>
<li>可扩展性，各种图表、Dashboard、数据列类型、公式、机器人等均可自定义</li>
<li>企业级能力，团队管理和组织架构，单点登录，审计，数据备份和导出，水印等</li>
</ul>
<p>如果您觉得这个开源工具还不错的话，可以通过下面链接直达哦</p>
<ul>
<li><strong>官网地址：https://apitable.com/</strong></li>
<li><strong>项目地址：https://github.com/apitable/apitable</strong></li>
</ul>
<p>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202302/tj-apitable/1677389985244.png" type="image/png"/>
    </item>
    <item>
      <title>一个超适合Java初学者的轻量级开发工具：BlueJ</title>
      <link>https://spring.didispace.com/tj/tj-bluej.html</link>
      <guid>https://spring.didispace.com/tj/tj-bluej.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个超适合Java初学者的轻量级开发工具：BlueJ</source>
      <description>Java是世界上最流行的编程语言之一，它被广泛用于从Web开发到移动应用的各种应用程序。大部分Java工程师主要是用IDEA、Eclipse为主，这两个开发工具由于有强大的能力，所以复杂度上就更高一些。如果您刚刚开始使用Java，或者您更适合从一个轻量级的开发环境开始。所以，今天就给大家推荐一个比IDEA更好的选择：BlueJ BlueJ简介 BlueJ是一个免费的、开源的Java开发环境，专为初学者设计。它由英国肯特大学开发，已被全球数百万学生和教育工作者使用。</description>
      <category>工具推荐</category>
      <pubDate>Sun, 26 Feb 2023 23:37:16 GMT</pubDate>
      <content:encoded><![CDATA[<p>Java是世界上最流行的编程语言之一，它被广泛用于从Web开发到移动应用的各种应用程序。大部分Java工程师主要是用IDEA、Eclipse为主，这两个开发工具由于有强大的能力，所以复杂度上就更高一些。如果您刚刚开始使用Java，或者您更适合从一个轻量级的开发环境开始。所以，今天就给大家推荐一个比IDEA更好的选择：BlueJ</p>
<h2> BlueJ简介</h2>
<p>BlueJ是一个免费的、开源的Java开发环境，专为初学者设计。它由英国肯特大学开发，已被全球数百万学生和教育工作者使用。</p>
<p><img src="https://static.didispace.com/images2/202302/tj-bluej/1677425951448.png" alt="BlueJ"></p>
<p>它最大的优点就是简单！界面干净直观，用户可以很容易的开始编写你的第一个Java程序。</p>
<h2> 特点</h2>
<p>尽管它很简单，但BlueJ仍然有很多强大的功能，使它成为初学者和有经验的开发人员的绝佳选择。其中一些功能包括：</p>
<p><strong>面向对象的设计</strong></p>
<p>BlueJ围绕Java编程中的面向对象设计原理构建，这是一个基本概念。这意味着您可以轻松创建对象、类和方法，并以易于理解和维护的方式组织您的代码。</p>
<p><strong>可视化调试器</strong></p>
<p>调试代码是开发过程的重要部分，BlueJ的可视化调试器使其变得简单。您可以逐行查看代码、设置断点并实时检查变量。</p>
<p><strong>扩展API</strong></p>
<p>如果需要扩展BlueJ的功能，您可以使用其扩展API创建自己的插件和附加组件。这使您可以根据自己的需要定制开发环境。</p>
<p>所以，如果您是Java编程的新手，或者正在寻找一个轻量级的开发环境，易于使用，那么BlueJ是一个绝佳的选择。它是免费的、开源的，并且拥有强大的功能，使其成为初学者和有经验的开发人员的绝佳工具。尝试一下，看看它如何帮助您将Java编程技能提升到更高的水平!</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202302/tj-bluej/1677425951448.png" type="image/png"/>
    </item>
    <item>
      <title>推荐个我在用的Chrome标签页插件</title>
      <link>https://spring.didispace.com/tj/tj-chrome-itabnewtab.html</link>
      <guid>https://spring.didispace.com/tj/tj-chrome-itabnewtab.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐个我在用的Chrome标签页插件</source>
      <description>在小伙伴们的心目中，传统的导航页面是什么样子的呢？ 是这样子的？ 看着就有点老旧的年代感？各种广告和没用的信息堆满了整个页面？让人用起来不是怎么的很舒服？ 如果不喜欢这样子的页面，那么今天你就来对了，TJ君要跟你分享的是一个吊炸天、无比酷的个性化卡片式起始页插件 iTabNewTab</description>
      <category>工具推荐</category>
      <pubDate>Mon, 17 Jan 2022 21:54:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>在小伙伴们的心目中，传统的导航页面是什么样子的呢？</p>
<p>是这样子的？</p>
<p><img src="https://static.didispace.com/images/pasted-863.png" alt=""></p>
<p>看着就有点老旧的年代感？各种广告和没用的信息堆满了整个页面？让人用起来不是怎么的很舒服？</p>
<p>如果不喜欢这样子的页面，那么今天你就来对了，TJ君要跟你分享的是一个<strong>吊炸天、无比酷</strong>的<strong>个性化卡片式起始页插件</strong></p>
<p><strong>iTabNewTab</strong></p>
<p><img src="https://static.didispace.com/images/pasted-864.png" alt="iTabNewTab"></p>
<p>作者对其的标榜是：</p>
<blockquote>
<p>一个让你不受广告干扰的个性化卡片式起始页插件</p>
</blockquote>
<p>只能说作者还是太谦虚太低调，这何止是不受广告干扰这么简单！</p>
<p><img src="https://static.didispace.com/images/pasted-865.png" alt="iTabNewTab"></p>
<p><img src="https://static.didispace.com/images/pasted-866.png" alt="iTabNewTab"></p>
<p>是不是让人眼前一亮、排列有序、看着就舒服？</p>
<p>iTabNewTab的主页上简简单单的主要分布着<strong>日历、天气、热搜、壁纸、待办、倒计时</strong>等几个大模块，让人看着不会觉得凌乱不知所措。并且这些主要的模块也是十分的实用：</p>
<h4> 天气</h4>
<p><img src="https://static.didispace.com/images/pasted-867.png" alt="iTabNewTab - 天气"></p>
<h4> 热搜</h4>
<p><img src="https://static.didispace.com/images/pasted-868.png" alt="iTabNewTab - 热搜"></p>
<h4> 日历</h4>
<p><img src="https://static.didispace.com/images/pasted-869.png" alt="iTabNewTab - 日历"></p>
<h4> 倒计时</h4>
<p><img src="https://static.didispace.com/images/pasted-870.png" alt="iTabNewTab - 倒计时"></p>
<h4> 壁纸</h4>
<p><img src="https://static.didispace.com/images/pasted-871.png" alt="iTabNewTab - 壁纸"></p>
<h4> 待办</h4>
<p><img src="https://static.didispace.com/images/pasted-872.png" alt="iTabNewTab - 待办"></p>
<h4> 其他</h4>
<p>同时，在这些大模块的周围还围绕着不少小图标，这些小图标每一个都可以拖动并替换成自己常用的应用链接，并改变各种页面布局，很方便。</p>
<h4> 程序员专属</h4>
<p>然后就是专门为了吾等程序员的便利，作者特别做了一整个版面的网站推荐，都是各种学习编程的好地方，也不用我们每次一个个打开收藏了：</p>
<p><img src="https://static.didispace.com/images/pasted-874.png" alt="iTabNewTab"></p>
<p>除了程序员，作者还默认自带了设计、摸鱼、产品，三大版面：</p>
<p><img src="https://static.didispace.com/images/pasted-875.png" alt="iTabNewTab"></p>
<p><img src="https://static.didispace.com/images/pasted-876.png" alt="iTabNewTab"></p>
<p><img src="https://static.didispace.com/images/pasted-877.png" alt="iTabNewTab"></p>
<p>当然这些版面里面的内容都可以自己修改，也可以自己新增版面：</p>
<p><img src="https://static.didispace.com/images/pasted-878.png" alt="iTabNewTab"></p>
<p>在设置功能中，可以配置各种图标颜色、大小格式、壁纸背景、布局风格，等等：</p>
<p><img src="https://static.didispace.com/images/pasted-879.png" alt="iTabNewTab"></p>
<p>总的来说呢，iTabNewTab可以在保持风格简洁流畅的前提下最大程度的满足自定义的个性化的页面排布，并且也没啥广告，还能支持各种不同主流浏览器：</p>
<p><img src="https://static.didispace.com/images/pasted-880.png" alt="iTabNewTab"></p>
<p>关键是整个风格让人一眼看了就觉得 <strong>吊炸天</strong>，所以赶紧来试试看吧。</p>
<p>除了插件官方网页地址，TJ君还直接准备了chrome版本的安装介质一并附上，省去小伙伴下载的步骤，是不是很贴心？只需要将下载的文件后缀改为ZIP解压到本地，然后在chrome更多工具-扩展程序-加载已解压的扩展程序里面选择解压路径即可，喜欢的小伙伴记得把TJ君介绍给自己的朋友哦！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“吊炸天”，获取安装介质</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-863.png" type="image/png"/>
    </item>
    <item>
      <title>Chrome中不用鼠标只用键盘，你还能操作自如吗？</title>
      <link>https://spring.didispace.com/tj/tj-chrome-vimiumc.html</link>
      <guid>https://spring.didispace.com/tj/tj-chrome-vimiumc.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Chrome中不用鼠标只用键盘，你还能操作自如吗？</source>
      <description>今天TJ君给大家要分享的是一个90后小哥开发的开源CHROME插件： vimium-c 小伙伴可能奇怪，TJ君怎么知道作者是90后小哥呢？看看作者的名字就知道啦： 瞧见没，最后一次更新就在年底，作者还是很努力的。言归正传，这款vimium-c能做什么呢？ 请看：</description>
      <category>工具推荐</category>
      <pubDate>Tue, 11 Jan 2022 11:27:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>今天TJ君给大家要分享的是一个90后小哥开发的开源CHROME插件：</p>
<h2> vimium-c</h2>
<p>小伙伴可能奇怪，TJ君怎么知道作者是90后小哥呢？看看作者的名字就知道啦：</p>
<p><img src="https://static.didispace.com/images/pasted-832.png" alt=""></p>
<p>瞧见没，最后一次更新就在年底，作者还是很努力的。言归正传，这款vimium-c能做什么呢？</p>
<p>请看：</p>
<p><img src="https://static.didispace.com/images/pasted-833.png" alt=""></p>
<p>是不是觉得一下子眼花缭乱？</p>
<p>其实，vimium-c是一款<strong>全键盘操作浏览器 插件</strong>，可以支持只用键盘完成点击任意链接、切换标签页和快速搜索任意内容，还支持自定义快捷键和调整操作细节。</p>
<p><img src="https://static.didispace.com/images/pasted-834.png" alt=""></p>
<p>Vimium C 支持 新版 Microsoft Edge、Firefox 63+ 和 Chrome 47+ 等主流浏览器的最新版本。如果上面那张图看着觉得复杂的话，TJ君给大家再解释下：</p>
<p>Vimium C 支持的网页常见操作有：</p>
<ul>
<li>按 F 自动发现并标出可点击的链接和按钮，输入一个定位标记上的文字就能点击它</li>
<li>按 字母O 可以显示一个方便美观的搜索框，在里边可以随意查找浏览历史和收藏的网页，还能自定义搜索引擎来快速打开搜索页面、 查找已打开的标签页、实时计算数学表达式等等。甚至可以按 Shift+Enter（上档键+回车）来删除选中的历史记录。</li>
<li>按 J/K/H/L 来像 VIM 里移动光标一样滚动屏幕内容</li>
<li>按 “/” 显示页内查找浮层，输入 “\r” 可以做正则查找，“\w” 会执行整词匹配，还有 \R、\W、\i 和 \I 等多种用法</li>
<li>按 V 进入自由选择模式后，能像 VIM 一样用 J/K/H/L 等快捷键修改文字的选择范围</li>
<li>按 “?” 显示帮助对话框，快速查看所有设置过的快捷键</li>
</ul>
<p>Vimium C 对于操作浏览器标签的默认快捷键有：</p>
<ul>
<li>按 Shift+J、Shift+K、“g0” 或 “g$” 来切换到左侧、右侧、最左或最右的标签页</li>
<li>按 “^”（Shift+6）切换到最近访问的上一个标签页</li>
<li>按 X 关闭当前网页，然后按 Shift+X 可以恢复它。关闭网页时默认会保留一个窗口来避免浏览器退出</li>
<li>按 “M+字母” 创建标记，在别的网页就可以按 “+字母” 切换到（或者打开）这个标记的网页</li>
<li>按 R 刷新网页，Shift+W 移动网页到下一个窗口，“yt” 复制标签页</li>
</ul>
<p>从插件页面上，也可以对Vimium C进行快速自定义设置，满足每个人的习惯：</p>
<p><img src="https://static.didispace.com/images/pasted-835.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-836.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-838.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-839.png" alt=""></p>
<p>作者还非常小心的对于安全机制进行了解释：</p>
<p><img src="https://static.didispace.com/images/pasted-837.png" alt=""></p>
<p>TJ君觉得如果习惯了Vimium C的快捷键，操作系统起来一定会更加迅捷麻溜，说不定别人看你一顿操作猛如虎，都不用鼠标就完成了各种浏览器操作，会张大嘴巴对你投来敬仰大神的眼光哦！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“全键盘”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-832.png" type="image/png"/>
    </item>
    <item>
      <title>开源分布式任务调度系统就选：DolphinScheduler</title>
      <link>https://spring.didispace.com/tj/tj-dolphinscheduler.html</link>
      <guid>https://spring.didispace.com/tj/tj-dolphinscheduler.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开源分布式任务调度系统就选：DolphinScheduler</source>
      <description>分布式任务调度这个话题是每个后端开发和大数据开发都会接触的话题。因为应用场景的广泛，所以有很多开源项目专注于解决这类问题，比如我们熟知的xxl-job。 那么今天要给大家推荐的则是另一个更为强大的开源项目：DolphinScheduler 介绍 DolphinScheduler是一款开源的分布式任务调度系统，它可以帮助开发人员更加方便地进行任务调度和管理。DolphinScheduler支持常见的任务类型，包括Shell、Hadoop、Spark、Hive等，同时它也提供了可视化的任务编排和监控，使得任务管理变得更加简单。DolphinScheduler的开发团队源于支付宝的数据平台团队，经历了多年的实践和积累，已经成为了一个成熟的开源项目。</description>
      <category>开源推荐</category>
      <pubDate>Mon, 27 Feb 2023 13:29:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>分布式任务调度这个话题是每个后端开发和大数据开发都会接触的话题。因为应用场景的广泛，所以有很多开源项目专注于解决这类问题，比如我们熟知的xxl-job。</p>
<p>那么今天要给大家推荐的则是另一个更为强大的开源项目：<strong>DolphinScheduler</strong></p>
<h2> 介绍</h2>
<p><img src="https://static.didispace.com/images2/202302/tj-dolphinscheduler/1677475858563.png" alt="图 1"></p>
<p>DolphinScheduler是一款开源的分布式任务调度系统，它可以帮助开发人员更加方便地进行任务调度和管理。DolphinScheduler支持常见的任务类型，包括Shell、Hadoop、Spark、Hive等，同时它也提供了可视化的任务编排和监控，使得任务管理变得更加简单。DolphinScheduler的开发团队源于支付宝的数据平台团队，经历了多年的实践和积累，已经成为了一个成熟的开源项目。</p>
<h2> 特点</h2>
<h3> 分布式任务调度</h3>
<p>DolphinScheduler支持分布式部署，可以扩展到上千台服务器，实现高可用和高并发的任务调度。</p>
<p><img src="https://static.didispace.com/images2/202302/tj-dolphinscheduler/1677475865812.png" alt="图 2"></p>
<h3> 多种任务类型</h3>
<p>DolphinScheduler支持多种任务类型，包括Shell、Hadoop、Spark、Hive、MR、Python等，在此基础上还可以支持自定义任务类型，方便用户扩展。</p>
<p><img src="https://static.didispace.com/images2/202302/tj-dolphinscheduler/1677475874053.png" alt="图 3"></p>
<h3> 可视化任务编排和监控</h3>
<p>DolphinScheduler提供了可视化的任务编排和监控，可以方便地查看任务依赖关系、任务执行情况等信息，帮助用户更好地管理任务。</p>
<p><img src="https://static.didispace.com/images2/202302/tj-dolphinscheduler/1677475881496.png" alt="图 4"></p>
<p><img src="https://static.didispace.com/images2/202302/tj-dolphinscheduler/1677475888506.png" alt="图 5"></p>
<h2> DolphinScheduler的应用场景</h2>
<h3> 数据处理</h3>
<p>DolphinScheduler可以应用于数据处理场景，例如数据采集、数据清洗、数据分析等。用户可以通过DolphinScheduler轻松地配置和管理这些任务，同时也可以实现任务的并发执行和分布式处理。</p>
<h3> 业务流程</h3>
<p>DolphinScheduler可以应用于业务流程场景，例如电商的订单管理、物流管理等。用户可以通过DolphinScheduler将不同的业务流程任务进行编排，实现自动化执行和监控。</p>
<h3> 系统集成</h3>
<p>DolphinScheduler可以应用于系统集成场景，例如将多个系统的数据进行整合和处理。用户可以通过DolphinScheduler配置和管理不同系统之间的数据同步和交互任务，实现系统集成的自动化。</p>
<h2> 结论</h2>
<p>DolphinScheduler是一款成熟的开源分布式任务调度系统，它支持多种任务类型、可视化任务编排和监控，适用于不同的应用场景。如果您正在寻找一款任务调度系统，那么不妨考虑一下DolphinScheduler。</p>
<ul>
<li>官网地址：https://dolphinscheduler.apache.org/</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202302/tj-dolphinscheduler/1677475858563.png" type="image/png"/>
    </item>
    <item>
      <title>一款免费的响应式界面调试工具：Responsively</title>
      <link>https://spring.didispace.com/tj/tj-free-responsively.html</link>
      <guid>https://spring.didispace.com/tj/tj-free-responsively.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款免费的响应式界面调试工具：Responsively</source>
      <description>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！ 不知道大家平时开发响应式前端代码是如何调试的？是不是也跟我一样，通过浏览器的开发者工具来切换不同的界面尺寸来看验证效果呢？ 可能是因为习惯了，平时就不停的切换不同尺寸来看效果。直到TJ君看到今天要推荐的这个免费工具，我才发现之前的调试方式好傻... 使用体验 下面，我们还一起来看看今天要推荐的这款名为：Responsively的免费工具。</description>
      <category>工具推荐</category>
      <pubDate>Tue, 26 Sep 2023 14:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！</p>
<p>不知道大家平时开发响应式前端代码是如何调试的？是不是也跟我一样，通过浏览器的开发者工具来切换不同的界面尺寸来看验证效果呢？</p>
<p><img src="https://static.didispace.com/images3/2beef37829938f4e4d981a6b3efb4df8.png" alt=""></p>
<p>可能是因为习惯了，平时就不停的切换不同尺寸来看效果。直到TJ君看到今天要推荐的这个免费工具，我才发现之前的调试方式好傻...</p>
<h2> 使用体验</h2>
<p>下面，我们还一起来看看今天要推荐的这款名为：<a href="https://www.didispace.com/tj/tj-free-responsively.html" target="_blank" rel="noopener noreferrer">Responsively</a>的免费工具。</p>
<p>它可以帮助我们更便捷的调试响应式界面的程序，如何便捷呢？</p>
<p>直接看下图：</p>
<p><img src="https://static.didispace.com/images3/d7194afa3236811273558f8ba9d728ca.png" alt=""></p>
<p>这款工具通过将不同尺寸的界面一起显示的方式，让我们一次就能看到多个场景下的效果，是不是直观方便很多呢？</p>
<p>它还有很多有用的功能，比如：</p>
<p>元素审查：</p>
<p><img src="https://static.didispace.com/images3/a716bd9ff86416d8b9e46cfa5300b63b.png" alt=""></p>
<p>日夜模式：</p>
<p><img src="https://static.didispace.com/images3/b0357331ee028c4846ace0aaf10d78db.png" alt=""></p>
<h2> 支持平台</h2>
<p><a href="https://www.didispace.com/tj/tj-free-responsively.html" target="_blank" rel="noopener noreferrer">Responsively</a>支持主流的操作系统，包括：Mac、Windows、Linux。感兴趣的小伙伴都可以试试看。</p>
<p>最后，老规矩，奉上地址：https://responsively.app/，感兴趣的小伙伴可以前往体验。</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/2beef37829938f4e4d981a6b3efb4df8.png" type="image/png"/>
    </item>
    <item>
      <title>推荐一款免费好用的远程桌面：Getscreen</title>
      <link>https://spring.didispace.com/tj/tj-freetools-getscreen.html</link>
      <guid>https://spring.didispace.com/tj/tj-freetools-getscreen.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐一款免费好用的远程桌面：Getscreen</source>
      <description>因为平时有多台设备要用，所以远程桌面是我经常要使用的工具。 最近，TJ君也正好看到一款不错的远程桌面软件，马上拿出来推荐给大家，如果有需要的可以看看。 今天要推荐的远程桌面软件就是这款叫Getscreen的软件，推荐理由挺简单，就3点： 简单易用：只需要两步就能轻松连上远程桌面</description>
      <category>工具推荐</category>
      <pubDate>Fri, 18 Aug 2023 04:03:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>因为平时有多台设备要用，所以远程桌面是我经常要使用的工具。</p>
<p>最近，TJ君也正好看到一款不错的远程桌面软件，马上拿出来推荐给大家，如果有需要的可以看看。</p>
<p><img src="https://static.didispace.com/images2/202308/tj-freetools-getscreen/1692331945549.png" alt=""></p>
<p>今天要推荐的远程桌面软件就是这款叫<strong>Getscreen</strong>的软件，推荐理由挺简单，就3点：</p>
<ol>
<li>简单易用：只需要两步就能轻松连上远程桌面</li>
</ol>
<p>第一步：在需要被远程连接的机器上下载它的Agent程序并启动，点击<code>Send</code>获得一个链接</p>
<p><img src="https://static.didispace.com/images2/202308/tj-freetools-getscreen/1692332984694.png" alt=""></p>
<p>第二步：在其他机器上打开浏览器，使用第一步中的链接，就能轻松连上远程桌面了</p>
<p>使用方法是不是非常简单呢？不需要任何技术知识。</p>
<p>如果你有很多设备的话，还可以下载它的Dashboard来管理你的设备，使用起来会更加流畅。</p>
<p><img src="https://static.didispace.com/images2/202308/tj-freetools-getscreen/1692333324402.png" alt=""></p>
<ol start="2">
<li>个人用户基本免费</li>
</ol>
<p>Getscreen的付费机制也比较友好，对于免费用户，可以支持2个设备，相信大部分个人用户也基本够用了。</p>
<p><img src="https://static.didispace.com/images2/202308/tj-freetools-getscreen/1692333369401.png" alt=""></p>
<ol start="3">
<li>多平台支持：支持windows、macOS、Linux以及Android</li>
</ol>
<p><img src="https://static.didispace.com/images2/202308/tj-freetools-getscreen/1692333195688.png" alt=""></p>
<p>对于windows、macOS、Linux比较常规了，但是还有个Android，TJ在想是不是也能用来控制手机？这个TJ还没尝试，感兴趣的小伙伴可以试试看。</p>
<p>最后，老规矩，奉上相关地址；</p>
<ul>
<li>官方网站：https://getscreen.me/</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-freetools-getscreen/1692331945549.png" type="image/png"/>
    </item>
    <item>
      <title>找到了阅读GitHub项目代码的最佳姿势</title>
      <link>https://spring.didispace.com/tj/tj-github1s.html</link>
      <guid>https://spring.didispace.com/tj/tj-github1s.html</guid>
      <source url="https://spring.didispace.com/rss.xml">找到了阅读GitHub项目代码的最佳姿势</source>
      <description>如果您跟我一样，经常上GitHub看开源项目，那么一定有这样的感觉：在线阅读代码很不方便！所以，很多时候，我们都是通过git clone方式下载下来。然后用开发工具打开就可以非常顺滑的阅读了。 但是这样的还是需要比较复杂的步骤，今天就给大家推荐一个应用：github1s。通过github1s的帮助，我们可以更方便的阅读GitHub上的开源项目。 简介 GitHub1s 是一个Web应用程序，允许开发者直接在GitHub上浏览、编辑和调试代码。它是一个强大的工具，可以帮助开发者节省时间，提高生产力。在本文中，我们将讨论GitHub1s的特点以及它如何有助于开发者。</description>
      <category>开源推荐</category>
      <pubDate>Thu, 09 Mar 2023 11:49:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>如果您跟我一样，经常上GitHub看开源项目，那么一定有这样的感觉：在线阅读代码很不方便！所以，很多时候，我们都是通过git clone方式下载下来。然后用开发工具打开就可以非常顺滑的阅读了。</p>
<p>但是这样的还是需要比较复杂的步骤，今天就给大家推荐一个应用：github1s。通过github1s的帮助，我们可以更方便的阅读GitHub上的开源项目。</p>
<h2> 简介</h2>
<p>GitHub1s 是一个Web应用程序，允许开发者直接在GitHub上浏览、编辑和调试代码。它是一个强大的工具，可以帮助开发者节省时间，提高生产力。在本文中，我们将讨论GitHub1s的特点以及它如何有助于开发者。</p>
<h2> 在线使用</h2>
<p>在github网页url中的github后面增加1s，直接访问，马上就可以进入到在线浏览界面。</p>
<p>比如，这个开源项目：https://github.com/dyc87112/SpringBoot-Learning</p>
<p>只需要改成：https://github1s.com/dyc87112/SpringBoot-Learning</p>
<p>在浏览器中打开，就可以看到下面的界面：</p>
<p><img src="https://static.didispace.com/images2/202303/tj-github1s/1678334653521.png" alt=""></p>
<p>用过vs code的小伙伴可以很熟悉吧，最之后就可以非常方便的进行阅读了。对于VS Code中的各种常规功能也都支持，比如cmd + p实现文件搜索等。</p>
<p>如果要查看私有仓库的话，则需要添加OAuth令牌。在左侧的配置中添加即可，具体位置如下图：</p>
<p><img src="https://static.didispace.com/images2/202303/tj-github1s/1678334827616.png" alt=""></p>
<p>GitHub1s是一个强大的工具，可以帮助开发者节省时间，提高生产力。它提供了代码编辑、调试和协作等功能，这些功能对开发者非常有用。如果您还没有尝试过GitHub1s，我们强烈建议您试试。</p>
<p>最后，奉上开源项目地址：https://github.com/conwnet/github1s</p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-github1s/1678334653521.png" type="image/png"/>
    </item>
    <item>
      <title>推荐一个开箱即用的轻量级身份验证系统：GLAuth</title>
      <link>https://spring.didispace.com/tj/tj-glauth.html</link>
      <guid>https://spring.didispace.com/tj/tj-glauth.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐一个开箱即用的轻量级身份验证系统：GLAuth</source>
      <description>今天给大家推荐一个开箱即用的轻量级LDAP项目，助力轻松实现系统的身份验证！ GLAuth是一款开源的身份验证系统，它提供了高效、安全的身份验证和访问控制功能，支持多种身份验证方式，如LDAP、SQL等，并可与多种应用程序集成。 GLAuth 的主要特点如下：</description>
      <category>开源推荐</category>
      <pubDate>Tue, 28 Feb 2023 14:54:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>今天给大家推荐一个开箱即用的轻量级LDAP项目，助力轻松实现系统的身份验证！</p>
<p><img src="https://static.didispace.com/images2/202302/tj-glauth/1677567339753.png" alt="GLAuth"></p>
<p><a href="/tj/tj-glauth">GLAuth</a>是一款开源的身份验证系统，它提供了高效、安全的身份验证和访问控制功能，支持多种身份验证方式，如LDAP、SQL等，并可与多种应用程序集成。</p>
<p><a href="/tj/tj-glauth">GLAuth</a> 的主要特点如下：</p>
<ul>
<li>高度灵活：支持多种身份验证方式，可灵活适配不同的应用场景。</li>
<li>安全性高：采用先进的加密算法，保障用户数据的安全性。</li>
<li>易于管理：提供了简单易用的Web界面，可轻松管理用户账号和权限。</li>
<li>易于扩展：可与多种应用程序集成，如邮件系统、Web服务器等。</li>
</ul>
<p>如果您需要一个高效、安全的身份验证系统，GLAuth是一个不错的选择。</p>
<p>同时，<a href="/tj/tj-glauth">GLAuth</a> 还具备以下特点：</p>
<ul>
<li>跨平台：GLAuth可运行在Windows、Linux等各种操作系统上。</li>
<li>开源免费：GLAuth是一款完全开源的软件，您可以自由地使用、修改和分发它。</li>
<li>社区支持：GLAuth拥有一个活跃的社区，您可以在社区中获取技术支持和帮助。</li>
</ul>
<p>如果您对GLAuth感兴趣，您可以访问它的GitHub页面，获取更多信息和文档。希望GLAuth能够满足您的身份验证需求！</p>
<ul>
<li>官网地址：https://glauth.github.io/</li>
<li>开源地址：https://github.com/glauth/glauth</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202302/tj-glauth/1677567339753.png" type="image/png"/>
    </item>
    <item>
      <title>一款绘制3D架构图的在线神器：iCraft Editor</title>
      <link>https://spring.didispace.com/tj/tj-icraft-editor.html</link>
      <guid>https://spring.didispace.com/tj/tj-icraft-editor.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款绘制3D架构图的在线神器：iCraft Editor</source>
      <description>一款绘制3D架构图的在线神器：iCraft Editor 在软件开发的世界里，架构图是系统设计的蓝图，它们不仅帮助团队理解系统的整体结构，还能提升沟通效率，确保项目的顺利推进。然而，绘制一张清晰、直观的架构图，往往需要大量时间和专业工具。面对繁琐的操作和复杂的学习曲线，不少程序员感到力不从心。 之前DD有给大家推荐过ProcessOn，继续需求是可以满足了。今天再给大家推荐一个比较特别的，它可以用来绘制3D架构图，效果非常炸裂！ 先来对比一下2D和3D架构师图的直观区别： 传统的2D架构图：</description>
      <category>工具推荐</category>
      <pubDate>Sun, 03 Nov 2024 01:10:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 一款绘制3D架构图的在线神器：iCraft Editor</h1>
<p>在软件开发的世界里，架构图是系统设计的蓝图，它们不仅帮助团队理解系统的整体结构，还能提升沟通效率，确保项目的顺利推进。然而，绘制一张清晰、直观的架构图，往往需要大量时间和专业工具。面对繁琐的操作和复杂的学习曲线，不少程序员感到力不从心。</p>
<p>之前DD有给大家推荐过ProcessOn，继续需求是可以满足了。今天再给大家推荐一个比较特别的，它可以用来绘制3D架构图，效果非常炸裂！</p>
<p>先来对比一下2D和3D架构师图的直观区别：</p>
<p>传统的2D架构图：</p>
<p><img src="https://static.didispace.com/images3/ee8e40a8a4d0bb54064ca6cec9690fc7.png" alt="传统的2D架构图"></p>
<p>炫酷的3D架构图</p>
<p><img src="https://static.didispace.com/images3/09f7619087f4eb623bc5242760a5002b.png" alt="炫酷的3D架构图"></p>
<p>怎么样？是不是视觉效果非常棒？</p>
<h2> iCraft Editor</h2>
<p>言归正传，回到今天DD想要推荐的这款绘制3D架构图的在线神器：<a href="https://icraft.gantcloud.com/" target="_blank" rel="noopener noreferrer">iCraft Editor</a></p>
<ul>
<li>官方网站：<a href="https://icraft.gantcloud.com/" target="_blank" rel="noopener noreferrer">https://icraft.gantcloud.com/</a></li>
<li>GitHub：<a href="https://github.com/gantFDT/icraft" target="_blank" rel="noopener noreferrer">https://github.com/gantFDT/icraft</a></li>
</ul>
<p>iCraft Editor 是一款可以帮助您轻松绘制出优秀三维架构图的工具。它专注于架构图的三维设计，具有三维视觉效果，可以更有效的吸引观众注意力，提高沟通效率，为您带来全新的视觉体验和便捷的操作。</p>
<h3> 主要功能</h3>
<ul>
<li>提供开放的三维视角,可以自由旋转和缩放,从各个角度观察和理解系统架构</li>
<li>拥有简单易用的操作界面,即使是新手也可以快速上手</li>
<li>提供丰富的内置图形库,满足各种设计需求</li>
<li>支持元素嵌套子场景,实现模块化管理和编辑</li>
<li>支持无缝嵌入外部模型,扩展设计可能性</li>
<li>可以清晰地呈现复杂的架构设计</li>
</ul>
<h3> 效果演示</h3>
<p><img src="https://static.didispace.com/gif/icraft-edit-1.gif" alt=""></p>
<p><img src="https://static.didispace.com/gif/icraft-edit-2.gif" alt=""></p>
<p><img src="https://static.didispace.com/gif/icraft-edit-3.gif" alt=""></p>
<p>是不是看着非常不错呢？如果是你需要的，赶紧去试试吧～</p>
<p>另外，欢迎扫描下方二维码，关注公众号：TJ君，订阅更多好用工具推荐！</p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/ee8e40a8a4d0bb54064ca6cec9690fc7.png" type="image/png"/>
    </item>
    <item>
      <title>File Expander：在IDEA里直接查阅Jar包内容</title>
      <link>https://spring.didispace.com/tj/tj-idea-plugin-fileexpander.html</link>
      <guid>https://spring.didispace.com/tj/tj-idea-plugin-fileexpander.html</guid>
      <source url="https://spring.didispace.com/rss.xml">File Expander：在IDEA里直接查阅Jar包内容</source>
      <description>平日里大家想看一个jar包里的内容会怎么做呢？直接解压缩到本地？反编译到本地查看？或者下载一些专门查看jar包的工具？是不是觉得稍稍有点麻烦呢？ TJ君肯定是想着能让大家在各方面使用更方便，于是今天带来这款插件，可以让大家直接在IDEA查看各种jar包、压缩包，是不是有点好奇呢？ 我们来看下具体的效果： 先看看查看jar包的效果： 可以轻松的看到里面每一个文件及对应代码。</description>
      <category>IntelliJ IDEA</category>
      <pubDate>Wed, 12 Jan 2022 11:19:51 GMT</pubDate>
      <content:encoded><![CDATA[<p>平日里大家想看一个jar包里的内容会怎么做呢？直接解压缩到本地？反编译到本地查看？或者下载一些专门查看jar包的工具？是不是觉得稍稍有点麻烦呢？</p>
<p>TJ君肯定是想着能让大家在各方面使用更方便，于是今天带来这款插件，可以让大家<strong>直接在IDEA查看各种jar包、压缩包</strong>，是不是有点好奇呢？</p>
<p>我们来看下具体的效果：</p>
<p>先看看查看jar包的效果：</p>
<p><img src="https://static.didispace.com/images/pasted-829.png" alt=""></p>
<p>可以轻松的看到里面每一个文件及对应代码。</p>
<p>再来看看压缩文件的效果：</p>
<p><img src="https://static.didispace.com/images/pasted-830.png" alt=""></p>
<p>是不是轻松方便？插件支持各种不同款式的压缩包格式，例如.zip、.gz、.tar、.tgz、.7z、.zip、.jar、.war、.epc等都可以。</p>
<p>插件也不大，一共就105KB，可以说虽然简单小巧，但是实用好用，可以解决不少人的使用难题。</p>
<p>不过TJ君费解的是，今天TJ君怎么都上不了IDEA的插件市场，试了各种方式都不行。所以TJ君将插件包的安装介质给大家准备好了，直接在IDEA里面引入安装就可以了。</p>
<p><img src="https://static.didispace.com/images/pasted-831.png" alt=""></p>
<p>喜欢这个插件的小伙伴，赶紧来试试吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“0111”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-829.png" type="image/png"/>
    </item>
    <item>
      <title>推荐一款在IDEA里画UML图的插件</title>
      <link>https://spring.didispace.com/tj/tj-idea-plugin-plantuml.html</link>
      <guid>https://spring.didispace.com/tj/tj-idea-plugin-plantuml.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐一款在IDEA里画UML图的插件</source>
      <description>平时你画UML图都用什么？Processon、Visio这些相信大家已经都很熟悉了。今天TJ要给大家介绍的是一个特别的画图工具，它是IDEA中的一个插件，有了它你可以把画图与编码都集成到IDEA中一起完成，是不是感觉很棒呢？下面就来一起认识下今天要介绍的IDEA插件：PlantUML！ PlantUML，是一款开源的图绘制项目，支持通过编写文本来快速生成各种UML图形，目前支持时序图、用例图、类图、对象图、组件图、部署图、状态图、定时图；同时也支持用来生成非UML图，像JSON数据、YAML数据、架构图、思维导图等等，都可以用它来完成。 简单的说，就是你直接通过编程来画出你要的各种图，是不是特别适合我们程序猿呢？</description>
      <category>IntelliJ IDEA</category>
      <pubDate>Mon, 11 Oct 2021 14:18:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>平时你画UML图都用什么？Processon、Visio这些相信大家已经都很熟悉了。今天TJ要给大家介绍的是一个特别的画图工具，它是IDEA中的一个插件，有了它你可以把画图与编码都集成到IDEA中一起完成，是不是感觉很棒呢？下面就来一起认识下今天要介绍的IDEA插件：PlantUML！</p>
<p>PlantUML，是一款开源的图绘制项目，支持通过编写文本来快速生成各种UML图形，目前支持时序图、用例图、类图、对象图、组件图、部署图、状态图、定时图；同时也支持用来生成非UML图，像JSON数据、YAML数据、架构图、思维导图等等，都可以用它来完成。</p>
<p>简单的说，就是你直接通过编程来画出你要的各种图，是不是特别适合我们程序猿呢？</p>
<p>光说可能不够形象，直接上例子，例如像一些时序图，你就可以这样实现：</p>
<p><img src="https://static.didispace.com/images/pasted-610.png" alt="PlantUML"></p>
<p>图案左半边，就是你输入的文本，右半边就是根据文本生成的效果，像这种时序图，语法规则其实很简单，可以简单的用 -&gt; 来绘制参与者之间传递的消息，而不必显式地声明参与者。也可以使用 <code>--&gt;</code>绘制一个虚线箭头。如果想调整箭头的方向可以使用 <code>&lt;-</code>和<code>&lt;--</code>。</p>
<p>而对于像类图这样的一些展示效果，你可以通过声明不同的类型展示不同的样式，一目了然：</p>
<p><img src="https://static.didispace.com/images/pasted-611.png" alt="PlantUML"></p>
<p><img src="https://static.didispace.com/images/pasted-612.png" alt="PlantUML"></p>
<p>熟练具体的编写语法规则之后，是不是对于程序猿来说，比直接用手画更加简单呢？</p>
<p>该插件就在前几天刚更新到了5.6.1版本，作者也是在不断的优化更新。</p>
<p><img src="https://static.didispace.com/images/pasted-613.png" alt="PlantUML"></p>
<p>安装该插件需要直接在IDEA插件中搜索PlantUML，或者直接从插件官网下载，然后在IDEA安装即可。</p>
<p>如果不想自己下载的小伙伴，TJ君也给你准备好了最新版本的插件介质，只要关注文末公众号回复关键字获取即可，同时TJ君还会提供一份学习宝典，供小伙伴们快速上手PlantUML相关语法，让我们一起更好的画图吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“PLANT”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-610.png" type="image/png"/>
    </item>
    <item>
      <title>Rainbow Fart：把鼓励师装进你的IDEA里！</title>
      <link>https://spring.didispace.com/tj/tj-idea-plugin-rainbow-fart.html</link>
      <guid>https://spring.didispace.com/tj/tj-idea-plugin-rainbow-fart.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Rainbow Fart：把鼓励师装进你的IDEA里！</source>
      <description>TJ君今天在和同事聊天，期间说起小孩子的教育，说现在的教育方式都是以鼓励为主，要不停的告诉小孩子正能量告诉他们是最棒的才能更好地激发他们的学习热情。 想想TJ君小时候的残酷生活，现在小孩子真是生活在幸福里的花朵。 不过话说回来，是不是希望自己在编码的时候也有人一直在鼓励你呢？嘿嘿，正所谓千穿万穿马屁不穿，那么TJ君今天介绍的这个好东东你就一定不能错过了。 TJ君今天给大家介绍的是一款程序员鼓励插件，可以在你编码的时候不停的语音鼓励你，让你事半功倍。</description>
      <category>IntelliJ IDEA</category>
      <pubDate>Thu, 13 Jan 2022 11:47:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>TJ君今天在和同事聊天，期间说起小孩子的教育，说现在的教育方式都是以鼓励为主，要不停的告诉小孩子正能量告诉他们是最棒的才能更好地激发他们的学习热情。</p>
<p>想想TJ君小时候的残酷生活，现在小孩子真是生活在幸福里的花朵。</p>
<p>不过话说回来，是不是希望自己在编码的时候也有人一直在鼓励你呢？嘿嘿，正所谓千穿万穿马屁不穿，那么TJ君今天介绍的这个好东东你就一定不能错过了。</p>
<p>TJ君今天给大家介绍的是一款<strong>程序员鼓励插件</strong>，可以在你编码的时候不停的语音鼓励你，让你事半功倍。</p>
<p><img src="https://static.didispace.com/images/pasted-855.png" alt=""></p>
<p>插件的雏形最早是一款vscode的插件，不过有大神jadepeng写了一个IDEA版本的，让我们这些使用idea的小伙伴也可以享受。</p>
<p>下载安装后，在插件设置界面，可以将voice package type属性设置为builtin，这样可以选择内置语音包，也可以将voice package type属性设置为custom，这样子就可以使用各种自定义的语音包（不过需要自己去寻找下载哦），如果voice package type选择TTS，则是合成的语音包~</p>
<p><img src="https://static.didispace.com/images/pasted-856.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-857.png" alt=""></p>
<p>如果觉得语音出现频率过于频繁，也可以根据不同语音包的关键字提示进行修改，这里就不一一阐述。</p>
<p><img src="https://static.didispace.com/images/pasted-858.png" alt=""></p>
<p>TJ君觉得，能有人一直在旁边鼓励你就仿佛找了一个程序员鼓励师一样，一定对大家的帮助很有帮助哦！所以快来试试吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“鼓励你”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-855.png" type="image/png"/>
    </item>
    <item>
      <title>盘点10个最受欢迎IntelliJ IDEA主题，必有一款适合你！</title>
      <link>https://spring.didispace.com/tj/tj-idea-theme-20230307.html</link>
      <guid>https://spring.didispace.com/tj/tj-idea-theme-20230307.html</guid>
      <source url="https://spring.didispace.com/rss.xml">盘点10个最受欢迎IntelliJ IDEA主题，必有一款适合你！</source>
      <description>选择一款适合自己的主题，这样每天工作才不会累！下面给大家精选了一批优秀的主题，并配上案例截图。如果有你喜欢的，那就赶紧去下载吧！ Darcula 这是IntelliJ IDEA默认的暗色主题，适合长时间使用，减少眼睛疲劳。 Material Theme UI 一款基于谷歌Material Design的主题，拥有鲜艳的颜色和现代化的UI设计。</description>
      <category>IntelliJ IDEA</category>
      <pubDate>Tue, 07 Mar 2023 11:41:40 GMT</pubDate>
      <content:encoded><![CDATA[<p>选择一款适合自己的主题，这样每天工作才不会累！下面给大家精选了一批优秀的主题，并配上案例截图。如果有你喜欢的，那就赶紧去下载吧！</p>
<h2> Darcula</h2>
<p>这是IntelliJ IDEA默认的暗色主题，适合长时间使用，减少眼睛疲劳。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160582039.png" alt=""></p>
<h2> Material Theme UI</h2>
<p>一款基于谷歌Material Design的主题，拥有鲜艳的颜色和现代化的UI设计。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160613607.png" alt=""></p>
<h2> One Dark</h2>
<p>一款受欢迎的VS Code主题，也可以在IntelliJ IDEA上使用。拥有深色背景和明亮的代码高亮。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160636206.png" alt=""></p>
<h2> Solarized</h2>
<p>一款经典的主题，具有柔和的颜色和对比度，使得代码更容易阅读。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160653190.png" alt=""></p>
<h2> Nord</h2>
<p>一款冷色调主题，具有清晰的代码高亮和现代化的UI设计。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160667142.png" alt=""></p>
<h2> Dracula</h2>
<p>另一个受欢迎的暗色主题，拥有紫色和粉色的配色方案。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160684554.png" alt=""></p>
<h2> Monokai</h2>
<p>一款受欢迎的代码高亮主题，拥有鲜艳的颜色和对比度。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160702244.png" alt=""></p>
<h2> Gruvbox</h2>
<p>一款温暖的主题，具有棕色和黄色的配色方案，适合长时间使用。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160716008.png" alt=""></p>
<h2> Atom One Dark</h2>
<p>一款Atom编辑器的主题，也可以在IntelliJ IDEA上使用。具有深色背景和明亮的代码高亮。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160727022.png" alt=""></p>
<h2> Obsidian</h2>
<p>一款黑色主题，具有简洁的UI设计和清晰的代码高亮。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160757676.png" alt=""></p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-idea-theme-20230307/1678160582039.png" type="image/png"/>
    </item>
    <item>
      <title>开源API越权漏洞检测系统推荐：IDOR_detect_tool</title>
      <link>https://spring.didispace.com/tj/tj-idor-detect-tool.html</link>
      <guid>https://spring.didispace.com/tj/tj-idor-detect-tool.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开源API越权漏洞检测系统推荐：IDOR_detect_tool</source>
      <description>相信大部分读者跟我一样，每天都在写各种API为Web应用提供数据支持，那么您是否有想过您的API是否足够安全呢？ Web应用的安全是网络安全中不可忽视的关键方面。我们必须确保其Web应用与后台通信的安全，以防止数据泄露，因为这可能导致重大的财务损失和声誉受损。 而在Web应用的安全问题中，最常见的漏洞之一是不安全的直接对象引用，简称：IDOR。即：当应用程序允许用户访问他们不应该访问的资源时，就会发生IDOR漏洞。比如：SaaS软件的用户A访问到了用户B的数据，这样的漏洞是灾难性的，因为用户将不再信任您提供的服务。</description>
      <category>开源推荐</category>
      <pubDate>Fri, 03 Mar 2023 01:19:23 GMT</pubDate>
      <content:encoded><![CDATA[<p>相信大部分读者跟我一样，每天都在写各种API为Web应用提供数据支持，那么您是否有想过您的API是否足够安全呢？</p>
<p>Web应用的安全是网络安全中不可忽视的关键方面。我们必须确保其Web应用与后台通信的安全，以防止数据泄露，因为这可能导致重大的财务损失和声誉受损。</p>
<p><img src="https://static.didispace.com/images2/202303/tj-idor-detect-tool/1677777642530.png" alt="图 1"></p>
<p>而在Web应用的安全问题中，最常见的漏洞之一是不安全的直接对象引用，简称：IDOR。即：当应用程序允许用户访问他们不应该访问的资源时，就会发生IDOR漏洞。比如：SaaS软件的用户A访问到了用户B的数据，这样的漏洞是灾难性的，因为用户将不再信任您提供的服务。</p>
<p>那么如何方便、快捷的检测IDOR漏洞呢？今天就给大家推荐一个好用的开源工具：IDOR_detect_tool</p>
<h2> 使用简单</h2>
<ul>
<li>从 GitHub 存储库下载工具</li>
<li>准备好目标系统的A、B两账号，根据系统的鉴权逻辑（Cookie、header、参数等）将A账号信息配置config/config.yml，之后登录B账号</li>
<li>使用B账号访问，脚本会自动替换鉴权信息并重放，根据响应结果判断是否存在越权漏洞</li>
<li>生成报表，每次有新漏洞都会自动添加到report/result.html中，通过浏览器打开</li>
<li>点击具体条目可以展开/折叠对应的请求和响应</li>
</ul>
<p>如果您刚好在做这个内容，不妨看看这个开源项目！</p>
<p><strong>开源地址：https://github.com/y1nglamore/IDOR_detect_tool</strong></p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-idor-detect-tool/1677777642530.png" type="image/png"/>
    </item>
    <item>
      <title>Java中如何解析SQL语句、格式化SQL语句、生成SQL语句？</title>
      <link>https://spring.didispace.com/tj/tj-jsqlparser.html</link>
      <guid>https://spring.didispace.com/tj/tj-jsqlparser.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Java中如何解析SQL语句、格式化SQL语句、生成SQL语句？</source>
      <description>昨天在群里看到有小伙伴问，Java里如何解析SQL语句然后格式化SQL，是否有现成​类库可以使用？ 之前TJ没有做过这类需求，所以去研究了一下，并找到了一个不过的解决方案，今天推荐给大家，如果您正要做类似内容，那就拿来试试，如果暂时没需求，就先了解收藏（技多不压身）。 JSqlParser​ JSqlParser是一个用Java编写的SQL解析器，可以将SQL语句解析为Java对象，从而使开发人员能够轻松地分析、修改和重构SQL查询。 比如，这样的一句SQL语句SELECT 1 FROM dual WHERE a = bSELECT 1 FROM dual WHERE a = b</description>
      <category>开源推荐</category>
      <pubDate>Tue, 07 Mar 2023 08:06:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>昨天在群里看到有小伙伴问，Java里如何解析SQL语句然后格式化SQL，是否有现成​类库可以使用？</p>
<p>之前TJ没有做过这类需求，所以去研究了一下，并找到了一个不过的解决方案，今天推荐给大家，如果您正要做类似内容，那就拿来试试，如果暂时没需求，就先了解收藏（技多不压身）。</p>
<h2> JSqlParser​</h2>
<p>JSqlParser是一个用Java编写的SQL解析器，可以将SQL语句解析为Java对象，从而使开发人员能够轻松地分析、修改和重构SQL查询。</p>
<p>比如，这样的一句SQL语句<code>SELECT 1 FROM dual WHERE a = bSELECT 1 FROM dual WHERE a = b</code></p>
<p>JSqlParser可以将其解析为如下对象结构</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>然后我们就可以通过其提供的API来访问这句SQL语句中的各个要素：</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>目前，JSqlParser支持了大部分主要的关系型数据库，包括：</p>
<ul>
<li>Oracle</li>
<li>MS SQL Server and Sybase</li>
<li>PostgreSQL</li>
<li>MySQL and MariaDB</li>
<li>DB2</li>
<li>H2 and HSQLDB and Derby</li>
<li>SQLite</li>
</ul>
<p>它支持大多数常见的SQL语法，包括SELECT、INSERT、UPDATE、DELETE等。除了解析SQL语句外，JSqlParser还提供了一些有用的功能，例如格式化SQL语句、生成SQL查询等。此外，JSqlParser还可以与其他Java库和框架集成，例如Hibernate、Spring等。</p>
<p>​项目地址：https://github.com/JSQLParser/JSqlParser</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
    </item>
    <item>
      <title>推荐一套轻量级的开源图床系统：Light Fast Picture</title>
      <link>https://spring.didispace.com/tj/tj-light-fast-picture.html</link>
      <guid>https://spring.didispace.com/tj/tj-light-fast-picture.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐一套轻量级的开源图床系统：Light Fast Picture</source>
      <description>如果您跟我一样平时有些博客的习惯，那么图片存储是否有困扰过你呢？今天就给大家推荐一款不错的开源图床系统：Light Fast Picture 它是一个基于koa + vue3.x + typescript实现的图床工具。它可以帮助用户快速上传图片到云端，并返回图片链接，方便用户在网页、社交媒体等平台上分享图片。 它的功能已经非常丰富，满足我们对图片管理的日常需求</description>
      <category>开源推荐</category>
      <pubDate>Wed, 08 Mar 2023 09:55:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>如果您跟我一样平时有些博客的习惯，那么图片存储是否有困扰过你呢？今天就给大家推荐一款不错的开源图床系统：Light Fast Picture</p>
<p><img src="https://static.didispace.com/images2/202303/tj-light-fast-picture/1678240595559.png" alt="picture 1"></p>
<p>它是一个基于koa + vue3.x + typescript实现的图床工具。它可以帮助用户快速上传图片到云端，并返回图片链接，方便用户在网页、社交媒体等平台上分享图片。</p>
<p>它的功能已经非常丰富，满足我们对图片管理的日常需求</p>
<ul>
<li>图片上传：支持图片多图上传、拖拽上传、粘贴上传、一键复制多种格式的图片外链。</li>
<li>图片管理：多上传的图片进行管理，支持文件重命名、移入指定相册、删除图片、预览图片等。
存储桶管理：支持多桶储存，可同时添加多个对象存储桶管理，上不封顶，例如：七牛云对象存储、阿里云对象存储、腾讯云对象存储等等，系统会统计出每个存储桶下的图片数量以及已使用存储量。同时也支持控制存储桶是否显示在上传区。</li>
<li>相册管理：支持相册管理，可以对图片进行分组分类管理，便于用户将不同的图片进行分类挂办理，同时也支持直接将图片上传到相册中。</li>
<li>操作日志管理：完整的可视化日志功能，记录用户所有操作，方便事件溯源。普通用户只能查看自己的操作记录，管理员则能查看所有人员的操作记录，于此同时数据统计中的贡献图的数据来源也是从操作记录中提取。
个人信息维护：用户可以对自己的信息管理，如头像(系统内置4组不同维度的头像供选择)、昵称、职业、性别、个人简介以及个人登录密码进行维护管理。</li>
<li>数据统计：系统提供了数据统计功能，统计用户的图片数量、存储桶数量、总占用存储量、相册数量以及系统贡献度数据进行统计。</li>
<li>使用习惯配置：考虑到每个用户的使用习惯不同，系统提供了使用习惯配置中心，可以对默认复制的图片链接格式、自定义链接格式、常用快捷键配置以及是否开启上传成功提示、复制链接成功提示等配置。</li>
<li>用户管理：多用户管理，根据不同的角色可以管理不同的数据，同时用户可以通过自主注册或者管理员在管理页面直接创建。</li>
<li>存储桶插件管理：存储桶管理，是由管理员进行在线开发的插件，用于管理员对存储桶插件的相关配置，需要做什么前置处理或者后置处理等进行管理，例如七牛云对象存储，需要用户在界面上感知出需要填写哪些数据、哪些数据时必填项、有哪些数据的智能提示，需要前置操作则是获取上传认证，其实就是对存储桶拥有哪些元数据进行配置，于此同时还提供了是否启用或者禁用的功能，比如某一个对象存储已经从市面上out，则管理员可以进行禁用操作，这样用户就不能创建该类型的存储桶。</li>
<li>字典管理：对系统中经常使用的一些较为固定的数据进行维护，例如个人中心的职业、用户性别、存储桶页面不同的存储桶类别展示不同的图标等数据维护。</li>
<li>系统设置：对系统中一些常用的数据进行维护，包括系统名称、系统logo、备案信息、更新日志、系统上所使用的的图标的来源进行配置。</li>
<li>权限控制：完整的权限控制功能，不同的角色可分配不同的操作权限，控制对应的删除及查看。</li>
</ul>
<p>一款开源软件做到这个程度，已经非常优秀了，如果符合你的需求的话，赶紧试试看吧。</p>
<p>在线体验：</p>
<p>地址：http://picture.itchenliang.club/#/
账号：guest@163.com
密码：000000</p>
<p>最后，奉上项目地址：https://github.com/ischenliang/quickly-picture-bed</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-light-fast-picture/1678240595559.png" type="image/png"/>
    </item>
    <item>
      <title>如何做一个低代码平台？这个开源项目看看！</title>
      <link>https://spring.didispace.com/tj/tj-opensouce-lowcode-sparrow.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensouce-lowcode-sparrow.html</guid>
      <source url="https://spring.didispace.com/rss.xml">如何做一个低代码平台？这个开源项目看看！</source>
      <description>平日里大家编码的时候肯定想着如何能提高自己的工作效率，那么一种方法肯定是提高自身的编码水平，但是同时工欲善其事必先利其器，如果有一款好的工具，说不定也能实现提升开发效率。 今天TJ君要跟大家分享的就是这样一款场景化低代码（LowCode）搭建工作台， sparrow，通过简单的操作实时输出源代码 sparrow支持基于vue、element-ui组件库的中后台项目的输出，目标只有一个，那就是： 提升开发效率！！！！ 用过之后就会发现，sparrow的优势主要体现在两个方面：</description>
      <category>开源推荐</category>
      <pubDate>Tue, 16 Nov 2021 14:04:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>平日里大家编码的时候肯定想着如何能提高自己的工作效率，那么一种方法肯定是提高自身的编码水平，但是同时工欲善其事必先利其器，如果有一款好的工具，说不定也能实现提升开发效率。</p>
<p>今天TJ君要跟大家分享的就是这样一款场景化低代码（LowCode）搭建工作台， <strong>sparrow</strong>，通过简单的操作<strong>实时输出源代码</strong></p>
<p>sparrow支持基于vue、element-ui组件库的中后台项目的输出，目标只有一个，那就是：</p>
<h3> 提升开发效率！！！！</h3>
<p>用过之后就会发现，sparrow的优势主要体现在两个方面：</p>
<p>1、使用方便，通过对拥有业务逻辑的代码的组装，可以完成函数级别的项目搭建，靠拖拉拽就可以，不需要太多手工编码，最终生成可供开发使用的源代码。</p>
<p>2、可扩展性，可以通过AST读取组件源代码，进行组合，只要页面的逻辑是可拆解的就可以任意组装；</p>
<p>基于上述两个方面，sparrow的特性可以总结为三个特点：</p>
<ul>
<li>低代码开发， 快速生成可读性强、vue element-ui组件库的源代码。</li>
<li>可视化开发， 通过GUI生成页面代码源文件。</li>
<li>资产市场， 代码资源共享，包含组件、编辑区块、静态区块、搜索业务组件、插件、场景搭建编辑器。</li>
</ul>
<p>工作台安装方式：</p>
<h4> 全局安装</h4>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4> 项目内安装</h4>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>小伙伴可能会有点担心，这样低代码的工作台，是否可以满足各种不同的开发诉求呢？关于这个，sparrow提供多种不同类型的物料源，以此帮助用户提升研发效率。TJ君稍稍举例一些：</p>
<ul>
<li>组件：vue element-ui基础组件</li>
<li>容器：存储基础组件</li>
<li>编辑区块：可增删改的特定场景代码片段</li>
<li>静态区块：代码片段</li>
<li>搜索组件：官方内置拥有特定逻辑组件</li>
<li>插件：第三方自定义组件</li>
</ul>
<p>对实用性还持疑问的小伙伴可以看下下面这段实际使用动图：</p>
<p><img src="https://static.didispace.com/images/pasted-700.png" alt=""></p>
<p>作者也提供了一个线上体验版，和上面的演示效果保持一致，感兴趣的小伙伴可以先在线体验一把，再决定要不要下载完整的项目代码进行学习研究。</p>
<p><img src="https://static.didispace.com/images/pasted-698.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-699.png" alt=""></p>
<p>TJ觉得这个工作台既适合那些想开发但是本身编码能力一般的小伙伴，因为上手简单；也适合那些以学习为目标，研究实现方式的大夥伴，毕竟不是每个低代码的工作平台都开源。所以想使用一下、想学习一下的伙伴们！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“低代码”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-700.png" type="image/png"/>
    </item>
    <item>
      <title>突然火爆的GitHub项目：12306</title>
      <link>https://spring.didispace.com/tj/tj-opensource-12306.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-12306.html</guid>
      <source url="https://spring.didispace.com/rss.xml">突然火爆的GitHub项目：12306</source>
      <description>突然火爆的GitHub项目：12306 大家好，我是TJ 最近有个很特别的开源项目突然火爆，项目名叫：12306，目前已经收获 31.7K Star！ 相信大家看到名字就知道是干嘛的了吧？也许是因为最近中秋和国庆的原因吧，大家对12306的需求很大。所以，作为程序员而言，能靠机器完成的绝不用手干嘛！ 如果刚好读到本篇文章也有需要的话，可以尝试一下，满足一下自己的需求。但注意，这个可不能用于商业目的哦～ 当然了，如果作为一个学习项目也是非常不错的，对于日常业务场景，有一些自动化需求的话，也是非常值得学习的。</description>
      <category>开源推荐</category>
      <pubDate>Wed, 20 Sep 2023 17:10:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 突然火爆的GitHub项目：12306</h1>
<p>大家好，我是TJ</p>
<p>最近有个很特别的开源项目突然火爆，项目名叫：<a href="./tj-opensource-12306"><strong>12306</strong></a>，目前已经收获 31.7K Star！</p>
<p>相信大家看到名字就知道是干嘛的了吧？也许是因为最近中秋和国庆的原因吧，大家对12306的需求很大。所以，作为程序员而言，能靠机器完成的绝不用手干嘛！</p>
<p>如果刚好读到本篇文章也有需要的话，可以尝试一下，满足一下自己的需求。但注意，这个可不能用于商业目的哦～</p>
<p>当然了，如果作为一个学习项目也是非常不错的，对于日常业务场景，有一些自动化需求的话，也是非常值得学习的。</p>
<p>从开源项目给出的思路图，就可以看到核心流程：</p>
<p><img src="https://static.didispace.com/images3/7d8527c8d2b1ff5aa9e8bff58159aba6.png" alt="思路图"></p>
<p>项目目录也对了很详细的说明：</p>
<ul>
<li>agency - cdn代理</li>
<li>config - 项目配置</li>
<li>verify - 自动打码</li>
<li>init - 项目主运行目录</li>
<li>inter - 接口</li>
<li>myException - 异常</li>
<li>myUrllib request网络请求库</li>
</ul>
<p>所以，阅读学习或者二次开发，都不会太费劲吧。</p>
<p>这次的内容稍微有点敏感，就不直接放地址了，感兴趣的小伙伴可以<strong>扫描下方二维码，关注公众号“TJ君”，回复“12306”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/7d8527c8d2b1ff5aa9e8bff58159aba6.png" type="image/png"/>
    </item>
    <item>
      <title>13KB的代码能做什么？有些人可是弄出了一个完整的游戏！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-13kbcode.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-13kbcode.html</guid>
      <source url="https://spring.didispace.com/rss.xml">13KB的代码能做什么？有些人可是弄出了一个完整的游戏！</source>
      <description>这年头一个程序猿自己开发个小游戏已经不是啥稀罕事，前两天有一个好朋友给TJ君介绍了一款游戏，像素级的，通过键盘操作，有简单的武器系统及多人模式，看上去也算满精致的，TJ君先放一段自己试玩的动图给大伙瞅瞅： 这款可爱游戏的名字叫做Space Huggers，游戏有不同的关卡，不同的士兵及对应的攻击效果，整体感觉呢是中规中矩，小伙伴们肯定要奇怪了，难道今天TJ君要推荐的就是这款游戏吗？好像。。。太平平无奇了点吧。</description>
      <category>开源推荐</category>
      <pubDate>Tue, 16 Nov 2021 13:59:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>这年头一个程序猿自己开发个小游戏已经不是啥稀罕事，前两天有一个好朋友给TJ君介绍了一款游戏，像素级的，通过键盘操作，有简单的武器系统及多人模式，看上去也算满精致的，TJ君先放一段自己试玩的动图给大伙瞅瞅：</p>
<p><img src="https://static.didispace.com/images/pasted-688.png" alt=""></p>
<p>这款可爱游戏的名字叫做<strong>Space Huggers</strong>，游戏有不同的关卡，不同的士兵及对应的攻击效果，整体感觉呢是中规中矩，小伙伴们肯定要奇怪了，难道今天TJ君要推荐的就是这款游戏吗？好像。。。太平平无奇了点吧。</p>
<p>的确，这款游戏估计对于一些资深的程序猿来说并不是很难得事情，但这款游戏的特点是在于<strong>他的大小</strong>！</p>
<p>你敢想象这款看上去基本游戏功能都完备的游戏，<strong>整体容量只有13KB吗？</strong></p>
<p><img src="https://static.didispace.com/images/pasted-689.png" alt=""></p>
<p>对的你没看错，是<strong>13KB</strong>，不是MB不是GB，是KB！</p>
<p>现在的游戏随着技术的发展动不动就是几十G，前段时间的仙剑7，TJ君买了一个，安装完大概70G的容量吧。</p>
<p><img src="https://static.didispace.com/images/pasted-690.png" alt=""></p>
<p>虽然说是像素级别的游戏，但是往往也是几百几十MB，13KB？小伙伴们你们多久没下载一张只有13KB的图片了？更别提这13KB里面要完成各种音效、物理效果、重力系统、敌人系统、生命系统，让玩家还能玩的津津有味？</p>
<p><img src="https://static.didispace.com/images/pasted-691.png" alt=""></p>
<p>网上常看到有人说 贫穷限制了我的想象力，TJ君只想说<strong>技术限制了我的想象力。。。</strong></p>
<p><img src="https://static.didispace.com/images/pasted-692.png" alt=""></p>
<p>毕竟自己做不到不代表别人做不到，对吧？像这样只有13KB大小却能好好玩一番的游戏不止这一个，小伙伴们肯定要奇怪了，怎么大伙都说好了吗？看谁的游戏做的更小？</p>
<p><img src="https://static.didispace.com/images/pasted-693.png" alt=""></p>
<p>这么想的小伙伴，恭喜你答对了！其实上面这款游戏来自于2021Js13kGames大赛，这个大赛每年都会举办一次，至今已经举办了10次，参赛要求很简单，<strong>只要你能在规定时间内用JavaScript做出一款不大于13KB的HTML游戏即可！</strong></p>
<p><img src="https://static.didispace.com/images/pasted-694.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-695.png" alt=""></p>
<p>嗯嗯，上面这个看着还不错的游戏，可是全都是用JavaScript写的哦！想想自己的JavaScript水平，写出来的东西的效果及大小，再看看别人家的，TJ君真是无地自容。。。</p>
<p><img src="https://static.didispace.com/images/pasted-696.png" alt=""></p>
<p>关于这个大赛，TJ君觉得难点就在于游戏的大小，举办者肯定也是希望参赛者能挑战自己的极限，把大小定在13KB这样一个上世纪的大小，要知道，一个FC游戏的ROM，可能都要比这个大，看看FC上超级马里奥大小：</p>
<p><img src="https://static.didispace.com/images/pasted-697.png" alt=""></p>
<p>所以对于参赛者来说，也是对自身开发水平的一次极致提炼，TJ君看下来，参赛者往往在以下几个方面进行游戏体积的压缩：</p>
<h3> 画面</h3>
<p>首当其中的，肯定就是游戏画面了，13KB的游戏，基本都是像素或者简单的图片组成的游戏了，比如参赛者会用一些在线的像素图像制造工具，制造自己需要的素材。</p>
<h3> 声音</h3>
<p>画面之后，自然是对声音的处理，一个没有背景音效的游戏难以被称之为一个好的游戏，但是如果需要各种音轨又会徒增游戏的容量，所以同样的，参赛者会找一些可以在线生成简单音效并转化为JavaScript语言的工具，尽量让自己的作品的音效简单而又好听。</p>
<h3> 引擎</h3>
<p>解决了画面和声音之后，就要考虑游戏引擎的问题了，所幸业界专门有一些轻量级的注重小体积的游戏引擎，能满足游戏世界基本的使用需要</p>
<p>除了上述这些方面，开发者还需要关注自己的代码有没有换行之类无用的代码内容，毕竟在13KB面前，要节省一切能节省的空间。</p>
<p>看完这些令人乍舌的方方面面，TJ君也对自己平时编码过程中一些习惯进行了思考，或许在我们平常的开发过程中，对于空间的损耗不需要像这些开发者这样极致的节省，但TJ君觉得平时编写的代码中可以改进的地方还是有不少的。</p>
<p>想更多的了解下这款游戏的源码，想看下到底13KB包含了哪些代码语句的，或者想知道更多其他13KB游戏吗？</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“13KB”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-688.png" type="image/png"/>
    </item>
    <item>
      <title>开源Redis可视化客户端工具，用过的人都说好看又好用！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-AnotherRedisDesktopManager.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-AnotherRedisDesktopManager.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开源Redis可视化客户端工具，用过的人都说好看又好用！</source>
      <description>自从Redis面世以来，作为一个开源的高性能的key-value型数据库，很大程度的对关系型数据库起到很好的补充作用。 Redis实现简单，功能齐全，已经成为了业界最常用的组件之一。为了更方便的使用，衍生出一系列的可视化工具，像是redis desktop manager、medis、fastoredis、redis clent等等等等，各花各草入各眼，每个人都有自己喜欢的风格，但是往往这些工具可能在界面UI方面还是有待提高，有些甚至还要收费。 今天小编就想和大家分享一款帅气、好看同时功能强大的开源Redis客户端工具，或许就能成为你喜欢的那朵花那棵草。</description>
      <category>开源推荐</category>
      <pubDate>Tue, 21 Sep 2021 01:13:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>自从Redis面世以来，作为一个开源的高性能的key-value型数据库，很大程度的对关系型数据库起到很好的补充作用。</p>
<p>Redis实现简单，功能齐全，已经成为了业界最常用的组件之一。为了更方便的使用，衍生出一系列的可视化工具，像是redis desktop manager、medis、fastoredis、redis clent等等等等，各花各草入各眼，每个人都有自己喜欢的风格，但是往往这些工具可能在界面UI方面还是有待提高，有些甚至还要收费。</p>
<p>今天小编就想和大家分享一款帅气、好看同时功能强大的开源Redis客户端工具，或许就能成为你喜欢的那朵花那棵草。</p>
<h2> AnotherRedisDesktopManager</h2>
<p>一款，更快、更好、更稳定的redis桌面管理客户端工具，与Linux、Windows和Mac三大平台完美兼容。</p>
<p>小编先给大家演示下其页面风格，喜欢暗黑风格的小伙伴一定喜欢不已，整体页面简洁而不失严谨。</p>
<p><img src="https://static.didispace.com/images/pasted-569.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-570.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-571.png" alt=""></p>
<p>难能可贵的是，作者一直在更新完善工具的各种功能，基本不上1-2个月就会有一次更新，如果遇上作者勤快的时候一个月就更新多次。</p>
<p>我们看下光今年以来更新的新内容有哪些：</p>
<ul>
<li>2021-08-30: 支持执行日志、添加热键</li>
<li>2021-08-16: 支持自定义格式化程序视图</li>
<li>2021-06-30: 支持Sentinel</li>
<li>2021-06-24: 支持ACL</li>
<li>2021-05-03: 支持流和Cli命令提示</li>
<li>2021-02-28: 支持连接颜色标记和搜索历史记录</li>
<li>2021-02-03: 支持批量选中及批量删除、Msgpack查看器</li>
</ul>
<p>那各个平台如何使用这个工具呢？</p>
<p>很简单，如果是Linux 或者 Mac平台，只需要clone仓库地址到本地，然后：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>不过linux用户要注意，会有一些常见问题，解决方法如下：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>对于windows用户，也是先clone仓库地址到本地，然后：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>最后Build Package就可以使用了</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>如果一直没有特别称手的Redis工具，不妨来试试这款AnotherRedisDesktopManager，或许能让你满意，或许能让你加快效率，或许...没那么多或许啦，先试试看吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“Redis”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-569.png" type="image/png"/>
    </item>
    <item>
      <title>一款可以完整保留排版的PDF翻译：GitHub增长第一、可私有化部署</title>
      <link>https://spring.didispace.com/tj/tj-opensource-PDFMathTranslate.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-PDFMathTranslate.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款可以完整保留排版的PDF翻译：GitHub增长第一、可私有化部署</source>
      <description>一款可以完整保留排版的PDF翻译：GitHub增长第一、可私有化部署 最近看论文较多，顺手给大家推荐一个用下来觉得不错的开源PDF翻译工具：PDFMathTranslate 目前这款开源项目在GitHub上已经收获了7.6K Star，而且由于一直处于增长趋势榜第一的位置，预计未来还会持续增长许多。 PDFMathTranslate 简介</description>
      <category>工具推荐</category>
      <category>开源推荐</category>
      <pubDate>Mon, 16 Dec 2024 15:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 一款可以完整保留排版的PDF翻译：GitHub增长第一、可私有化部署</h1>
<p>最近看论文较多，顺手给大家推荐一个用下来觉得不错的开源PDF翻译工具：PDFMathTranslate</p>
<p>目前这款开源项目在GitHub上已经收获了7.6K Star，而且由于一直处于增长趋势榜第一的位置，预计未来还会持续增长许多。</p>
<h2> PDFMathTranslate 简介</h2>
<p><img src="https://static.didispace.com/images3/0925f53f43d046d117c83e1ae9270518.png" alt=""></p>
<p>开源项目地址：https://github.com/Byaidu/PDFMathTranslate</p>
<p>对于PDFMathTranslate这款PDF翻译工具，较其他PDF翻译最大的亮点是能够保留原始排版，其中包括：公式、图表、目录以及批注。所以，对于看一些专业论文、数据分析等相关PDF文档来说是最佳选择。</p>
<p>此外，PDFMathTranslate 还有其他不错的特点，包括：</p>
<ul>
<li>支持多种语言的翻译</li>
<li>可接入多种不同的翻译服务，具体如下：</li>
</ul>
<p><img src="https://static.didispace.com/images3/612c9d9a9217f98ca05f2116ee5d6e8c.png" alt=""></p>
<h2> PDFMathTranslate 快速上手</h2>
<h3> 命令行方式</h3>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3> Docker安装部署</h3>
<p>拉去镜像和Docker部署：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>部署完成后，就可以通过浏览器查看了，访问地址：http://localhost:7860/</p>
<p>有NAS或者服务器的，也可以直接部署在自己环境来使用。</p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/0925f53f43d046d117c83e1ae9270518.png" type="image/png"/>
    </item>
    <item>
      <title>Notion的开源替代方案：AFFiNE</title>
      <link>https://spring.didispace.com/tj/tj-opensource-affine.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-affine.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Notion的开源替代方案：AFFiNE</source>
      <description>Notion这款笔记软件相信很多开发者都比较熟悉了，很多读者，包括我自己都用它来记录和管理自己的笔记。今天给大家推荐一个最近比较火的开源替代方案：AFFiNE。目前该开源项目已经斩获20.1K Star，热度非常的高，下面一起来认识一下这个继Notion之后，被热捧的开源软件吧。 通过官方首页的介绍，我们可以知道，AFFiNE是一款集写作、绘画、计划管理与一体的软件。对标的是Notion、Miro、Monday这些热门当下热门的笔记软件。</description>
      <category>开源推荐</category>
      <pubDate>Sun, 23 Jul 2023 17:06:38 GMT</pubDate>
      <content:encoded><![CDATA[<p>Notion这款笔记软件相信很多开发者都比较熟悉了，很多读者，包括我自己都用它来记录和管理自己的笔记。今天给大家推荐一个最近比较火的开源替代方案：AFFiNE。目前该开源项目已经斩获20.1K Star，热度非常的高，下面一起来认识一下这个继Notion之后，被热捧的开源软件吧。</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-affine/1690132794029.png" alt=""></p>
<p>通过官方首页的介绍，我们可以知道，AFFiNE是一款集写作、绘画、计划管理与一体的软件。对标的是Notion、Miro、Monday这些热门当下热门的笔记软件。</p>
<h2> 功能特性</h2>
<p>TJ下载了最新版本，体验了一下AFFiNE，下面几个特性可以说眼前一亮，非常好用！</p>
<ol>
<li>简洁易上手的UI，这个不用多介绍，看界面就相信你能快速上手使用</li>
</ol>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-affine/1690133446114.png" alt=""></p>
<ol start="2">
<li>白板和文档的超融合，你可以在你的文档笔记中，像白板一样轻松的涂涂画画</li>
</ol>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-affine/1690133272110.png" alt=""></p>
<ol start="3">
<li>直观且强大的块级编辑</li>
</ol>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-affine/1690133385701.png" alt=""></p>
<h2> 价格体系</h2>
<p>AFFiNE同大部分热门开源软件一样，采用了社区版免费的策略。</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-affine/1690132324607.png" alt=""></p>
<p>AFFiNE对于免费用户来说提供以下支持：</p>
<ul>
<li>支持离线使用</li>
<li>支持跨设备的点对点同步</li>
<li>支持有限的云存储备份</li>
</ul>
<p>对于个人用户来说，这些功能已经完全够了。而专业版、团队版和企业版主要提供一些团队协作管理所需要的能力，比如：</p>
<ul>
<li>基于AFFiNE Cloud的实时同步、协作和备份</li>
<li>基于AI Copilot的增强创意和知识管理</li>
<li>Web发布权限管理</li>
<li>工作空间等管理上需要的能力</li>
<li>...</li>
</ul>
<h2> 相关链接</h2>
<ul>
<li>开源地址：https://github.com/toeverything/AFFiNE</li>
<li>官方网站：https://affine.pro/</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-affine/1690132794029.png" type="image/png"/>
    </item>
    <item>
      <title>效率神器！浏览器自动化操作插件：Automa</title>
      <link>https://spring.didispace.com/tj/tj-opensource-automa.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-automa.html</guid>
      <source url="https://spring.didispace.com/rss.xml">效率神器！浏览器自动化操作插件：Automa</source>
      <description>相信很多小伙伴跟我一样，每天都有大量基于浏览器的重复操作，比如：查看任务、查看新闻、查看各种每天要关注的内容，甚至可能还需要对其做一些操作。那么这些任务是否有办法自动化执行呢？ 今天就给大家推荐一个浏览器扩展程序：Automa。Automa是一个开源的浏览器扩展，它可以基于浏览器来执行一些自动化操作。比如，我们可以用它来自动填写表单、执行重复任务、截取网页截图以及抓取网站数据等操作。 从管理界面来直观的认识一下它：</description>
      <category>开源推荐</category>
      <pubDate>Sun, 30 Jul 2023 17:32:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>相信很多小伙伴跟我一样，每天都有大量基于浏览器的重复操作，比如：查看任务、查看新闻、查看各种每天要关注的内容，甚至可能还需要对其做一些操作。那么这些任务是否有办法自动化执行呢？</p>
<p>今天就给大家推荐一个浏览器扩展程序：<strong>Automa</strong>。Automa是一个开源的浏览器扩展，它可以基于浏览器来执行一些自动化操作。比如，我们可以用它来自动填写表单、执行重复任务、截取网页截图以及抓取网站数据等操作。</p>
<p>从管理界面来直观的认识一下它：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-automa/1690738596582.png" alt="定制工作流"></p>
<p>可以看到<strong>Automa</strong>提供了一个直观的拖拽界面，帮助用户来定制自己的操作流程。从图中，我们可以看到<strong>Automa</strong>中包含了所有在浏览器中包含的操作。</p>
<p>在定义完浏览器中的工作流之后，我们还可以通过触发器来设置工作里的执行规则，比如，我们可以让他每天执行、每周执行等自定义的规则：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-automa/1690738788032.png" alt="定制执行触发器"></p>
<p>如果你当下还没啥灵感的话，也可以浏览一下<strong>Automa</strong>的工作流市场，这里已经有大量的可用工作流供你直接下载使用：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-automa/1690738863080.png" alt="工作流市场"></p>
<p>里面还有很多有趣的内容，这里TJ君就不一一列举了，感兴趣的不妨一起来探索一下吧！</p>
<p>最后，奉上相关地址：</p>
<ul>
<li>官方网站：https://www.automa.site/</li>
<li>开源地址：https://github.com/AutomaApp/automa</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-automa/1690738596582.png" type="image/png"/>
    </item>
    <item>
      <title>B站API接口大合集！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-bilibili-api-collect.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-bilibili-api-collect.html</guid>
      <source url="https://spring.didispace.com/rss.xml">B站API接口大合集！</source>
      <description>B站一定是各位小伙伴平日喜欢浏览的网站之一，各种鬼畜视频、教育材料、五花八门、精彩绝伦，同时B站还有各种功能丰富的API接口开放给大家使用。 但是有些东西一旦放开了，就会出现各种各样的非官方衍生品，就像B站的API接口，传播开来变成了散落在世界各地的各个角落的各种野生API，想要整理收集归类这些API似乎是一个不可能的任务。 但是就是有人喜欢知难而上，TJ君今天要给大家分享的就是这样一个项目</description>
      <category>开源推荐</category>
      <pubDate>Thu, 18 Nov 2021 12:28:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>B站一定是各位小伙伴平日喜欢浏览的网站之一，各种鬼畜视频、教育材料、五花八门、精彩绝伦，同时B站还有各种功能丰富的API接口开放给大家使用。</p>
<p><img src="https://static.didispace.com/images/pasted-706.png" alt="Bilibili Open API"></p>
<p>但是有些东西一旦放开了，就会出现各种各样的非官方衍生品，就像B站的API接口，传播开来变成了散落在世界各地的各个角落的各种野生API，想要整理收集归类这些API似乎是一个不可能的任务。</p>
<p>但是就是有人喜欢知难而上，TJ君今天要给大家分享的就是这样一个项目</p>
<h1> bilibili-API-collect</h1>
<p>项目旨在收集整理B站web端、移动端以及TV端存在的各种API，并研究具体的使用方法，给出详细的使用说明，方便用户进行查阅。</p>
<p>截止TJ君写稿子的时候，项目组用到的研究方法有：</p>
<ul>
<li>黑箱法</li>
<li>控制变量法</li>
<li>js逆向分析法</li>
<li>apk拆包及反编译法</li>
<li>网络抓包法</li>
<li>.....</li>
</ul>
<p>这里需要提示大家的是：</p>
<blockquote>
<p>所有api均为标准http协议，返回数据大都为json或protobuf。地址都可以使用https，文档中只是为了统一写成http。</p>
</blockquote>
<p>同时，项目组提醒大家：</p>
<blockquote>
<p>本项目开源，所有代码仅用于学习和测试！仅用于学习和测试！仅用于学习和测试！</p>
</blockquote>
<p>我们来看下目前已经整理好的API接口目录，图中✔的表示已经完全整理好，打×的则是表示仍在整理中，可能未来一段时间内可以整理完。</p>
<p><img src="https://static.didispace.com/images/pasted-707.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-708.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-709.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-710.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-711.png" alt=""></p>
<p>TJ君觉得这个项目对于喜欢调用B站API接口的小伙伴绝对是一个利器，喜欢的记得来获取项目地址哦！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“B站接口”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-706.png" type="image/png"/>
    </item>
    <item>
      <title>一个让代码变得超好看的开源工具</title>
      <link>https://spring.didispace.com/tj/tj-opensource-carbon.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-carbon.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个让代码变得超好看的开源工具</source>
      <description>今天遇到一个小伙伴，他给TJ君提了一个小小的建议，如何让代码变得好看 这里指的好看，不是说代码的编写风格，而是指平时TJ君给大家分享项目的时候如何让展示的代码显得好看，是真的字面意思上的好看哦！ 小伙伴的意思是，无论在CSDN、博客园、掘金（TJ君在这些地方都有账号，可以一起关注哦），这些分享开源项目的地方，展示的代码都是这个样子的： 虽然实用但是不够美观，他心目中觉得好看的、眼前一亮、让人舒服的代码是这样的：</description>
      <category>开源推荐</category>
      <pubDate>Fri, 24 Dec 2021 15:28:44 GMT</pubDate>
      <content:encoded><![CDATA[<p>今天遇到一个小伙伴，他给TJ君提了一个小小的建议，如何让代码变得好看</p>
<p>这里指的好看，不是说代码的编写风格，而是指平时TJ君给大家分享项目的时候如何让展示的代码显得好看，是真的字面意思上的好看哦！</p>
<p>小伙伴的意思是，无论在CSDN、博客园、掘金（TJ君在这些地方都有账号，可以一起关注哦），这些分享开源项目的地方，展示的代码都是这个样子的：</p>
<p><img src="https://static.didispace.com/images/pasted-810.png" alt=""></p>
<p>虽然实用但是不够美观，他心目中觉得好看的、眼前一亮、让人舒服的代码是这样的：</p>
<p><img src="https://static.didispace.com/images/pasted-811.png" alt=""></p>
<p>好吧，之前TJ君是更多的考虑实际运用层级而忽略了美观这一点，所以这就是今天TJ君要和大家分享的项目，carbon</p>
<p><img src="https://static.didispace.com/images/pasted-812.png" alt=""></p>
<p>对于经常和大家分享代码的小伙伴来说，carbon可以成为你的好帮手。</p>
<p>carbon是一款将代码转变为优美图案的开源项目，没错上面你看到的特别好看的代码是一副图片哦，想直接拷贝里面内容的话，还是要找源码哦。</p>
<p>抛开这一拷贝使用上的不便，carbon转换出来的美化效果还是杠杠滴。</p>
<h2> 主要特点</h2>
<p>carbon的主要特性有三点：</p>
<ol>
<li>定制化，可以定制化图片中的语法主题、背景颜色、展示样式</li>
<li>快速分享，可以一键快速生成图片并分享</li>
<li>方便导入，可以在 url 后面加上 GitHub gist id直接从GitHub gist 导入</li>
</ol>
<h2> 如何使用</h2>
<p>对于如何将代码导入到 Carbon的使用方法也有三个：</p>
<ol>
<li>把文件直接拖放到编辑器中</li>
<li>在 carbon url 后面添加 GitHub gist id （例如 carbon.now.sh/&lt;你的_gist_id&gt;）</li>
<li>直接粘贴代码</li>
</ol>
<p>我准备先试一试，如果过几天你发现TJ君的分享代码一下子变得优雅好看了，千万不要惊奇哦，你也可以一样，快来下载试试吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“好看的代码”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-810.png" type="image/png"/>
    </item>
    <item>
      <title>腾讯开源的Markdown编辑器，开箱即用、轻量简洁、易扩展</title>
      <link>https://spring.didispace.com/tj/tj-opensource-cherry-markdown-editor.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-cherry-markdown-editor.html</guid>
      <source url="https://spring.didispace.com/rss.xml">腾讯开源的Markdown编辑器，开箱即用、轻量简洁、易扩展</source>
      <description>Markdown是我们开发者最为热爱的文本格式，自从爱上Markdown之后，我们的笔记、博客、留言等都希望有Markdown的支持。所以，Markdown编辑器已经是前端非常重要的一个组件了。 之前有推荐过一些开源的Markdown编辑器，今天继续推荐一个由腾讯开源的Markdown编辑器：Cherry Markdown Editor</description>
      <category>开源推荐</category>
      <pubDate>Thu, 13 Jul 2023 17:40:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Markdown是我们开发者最为热爱的文本格式，自从爱上Markdown之后，我们的笔记、博客、留言等都希望有Markdown的支持。所以，Markdown编辑器已经是前端非常重要的一个组件了。</p>
<p>之前有推荐过一些开源的Markdown编辑器，今天继续推荐一个由腾讯开源的Markdown编辑器：<strong>Cherry Markdown Editor</strong></p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-cherry-markdown-editor/1689270040239.png" alt="图 0"></p>
<p>这款编辑器包含我们常见的码字模式：</p>
<ul>
<li>双栏编辑预览模式（左侧写、右侧预览）</li>
<li>纯预览模式</li>
<li>极简模式（无工具栏）</li>
<li>移动端预览模式</li>
</ul>
<p>而对于语法支持上，除了支持标准Markdown语法之后，还拥有以下特性：</p>
<ul>
<li>图片缩放、对齐、引用</li>
<li>根据表格内容生成图表</li>
</ul>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-cherry-markdown-editor/1689270049511.png" alt="图 1"></p>
<ul>
<li>支持流程图、状态图、UML图常见图形需求</li>
</ul>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-cherry-markdown-editor/1689270056997.png" alt="图 2"></p>
<ul>
<li>字体颜色、字体大小</li>
<li>字体背景颜色、上标、下标</li>
<li>Checklist</li>
<li>音视频</li>
</ul>
<p>基本已经可以满足大部分的文字编辑需求。</p>
<p>当然了，如果您想实现更多其他高级编辑器拥有的，诸如：数学公式等负责的语法特性功能，您也可以进一步扩展，因为<strong>Cherry Markdown Editor</strong>是开源的嘛！</p>
<p>最后，我们来一起看一下，这款编辑器的实际效果，具体如下图：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-cherry-markdown-editor/1689270066577.png" alt="图 3"></p>
<p>目前该开源项目已经斩获了1.8K Star，放在今日好像不是太多，但实属宝藏项目，如果您正好需要，感性收入囊中吧！</p>
<p>开源地址：https://github.com/Tencent/cherry-markdown/tree/main</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-cherry-markdown-editor/1689270040239.png" type="image/png"/>
    </item>
    <item>
      <title>把验证码做成射击游戏，这还是第一个</title>
      <link>https://spring.didispace.com/tj/tj-opensource-doomcaptcha.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-doomcaptcha.html</guid>
      <source url="https://spring.didispace.com/rss.xml">把验证码做成射击游戏，这还是第一个</source>
      <description>你见过哪些验证码？数字？图像？算数？拼图？ 这些都太普通了！能不能用游戏的方式做一款验证码呢？ 今天就给大家推荐一个开源项目：doomcaptcha doom，可能年轻点的小伙伴不清楚，但是在我小时候，doom及其制作小组都是神一样的存在，doom是当时最最流行的第一人称射击游戏，doom之父就是那位搞出快速平方根算法的约翰·卡马克。</description>
      <category>开源推荐</category>
      <pubDate>Thu, 16 Dec 2021 10:39:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>你见过哪些验证码？数字？图像？算数？拼图？</p>
<p>这些都太普通了！能不能用游戏的方式做一款验证码呢？</p>
<p>今天就给大家推荐一个开源项目：<strong>doomcaptcha</strong></p>
<p><img src="https://static.didispace.com/images/pasted-782.png" alt=""></p>
<p>doom，可能年轻点的小伙伴不清楚，但是在我小时候，doom及其制作小组都是神一样的存在，doom是当时最最流行的第一人称射击游戏，doom之父就是那位搞出快速平方根算法的<strong>约翰·卡马克。</strong></p>
<p>想必作者采用doom作为验证码的原型，也是一种致敬！</p>
<p>项目非常有创意的将验证码和初代doom游戏结合在了一起，如果要完成验证，就需要在页面上使用当年doom的那把手枪干掉四个随机出现的doom小怪物就行了。</p>
<p>不过如果你打的太慢，可是要不合格的哟，因为作者还加入了倒计时模式，要在规定的时间里打完四个小怪物哟！</p>
<blockquote>
<p>这里整理了一波超级好用的<a href="https://mp.weixin.qq.com/s/A1Qs0EHD_20j55a69fAU3w" target="_blank" rel="noopener noreferrer">IDEA插件，一定有你喜欢的！</a></p>
</blockquote>
<p>并且每一次出现的怪物和场景都是随机的，让你每一次输入验证码都是不一样的感受，真是让人欲罢不能！</p>
<p><img src="https://static.didispace.com/images/pasted-783.png" alt=""></p>
<p>有小伙伴说，自己都分不清这到底是验证码还是在玩游戏了，作者实现的代码也是非常简单不难。</p>
<p>感兴趣的小伙伴可以根据他的思路进行补充和优化！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“doom”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-782.png" type="image/png"/>
    </item>
    <item>
      <title>GitHub访问太慢？这个加速神器试试！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-fastgithub.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-fastgithub.html</guid>
      <source url="https://spring.didispace.com/rss.xml">GitHub访问太慢？这个加速神器试试！</source>
      <description>TJ君最近有点惆怅，为啥呢？最近TJ君发现GitHub越来越难上了，有时候经常出现无法访问的情况： 想必很多人也会跟TJ君有同样的烦恼，毕竟GitHub是一个学习编程的好地方，这样断断续续的使用，极度影响吾等程序猿的用户体验，那，该怎么办！？ 既然这是一个大家都会遇到的问题，TJ君觉得肯定有业界大神会帮大家想解决方案，果不其然，TJ君发动小宇宙找了一会，找到一个不错的GitHub开源加速工具，可以安全又顺畅的继续访问GitHub了！</description>
      <category>开源推荐</category>
      <pubDate>Mon, 18 Oct 2021 13:53:01 GMT</pubDate>
      <content:encoded><![CDATA[<p>TJ君最近有点惆怅，为啥呢？最近TJ君发现GitHub越来越难上了，有时候经常出现无法访问的情况：</p>
<p><img src="https://static.didispace.com/images/pasted-652.png" alt=""></p>
<p>想必很多人也会跟TJ君有同样的烦恼，毕竟GitHub是一个学习编程的好地方，这样断断续续的使用，极度影响吾等程序猿的用户体验，那，该怎么办！？</p>
<p>既然这是一个大家都会遇到的问题，TJ君觉得肯定有业界大神会帮大家想解决方案，果不其然，TJ君发动小宇宙找了一会，找到一个不错的GitHub开源加速工具，可以安全又顺畅的继续访问GitHub了！</p>
<h1> FastGithub</h1>
<p>一款GitHub加速利器，专门为解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题而诞生。</p>
<p>那究竟这款工具有多利器？TJ君举个例子，曾经TJ君的一个朋友对于找女友是这样筛选的：</p>
<table>
<thead>
<tr>
<th style="text-align:left">备选人员</th>
<th style="text-align:left">长腿</th>
<th style="text-align:left">大凶</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">美女1</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">NO</td>
</tr>
<tr>
<td style="text-align:left">美女2</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">YES</td>
</tr>
</tbody>
</table>
<p>通过简单的X宫格就可以显而易见的做出判断，而对于FastGithub，作者给出的看法通过X宫格形容就是：</p>
<table>
<thead>
<tr>
<th style="text-align:left">方案</th>
<th style="text-align:left">合法性</th>
<th style="text-align:left">可靠性</th>
<th style="text-align:left">完整性</th>
<th style="text-align:left">共享性</th>
<th style="text-align:left">无服务器</th>
<th style="text-align:left">免费</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">FastGithub</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
</tr>
<tr>
<td style="text-align:left">hosts文件</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
</tr>
<tr>
<td style="text-align:left">vpn代理</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">NO</td>
</tr>
<tr>
<td style="text-align:left">github镜像插件</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">NO</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
<td style="text-align:left">YES</td>
</tr>
</tbody>
</table>
<p>这里的各种方案是作者备选的用来加速登录GitHub的方法，其中各项宫格的解释分别是：</p>
<ul>
<li>合法性：指是否符合中华人民共和国的相关法律，并且没有违反任何相关法律；</li>
<li>可靠性：指是否能在使用之后稳定的、不间断的持续访问GitHub；</li>
<li>完整性：指是否能在查阅GitHub资源的同时可以满足提交给GitHub相应的资源，实现双向交互；</li>
<li>共享性：指是否在局域网范围内可以形成部署之后的共用模式；</li>
<li>无服务器：这个最直接的表述就是是否需要额外购买中转服务器的流量服务；</li>
<li>免费：字面意思，用户需不需要掏出大洋~</li>
</ul>
<p>从表格中，我们可以清晰的看到，FastGithub的得分是最高的，像其中大家最关心的应该是合法性吧，至少TJ君比较关注这点，对于这条合法性，作者也给出了比较详细的进一步解释用来打消大家的使用疑虑：</p>
<blockquote>
<p>《国际联网暂行规定》第六条规定：“计算机信息网络直接进行国际联网，必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。” FastGithub本地代理使用的都是“公用电信网提供的国际出入口信道”，从国外Github服务器到国内用户电脑上FastGithub程序的流量，使用的是正常流量通道，其间未对流量进行任何额外加密（仅有网页原有的TLS加密，区别于VPN的流量加密），而FastGithub获取到网页数据之后发生的整个代理过程完全在国内，不再适用国际互联网相关之规定。</p>
</blockquote>
<p>所以说大家是可以放心地使用FastGithub的。</p>
<p>FastGithub提供完整的开源代码让小伙伴们学习，也直接提供各个不同平台的直接安装程序，方便大家使用。</p>
<p><img src="https://static.didispace.com/images/pasted-654.png" alt=""></p>
<p>最新的一个安装版本是5天前发布的2.0.4版本，作者也是一直在更新相应的功能让工具变得更加强大。</p>
<p><img src="https://static.didispace.com/images/pasted-655.png" alt=""></p>
<p>以windows-x64版本为例，只需双击运行fastgithub.exe程序，就可以看到FastGithub启动成功的提示</p>
<p><img src="https://static.didispace.com/images/pasted-656.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-657.png" alt=""></p>
<p>当我访问下述地址时，也可以清楚地看到FastGithub的响应时间</p>
<p><img src="https://static.didispace.com/images/pasted-658.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-659.png" alt=""></p>
<p>其实仅就WINDOWS端的加速原理来说，可以用7个步骤来解释：</p>
<ul>
<li>客户端访问https://github.com</li>
<li>客户端向dns查询github.com的ip，FastGithub拦截dns数据包并伪造解析结果为127.0.0.1</li>
<li>客户端请求到FastGithub的https://127.0.0.1:443</li>
<li>FastGithub使用fastgithub.cer颁发服务器证书给客户端</li>
<li>FastGithub查询和计算github.com最快的ip</li>
<li>FastGithub与github.com进行无sni的tls连接</li>
<li>FastGithub将请求反向代理到https://github.com</li>
</ul>
<p>就是这么的简单，但是却是作者智慧的结晶，同时也大度的将这个结晶分享给了我们大家，所以大家以后有什么好东西，也记得要拿出来一起分享哦。</p>
<p>不管是想直接使用这款利器的、还是想研究相关代码是如何实现的小伙伴，赶紧下载吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“加速”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-652.png" type="image/png"/>
    </item>
    <item>
      <title>69.9K Star，最强开源内网穿透工具：frp</title>
      <link>https://spring.didispace.com/tj/tj-opensource-frp.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-frp.html</guid>
      <source url="https://spring.didispace.com/rss.xml">69.9K Star，最强开源内网穿透工具：frp</source>
      <description>大家好，我是TJ君 作为一名开发者，有很多场景需要用到内网穿透，比如：我们在接入一些大平台做第三方应用时，在本地开发微信公众号工具的时候需要让微信平台能否访问到本地提供的接口。除此之外，还有很多其他场景，也会用到，比如：把放在家里的NAS或服务器暴露到公网上，这样在外面的时候也可以随时随地的访问。 说到内网传统，TJ君第一个想到的是国内最早的一款知名软件：花生壳。但是今天不是要推荐它，而是要推荐一个更牛的开源项目：frp！该项目目前已经收获了69.9 K Star，在GitHub上获得了极大的认可！</description>
      <category>开源推荐</category>
      <pubDate>Thu, 03 Aug 2023 03:52:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君</p>
<p>作为一名开发者，有很多场景需要用到内网穿透，比如：我们在接入一些大平台做第三方应用时，在本地开发微信公众号工具的时候需要让微信平台能否访问到本地提供的接口。除此之外，还有很多其他场景，也会用到，比如：把放在家里的NAS或服务器暴露到公网上，这样在外面的时候也可以随时随地的访问。</p>
<p>说到内网传统，TJ君第一个想到的是国内最早的一款知名软件：花生壳。但是今天不是要推荐它，而是要推荐一个更牛的开源项目：frp！该项目目前已经收获了69.9 K Star，在GitHub上获得了极大的认可！</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-frp/1691035139220.png" alt=""></p>
<h2> 下载安装</h2>
<p>frp目前已经提供了大部分操作系统的支持版本，通过这个链接：https://github.com/fatedier/frp/releases， 就可以下载到适合你使用的安装。</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-frp/1691035859920.png" alt="图 1"></p>
<p>以Windows的包为例，解压后可以获得这些内容：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-frp/1691036111475.png" alt="图 2"></p>
<p>frps是服务端程序，frpc是客户端程序。ini文件就是对应的配置文件。</p>
<h2> 暴露内网服务</h2>
<p>内网穿透的玩法有很多，这里列举一个比较常见的例子。</p>
<p>比如：我要暴露一个只有自己能访问到服务器。那么可以这样配置：</p>
<p>配置 frps.ini，并启动服务端 frps</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>在需要暴露到外网的机器上部署 frpc，配置如下：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>在想要访问内网服务的机器上也部署 frpc，配置如下：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>把frpc也都启动起来之后，通过 SSH 就可以访问内网机器了</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2> 其他支持</h2>
<p>除了上面的玩法之外，frp还有很多玩法，比如：</p>
<ul>
<li>自定义域名访问内网的 Web 服务</li>
<li>转发 DNS 查询请求</li>
<li>转发 Unix 域套接字</li>
<li>对外提供简单的文件访问服务</li>
<li>为本地 HTTP 服务启用 HTTPS</li>
<li>点对点内网穿透</li>
</ul>
<p>篇幅有限，具体如何配置这里就不多说了，有需要的读者可以直接查看官方文档，均有详细的服务端客户端配置案例。</p>
<p>最后，奉上相关链接：</p>
<p>开源地址：https://github.com/fatedier/frp/
文档地址：https://gofrp.org/docs/</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-opensource-frp/1691035139220.png" type="image/png"/>
    </item>
    <item>
      <title>新版GitHub桌面客户端，更方便地管理你的开源项目！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-github-desktop.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-github-desktop.html</guid>
      <source url="https://spring.didispace.com/rss.xml">新版GitHub桌面客户端，更方便地管理你的开源项目！</source>
      <description>今天给大家推荐一个桌面工具：GitHub Desktop 看名字就知道，这是一个GitHub的客户端程序，但这个是新版的客户端，相信很多小伙伴还没有用过。该版本的GitHub Desktop要比之前的更加强大，因为该版本的目标是：无论您是Git新手还是经验丰富的用户，GitHub Desktop都可以简化您的开发工作流程！</description>
      <category>工具推荐</category>
      <pubDate>Wed, 12 Jul 2023 01:14:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>今天给大家推荐一个桌面工具：<strong>GitHub Desktop</strong></p>
<p>看名字就知道，这是一个GitHub的客户端程序，但这个是新版的客户端，相信很多小伙伴还没有用过。该版本的GitHub Desktop要比之前的更加强大，因为该版本的目标是：无论您是Git新手还是经验丰富的用户，GitHub Desktop都可以简化您的开发工作流程！</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-github-desktop/1689095773340.png" alt=""></p>
<p>通过使用GitHub Desktop可以让你：</p>
<ol>
<li>更轻松的与协作者一起提交代码</li>
</ol>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-github-desktop/1689095801163.png" alt=""></p>
<p>使用客户端程序，可以快速的添加协作者到您的commit中。这个小功能可以帮助你在提交代码的时候，给那些帮助过你的协作者们表达感谢。同时，在Commit历史页面上，大家也可以看到这些协作者的信息：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-github-desktop/1689095818809.png" alt=""></p>
<ol start="2">
<li>更方便地检出PR分支和查看CI状态</li>
</ol>
<p>通过客户端程序，用户可以看到所有的PR，并且可以方便地检出分支到本地。同时，还能当PR通过的时候，还能查看CI状态。</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-github-desktop/1689095825513.png" alt=""></p>
<ol start="3">
<li>高亮查看文件差异</li>
</ol>
<p>新版GitHub桌面支持在查看各种不同语言的差异时突出显示语法。</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-github-desktop/1689095832349.png" alt=""></p>
<p>是不是跃跃欲试了呢？那就通过下面的链接快来试试吧：</p>
<ul>
<li>官方网站：https://desktop.github.com/</li>
<li>开源地址：https://github.com/desktop/desktop</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-github-desktop/1689095773340.png" type="image/png"/>
    </item>
    <item>
      <title>一款不错的数据可视化开源项目</title>
      <link>https://spring.didispace.com/tj/tj-opensource-goview.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-goview.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款不错的数据可视化开源项目</source>
      <description>今天给大家推荐一个可以帮助我们轻松构建数据可视化的开源项目：GoView GoView是一个Vue3搭建的低代码数据可视化开发平台，将图表或页面元素封装为基础组件，无需编写代码即可完成业务需求。 该开源项目涉及的技术栈 Vue3 TypeScript4 Vite2 NaiveUI ECharts5 Axios Pinia2 PlopJS 下面我们通过官方提供的演示地址：https://vue.mtruning.club/ （或者：https://demo.mtruning.club/）， 来一起感受下GoView的强大能力：</description>
      <category>开源推荐</category>
      <pubDate>Sat, 08 Jul 2023 11:15:23 GMT</pubDate>
      <content:encoded><![CDATA[<p>今天给大家推荐一个可以帮助我们轻松构建数据可视化的开源项目：GoView</p>
<p>GoView是一个Vue3搭建的低代码数据可视化开发平台，将图表或页面元素封装为基础组件，无需编写代码即可完成业务需求。</p>
<p>该开源项目涉及的技术栈</p>
<ul>
<li>Vue3</li>
<li>TypeScript4</li>
<li>Vite2</li>
<li>NaiveUI</li>
<li>ECharts5</li>
<li>Axios</li>
<li>Pinia2</li>
<li>PlopJS</li>
</ul>
<p>下面我们通过官方提供的演示地址：https://vue.mtruning.club/ （或者：https://demo.mtruning.club/）， 来一起感受下GoView的强大能力：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-goview/1688786540250.png" alt="didispace.com"></p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-goview/1688786563554.png" alt="didispace.com"></p>
<p>从工作空间的左侧工具栏中可以看到，对于常用的各种图表，GoView均有支持，可以应对大家大部分的数据展示需求。</p>
<p>很多时候，大家都会吐槽国产开源项目的文档非常不好，所以开源项目也不那么好用。GoView的话出了项目本身做的不错，文档也是完全没有落下，对于开源项目的设计介绍，功能使用和开发指南均都详细的介绍：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-goview/1688786571749.png" alt="didispace.com"></p>
<p>文档地址：https://www.mtruning.club/guide/start/</p>
<p>如果通过上面的介绍你觉得GoView功能不错，想要上手的话，可以进一步访问项目地址：https://gitee.com/dromara/go-view，了解更多。</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-goview/1688786540250.png" type="image/png"/>
    </item>
    <item>
      <title>Java能写游戏吗？这个开源塔防了解一下！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-java-games-tafang.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-java-games-tafang.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Java能写游戏吗？这个开源塔防了解一下！</source>
      <description>今天TJ君学到一个新名词 电子游戏阳痿，是指： 作为一个曾经爱玩游戏的人，在时间充裕、精力良好的状态下，依然不能把注意力集中在游戏上，已经失去了享受游戏的乐趣 TJ君看了看自己，似乎就是这个症状，毕竟现在更多的精力都放在了编程和学习上，不做点什么总觉得心里慌慌。 不过即使不再想玩太多的游戏，TJ君骨子里还是对游戏有一股热爱，所以今天就想来跟大家分享一个用JAVA写的塔防游戏~</description>
      <category>开源推荐</category>
      <pubDate>Thu, 18 Nov 2021 12:16:00 GMT</pubDate>
      <content:encoded><![CDATA[<p><img src="https://static.didispace.com/images/pasted-701.png" alt="Mindustry"></p>
<p>今天TJ君学到一个新名词 <strong>电子游戏阳痿</strong>，是指：</p>
<blockquote>
<p>作为一个曾经爱玩游戏的人，在时间充裕、精力良好的状态下，依然不能把注意力集中在游戏上，已经失去了享受游戏的乐趣</p>
</blockquote>
<p>TJ君看了看自己，似乎就是这个症状，毕竟现在更多的精力都放在了编程和学习上，不做点什么总觉得心里慌慌。</p>
<p>不过即使不再想玩太多的游戏，TJ君骨子里还是对游戏有一股热爱，所以今天就想来跟大家分享一个用JAVA写的塔防游戏~</p>
<h1> Mindustry</h1>
<p><img src="https://static.didispace.com/images/pasted-702.png" alt="Mindustry"></p>
<p>作为一款塔防游戏，Mindustry的各种设置中规中矩，玩家需要建造完善的传送带防御矩阵，用来给防御塔提供弹药，生产更多的材料，保护自己的家园，隐隐约更多的是考验玩家的资源管理能力。</p>
<p>游戏的实际运行展示效果看上去也是非常舒服，作为一款塔防，还有迷雾效果。玩到后期满屏幕的建筑，实在是需要良好的逻辑运算能力才能搞定，幸好程序猿们这方面都是很强滴！</p>
<p><img src="https://static.didispace.com/images/pasted-703.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-704.png" alt=""></p>
<p>需要要注意的是，如果想自己编译游戏，需要JDK 16-17的版本，其他版本暂不支持。</p>
<p>游戏支持windows、mac、linux各种不同的平台，启动方式如下：</p>
<p><strong>Windows</strong></p>
<ul>
<li>Running: gradlew desktop:run</li>
<li>Building: gradlew desktop:dist</li>
<li>Sprite Packing: gradlew tools:pack</li>
</ul>
<p><strong>Linux/Mac OS</strong></p>
<ul>
<li>Running: ./gradlew desktop:run</li>
<li>Building: ./gradlew desktop:dist</li>
<li>Sprite Packing: ./gradlew tools:pack</li>
</ul>
<p>项目也可以直接下载游戏jar包，直接在命令行用JDK启动jar包即可。</p>
<p><img src="https://static.didispace.com/images/pasted-705.png" alt=""></p>
<p>看着效果不错吧，这里提醒下大家，不要沉迷，TJ君玩了一会就差点忘记正事了。。。我们的初始目的还是来学习下这款游戏的实现。</p>
<p>项目代码压缩包有40多m，其中包含详细的地图、声音要素，无论是想学习使用JAVA编写游戏的小伙伴，还是对塔防游戏逻辑构成感兴趣的小伙伴，这个游戏的丰富详细的开源代码绝对是一个不容错过的学习好帮手。</p>
<p>所谓寓教于乐可能说的就是这样又可以玩又可以学的项目吧，如果对JAVA游戏感兴趣的小伙伴，赶紧来一探究竟吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“Java塔防”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-701.png" type="image/png"/>
    </item>
    <item>
      <title>一款漂亮的开源JSON工具：支持VS Code、可内嵌个人网站</title>
      <link>https://spring.didispace.com/tj/tj-opensource-jsoncrack.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-jsoncrack.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款漂亮的开源JSON工具：支持VS Code、可内嵌个人网站</source>
      <description>今天给大家介绍一个JSON工具：JSON CRACK JSON Crack是一款创新的、免费的、开源可视化工具。用户可以通过它讲复杂的JSON数据变的更为简洁易懂，且支持搜索、高亮显示等基本能力。</description>
      <category>开源推荐</category>
      <pubDate>Tue, 04 Jul 2023 11:41:12 GMT</pubDate>
      <content:encoded><![CDATA[<p>今天给大家介绍一个JSON工具：JSON CRACK</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-jsoncrack/1688787710592.png" alt="didispace.com"></p>
<p>JSON Crack是一款创新的、免费的、开源可视化工具。用户可以通过它讲复杂的JSON数据变的更为简洁易懂，且支持搜索、高亮显示等基本能力。</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-jsoncrack/1688787718664.png" alt="didispace.com"></p>
<p>一旦该应用程序被嵌入，用户就可以使用它直接在网站上查看和分析JSON数据。这可用于各种目的，例如快速检查JSON文件的结构或验证其中包含的数据。</p>
<p>对于VS Code用户而言，JSON Crack还提供了VS Code的插件：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-jsoncrack/1688787730162.png" alt="didispace.com"></p>
<p>看数据就知道是该插件也是大家非常喜欢的！如果您还没用上的话，可以考虑安装了试试看。</p>
<p>关于JSON Crack的其他信息，您可以通过下面的链接了解更多。</p>
<p>开源项目：https://github.com/AykutSarac/jsoncrack.com</p>
<p>官方网站：https://jsoncrack.com/</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-jsoncrack/1688787710592.png" type="image/png"/>
    </item>
    <item>
      <title>一款滴滴开源的流程图编辑框架：LogicFlow</title>
      <link>https://spring.didispace.com/tj/tj-opensource-logicflow.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-logicflow.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款滴滴开源的流程图编辑框架：LogicFlow</source>
      <description>最近因为要在系统里植入一个流程图的灵活绘制功能。如果说自己写一个，那必将是个庞大的工程，所以就在GitHub上调研了一番。最后发现了今天要给大家推荐的这个开源框架：LogicFlow LogicFlow是一款流程图编辑框架，它提供了必要的流程图交互和编辑功能，同时还支持节点自定义和插件拓展。LogicFlow可以用于各种逻辑编排场景，例如流程图、ER图和BPMN流程。它在工作审批配置、机器人逻辑编排和无代码平台流程配置等方面都有广泛应用。</description>
      <category>开源推荐</category>
      <pubDate>Thu, 20 Jul 2023 19:13:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>最近因为要在系统里植入一个流程图的灵活绘制功能。如果说自己写一个，那必将是个庞大的工程，所以就在GitHub上调研了一番。最后发现了今天要给大家推荐的这个开源框架：<strong>LogicFlow</strong></p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-logicflow/1689880518782.png" alt=""></p>
<p>LogicFlow是一款流程图编辑框架，它提供了必要的流程图交互和编辑功能，同时还支持节点自定义和插件拓展。LogicFlow可以用于各种逻辑编排场景，例如流程图、ER图和BPMN流程。它在工作审批配置、机器人逻辑编排和无代码平台流程配置等方面都有广泛应用。</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-logicflow/1689880512541.png" alt=""></p>
<h2> 快速入门</h2>
<p>LogicFlow的使用非常简单，只需要两步：</p>
<ol>
<li>引入依赖</li>
</ol>
<div class="language-html line-numbers-mode" data-ext="html"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>也可以使用npm引入，只需要：</p>
<div class="language-bash line-numbers-mode" data-ext="sh"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><ol start="2">
<li>可以编写一个简单的案例</li>
</ol>
<div class="language-javascript line-numbers-mode" data-ext="js"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>这里不得不提一下，LogicFlow提供了一个工具，可以帮助大家所见即所得的绘图，效果如下：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-logicflow/1689880496590.png" alt=""></p>
<p>工具地址：https://codesandbox.io/s/logicflow-example-1-zy3o85?file=/step1/index.js:0-1170</p>
<p>最后，奉上最关键的几个传送门：</p>
<ul>
<li>开源项目：https://github.com/didi/LogicFlow</li>
<li>案例地址：https://site.logic-flow.cn/examples/#/gallery</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-logicflow/1689880518782.png" type="image/png"/>
    </item>
    <item>
      <title>一个基于Spring Cloud的微服务电商平台系统</title>
      <link>https://spring.didispace.com/tj/tj-opensource-mall4cloud.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-mall4cloud.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个基于Spring Cloud的微服务电商平台系统</source>
      <description>年之计在于春，新年就要有新的打算，TJ君身边不少小伙伴都有点想在新的一年里开个网店的冲动，但是如何入手、如何开店都是个学问，需要好好研究，不过这也说明了电商行业的前景还是不错滴。 所以当TJ君今天留意到这个开源项目的时候，第一反应就是，可用！推荐！ mall4cloud 说到mall4cloud，不得不先说下Mall4j。</description>
      <category>开源推荐</category>
      <pubDate>Thu, 10 Feb 2022 11:56:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>年之计在于春，新年就要有新的打算，TJ君身边不少小伙伴都有点想在新的一年里开个网店的冲动，但是如何入手、如何开店都是个学问，需要好好研究，不过这也说明了电商行业的前景还是不错滴。</p>
<p>所以当TJ君今天留意到这个开源项目的时候，第一反应就是，可用！推荐！</p>
<h2> mall4cloud</h2>
<p><img src="https://static.didispace.com/images/pasted-889.png" alt="mall4cloud"></p>
<p>说到mall4cloud，不得不先说下Mall4j。</p>
<p><img src="https://static.didispace.com/images/pasted-890.png" alt="Mall4j"></p>
<p>Mall4j是一个商用的提供多元化电商服务，满足企业多场景业务需求，为垂直行业提供专业的电商解决方案网站，提供多种成熟的电商配套服务，而mall4cloud则正是它的<strong>开源版本！</strong></p>
<p>此开源版本，是一个基于<strong>Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio</strong>的微服务B2B2C电商商城系统，非常良心的没有其他二次封装，真正做到完全开源，小伙伴们无论是学习，还是二次开发，都是非常合适的一个项目。</p>
<p>项目使用 AGPLv3 开源规则，采用主流的互联网技术架构，支持集群部署、服务注册和发现以及拥有完整的订单流程，同时还拥有不错的UI设计效果。</p>
<p>先看看整体目录结构及应用分层：</p>
<p><img src="https://static.didispace.com/images/pasted-891.png" alt="mall4cloud"></p>
<p><img src="https://static.didispace.com/images/pasted-892.png" alt="mall4cloud"></p>
<p>其中各项分层解释是这样的：</p>
<ul>
<li>VO（View Object）：显示层对象，通常是 Web 向模板渲染引擎层传输的对象。</li>
<li>DTO（Data Transfer Object）：数据传输对象，前端像后台进行传输的对象，类似于param。</li>
<li>BO（Business Object）：业务对象，内部业务对象，只在内部传递，不对外进行传递。</li>
<li>Model：模型层，此对象与数据库表结构一一对应，通过 Mapper 层向上传输数据源对象。</li>
<li>Controller：主要是对外部访问控制进行转发，各类基本参数校验，或者不复用的业务简单处理等。为了简单起见，一些与事务无关的代码也在这里编写。</li>
<li>FeignClient：由于微服务之间存在互相调用，这里是内部请求的接口。</li>
<li>Controller：主要是对内部访问控制进行转发，各类基本参数校验，或者不复用的业务简单处理等。为了简单起见，一些与事务无关的代码也在这里编写。</li>
<li>Service 层：相对具体的业务逻辑服务层。</li>
<li>Mapper持久层：数据访问层，与底层 MySQL进行数据交互。</li>
<li>Listener：监听 RocketMQ 进行处理，有时候会监听easyexcel相关数据。</li>
<li>Manager 层：通用业务处理层，主要有三个特点。</li>
<li>
<ul>
<li>对第三方平台封装的层，预处理返回结果及转化异常信息，适配上层接口。</li>
</ul>
</li>
<li>对 Service 层通用能力的下沉，如缓存方案、中间件通用处理。</li>
<li>与 DAO 层交互，对多个 DAO 的组合复用。</li>
</ul>
<p>了解了这些我们还可以看下项目的架构图：</p>
<p><img src="https://static.didispace.com/images/pasted-893.png" alt="mall4cloud"></p>
<p><img src="https://static.didispace.com/images/pasted-894.png" alt="mall4cloud"></p>
<p><img src="https://static.didispace.com/images/pasted-895.png" alt="mall4cloud"></p>
<p>然后还可以看下实际运行的效果：</p>
<p><em>订单界面</em></p>
<p><img src="https://static.didispace.com/images/pasted-896.png" alt="mall4cloud-订单"></p>
<p><em>平台管理界面</em></p>
<p><img src="https://static.didispace.com/images/pasted-897.png" alt="mall4cloud-平台管理"></p>
<p><em>小程序界面</em></p>
<p>https://mmbiz.qpic.cn/mmbiz_png/8cpIYdAicCcsukDCjmKVXLRic2qqFJ2ibkicpVjTNjNKafOvPSV1VsyrjicAz3NgJ8ehA7CpiciaQ9qFdNkLuib2B1o3FQ/640?wx_fmt=png&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1
<img src="https://static.didispace.com/images/pasted-898.png" alt="mall4cloud-小程序"></p>
<p>项目还提供了一系列的开发及搭建文档，供小伙伴们在使用过程中查看：</p>
<p><img src="https://static.didispace.com/images/pasted-899.png" alt="mall4cloud"></p>
<p>怎么样？想试试电商项目的小伙伴，不要犹豫啦，赶紧来学学吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“mall4cloud”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-889.png" type="image/png"/>
    </item>
    <item>
      <title>一个开源网页版马里奥小游戏</title>
      <link>https://spring.didispace.com/tj/tj-opensource-mariohtml.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-mariohtml.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个开源网页版马里奥小游戏</source>
      <description>说起全球最有吸金能力的IP，大家会想到什么呢？是漫威？是哈利波特？还是王者荣耀（笑）？ 其实很多印象都是主观的，根据Wikimili从上市公司财务数据、全球第三方权威数据统计平台等多方面汇总出来的数据，我们可以看到，目前全球最最吸金的IP，可是宝可梦哟！ 整整1000亿美元，不过我们今天要说的主角可不是宝可梦，TJ君今天想跟大家分享的是榜单上的第9名，力压哈利波特一头的，super mario，马里奥大叔~</description>
      <category>开源推荐</category>
      <pubDate>Wed, 15 Dec 2021 09:59:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>说起全球最有吸金能力的IP，大家会想到什么呢？是漫威？是哈利波特？还是王者荣耀（笑）？</p>
<p>其实很多印象都是主观的，根据Wikimili从上市公司财务数据、全球第三方权威数据统计平台等多方面汇总出来的数据，我们可以看到，目前全球最最吸金的IP，可是宝可梦哟！</p>
<p><img src="https://static.didispace.com/images/pasted-776.png" alt=""></p>
<p>整整1000亿美元，不过我们今天要说的主角可不是宝可梦，TJ君今天想跟大家分享的是榜单上的第9名，力压哈利波特一头的，<strong>super mario</strong>，马里奥大叔~</p>
<p>毕竟，对于80后的TJ君来说，马里奥大叔就是童年FC的美好回忆，所以今天要和大家分享的就是一款完全由TypeScript完成的马里奥在线开源小游戏！</p>
<p><strong>MarioHTML</strong></p>
<p><img src="https://static.didispace.com/images/pasted-777.png" alt=""></p>
<p>项目需要安装TypeScript和相关依赖</p>
<div class="language-bash line-numbers-mode" data-ext="sh"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>然后运行TSC编译器来构建JavaScript文件</p>
<blockquote>
<p>这里整理了一波超级好用的<a href="https://mp.weixin.qq.com/s/A1Qs0EHD_20j55a69fAU3w" target="_blank" rel="noopener noreferrer">IDEA插件，一定有你喜欢的！</a></p>
</blockquote>
<p>目前游戏一共有8关，就是8个level，每个level都有独立的文件对应。</p>
<p><img src="https://static.didispace.com/images/pasted-778.png" alt=""></p>
<p>整体来说，MarioHTML对于原作的还原还是蛮高的。</p>
<p>像水管、岩浆、小怪、金币、乌龟、库巴，以及最后的公主都有，操作还是传统的上下左右跑跳~</p>
<p><img src="https://static.didispace.com/images/pasted-779.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-780.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-781.png" alt=""></p>
<p>不过要提一点，最后的公主有点。。。嗯。。。大家还是自己体验吧。TJ君可是死了无数次才看到了公主~</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“MarioHTML”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-776.png" type="image/png"/>
    </item>
    <item>
      <title>推荐一款超好用的Markdown编辑器</title>
      <link>https://spring.didispace.com/tj/tj-opensource-markdown-editor-milkdown.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-markdown-editor-milkdown.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐一款超好用的Markdown编辑器</source>
      <description>这两天临近国庆，小编要写的东西还蛮多，在编写的闲暇想到一个有趣的问题，就是大家平时都使用什么编写工具？ 这几年似乎Markdown编辑器逐渐成为行业里的主流，如果有还不了解的小伙伴，小编稍稍介绍一下。 Markdown编辑器，主要是可以使用一套格式标记语言来对文档内容进行排版和格式显示，而这种编辑器在程序猿圈子里逐渐受到欢迎的原因是： 1、读写改方便，Markdown的格式标记语法简单，常用的标记只有十多个，相对来说非常轻量，上手很快，只需要学习几个简单的符号，然后就可以专注于码字了，而不需要手动设置各种样式。 2、一器多用，Markdown即可以用来编写说明文档并且在主流平台都通用，又可以写技术文章，写出来的内容中可以清晰的区分说明部分和代码。 3、输出方便，Markdown的文章可以轻松的转换为html、pdf等多种不同方式。</description>
      <category>开源推荐</category>
      <pubDate>Mon, 27 Sep 2021 12:38:12 GMT</pubDate>
      <content:encoded><![CDATA[<p>这两天临近国庆，小编要写的东西还蛮多，在编写的闲暇想到一个有趣的问题，就是大家平时都使用什么编写工具？</p>
<p>这几年似乎Markdown编辑器逐渐成为行业里的主流，如果有还不了解的小伙伴，小编稍稍介绍一下。</p>
<p>Markdown编辑器，主要是可以使用一套格式标记语言来对文档内容进行排版和格式显示，而这种编辑器在程序猿圈子里逐渐受到欢迎的原因是：</p>
<p>1、读写改方便，Markdown的格式标记语法简单，常用的标记只有十多个，相对来说非常轻量，上手很快，只需要学习几个简单的符号，然后就可以专注于码字了，而不需要手动设置各种样式。
2、一器多用，Markdown即可以用来编写说明文档并且在主流平台都通用，又可以写技术文章，写出来的内容中可以清晰的区分说明部分和代码。
3、输出方便，Markdown的文章可以轻松的转换为html、pdf等多种不同方式。</p>
<p>目前国内外有各种各样不同的Markdown编辑器，其中比较有名的就像Typora</p>
<p><img src="https://static.didispace.com/images/pasted-589.png" alt="Typora"></p>
<p>小编目前用的最多也是Typora。Typora的设计理念就是追求最极致的简洁，让你在编写的同时就可以看到预览的结果，但美中不足的是Typora是一款独立的软件，并没有开源，很多小伙伴都想了解下，一款Markdown编辑器到底是怎么实现的？也有很多小伙伴想如何能让编辑器里面加一下自己想要的定制化功能呢？</p>
<p>所以小编今天带来的就是一款风格同样追求简洁、集合了Markdown编辑器、组件化定制、插件引用于一身的开源项目。</p>
<h2> Milkdown</h2>
<p><img src="https://static.didispace.com/images/pasted-590.png" alt="Milkdown"></p>
<p>就像名字中的milk一样，整个编辑器就像牛奶一样柔顺可口，看着舒服。</p>
<p>和其他主流的Markdown编辑器不一样的是，Milkdown将自己的功能组件化、模块化，所以对于用户来说，可以选择自己需要的功能模块，以插件的形式引用，这样一方面可以减少不必要的资源的浪费，用户不需要为了一个功能安装其余一些不需要的功能，同时也方便满足个性化的定制需求，自己有什么诉求只需要编写一个独立的NPM功能模块包，然后通过NPM安装就可以了。</p>
<p>Milkdown的功能特性主要有：</p>
<p><img src="https://static.didispace.com/images/pasted-591.png" alt=""></p>
<p>主要运用的技术及对应官网包括：</p>
<ul>
<li>Prosemirror，用来在web端构建编辑器本身，可以参考https://prosemirror.net/</li>
<li>Remark，用于作为markdown的解析器，可以参考https://github.com/remarkjs/remark</li>
<li>TypeScript，编写语法，https://www.typescriptlang.org/</li>
<li>Emotion，用于构建样式，https://emotion.sh/</li>
<li>Prism，代码块的支持，https://prismjs.com/</li>
<li>Katex，渲染用，https://katex.org/</li>
</ul>
<p>目前Milkdown提供直接在线使用功能，我们可以在其中任意的使用、体验。</p>
<p>例如像表格，在Milkdown中，只需要通过输入<code>||</code>和一个空格，就可以完成。</p>
<p><img src="https://static.didispace.com/images/pasted-593.png" alt="Milkdown表格"></p>
<p>点击表格左上角，可以对表格进行行列操作</p>
<p><img src="https://static.didispace.com/images/pasted-594.png" alt="Milkdown表格"></p>
<p>同时可以支持左右屏分别显示源码和效果，方便比对，查看源码进行修改。</p>
<p><img src="https://static.didispace.com/images/pasted-595.png" alt="Milkdown左右屏"></p>
<p>其他的功能小伙伴们可以自行尝试，应该可以满足大多数人的一般需要。</p>
<p>如果有什么额外想实现的功能，记得Milkdown是插件式的工具，除了自己直接编写插件，我们也可以先去官方插件库查找一下，看看是否已经有前人完成了我们的构思。</p>
<p>目前官方给出的插件有：</p>
<p><img src="https://static.didispace.com/images/pasted-596.png" alt="Milkdown插件"></p>
<p>同时官方还提供社区，让用户们可以自由地交流分享自己的插件，不过下载别人的插件需谨慎哦。</p>
<p>当然大家最关心的可能还是如何自己编写插件，其实不难，大多数插件的格式都是这样的：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>主要由两部分组成，准备阶段和执行阶段。</p>
<p>准备阶段的内容就是将插件被通过use时，注册进milkdown，然后执行阶段就是在插件被真实加载时执行的内容。</p>
<p>说那么多不如自己上手练一练，想自己开发插件自给自足的小伙伴，或者喜欢这个风格想直接试用的小伙伴，赶紧一起来试试这个开源的Markdown编辑器吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“milk”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-589.png" type="image/png"/>
    </item>
    <item>
      <title>Slidev：用Markdown的方式来做PPT</title>
      <link>https://spring.didispace.com/tj/tj-opensource-markdown2ppt-slidev.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-markdown2ppt-slidev.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Slidev：用Markdown的方式来做PPT</source>
      <description>也许你是以为代码高手，Markdown写作高手，但你是PPT高手吗？ 你的成绩有没有被PPT高手抢走过呢？ 不会作精美PPT是不是很头疼呢？ 今天就给大家介绍了一款PPT制作利器：Slidev~ 说Slidev之前，咱先聊聊Markdown，在认识Markdown之前，各种版式样式的问题也一直困扰着TJ君，所幸Markdown的出现完美的解决了这个问题，而Slidev，或许就是和Markdown一样的一个东东哦！</description>
      <category>开源推荐</category>
      <pubDate>Tue, 14 Dec 2021 09:58:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>也许你是以为代码高手，Markdown写作高手，但你是PPT高手吗？</p>
<p>你的成绩有没有被PPT高手抢走过呢？</p>
<p>不会作精美PPT是不是很头疼呢？</p>
<p>今天就给大家介绍了一款PPT制作利器：<strong>Slidev</strong>~</p>
<p><img src="https://static.didispace.com/images/pasted-774.png" alt=""></p>
<p>说Slidev之前，咱先聊聊Markdown，在认识Markdown之前，各种版式样式的问题也一直困扰着TJ君，所幸Markdown的出现完美的解决了这个问题，而<strong>Slidev</strong>，或许就是和Markdown一样的一个东东哦！</p>
<blockquote>
<p>这里整理了一波超级好用的<a href="https://mp.weixin.qq.com/s/A1Qs0EHD_20j55a69fAU3w" target="_blank" rel="noopener noreferrer">IDEA插件，一定有你喜欢的！</a></p>
</blockquote>
<p>Slidev使用了一种扩展的Markdown格式，使得用户可以仅仅使用纯文本的形式也完成PPT的制作，尤其对于开发者来说，Slidev可以通过代码支持 HTML 和 Vue 组件，可以现场根据演示效果进行编码和修改，开发者可以将精力更多的集中在内容实现上</p>
<p>简单来说，Slidev有如下的功能特点：</p>
<ul>
<li>📝 Markdown 支持 —— 使用你最喜欢的编辑器和工作流编写 Markdown 文件</li>
<li>💻 开发者友好 —— 内置代码高亮、实时编码等功能</li>
<li>🎨 可定制主题 —— 以 npm 包的形式共享、使用主题</li>
<li>🌈 灵活样式 —— 使用 Windi CSS 按需使用的实用类和易用的内嵌样式表</li>
<li>🤹 可交互 —— 无缝嵌入 Vue 组件</li>
<li>🎙 演讲者模式 —— 可以使用另一个窗口，甚至是你的手机来控制幻灯片</li>
<li>🎨 绘图 - 在你的幻灯片上进行绘图和批注</li>
<li>🧮 LaTeX 支持 —— 内置了对 LaTeX 数学公示的支持</li>
<li>📰 图表支持 —— 使用文本描述语言创建图表</li>
<li>🌟 图标 —— 能够直接从任意图标库中获取图标</li>
<li>💻 编辑器 —— 集成的编辑器，或者使用 VS Code 扩展</li>
<li>🎥 演讲录制 —— 内置录制功能和摄像头视图</li>
<li>📤 跨平台 —— 能够导出 PDF、PNG 文件，甚至是一个可以托管的单页应用</li>
<li>⚡️ 快速 —— 基于 Vite 的即时重载</li>
<li>🛠 可配置 —— 支持使用 Vite 插件、Vue 组件以及任何的 npm 包</li>
</ul>
<p>是不是功能很丰富？不过也许可能是BETA版本的关系，作者表示Slidev的API接口还不是很稳定，有待进一步优化</p>
<p>我们看一下简单的试用（白色是在刷新，有点慢）：</p>
<p><img src="https://static.didispace.com/images/pasted-775.gif" alt=""></p>
<p>喜欢的小伙伴不要错过，让你的Markdown产出结果更多样化！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“PPTT”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-774.png" type="image/png"/>
    </item>
    <item>
      <title>6.7K Star，Minecraft 风格的开发字体</title>
      <link>https://spring.didispace.com/tj/tj-opensource-minecraftfont.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-minecraftfont.html</guid>
      <source url="https://spring.didispace.com/rss.xml">6.7K Star，Minecraft 风格的开发字体</source>
      <description>不知道您是否跟我一样，对Minecraft非常痴迷。今天瞎逛看到一个为Minecraft痴迷者量身定制的等宽字体项目：Monocraft 先来看看效果： 该字体除了沿袭Minecraft的像素风格之外，对于下面这些符号也提供了另一种与我们日常书写匹配的显示风格：</description>
      <category>开源推荐</category>
      <pubDate>Sun, 02 Jul 2023 11:43:12 GMT</pubDate>
      <content:encoded><![CDATA[<p>不知道您是否跟我一样，对Minecraft非常痴迷。今天瞎逛看到一个为Minecraft痴迷者量身定制的等宽字体项目：Monocraft</p>
<p>先来看看效果：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-minecraftfont/1688787832049.png" alt="didispace.com"></p>
<p>该字体除了沿袭Minecraft的像素风格之外，对于下面这些符号也提供了另一种与我们日常书写匹配的显示风格：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-minecraftfont/1688787840842.png" alt="didispace.com"></p>
<p>如果您对该字体也喜欢的话，只需要通过下面的方式安装即可使用，幻想下在Minecraft中开发软件的感觉。</p>
<h2> 安装方式</h2>
<p>Mac：</p>
<p>brew tap homebrew/cask-fonts
brew install --cask font-monocraft
其他系统：</p>
<p>从下面地址下载ttf文件，并安装到操作系统中</p>
<p>https://github.com/IdreesInc/Monocraft/releases</p>
<p>更多关于该字体的介绍可以通过下面的地址查看：</p>
<p>https://github.com/IdreesInc/Monocraft</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-minecraftfont/1688787832049.png" type="image/png"/>
    </item>
    <item>
      <title>用Spring Boot复刻一款天猫商城</title>
      <link>https://spring.didispace.com/tj/tj-opensource-mini-tmall.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-mini-tmall.html</guid>
      <source url="https://spring.didispace.com/rss.xml">用Spring Boot复刻一款天猫商城</source>
      <description>日子一天天的在过，TJ君这两天一直有点惆怅，为啥呢？因为TJ君发现双11越来越近了，一想到等到了那天，TJ君的荷包会被某种不可抗拒之力打开大门，TJ君真是食不知味、寝食难安。 不过想到了双11就想到了淘宝天猫，似乎现在每天逛逛天猫已经成了很多人的习惯，那何不弄个天猫的复刻项目研究研究，说干就干！ 今天TJ君给大家分享的就是一款基于Spring Boot的迷你天猫商城复刻项目，是一个比较基础、易学、入门款的Spring Boot体系的电商项目，适合想入手此类项目的小伙伴试试手。 作为迷你天猫，自然包含了天猫的大多数功能，从用户登录注册开始，到浏览各种商品，将商品加入购物车或者收藏，然后进行下单付费买货，到最后的确认收货，给五星好评等等等等一系列的基本操作，在这款迷你天猫里都有，而在后台管理方面，对于在售商品的管理，各种订单的处理，商家以及用户的管理和整体交易统计，也是应有尽有。并且项目可以快速部署运行，小而强大或许说的就是它。</description>
      <category>开源推荐</category>
      <pubDate>Tue, 19 Oct 2021 13:08:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>日子一天天的在过，TJ君这两天一直有点惆怅，为啥呢？因为TJ君发现双11越来越近了，一想到等到了那天，TJ君的荷包会被某种不可抗拒之力打开大门，TJ君真是食不知味、寝食难安。</p>
<p>不过想到了双11就想到了淘宝天猫，似乎现在每天逛逛天猫已经成了很多人的习惯，那何不弄个天猫的复刻项目研究研究，说干就干！</p>
<p>今天TJ君给大家分享的就是一款基于Spring Boot的迷你天猫商城复刻项目，是一个比较基础、易学、入门款的Spring Boot体系的电商项目，适合想入手此类项目的小伙伴试试手。</p>
<p>作为迷你天猫，自然包含了天猫的大多数功能，从用户登录注册开始，到浏览各种商品，将商品加入购物车或者收藏，然后进行下单付费买货，到最后的确认收货，给五星好评等等等等一系列的基本操作，在这款迷你天猫里都有，而在后台管理方面，对于在售商品的管理，各种订单的处理，商家以及用户的管理和整体交易统计，也是应有尽有。并且项目可以快速部署运行，小而强大或许说的就是它。</p>
<p>项目技术栈：</p>
<ul>
<li>Spring Boot</li>
<li>MySQL/Druid</li>
<li>Log4j2</li>
<li>Maven</li>
<li>Echarts</li>
<li>Bootstrap</li>
</ul>
<p>迷你天猫的界面风格，主要是分为两种风格，一是前台用户商场页面，一是后台管理界面。既然是复刻项目，项目实际效果看起来，自然和天猫有所雷同。</p>
<p><strong>前台效果实例</strong></p>
<p><img src="https://static.didispace.com/images/pasted-662.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-663.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-664.png" alt=""></p>
<p><strong>后台管理界面</strong></p>
<p><img src="https://static.didispace.com/images/pasted-665.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-666.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-667.png" alt=""></p>
<p>看着不错哟，TJ君觉得对于一款迷你复刻项目来说，已经相当不错了呢。</p>
<p>项目部署仅需四个步骤：</p>
<ol>
<li>下载项目代码</li>
<li>在MySQL中导入项目SQL文件</li>
<li>使用IDEA打开项目，在maven面板刷新项目，并下载相关依赖包</li>
<li>配置数据库连接并启动SpringBootApplication</li>
</ol>
<p>完成这四个步骤之后就大功告成了，如果想访问前台页面，可以输入 <code>http://localhost:8080/tmall</code>，如果想看看后台界面，可以输入 <code>http://localhost:8080/tmall/admin</code>。</p>
<p>如果想2次开发的，嗯，那你就要自己丰富内容啦。喜欢这款项目的小伙伴，开始下载学习！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“迷你天猫”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-662.png" type="image/png"/>
    </item>
    <item>
      <title>14.4K Star，一款漂亮、快速、现代化的开源UI组件库</title>
      <link>https://spring.didispace.com/tj/tj-opensource-nextui.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-nextui.html</guid>
      <source url="https://spring.didispace.com/rss.xml">14.4K Star，一款漂亮、快速、现代化的开源UI组件库</source>
      <description>大家好，我是TJ。 之前给大家推荐了很多后台模版，有读者希望推荐一些跟通用的好看组件，毕竟出了后台还有很多其他场景嘛。所以，今天继续给大家推荐一个广受好评的UI组件库：NextUI 主要特性 NextUI的主要目标是简化开发流程，为增强的用户体验提供美观且适应性强的系统设计。</description>
      <category>开源推荐</category>
      <pubDate>Thu, 24 Aug 2023 04:06:42 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ。</p>
<p>之前给大家推荐了很多后台模版，有读者希望推荐一些跟通用的好看组件，毕竟出了后台还有很多其他场景嘛。所以，今天继续给大家推荐一个广受好评的UI组件库：<strong>NextUI</strong></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692853654735.png" alt="NextUI"></p>
<h2> 主要特性</h2>
<p><strong>NextUI</strong>的主要目标是简化开发流程，为增强的用户体验提供美观且适应性强的系统设计。</p>
<p>它有以下几点核心特性：</p>
<ul>
<li>可个性定制：NextUI提供了插件的模式来定制主题，你可以更改所有的语义标记以创建一个全新的主题</li>
<li>性能优秀：构建在TailWind CSS之上，这意味着没有运行时样式，包中也没有不必要的类，所以性能极佳</li>
<li>日间/夜间模式：支持自动模式识别，当检测到HTML主题变化时，NextUI会自动更改主题模式</li>
<li>快速上手：NextUI是完全组件化的，以最大限度地减少学习曲线，并提供尽可能好的开发体验</li>
</ul>
<h2> 组件预览</h2>
<p>对于一款UI组件，是否好看是大家都特别关注的，下面就带大家一起来看看<strong>NextUI</strong>的一些常用组件效果。</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692854856412.png" alt="Avatar"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692854916848.png" alt="Accordion"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692854976011.png" alt="Badge"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692854995012.png" alt="Button"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855019766.png" alt="Card With Image"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855078503.png" alt="CheckBox"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855112522.png" alt="Dropdown"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855143445.png" alt="Input"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855162348.png" alt="ListBox"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855203573.png" alt="Popover"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855230886.png" alt="Skeleton"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855257570.png" alt="Table 1"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855276114.png" alt="Table 2"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692855316100.png" alt="Tabs"></p>
<p>由于篇幅有限，就挑选了一些常用的，还有很多其他的组件没有在这里展示，感兴趣的可以自行前往官网查看并体验动态效果。</p>
<p>最后，老规矩，奉上相关链接，感兴趣的可以直接去深入了解：</p>
<ul>
<li>官方网站：https://nextui.org/</li>
<li>开源地址：https://github.com/nextui-org/nextui</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-opensource-nextui/1692853654735.png" type="image/png"/>
    </item>
    <item>
      <title>一个提高学习效率的开源教育平台</title>
      <link>https://spring.didispace.com/tj/tj-opensource-noodle.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-noodle.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个提高学习效率的开源教育平台</source>
      <description>作为一名学生，为了高效率的管理好自己的学习功课，你需要使用多个应用程序。这包括笔记、日历、任务管理等应用程序。很多信息都散落在不同的应用程序中，这样管理非常繁琐也不利于搜索和分析。 今天要给大家推荐的Noodle，就是解决这个问题的开源平台。该项目旨在通过提供一个单一的平台来管理学生与教育相关的一切来解决这个问题。 通过Noodle管理学习中涉及的所有数据，我们就可以为学生提供强大的洞察力和自动化能力，帮助他们更加高效地完成学业。 作为一个开源平台，Noodle致力于培养一个由学生和开发者共同贡献建设最优秀的学生生产力平台的社区。所以不论你是学生还是想要帮助学生，都可以参与进来。</description>
      <category>开源推荐</category>
      <pubDate>Thu, 13 Jul 2023 14:09:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>作为一名学生，为了高效率的管理好自己的学习功课，你需要使用多个应用程序。这包括笔记、日历、任务管理等应用程序。很多信息都散落在不同的应用程序中，这样管理非常繁琐也不利于搜索和分析。</p>
<p>今天要给大家推荐的<strong>Noodle</strong>，就是解决这个问题的开源平台。该项目旨在通过提供一个单一的平台来管理学生与教育相关的一切来解决这个问题。</p>
<p>通过Noodle管理学习中涉及的所有数据，我们就可以为学生提供强大的洞察力和自动化能力，帮助他们更加高效地完成学业。</p>
<p>作为一个开源平台，Noodle致力于培养一个由学生和开发者共同贡献建设最优秀的学生生产力平台的社区。所以不论你是学生还是想要帮助学生，都可以参与进来。</p>
<p>下面一起来看看这个开源平台吧：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-noodle/1689229700019.png" alt="图 0"></p>
<p>从界面来看，就非常酷吧！</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-noodle/1689229706906.png" alt="图 1"></p>
<p>再来看看官网的口号：<strong>一个多产学生的新时代开始了</strong>，也是振奋人心，TJ在想，如果我们读书那会有这个那该多好啊！</p>
<p>介绍就到这里，感兴趣的小伙伴可以通过下面的地址探索起来吧：</p>
<ul>
<li>官方网站：https://noodle.run/</li>
<li>开源地址：https://github.com/ixahmedxi/noodle</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-noodle/1689229700019.png" type="image/png"/>
    </item>
    <item>
      <title>8K Star，一款开源仿Notion且AI强化的编辑器：Novel</title>
      <link>https://spring.didispace.com/tj/tj-opensource-noval.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-noval.html</guid>
      <source url="https://spring.didispace.com/rss.xml">8K Star，一款开源仿Notion且AI强化的编辑器：Novel</source>
      <description>8K Star，一款开源仿Notion且AI强化的编辑器：Novel 大家好，我是TJ Notion相信大家都不陌生了，一款非常好用的​笔记软件，TJ​君也一直在用来记​笔记和写文章。​关于Notion的替代品，之前有给大家推荐AFFiNE ，但这个还是一个比较成型的软件。 那么如果想开发一个类Notion的工具，又或者在自己的应用中增加一个类Notion的内容编辑功能，是否有好用的开源​工具呢？ ​今天，TJ君就给大家推荐一个不错的开源仿Notion编辑器​：Novel</description>
      <category>开源推荐</category>
      <pubDate>Thu, 14 Sep 2023 12:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 8K Star，一款开源仿Notion且AI强化的编辑器：Novel</h1>
<p>大家好，我是TJ</p>
<p>Notion相信大家都不陌生了，一款非常好用的​笔记软件，TJ​君也一直在用来记​笔记和写文章。​关于Notion的替代品，之前有给大家推荐<a href="/tj/tj-opensource-affine.html" target="blank">AFFiNE</a> ，但这个还是一个比较成型的软件。</p>
<p>那么如果想开发一个类Notion的工具，又或者在自己的应用中增加一个类Notion的内容编辑功能，是否有好用的开源​工具呢？</p>
<p>​今天，TJ君就给大家推荐一个不错的开源仿Notion编辑器​：<a href="/tj/tj-opensource-noval.html" target="blank">Novel</a></p>
<p><img src="https://static.didispace.com/images2/202309/tj-opensource-noval/1694662475561.png" alt=""></p>
<p>下面通过一个视频来看看<a href="/tj/tj-opensource-noval.html" target="blank">Novel</a>的强大功能：</p>
<iframe src="//player.bilibili.com/player.html?aid=233492055&amp;bvid=BV1G8411q7LK&amp;cid=1266926986&amp;p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width="100%" height="500px"> </iframe>
<h2> 安装使用</h2>
<p>Novel的安装和使用非常简单，只需要两步：</p>
<ol>
<li>安装依赖</li>
</ol>
<div class="language-bash line-numbers-mode" data-ext="sh"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><ol start="2">
<li>引入novel的Editor，把编辑器加到你的应用中：</li>
</ol>
<div class="language-javascript line-numbers-mode" data-ext="js"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2> 参数配置</h2>
<p><a href="/tj/tj-opensource-noval.html" target="blank">Novel</a>的Editor是一个React组件，它有以下这些属性，你可以用来进一步配置功能：</p>
<p><img src="https://static.didispace.com/images2/202309/tj-opensource-noval/1694663493372.png" alt="Novel参数配置"></p>
<h2> VSCode插件</h2>
<p>另外，<a href="/tj/tj-opensource-noval.html" target="blank">Novel</a>还有一个额外的VSCode插件，如果你喜欢Novel的编辑器效果，可以将它安装到你的VSCode，来体验类似Notion的编辑能力。</p>
<p><img src="https://static.didispace.com/images2/202309/tj-opensource-noval/1694663581880.png" alt="Novel VSCode插件"></p>
<p>怎么样，这个开源项目不错吧？如果有要引入编辑器功能的话，可以考虑一下了。</p>
<p>最后，老规矩奉上相关地址，感兴趣的小伙伴去深入了解一下吧：</p>
<ul>
<li>官方网站：https://novel.sh/</li>
<li>开源地址：https://github.com/steven-tey/novel</li>
</ul>
<img src="https://static.didispace.com/images/qrcode/tj.png">
<p><strong>欢迎关注公众号：TJ君，订阅每日推荐，了解更多效率工具、发现优质开源项目</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202309/tj-opensource-noval/1694662475561.png" type="image/png"/>
    </item>
    <item>
      <title>开源OA办公自动化系统，看过的小伙伴都竖起大拇指！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-oa.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-oa.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开源OA办公自动化系统，看过的小伙伴都竖起大拇指！</source>
      <description>Office Automation，江湖人称OA，一般都是公司内部办公自动化系统的简称， 通常是将计算机、通信等现代化技术运用到传统办公方式，进而形成的一种新型办公方式。 一般去到某个公司入职，最早听到的往往就是“XXX，帮忙把新员工的OA开一下” 一个好的OA系统可以优质而高效地处理办公事务和业务信息，实现对信息资源的高效利用，进而达到提高生产率、辅助决策的目的，最大限度地提高工作效率和质量、改善工作环境。 今天小编就给大家带来一个开源OA系统，o2oa，供大家品鉴、学习！</description>
      <category>开源推荐</category>
      <pubDate>Mon, 13 Dec 2021 16:22:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>Office Automation，江湖人称OA，一般都是公司内部办公自动化系统的简称， 通常是将计算机、通信等现代化技术运用到传统办公方式，进而形成的一种新型办公方式。</p>
<p>一般去到某个公司入职，最早听到的往往就是“XXX，帮忙把新员工的OA开一下”</p>
<p>一个好的OA系统可以优质而高效地处理办公事务和业务信息，实现对信息资源的高效利用，进而达到提高生产率、辅助决策的目的，最大限度地提高工作效率和质量、改善工作环境。</p>
<p>今天小编就给大家带来一个开源OA系统，<strong>o2oa</strong>，供大家品鉴、学习！</p>
<p><img src="https://static.didispace.com/images/pasted-772.png" alt="o2oa"></p>
<p>o2oa应用开发平台，是使用JavaEE技术栈，分布式架构设计的一款真正全代码开源的企业应用定制化开发平台。适用于企业OA、协同办公类信息化系统的建设和开发。</p>
<p>平台支持国产麒麟操作系统和国产数据库（例如达梦、人大金仓），真正做一个国人的国产OA系统</p>
<p><img src="https://static.didispace.com/images/pasted-773.png" alt="o2oa"></p>
<p>平台拥有<strong>流程管理、门户管理、信息管理、数据管理和服务管理</strong>五大核心能力。</p>
<h2> 流程管理</h2>
<p>主要包含全功能流程引擎。</p>
<p>基于任务驱动，开放式服务驱动，高灵活性、扩展性，事件定义丰富。</p>
<p>包含人工、自动、拆分、合并、并行、定时、服务调用、子流程等功能。</p>
<p>应用场景丰富，可轻松实现公文、合同、项目管理等复杂工作流应用。</p>
<h2> 门户管理</h2>
<p>具体可视化表单编辑的，支持HTML直接导入的，支持各类数据源，外部应用集成能力的，所见即所得的门户管理平台。</p>
<p>适用于实现企业信息化门户系统，可以轻松结合O2OA提供的认证设置与其他系统进行单点认证集成。</p>
<h2> 信息管理</h2>
<p>具有权限控制能力的内容管理平台。</p>
<p>支持自定义栏目、分类，表格，表单，多级权限系统， 能轻松实现知识管理、通知公司、规章制度、文件管理等内容发布系统。</p>
<h2> 数据管理</h2>
<p>可以通过配置轻松实现数据透视图展示，数据统计、数据可视化图表开发等等功能。</p>
<h2> 服务管理</h2>
<p>可以在前端脚本的形式，开发和自定义web服务，实现与后端服务数据交互的能力。</p>
<p>五大核心能力之外，还包括像智能办公、移动办公、开箱即用等实用小功能。可以满足 拥有语音办公、人脸识别、指纹认证、智能文档纠错、智能填表推荐等智能办公特色；支持安卓\IOS手机APP办公，支持与企业微信和钉钉集成，支持企业私有化微信部署；提供如考勤管理、日程管理、会议管理、脑图管理、便签、云文件、企业社区、执行力管理等开箱即用的应用供企业选择， 各种丰富实用的功能都有。</p>
<p>平台的特点还在于：</p>
<ul>
<li>代码全部开源，开发者可以下载源码进行任意，编译成自己的信息化平台。</li>
<li>平台全功能免费，无任何功能和人数限制。</li>
<li>支持私有化部署，下载软件安装包后可以安装在自己的服务器上，数据更安全。</li>
<li>随时随地办公，平台支持兼容HTML5的浏览器，并且提供了原生的IOS/Android应用，并且支持钉钉和企业微信集成。</li>
<li>高可扩展性，用户通过简单的学习后，可以自定义配置门户、流程应用、内容管理应用</li>
</ul>
<p>由于平台提供了大量的开发组件和开箱即用的应用，可以大幅度减化项目建设成本和业务应用开发难度。无论是学习还是自用，都非常不错。</p>
<p>当然了，平台还特别贴心的提示程序猿小伙伴，<strong>若开发者学习研究O2OA，企业在O2OA应用开发平台上建设内部使用的办公系统，不闭源分发版本，不参与商业项目的使用行为不会构成侵权风险。</strong></p>
<p>大家可以用的放心！</p>
<p>平台还提示大家，O2OA自带的H2数据库是一个内嵌式的内存数据库，适合用于开发环境、功能演示环境，并不适合用作正式环境。</p>
<p>如果作为正式环境使用，建议使用拥有更高性能，更加稳定的商用级别数据库。如Mysql8，Oracle12C，SQLServer 2012等。</p>
<p>另外，O2OA提供数据定期备份和恢复的能力，建议开启正式环境的数据定期备份的功能，以确保数据库异常时可以进行数据恢复。</p>
<p>可以说是非常周到的项目服务了</p>
<p>前不久刚更新的6.2.x版本，也是更新了相当多的内容，让人看到了项目的良好前景。</p>
<p>同时，项目还提供了丰富详细的编码教程，方便小伙伴们上手。</p>
<p>从第一步如何从仓库下载项目，到安装Github Desktop客户端Clone源码到本地，再下载外部依赖、JVM，配置源码编译环境，最后到编译源码、运行服务，每一步都给安排的明明白白的。</p>
<p>无论是整个项目拿来学习还是自己实际使用，都感觉棒棒的，你也来试试看吧？</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“OA”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-772.png" type="image/png"/>
    </item>
    <item>
      <title>如何快速搭建一个在线互动教室</title>
      <link>https://spring.didispace.com/tj/tj-opensource-onlineclass.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-onlineclass.html</guid>
      <source url="https://spring.didispace.com/rss.xml">如何快速搭建一个在线互动教室</source>
      <description>这两年，随着疫情的出现，很多人的生活习惯都被逐渐改变了。例如在十年前，很多人说起上课、说起开会，一定是要面对面才能完成的事情，但是如今更多的都是云教室、在线会议，TJ君当然要与时俱进，今天跟大家分享一个功能强大的前后端完全开源的简约美观的互动教室项目 Agora Flat Agora Flat，支持MAC、WONDOWS不同平台，并且有手机版、电脑版、网页版各种不同的实现形式。可以轻松创建丰富多样的在线互动房间，实现多场景灵活切换，完成高质量的互动，例如教学或开会。</description>
      <category>开源推荐</category>
      <pubDate>Wed, 24 Nov 2021 23:02:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>这两年，随着疫情的出现，很多人的生活习惯都被逐渐改变了。例如在十年前，很多人说起上课、说起开会，一定是要面对面才能完成的事情，但是如今更多的都是云教室、在线会议，TJ君当然要与时俱进，今天跟大家分享一个<strong>功能强大的前后端完全开源的简约美观的互动教室项目</strong></p>
<p><strong>Agora Flat</strong></p>
<p>Agora Flat，支持MAC、WONDOWS不同平台，并且有手机版、电脑版、网页版各种不同的实现形式。可以轻松创建丰富多样的在线互动房间，实现多场景灵活切换，完成高质量的互动，例如教学或开会。</p>
<p><img src="https://static.didispace.com/images/pasted-722.png" alt=""></p>
<h4> 特点</h4>
<p>既可以用于大型多人授课或会议，由主持人进行课程或会议的讲解，参加者举手发言在线互动；又可以进行一对一的私人定制化互动。</p>
<p>同时项目内置多种经过专业设计的精美主题，无需专业设计经验就可以使用各种不同效果的UI风格。</p>
<p><img src="https://static.didispace.com/images/pasted-723.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-724.png" alt=""></p>
<h4> 语言与功能</h4>
<p>项目主要实现部分都是运用TypeScript语言进行实现，辅以小部分的JavaScript、HTML、Less。</p>
<p>截至目前为止主要已实现的功能有：</p>
<ul>
<li>
<p>实时交互</p>
</li>
<li>
<ul>
<li>多功能互动白板</li>
</ul>
</li>
<li>
<p>实时音视频（RTC）通讯</p>
</li>
<li>
<p>即时消息（RTM）聊天</p>
</li>
<li>
<p>帐户系统</p>
</li>
<li>
<ul>
<li>微信登陆</li>
</ul>
</li>
<li>
<p>GitHub 登陆</p>
</li>
<li>
<p>房间管理</p>
</li>
<li>
<ul>
<li>加入、创建、预定房间</li>
</ul>
</li>
<li>
<p>支持周期性房间</p>
</li>
<li>
<p>课堂录制回放</p>
</li>
<li>
<ul>
<li>白板信令回放</li>
</ul>
</li>
<li>
<p>音视频云录制回放</p>
</li>
<li>
<p>群聊信令回放</p>
</li>
<li>
<p>多媒体课件云盘</p>
</li>
<li>
<p>屏幕共享</p>
</li>
</ul>
<p>尤其是微信登陆这一点，TJ君感觉使用起来还是非常方便的，想学习这方面登录编码技巧的小伙伴也可以引以为鉴。</p>
<p><img src="https://static.didispace.com/images/pasted-725.png" alt=""></p>
<p>从项目的更新频率我们也可以看到每个月几乎都有至少一个版本，这对我们不管是使用还是学习都是一个好消息。</p>
<p><img src="https://static.didispace.com/images/pasted-726.png" alt=""></p>
<h4> 项目安装</h4>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><blockquote>
<p>如果有小伙伴因为网络问题导致无法下载 electron，可以在项目目录新建: .yarnrc 文件，并直接写入<code>electron_mirror "https://npmmirror.com/mirrors/electron/"</code>内容，然后重新执行<code>yarn run bootstrap</code>就可以了。</p>
</blockquote>
<h4> 试用效果</h4>
<p>FLAT登录后，可以看到画面风格还是偏向简约的</p>
<p><img src="https://static.didispace.com/images/pasted-727.png" alt=""></p>
<p>目前项目自带的房间类型主要有三种，分别是<strong>大班课</strong>、<strong>小班课</strong>、<strong>一对一</strong>，如下图</p>
<p><img src="https://static.didispace.com/images/pasted-728.png" alt=""></p>
<h3> 总结</h3>
<p>TJ君觉得大可以开拓思路，FLAT不止可以用于仅仅面向学生的教室，例如公司里的培训、各种会议、父母出差不在小孩身边时的功课监督等等，都可以运用一下，不能将思路局限于某个局部。</p>
<p>让TJ君觉得比较加分的是它的开源代码里面的文档非常详细，例如每个版本的优化项，都有中英文两个版本来进行介绍：</p>
<p><img src="https://static.didispace.com/images/pasted-729.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-730.png" alt=""></p>
<p>其余包括环境变量、如何debug调试也都有对应的文档指导。</p>
<p><img src="https://static.didispace.com/images/pasted-731.png" alt=""></p>
<p>对于想学习类似项目的小伙伴来说，绝对是个小宝藏，感兴趣的小伙伴，赶紧来下载体验或学习吧：</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“FLAT”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-722.png" type="image/png"/>
    </item>
    <item>
      <title>基于Spring Boot 3的开源培训系统，学习和自用都不错</title>
      <link>https://spring.didispace.com/tj/tj-opensource-playedu.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-playedu.html</guid>
      <source url="https://spring.didispace.com/rss.xml">基于Spring Boot 3的开源培训系统，学习和自用都不错</source>
      <description>一个好企业，应该有完善的个人成长体系。每一个员工在为公司付出的时候，个人也能不断的成长。相信这是每个打工人希望遇到的，但要做好这一切并不容易。 如果您正在搭建公司的成长培训体系，那么今天的推荐也许可以助你一臂之力！ 今天要推荐的开源项目名为：PlayEdu 这是一款适用于搭建内部培训平台的开源系统，旨在为企业/机构打造自己品牌的内部培训平台。 PlayEdu 基于 Java + MySQL 开发，采用前后端分离模式，前台采用 React18 为核心框架，后台采用 SpringBoot3 为核心框架。</description>
      <category>Spring Boot</category>
      <pubDate>Mon, 17 Jul 2023 15:39:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>一个好企业，应该有完善的个人成长体系。每一个员工在为公司付出的时候，个人也能不断的成长。相信这是每个打工人希望遇到的，但要做好这一切并不容易。</p>
<p>如果您正在搭建公司的成长培训体系，那么今天的推荐也许可以助你一臂之力！</p>
<p>今天要推荐的开源项目名为：<strong>PlayEdu</strong></p>
<p>这是一款适用于搭建内部培训平台的开源系统，旨在为企业/机构打造自己品牌的内部培训平台。</p>
<p>PlayEdu 基于 Java + MySQL 开发，采用前后端分离模式，前台采用 React18 为核心框架，后台采用 SpringBoot3 为核心框架。</p>
<h2> 功能体验</h2>
<p>该开源项目提供了体验版DEMO，感兴趣的小伙伴可以直接通过下面的链接体验一下该项目的功能：</p>
<ul>
<li>学员端入口：https://demo.playedu.xyz，账号：1@playedu.xyz 密码；123123</li>
<li>管理端入口：https://admin.playedu.xyz，账号：admin@playedu.xyz 密码：123123</li>
</ul>
<p>您也可以直接通过下面的截图了解一二：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-playedu/1689608411341.png" alt="学员端口界面预览"></p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-playedu/1689608438045.png" alt="管理后台界面预览"></p>
<h2> 相关链接</h2>
<p>如果该项目对您有用，可以直接通过下面的了解更多！</p>
<ul>
<li>开源地址：https://github.com/PlayEdu/PlayEdu</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-playedu/1689608411341.png" type="image/png"/>
    </item>
    <item>
      <title>开源免费的文件投喂与问答工具，构建你的第二大脑：Quivr</title>
      <link>https://spring.didispace.com/tj/tj-opensource-quivr.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-quivr.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开源免费的文件投喂与问答工具，构建你的第二大脑：Quivr</source>
      <description>大家后，我是TJ 利用AI帮你读文章、利用AI帮你分析非结构化数据，这些最为潮流的AI辅助工具，相信很多读者都在各种媒体上看到过了。但还是有不少人并没有真正的使用过，这里有很多原因导致，具体就不细说了，懂的都懂。 今天TJ就给大家推荐一个你可以在线使用，也可以自己搭建的AI辅助工具：Quivr。Quivr几乎可以处理任何类型的数据，包括：文本、图像、代码、音视频。采用GPT来检索和输出。以速度和效率为核心设计，确保快速访问处理您的数据并为您服务。 下面就来一起认识和体验一下它吧！ 使用体验</description>
      <category>开源推荐</category>
      <pubDate>Mon, 07 Aug 2023 03:29:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家后，我是TJ</p>
<p>利用AI帮你读文章、利用AI帮你分析非结构化数据，这些最为潮流的AI辅助工具，相信很多读者都在各种媒体上看到过了。但还是有不少人并没有真正的使用过，这里有很多原因导致，具体就不细说了，懂的都懂。</p>
<p>今天TJ就给大家推荐一个你可以在线使用，也可以自己搭建的AI辅助工具：<strong>Quivr</strong>。Quivr几乎可以处理任何类型的数据，包括：文本、图像、代码、音视频。采用GPT来检索和输出。以速度和效率为核心设计，确保快速访问处理您的数据并为您服务。</p>
<p>下面就来一起认识和体验一下它吧！</p>
<h2> 使用体验</h2>
<p>Quivr上手非常简单，可以直接通过官网网站登录之后，上传一个你要让AI学习的文件：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-quivr/1691379852763.png" alt="上传文件"></p>
<p>对于上传文件，目前已经支持以下文本和音视频内容：</p>
<ul>
<li>Text</li>
<li>Markdown</li>
<li>PDF</li>
<li>Powerpoint</li>
<li>CSV</li>
<li>Word</li>
<li>Audio</li>
<li>Video</li>
</ul>
<p>上传完成之后，进入聊天框，你就可以直接对AI进行提问了，Quivr会根据学习到的内容来回答您：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-quivr/1691380051686.png" alt="开始问答"></p>
<p>对于AI的配置还可以通过右下角的设置按钮做进一步微调，比如：采用更高级的GPT-4模型：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-quivr/1691379832087.png" alt="配置微调"></p>
<p>在线使用是不是很简单呢？</p>
<p>如果你还有更高的需求，比如：自己搭建的话，可以进入它的开源项目，部署自己的服务或者基于其做二次开发：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-quivr/1691380486423.png" alt="图 3"></p>
<p>最后，奉上相关链接，感兴趣的小伙伴，赶紧冲吧！</p>
<p>开源地址：https://github.com/StanGirard/quivr
官网网站：https://www.quivr.app</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-opensource-quivr/1691379852763.png" type="image/png"/>
    </item>
    <item>
      <title>报表太难看？试试这个开源项目ReportPlus！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-reportplus.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-reportplus.html</guid>
      <source url="https://spring.didispace.com/rss.xml">报表太难看？试试这个开源项目ReportPlus！</source>
      <description>这两天小编一个在银行工作的小伙伴来吐槽，说是天天在做各种报表，现在看到表格都反胃，小编无奈之下只好安慰安慰，问他这报表到底多难看？他说这个样子： 吐槽之余小伙伴问小编，现在市面上流行的报表都是什么样的？毕竟在银行，很多新技术新功能都受到限制，往往用的都是比较陈旧的但安全成熟的技术。 看着小伙伴那充满期望的眼神，小编怎么能拒绝呢？拿出一个之前见过的特别帅气的报表项目，让他涨涨眼力！ ReportPlus</description>
      <category>开源推荐</category>
      <pubDate>Tue, 28 Sep 2021 10:14:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>这两天小编一个在银行工作的小伙伴来吐槽，说是天天在做各种报表，现在看到表格都反胃，小编无奈之下只好安慰安慰，问他这报表到底多难看？他说这个样子：</p>
<p><img src="https://static.didispace.com/images/pasted-602.png" alt="难看的报表"></p>
<p>吐槽之余小伙伴问小编，现在市面上流行的报表都是什么样的？毕竟在银行，很多新技术新功能都受到限制，往往用的都是比较陈旧的但安全成熟的技术。</p>
<p>看着小伙伴那充满期望的眼神，小编怎么能拒绝呢？拿出一个之前见过的特别帅气的报表项目，让他涨涨眼力！</p>
<h2> ReportPlus</h2>
<p><img src="https://static.didispace.com/images/pasted-603.png" alt="ReportPlus"></p>
<p>一个封装了各种精美日历组件、表格组件、排行榜组件、条形进度条组件、文本块组件、图表组件的开源项目，作者的目的就是让大家能将报表尽量做的精美更精美，同时尽可能地减少用户的上手难度，用户只要按照虚拟数据的格式，上传特定数据就可以生成一个又一个美丽实用的报表~</p>
<p>那到底要多好看呢？</p>
<p>比如像这样子的财务统计报表效果：</p>
<p><img src="https://static.didispace.com/images/pasted-604.png" alt="财务统计报表-1"></p>
<p><img src="https://static.didispace.com/images/pasted-606.png" alt="财务统计报表-2"></p>
<p>比如像这样子的会员运营情况报表：</p>
<p><img src="https://static.didispace.com/images/pasted-605.png" alt="会员运营情况报表"></p>
<p>看上去是不是比枯燥的表格式的数字形式好看多了呢？</p>
<p>要知道这些只是简单的示例，用心去做的话，绝对可以做的更好看更花哨！还有各种动态效果可以实现。</p>
<p>之所以能做出这么优秀的展示效果，主要是因为项目运用了ucharts图表插件、wyb-table表格插件两大利器。</p>
<p>ucharts图表插件，是一个高性能跨平台图表库，支持H5、APP、各种小程序、Vue、Taro等各种支持canvas的框架平台，可以生成各种图，例如饼图、圆环图、线图、仪表盘、K线图、条状图，等等等等，只有你想不到，没有他做不到。</p>
<p>wyb-table表格插件，支持条件格式、排序、格式化、链接、统计等丰富多样的各种功能。</p>
<p>由这两大利器，再加上作者的点睛之笔，ReportPlust就可以做出美轮美奂的报表了。用户所要做的只是将数据按格式传入就可以了！</p>
<p>比如像文本处理，如果要实现分两层展示，上层纯数字，下层纯文字的排版类型，只需要这样：</p>
<div class="language-json line-numbers-mode" data-ext="json"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>其中，kind表示使用哪种类型的文本块，1就是选择了两层展示，上层纯数字，下层纯文字；background指背景颜色；content	array是该文本框内文本内容，是不是很简单？还有更多的内容等你来一一尝试。</p>
<p>如果你已经厌倦了各种老旧的报表风格，对那些千篇一律的矩阵不待见，如果你是个追求好看美观的潮流人士，那么这款开源的报表项目，可不要错过哦！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“报表”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-602.png" type="image/png"/>
    </item>
    <item>
      <title>Spring Security太复杂？试试这个轻量级权限认证框架！</title>
      <link>https://spring.didispace.com/tj/tj-opensource-sa-token.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-sa-token.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Spring Security太复杂？试试这个轻量级权限认证框架！</source>
      <description>各位程序猿小伙伴们，中秋快乐~在节日欢快的气氛中大家是不是还在奋笔疾书、沉浸在学习的海洋中呢？ 小编这两天休息在家一直在想一个问题，那就是我们在开发SpringBoot项目的时候，该怎么做好权限认证呢？之前有和小伙伴讨论的时候说起过一些常见的相关框架，例如Shiro或者Spring Security等，但这些框架似乎在运用上存在着各种美中不足的地方，尤其是用起来太过复杂，劝退了不少新手程序猿，让人总觉意犹未尽。 不过呢，就在这个假期里，小编发现了一个新的权限认证框架，总体感觉使用起来简单明了，整体的API设计呢也属上乘，所以赶紧来和大家分享下~ 他就是，权限认证框架领域一块璀璨的明珠~~~下面让我们有请：</description>
      <category>开源推荐</category>
      <pubDate>Wed, 22 Sep 2021 11:48:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>各位程序猿小伙伴们，中秋快乐~在节日欢快的气氛中大家是不是还在奋笔疾书、沉浸在学习的海洋中呢？</p>
<p>小编这两天休息在家一直在想一个问题，那就是我们在开发SpringBoot项目的时候，该怎么做好权限认证呢？之前有和小伙伴讨论的时候说起过一些常见的相关框架，例如Shiro或者Spring Security等，但这些框架似乎在运用上存在着各种美中不足的地方，尤其是用起来太过复杂，劝退了不少新手程序猿，让人总觉意犹未尽。</p>
<p>不过呢，就在这个假期里，小编发现了一个新的权限认证框架，总体感觉使用起来简单明了，整体的API设计呢也属上乘，所以赶紧来和大家分享下~</p>
<p>他就是，权限认证框架领域一块璀璨的明珠~~~下面让我们有请：</p>
<h2> Sa-Token</h2>
<p><img src="https://static.didispace.com/images/pasted-572.png" alt="Spring Security太复杂？试试这个轻量、强大、优雅的权限认证框架"></p>
<p>Sa-Token，可能是史上功能最全的Java权限认证框架之一！或者可以去掉之一两字。</p>
<p>截止目前为止，Sa-Token已集成——登录认证、权限认证、分布式Session会话、微服务网关鉴权、单点登录、OAuth2.0、踢人下线、Redis集成、前后台分离、记住我模式、模拟他人账号、临时身份切换、账号封禁、多账号认证体系、注解式鉴权、路由拦截式鉴权、花式token生成、自动续签、同端互斥登录、会话治理、密码加密、jwt集成、Spring集成、WebFlux集成等等等等各种各样的丰富内容。</p>
<p>看着这么多功能似乎有种让人眼花的感觉，没事没事，浓缩一下精华，其实你只要记住：</p>
<blockquote>
<p>Sa-Token 作为一个轻量级 Java 权限认证框架，主要解决：登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题。</p>
</blockquote>
<p>Sa-Token的一大优点就是API设计简单不冗余复杂。有多简单？可能光说不够直观，小编带你看下他的登录认证：</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>就上面短短的两句话，我们已经完成了登录认证。用过其他框架的小伙伴可能现在满脑在都是问号，什么？自定义 Realm 呢？全局过滤器呢？各种配置文件吗？</p>
<p>是的，相对于前文提到的Shiro、Spring Security， Sa-Token就是如此的简单便捷，更加适合当今时代的潮流与效率至上。</p>
<p>小编再举两个例子，例如权限认证：</p>
<p>（只有具备 user:add 权限的会话才可以进入请求）</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>又例如账号登出：</p>
<p>将某个账号踢下线（待到对方再次访问系统时会抛出NotLoginException异常）</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>不止以上这些功能，其实在Sa-Token里，绝大多数功能都可以只用一行代码完成，听着很神奇是吧？但事实就是这样：</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>有小伙伴可能要问了，那么这么简单好用的Sa-Token到底支持哪些功能啊？其实就是前文看着晕乎乎那一堆功能，不过如果小编给你整理一下，你就会觉得清晰无比：</p>
<h1> 功能一览</h1>
<ul>
<li>登录认证 —— 单端登录、多端登录、同端互斥登录、七天内免登录</li>
<li>权限认证 —— 权限认证、角色认证、会话二级认证</li>
<li>Session会话 —— 全端共享Session、单端独享Session、自定义Session</li>
<li>踢人下线 —— 根据账号id踢人下线、根据Token值踢人下线</li>
<li>账号封禁 —— 指定天数封禁、永久封禁、设定解封时间</li>
<li>持久层扩展 —— 可集成Redis、Memcached等专业缓存中间件，重启数据不丢失</li>
<li>分布式会话 —— 提供jwt集成、共享数据中心两种分布式会话方案</li>
<li>微服务网关鉴权 —— 适配Gateway、ShenYu、Zuul等常见网关的路由拦截认证</li>
<li>单点登录 —— 内置三种单点登录模式：无论是否跨域、是否共享Redis，都可以搞定</li>
<li>OAuth2.0认证 —— 基于RFC-6749标准编写，OAuth2.0标准流程的授权认证，支持openid模式</li>
<li>二级认证 —— 在已登录的基础上再次认证，保证安全性</li>
<li>Basic认证 —— 一行代码接入 Http Basic 认证</li>
<li>独立Redis —— 将权限缓存与业务缓存分离</li>
<li>临时Token验证 —— 解决短时间的Token授权问题</li>
<li>模拟他人账号 —— 实时操作任意用户状态数据</li>
<li>临时身份切换 —— 将会话身份临时切换为其它账号</li>
<li>前后台分离 —— APP、小程序等不支持Cookie的终端</li>
<li>同端互斥登录 —— 像QQ一样手机电脑同时在线，但是两个手机上互斥登录</li>
<li>多账号认证体系 —— 比如一个商城项目的user表和admin表分开鉴权</li>
<li>花式token生成 —— 内置六种Token风格，还可：自定义Token生成策略、自定义Token前缀</li>
<li>注解式鉴权 —— 优雅的将鉴权与业务代码分离</li>
<li>路由拦截式鉴权 —— 根据路由拦截鉴权，可适配restful模式</li>
<li>自动续签 —— 提供两种Token过期策略，灵活搭配使用，还可自动续签</li>
<li>会话治理 —— 提供方便灵活的会话查询接口</li>
<li>记住我模式 —— 适配[记住我]模式，重启浏览器免验证</li>
<li>密码加密 —— 提供密码加密模块，可快速MD5、SHA1、SHA256、AES、RSA加密</li>
<li>全局侦听器 —— 在用户登陆、注销、被踢下线等关键性操作时进行一些AOP操作</li>
<li>开箱即用 —— 提供SpringMVC、WebFlux等常见web框架starter集成包，真正的开箱即用</li>
</ul>
<h1> 功能结构</h1>
<p><img src="https://static.didispace.com/images/pasted-573.png" alt="Spring Security太复杂？试试这个轻量、强大、优雅的权限认证框架"></p>
<p><img src="https://static.didispace.com/images/pasted-574.png" alt="Spring Security太复杂？试试这个轻量、强大、优雅的权限认证框架"></p>
<p>项目目录结构：</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>可能又有小伙伴会问，这么好用？引用集成起来难吗？当然也是非常简单的。</p>
<h1> 引用依赖</h1>
<p>在项目中直接通过 pom.xml 引入依赖即可</p>
<div class="language-xml line-numbers-mode" data-ext="xml"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>然后在application.yml中增加如下配置，就可以使用框架啦：</p>
<div class="language-yaml line-numbers-mode" data-ext="yml"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h1> 尝试运行</h1>
<p>新建包 com.pj ，在此包内新建主类 SaTokenDemoApplication.java，输入以下代码：</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>再创建一个测试类</p>
<div class="language-java line-numbers-mode" data-ext="java"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>尝试运行，启动代码，从浏览器依次访问下面这些测试接口就可以了：</p>
<p><img src="https://static.didispace.com/images/pasted-575.png" alt="Spring Security太复杂？试试这个轻量、强大、优雅的权限认证框架"></p>
<p>是不是有点感觉了？Sa-Token 还提供了详细的线上指导文档，绝对手把手教你学会使用这个框架。不会用的情况，绝对是不存在的！</p>
<p>想必小伙伴们都已经迫不及待想试试这个看似神奇又简单易用的框架了？</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“权限控制”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-572.png" type="image/png"/>
    </item>
    <item>
      <title>监控手机短信、来电、APP通知的开源项目</title>
      <link>https://spring.didispace.com/tj/tj-opensource-smsforwarder.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-smsforwarder.html</guid>
      <source url="https://spring.didispace.com/rss.xml">监控手机短信、来电、APP通知的开源项目</source>
      <description>平日小伙伴有没有遇到过这样一个情况，玩着ipad或电脑，结果要求手机上的验证码，然后手忙脚乱的找手机在哪里？ TJ君就一直想着是不是搞一个短信转发器，让这种短信直接转到我用的设备上，方便快速！可惜啊，以前TJ君就说过，心动不如行动，一定不要只顾着想，要实际去做。这不，又有大神先TJ君一步完成了这样一个实用项目，也就是今天TJ君要和大家分享的短信转发器项目： SmsForwarder</description>
      <category>开源推荐</category>
      <pubDate>Wed, 09 Feb 2022 13:20:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>平日小伙伴有没有遇到过这样一个情况，玩着ipad或电脑，结果要求手机上的验证码，然后手忙脚乱的找手机在哪里？</p>
<p>TJ君就一直想着是不是搞一个短信转发器，让这种短信直接转到我用的设备上，方便快速！可惜啊，以前TJ君就说过，心动不如行动，一定不要只顾着想，要实际去做。这不，又有大神先TJ君一步完成了这样一个实用项目，也就是今天TJ君要和大家分享的短信转发器项目：</p>
<h2> SmsForwarder</h2>
<p><img src="https://static.didispace.com/images/pasted-881.png" alt="SmsForwarder"></p>
<p>SmsForwarder，是一个日常监控手机短信、来电、APP通知，然后根据指定的规则将这些内容转发到其他平台的项目。</p>
<p>简单的说就是：</p>
<p>监听---&gt;转发，两个步骤。</p>
<p>这里其他平台指包含如下途径：</p>
<blockquote>
<p>钉钉机器人、企业微信群机器人、飞书机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱、PushPlus、手机短信等</p>
</blockquote>
<p>不过目前只有安卓的版本，苹果的小伙伴要失望了。</p>
<p>再来说说SmsForwarder的特点，唔，TJ君觉得有三个主要之处：</p>
<ul>
<li>方便</li>
</ul>
<p>就是最开始说的，看手机验证码各种不方便。</p>
<ul>
<li>省电</li>
</ul>
<p>项目运行时只会监听广播，有短信才执行转发，并记录最近n条的转发内容和转发状态，不会有其余多余的耗能。</p>
<ul>
<li>健壮</li>
</ul>
<p>因为简单，所以减少了各种容易崩溃出错的可能性，运行更稳定。</p>
<p>我们来看下项目的运行流程图：</p>
<p><img src="https://static.didispace.com/images/pasted-882.png" alt="SmsForwarder"></p>
<p>再来看下实际使用的效果：</p>
<p><img src="https://static.didispace.com/images/pasted-883.png" alt="SmsForwarder"></p>
<p><img src="https://static.didispace.com/images/pasted-884.png" alt="SmsForwarder"></p>
<p><img src="https://static.didispace.com/images/pasted-885.png" alt="SmsForwarder"></p>
<p><img src="https://static.didispace.com/images/pasted-886.png" alt="SmsForwarder"></p>
<p><img src="https://static.didispace.com/images/pasted-887.png" alt="SmsForwarder"></p>
<p>是不是使用相对比较简单？功能相对比较实用？有安卓手机的小伙伴，可以赶紧来试试这款项目吧。</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“转发消息”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-881.png" type="image/png"/>
    </item>
    <item>
      <title>30K Star，最全面的PDF处理开源项目，你也可以拥有一个本地的PDF处理大全</title>
      <link>https://spring.didispace.com/tj/tj-opensource-stirling-pdf.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-stirling-pdf.html</guid>
      <source url="https://spring.didispace.com/rss.xml">30K Star，最全面的PDF处理开源项目，你也可以拥有一个本地的PDF处理大全</source>
      <description>大家好，我是程序猿DD 今天给大家推荐一个日常大概率能用上的开源项目：Stirling PDF 开源地址：https://github.com/Stirling-Tools/Stirling-PDF Stirling PDF是一个可以用Docker在本地托管的基于Web的PDF处理工具。它的功能非常强大，你可以用它对PDF文件进行各种操作，包括拆分、合并、转换、重新组织、添加图像、旋转、压缩等。</description>
      <category>开源推荐</category>
      <pubDate>Fri, 19 Jul 2024 03:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是程序猿DD</p>
<p>今天给大家推荐一个日常大概率能用上的开源项目：Stirling PDF</p>
<p>开源地址：https://github.com/Stirling-Tools/Stirling-PDF</p>
<p>Stirling PDF是一个可以用Docker在本地托管的基于Web的PDF处理工具。它的功能非常强大，你可以用它对PDF文件进行各种操作，包括拆分、合并、转换、重新组织、添加图像、旋转、压缩等。</p>
<p><img src="https://static.didispace.com/images3/29c55be9a8897c427769f3bf7b915015.png" alt=""></p>
<p>从官方给的介绍图来看，这个本地托管的Web应用程序可以说是PDF的处理大全，几乎可以满足您所有的PDF需求。</p>
<p>同时，Stirling PDF不会出于记录或跟踪任何出站调用，所有文件和PDF要么仅存在于客户端，要么仅在任务执行期间存在于服务器内存中，或者仅在任务执行期间临时存在于一个文件中，隐私保护也是杠杠的。</p>
<p>所以，如果你平时经常需要处理PDF，那么可以考虑自己在Docker上部署一个。如果不知道如何自己部署一个，那就看下面：</p>
<ol>
<li>打开Docker，搜索 frooodle/s-pdf，点击 Pull</li>
</ol>
<p><img src="https://static.didispace.com/images3/9d0f43e9c18c455a3dfd5229227b9744.png" alt=""></p>
<ol start="2">
<li>Pull 完成之后，点击 Run。根据需要你可以做一些配置，注意记得设置一个端口，比如我设置了：9000</li>
</ol>
<p><img src="https://static.didispace.com/images3/6c5678197d833065b6ff1ac40caaf2d2.png" alt=""></p>
<p>3.启动之后，你就可以通过：http://localhost:9000，访问到部署于自己docker上的pdf处理工具了</p>
<p>不用担心全英文看不懂，因为右上角可以切换语言：</p>
<p><img src="https://static.didispace.com/images3/5bf5794a658337ddc836e876d89eb21f.png" alt=""></p>
<p>它的汉化也是做的非常全面，当心大部分人都可以快速上手</p>
<p><img src="https://static.didispace.com/images3/9d736787a27fc7cfa6e40cb61c321822.png" alt=""></p>
<p>好了，今天的分享就到这里，希望这个工具对您有用～</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/29c55be9a8897c427769f3bf7b915015.png" type="image/png"/>
    </item>
    <item>
      <title>SpringBoot + Vue开发的网页版聊天室</title>
      <link>https://spring.didispace.com/tj/tj-opensource-subtlechat.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-subtlechat.html</guid>
      <source url="https://spring.didispace.com/rss.xml">SpringBoot + Vue开发的网页版聊天室</source>
      <description>在本站看完了DD的Spring Boot教程之后，是不是很想再来一个更贴近实战项目学习一下？ 今天TJ就顺手给大家推荐一个不错的前后端分离项目，该项目是一个采用SpringBoot + Vue来实现的一个网页版聊天室。 读者可以通过源码学习Spring Boot更为实战的应用，如果你正在做大作业或相关的毕业设计，也可以作为基础参考。 简介 聊天室使用Spring Security安全框架对于登录权限认定进行密码的加密处理，使用WebSocket+Socket.js+Stomp.js实现聊天消息的传输。</description>
      <category>开源推荐</category>
      <pubDate>Tue, 12 Oct 2021 10:46:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>在本站看完了DD的<a href="https://www.didispace.com/spring-boot-2/" target="_blank" rel="noopener noreferrer">Spring Boot教程</a>之后，是不是很想再来一个更贴近实战项目学习一下？</p>
<p>今天TJ就顺手给大家推荐一个不错的前后端分离项目，该项目是一个采用SpringBoot + Vue来实现的一个网页版聊天室。</p>
<p>读者可以通过源码学习Spring Boot更为实战的应用，如果你正在做大作业或相关的毕业设计，也可以作为基础参考。</p>
<h2> 简介</h2>
<p>聊天室使用Spring Security安全框架对于登录权限认定进行密码的加密处理，使用WebSocket+Socket.js+Stomp.js实现聊天消息的传输。</p>
<p>同时服务器使用FastDFS文件服务器保存聊天过程中产生的图片，再结合Vue.js与Element UI进行弹窗和数据表格分页等展示效果。</p>
<p>数据库方便使用MyBatis结合MySQL进行相应的开发。</p>
<p>前后端技术栈：</p>
<p>前端：</p>
<ul>
<li>Vue</li>
<li>ElementUI</li>
<li>axios</li>
<li>vue-router</li>
<li>Vuex</li>
<li>WebSocket</li>
<li>vue-cli4</li>
</ul>
<p>后端：</p>
<ul>
<li>Spring Boot</li>
<li>Spring Security</li>
<li>MyBatis</li>
<li>MySQL</li>
<li>WebSocket</li>
<li>RabbitMQ</li>
<li>Redis</li>
</ul>
<p>具体实现的功能方面，基本上一个聊天室应该有的各种内容，像发送图片、导出记录、查看历史纪录、表情发送、点对点聊还都有，可谓麻雀虽小、五脏俱全。</p>
<p>但TJ君觉得可能作者在实现功能的时候拿微信做了参考，所以具体实际的实现效果，看上去和微信的群聊功能更像，如果想整成过去的聊天室风格，可能要花点精力自己找老图片以及自己动手修改下UI了。</p>
<p><img src="https://static.didispace.com/images/pasted-614.png" alt="SpringBoot + Vue开发的网页版聊天室"></p>
<p>如果是作为管理员，可以对消息和用户进行管理</p>
<p><img src="https://static.didispace.com/images/pasted-615.png" alt="SpringBoot + Vue开发的网页版聊天室"></p>
<p><img src="https://static.didispace.com/images/pasted-616.png" alt="SpringBoot + Vue开发的网页版聊天室"></p>
<p>整体的部署流程可以分为以下步骤。</p>
<ul>
<li>下载项目到本地。</li>
<li>在本地的MySQL数据库中创建一个新的空数据库subtlechat，然后运行项目中的脚本subtlechat.sql，完成表和初始数据的创建导入。</li>
</ul>
<p><img src="https://static.didispace.com/images/pasted-617.png" alt="subtlechat.sql"></p>
<p>具体脚本如下，有点长，不想看的小伙伴可以直接跳过运行即可。看的出作者十分喜欢海贼王，想更改其中海贼王相关名字的小伙伴可以自行更改。</p>
<div class="language-sql line-numbers-mode" data-ext="sql"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul>
<li>接着准备好Redis，找到项目mail模块里面的application.yml 文件，将其中的 Redis 配置更改成自己的。然后还要将application.yml 文件中的RabbitMQ 的配置更改成自己的，web模块里面的 application-dev.properties文件一样配置自己的RabbitMQ 。紧接着将注册邮箱的授权码也要填入application.yml 文件里面，这些步骤比较麻烦，图示如下：</li>
</ul>
<p><img src="https://static.didispace.com/images/pasted-618.png" alt="application.yml"></p>
<ul>
<li>上述操作都好了之后，搭建一个fastdfs服务器，在fastdfs-client.properties文件里填入搭建好的服务器，然后最后在 IDEA 中打开subtlechat项目，首先启动 mail模块，接着启动web模块，最后启动vue项目，就大功告成了！</li>
</ul>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“聊天室”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-614.png" type="image/png"/>
    </item>
    <item>
      <title>超级好用的免费开源文件同步工具：Syncthing</title>
      <link>https://spring.didispace.com/tj/tj-opensource-syncthing.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-syncthing.html</guid>
      <source url="https://spring.didispace.com/rss.xml">超级好用的免费开源文件同步工具：Syncthing</source>
      <description>相信不少小伙伴跟TJ君有一样的经历，当然相信也会有小伙伴是因为更换设备导致的文件丢失，不管怎么说，临时用用还行，平时大家还是不要把重要的文件直接存储在微信上，还是该备份的备份，该传输到本地的传输。存到网盘？你确定不开通个VIP那上传下载速度能用？ 那么今天的问题就来了，平时大家都用什么文件传输工具呢？ 今天TJ君要和大家分享的就是一款免费、开源的文件同步工具，Syncthing</description>
      <category>开源推荐</category>
      <pubDate>Mon, 27 Dec 2021 10:09:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>相信不少小伙伴跟TJ君有一样的经历，当然相信也会有小伙伴是因为更换设备导致的文件丢失，不管怎么说，临时用用还行，平时大家还是不要把重要的文件直接存储在微信上，还是该备份的备份，该传输到本地的传输。存到网盘？你确定不开通个VIP那上传下载速度能用？</p>
<p>那么今天的问题就来了，平时大家都用什么文件传输工具呢？</p>
<p>今天TJ君要和大家分享的就是一款免费、开源的文件同步工具，<strong>Syncthing</strong></p>
<p><img src="https://static.didispace.com/images/pasted-815.png" alt=""></p>
<p>作为一款P2P性质的文件同步工具，Syncthing在Github上广受欢迎，已经收获了42k的Star！</p>
<p>Syncthing有五大特点：</p>
<ul>
<li>1、避免数据丢失</li>
<li>2、安全防范攻击者</li>
<li>3、便捷使用</li>
<li>4、自动化运行</li>
<li>5、高兼容性</li>
</ul>
<p>像Windwos、macOS、Android、Linux这些主流平台都支持Syncthing，所以Syncthing可以跨平台的进行文件传输。</p>
<p>目前最新的版本是v1.18.5版本，在18天前更新，说明作者也一直在优化迭代。</p>
<p>以windows为例，只需要安装好Syncthing电脑端的应用程序，打开浏览器访问 http://127.0.0.1:8384/ 就可以进入 Syncthing传输平台。</p>
<p><img src="https://static.didispace.com/images/pasted-816.png" alt=""></p>
<p>如果在其他设备，例如手机端也安装完Syncthing，便会有同步提示，通过后就可以进行文件传输了。速度很快哦！</p>
<p>不知道大家有没有从TJ的图中发现，虽然Syncthing的开源项目都是英文描述，但是其使用界面却是中文的，算不算也是给我们大天朝的一个小小的福利呢？想试试这款工具传输文件进行备份的小伙伴们，赶紧来试试吧！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“Syncthing”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-815.png" type="image/png"/>
    </item>
    <item>
      <title>34.9K Star！超受欢迎的开源免费后台模版：tabler</title>
      <link>https://spring.didispace.com/tj/tj-opensource-tabler.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-tabler.html</guid>
      <source url="https://spring.didispace.com/rss.xml">34.9K Star！超受欢迎的开源免费后台模版：tabler</source>
      <description>大家好，我是TJ 之前给大家推荐过好几款后台模版，都很受欢迎。今天继续再给大家推荐一款非常热门、广受好评的后台模版：tabler tabler作为一款国外的开源项目，目前已经收获了34.9K Star，含金量非常高。它的主要特点总结如下： 响应式布局：支持移动、平板电脑和台式机显示器，无论您使用哪种设备。Tabler在所有主流浏览器中都能很好的展示内容。 跨浏览器支持：tabler与最新的Chrome、Firefox+、Safari、Opera、Edge和移动版本的浏览器都能完美兼容 HTML5和CSS3：采用HTML5和CSS3实现，模版中还包括了一些微妙的CSS3动画，用户体验极佳 干净的代码：严格遵循Bootstrap开发标准，容易阅读，也更容易二次开发 丰富的演示：模版提供了丰富的掩饰内容，各种组件提供了20多个单独的页面，让您可以自由选择和组合。所有组件的颜色和样式都可能不同，您可以使用Sass轻松进行修改。 单页应用版本：tabler还有一个React版本，可以帮助你构建单页版本的应用</description>
      <category>开源推荐</category>
      <pubDate>Tue, 15 Aug 2023 04:09:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ</p>
<p>之前给大家推荐过好几款后台模版，都很受欢迎。今天继续再给大家推荐一款非常热门、广受好评的后台模版：<strong>tabler</strong></p>
<p><strong>tabler</strong>作为一款国外的开源项目，目前已经收获了34.9K Star，含金量非常高。它的主要特点总结如下：</p>
<ul>
<li>响应式布局：支持移动、平板电脑和台式机显示器，无论您使用哪种设备。Tabler在所有主流浏览器中都能很好的展示内容。</li>
<li>跨浏览器支持：tabler与最新的Chrome、Firefox+、Safari、Opera、Edge和移动版本的浏览器都能完美兼容</li>
<li>HTML5和CSS3：采用HTML5和CSS3实现，模版中还包括了一些微妙的CSS3动画，用户体验极佳</li>
<li>干净的代码：严格遵循Bootstrap开发标准，容易阅读，也更容易二次开发</li>
<li>丰富的演示：模版提供了丰富的掩饰内容，各种组件提供了20多个单独的页面，让您可以自由选择和组合。所有组件的颜色和样式都可能不同，您可以使用Sass轻松进行修改。</li>
<li>单页应用版本：tabler还有一个React版本，可以帮助你构建单页版本的应用</li>
</ul>
<p>下面我们一起欣赏下tabler官方提供的demo：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-tabler/1692072825972.png" alt="Dashboard"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-tabler/1692073354647.png" alt="Form"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-tabler/1692073373679.png" alt="Button"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-tabler/1692073626622.png" alt="Tables"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-tabler/1692073688287.png" alt="Badges"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-tabler/1692073595866.png" alt="Email Template"></p>
<p>最后，奉上相关地址，感兴趣的可以前往了解更多：</p>
<ul>
<li>演示地址：https://preview.tabler.io/</li>
<li>开源项目：https://github.com/tabler/tabler</li>
<li>React版本：https://github.com/tabler/tabler-react</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-opensource-tabler/1692072825972.png" type="image/png"/>
    </item>
    <item>
      <title>15.3K Star，超好用的开源协作式数字白板：tldraw</title>
      <link>https://spring.didispace.com/tj/tj-opensource-tldraw.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-tldraw.html</guid>
      <source url="https://spring.didispace.com/rss.xml">15.3K Star，超好用的开源协作式数字白板：tldraw</source>
      <description>15.3K Star，超好用的开源协作式数字白板：tldraw 大家好，我是TJ 今天给大家推荐一个开源协作式数字白板：tldraw。 tldraw的编辑器、用户界面和其他底层库都是开源的，你可以在它的开源仓库中找到它们。它们也在NPM上分发，提供开发者使用。您可以使用tlDraw为您的产品创建一个临时白板，或者将其作为构建自己应用的工具来使用。</description>
      <category>工具推荐</category>
      <pubDate>Tue, 12 Sep 2023 12:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 15.3K Star，超好用的开源协作式数字白板：tldraw</h1>
<p>大家好，我是TJ</p>
<p>今天给大家推荐一个开源协作式数字白板：<a href="/tj/tj-opensource-tldraw"><strong>tldraw</strong></a>。</p>
<p><img src="https://static.didispace.com/images2/202309/tj-opensource-tldraw/1694490417373.png" alt="tldraw"></p>
<p>tldraw的编辑器、用户界面和其他底层库都是开源的，你可以在它的开源仓库中找到它们。它们也在NPM上分发，提供开发者使用。您可以使用tlDraw为您的产品创建一个临时白板，或者将其作为构建自己应用的工具来使用。</p>
<h2> 在线体验</h2>
<p>tldraw的官方网站就是一个在线体验的demo，大家可以通过<a href="https://www.tldraw.com/" target="_blank" rel="noopener noreferrer">https://www.tldraw.com/</a>直接访问进入体验。</p>
<p><img src="https://static.didispace.com/images2/202309/tj-opensource-tldraw/1694491190963.png" alt="tldraw在线体验"></p>
<p>可以看到界面非常的简洁，速度也非常快。</p>
<h2> 开发整合</h2>
<p>如果你要把tldraw引入自己的应用中，非常简单，只需要通过类似下面的方法使用即可：</p>
<div class="language-javascript line-numbers-mode" data-ext="js"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>您可以像上面这样使用<code>&lt;Tlraw&gt;</code>的React组件构建一个默认的tldraw白板。你也可以基于此，扩展自己需要的形状、工具和用户接口等。tldraw还提供了编辑器API以支持开发者对白板元素的创建、更新和删除。</p>
<p>具体详细的开发指南，可以前往官方提供的开发文档学习使用：<a href="https://tldraw.dev/" target="_blank" rel="noopener noreferrer">https://tldraw.dev/</a></p>
<p><img src="https://static.didispace.com/images2/202309/tj-opensource-tldraw/1694491055436.png" alt="tldraw开发文档"></p>
<p>最后，老规矩奉上相关地址，感兴趣的小伙伴去深入了解一下吧：</p>
<ul>
<li>官方网站：https://tldraw.com/</li>
<li>开源地址：https://github.com/tldraw/tldraw</li>
</ul>
<img src="https://static.didispace.com/images/qrcode/tj.png">
<p><strong>欢迎关注公众号：TJ君，订阅每日推荐，了解更多效率工具、发现优质开源项目</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202309/tj-opensource-tldraw/1694490417373.png" type="image/png"/>
    </item>
    <item>
      <title>推荐个我在用的免费翻译软件：Bob</title>
      <link>https://spring.didispace.com/tj/tj-opensource-translate.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-translate.html</guid>
      <source url="https://spring.didispace.com/rss.xml">推荐个我在用的免费翻译软件：Bob</source>
      <description>前段时间发了个关于《Spring支持PHP》的视频：点击查看</description>
      <category>开源推荐</category>
      <pubDate>Tue, 12 Apr 2022 00:49:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>前段时间发了个关于<a href="https://mp.weixin.qq.com/s?__biz=MzAxODcyNjEzNQ==&amp;mid=2247559480&amp;idx=1&amp;sn=00694a24f5a81808de26a72d036ee85a&amp;chksm=9bd244a0aca5cdb69418d1138d41daaed8b6d7aec0d5e3154c7bb60d6d07695e91e6d19b01e3&amp;token=780065764&amp;lang=zh_CN#rd" target="_blank" rel="noopener noreferrer">《Spring支持PHP》</a>的视频：<a href="https://www.bilibili.com/video/BV1e3411H78p" target="_blank" rel="noopener noreferrer">点击查看</a></p>
<p>然后有小伙伴留言说：“你这个翻译好像很好用的样子”。</p>
<p><img src="https://static.didispace.com/images/pasted-970.png" alt=""></p>
<p>的确，我自己也觉得很好用。之前视频没看过的不知道是哪个，可以通过截图简单了解下：</p>
<p><img src="https://static.didispace.com/images/pasted-971.png" alt=""></p>
<p>基本操作就是选中要翻译的句子，直接按个快捷键，就出来了，并且可以同时产生多个不同翻译API的结果。</p>
<p>好了，废话不多说，下面具体介绍这个翻译软件！</p>
<h2> Bob</h2>
<p>我在用的翻译软件是一个叫<strong>Bob</strong>的开源软件。</p>
<p><img src="https://static.didispace.com/images/pasted-972.png" alt=""></p>
<p>虽然图标有点丑 + 非主流，但真的挺好用的。但比较可惜的是目前主要就支持MacOS用户。</p>
<p>功能上基本覆盖常规需求了：</p>
<ul>
<li>划词翻译（我最常用）</li>
<li>截图翻译</li>
<li>输入翻译</li>
<li>翻译多开</li>
<li>自定义插件</li>
<li>自动识别语种</li>
<li>驼峰拆分、蛇形拆分</li>
<li>AppleScript 调用</li>
<li>PopClip 调用</li>
</ul>
<h2> 安装</h2>
<p><strong>Homebrew安装</strong></p>
<p>在已经安装了Homebrew的用户直接用下面命令就可以安装</p>
<div class="language-text line-numbers-mode" data-ext="text"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p><strong>手动安装</strong></p>
<ol>
<li>通过下面链接下载安装包</li>
</ol>
<blockquote>
<p>https://gitee.com/ripperhe/Bob/attach_files/1011267/download/Bob.zip</p>
</blockquote>
<ol start="2">
<li>解压之后，把<code>Bob.app</code>拖到应用程序文件夹里</li>
</ol>
<h2> 配置</h2>
<p>在安装完成之后，启动<strong>Bob</strong>，可以在顶部状态栏找到它：</p>
<p><img src="https://static.didispace.com/images/pasted-973.png" alt=""></p>
<p>点击<strong>偏好设置</strong>，可以先设置一下你常用翻译功能的快捷键：</p>
<p><img src="https://static.didispace.com/images/pasted-974.png" alt="快捷键设置"></p>
<p>然后点击<strong>服务</strong>，这里可以配置你要用的翻译源，默认就一个百度翻译的试用版（不是很好用），所以建议配置一个其他的，有条件的情况下你也可以配置多个！</p>
<p><img src="https://static.didispace.com/images/pasted-975.png" alt=""></p>
<p>这里我用的是<strong>腾讯翻译君</strong>，综合方面不一定最好，但我在看技术文档过程中，感觉腾讯翻译君在对技术内容，尤其是专业名词的识别上做的更好一些，所以我主要就看这个。</p>
<p>配置的话，这里也提供了详细的文档来指引，帮助你完成申请和配置。</p>
<p><img src="https://static.didispace.com/images/pasted-977.png" alt=""></p>
<p>至于其他的各种翻译源和更多功能的配置，文档里也有都有详细的说明，具体操作我就不细说了。</p>
<p><img src="https://static.didispace.com/images/pasted-976.png" alt=""></p>
<p>另外值得一提的是这款翻译软件因为好似开源的，同时具备插件能力，所以对于程序员小伙伴来说，要比其他商业翻译软件更容易去扩展自己想要的功能，以达到更舒适的使用习惯。</p>
<p>所以，如果你正在找翻译软件的话，赶紧试试DD一直在用的这款吧。</p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-970.png" type="image/png"/>
    </item>
    <item>
      <title>一款好看好用的后台模版，还搭配了教程</title>
      <link>https://spring.didispace.com/tj/tj-opensource-v3adminvite.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-v3adminvite.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款好看好用的后台模版，还搭配了教程</source>
      <description>之前给大家推荐过不少后台模版了，今天再推荐基于Vue3实现的后台模版：V3 Admin Vite 先来看看效果：</description>
      <category>开源推荐</category>
      <pubDate>Wed, 05 Jul 2023 11:24:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>之前给大家推荐过不少后台模版了，今天再推荐基于Vue3实现的后台模版：V3 Admin Vite</p>
<p>先来看看效果：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-v3adminvite/1688786684618.png" alt=""><br>
<img src="https://static.didispace.com/images2/202307/tj-opensource-v3adminvite/1688786688086.png" alt=""><br>
<img src="https://static.didispace.com/images2/202307/tj-opensource-v3adminvite/1688786691353.png" alt=""></p>
<p>感兴趣的小伙伴也可以通过这个地址来体验：https://un-pany.github.io/v3-admin-vite/</p>
<p>该后台模版同之前推荐的模版有个很大的区别，就是没有那么复杂，功能并不多，但功能不多有不多的好处，就是比较适合应对一些简单场景。不会参杂很多不需要的功能代码在自己的项目中。</p>
<p>另外，该后台模版其实还是一个不错的Vue 3学习项目，因为它还提供了一份详细的教程专栏：</p>
<p><img src="https://static.didispace.com/images2/202307/tj-opensource-v3adminvite/1688786699009.png" alt=""></p>
<p>如果您正在学习Vue 3，那么把基础学好之后，直接学一遍这个模版项目，完全可以当作一次小而美的实战练习。</p>
<p>最后，奉上该项目和教程的地址，感兴趣的小伙伴赶紧收藏吧：</p>
<p>开源项目：https://github.com/un-pany/v3-admin-vite
教程专栏：https://juejin.cn/column/7207659644487139387</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202307/tj-opensource-v3adminvite/1688786684618.png" type="image/png"/>
    </item>
    <item>
      <title>一款开源免费、更符合现代用户需求的论坛系统：vanilla</title>
      <link>https://spring.didispace.com/tj/tj-opensource-vanilla.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-vanilla.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一款开源免费、更符合现代用户需求的论坛系统：vanilla</source>
      <description>大家好，我是TJ 对于个人建站来说，WordPress相信很多读者都知道了。但WordPress很多时候我们还是用来建立自主发布内容的站点为主，适用于个人博客、企业主站等。虽然有的主题可以把WordPress变为论坛，但效果并不是很好。 所以，今天给大家推荐一个开源的论坛项目：vanilla，有建站需求的小伙伴可以关注一下！ 主要特性 重构了传统的论坛以迎合大众的需求。 灵活的主题机制 支持单点登录和嵌入式集成 强大的社区管理功能 插件机制，可以进一步扩展功能</description>
      <category>开源推荐</category>
      <pubDate>Fri, 04 Aug 2023 04:29:10 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ</p>
<p>对于个人建站来说，WordPress相信很多读者都知道了。但WordPress很多时候我们还是用来建立自主发布内容的站点为主，适用于个人博客、企业主站等。虽然有的主题可以把WordPress变为论坛，但效果并不是很好。</p>
<p>所以，今天给大家推荐一个开源的论坛项目：<strong>vanilla</strong>，有建站需求的小伙伴可以关注一下！</p>
<h2> 主要特性</h2>
<ul>
<li>重构了传统的论坛以迎合大众的需求。</li>
<li>灵活的主题机制</li>
<li>支持单点登录和嵌入式集成</li>
<li>强大的社区管理功能</li>
<li>插件机制，可以进一步扩展功能</li>
</ul>
<p>下面通过图片来直观认识一下它：</p>
<p>论坛主页：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vanilla/1691123553839.png" alt=""></p>
<p>富文本编辑器：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vanilla/1691123580249.png" alt=""></p>
<p>Dashboard：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vanilla/1691123594274.png" alt=""></p>
<h2> 使用案例</h2>
<p>vanilla的官网就是用vanilla构建的，所以感兴趣的用户可以直接通过访问官网来体验它的强大的功能：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vanilla/1691123827094.png" alt=""></p>
<p>看界面元素确实很符合现代论坛的用户需求吧。</p>
<p>最后，奉上相关地址，感兴趣的小伙伴可以冲了：</p>
<ul>
<li>官网网站：https://open.vanillaforums.com/</li>
<li>开源地址：https://github.com/vanilla/vanilla</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-opensource-vanilla/1691123553839.png" type="image/png"/>
    </item>
    <item>
      <title>10.4K Star！程序员为程序员针对性优化的开源免费笔记</title>
      <link>https://spring.didispace.com/tj/tj-opensource-vnote.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-vnote.html</guid>
      <source url="https://spring.didispace.com/rss.xml">10.4K Star！程序员为程序员针对性优化的开源免费笔记</source>
      <description>大家后，我是TJ 最近身体不太舒服，好多天没写代码，也没给大家推荐好工具了。 平时我一直用Notion来记录内容为主，但也一直关注着其他开源产品。上周正好看到一款非常受欢迎的开源免费笔记，今天就推荐给大家：VNote。 VNote一个由程序员为程序员打造的开源笔记应用，基于Qt开发，专注于使用 Markdown 来写作的群体。它提供完美的编辑体验和强大的笔记管理功能，使得使用Markdown记笔记更加轻松简单。VNote将来还会支持更多的文档格式。由于Qt的支持，VNote可以高效地运行在Linux、Windows和macOS平台上。</description>
      <category>开源推荐</category>
      <pubDate>Mon, 14 Aug 2023 12:35:34 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家后，我是TJ</p>
<p>最近身体不太舒服，好多天没写代码，也没给大家推荐好工具了。</p>
<p>平时我一直用Notion来记录内容为主，但也一直关注着其他开源产品。上周正好看到一款非常受欢迎的开源免费笔记，今天就推荐给大家：<strong>VNote</strong>。</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vnote/1692016571270.png" alt=""></p>
<p>VNote一个由程序员为程序员打造的开源笔记应用，基于Qt开发，专注于使用 Markdown 来写作的群体。它提供完美的编辑体验和强大的笔记管理功能，使得使用Markdown记笔记更加轻松简单。VNote将来还会支持更多的文档格式。由于Qt的支持，VNote可以高效地运行在Linux、Windows和macOS平台上。</p>
<p>VNote的编辑可以通过下面的几张截图来初步了解：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vnote/1692016605060.png" alt=""></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vnote/1692016609925.png" alt=""></p>
<p>可以看到，VNote的界面非常简洁且符合现代审美。它支持原地预览和双边预览，方便我们查看编写效果。同时，在界面左右两侧提分别提供了文件目录和文章大纲，方便作者快速切换。</p>
<p>对于一些复杂的UML图、流程图、数学公式也有很好的支持，具体如下：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vnote/1692016628518.png" alt=""></p>
<p>关于文章内容的存储，是很多作者都会关注的。VNote在这方面采用了以文件形式的本地存储，一个笔记对应一个目录。所以，用户可以自由的选择第三方同步服务来备份和同步多端工作。</p>
<p>怎么样，VNote是你心目中想要的笔记软件吗？</p>
<p>最后，老规矩，奉上相关地址：</p>
<ul>
<li>官方网站：https://app.vnote.fun/zh_cn/#!index.md</li>
<li>开源地址：https://github.com/vnotex/vnote</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-opensource-vnote/1692016571270.png" type="image/png"/>
    </item>
    <item>
      <title>开源免费、开箱即用的中后台管理模版：vue-pure-admin</title>
      <link>https://spring.didispace.com/tj/tj-opensource-vue-pure-admin.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-vue-pure-admin.html</guid>
      <source url="https://spring.didispace.com/rss.xml">开源免费、开箱即用的中后台管理模版：vue-pure-admin</source>
      <description>大家好，我是TJ 之前陆陆续续给大家推荐过很多后台管理模版了，但是模版这东西永远不嫌多，所以，今天再添一枚：vue-pure-admin vue-pure-admin采用了当下最为流线的技术栈，其中主要包括： Vue3 Vite Element-Plus TypeScript Pinia Tailwindcss 很多热门模版一般功能都特别强大，这也导致了内容非常多，但实际很多时候我们就只要一个主体内容就可以。所以，这里值得注意的是，vue-pure-admin还提供了一个精简版本，更适合直接引入到项目作为开发初始版本。</description>
      <category>开源推荐</category>
      <pubDate>Wed, 09 Aug 2023 04:09:58 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ</p>
<p>之前陆陆续续给大家推荐过很多后台管理模版了，但是模版这东西永远不嫌多，所以，今天再添一枚：<strong>vue-pure-admin</strong></p>
<p><strong>vue-pure-admin</strong>采用了当下最为流线的技术栈，其中主要包括：</p>
<ul>
<li>Vue3</li>
<li>Vite</li>
<li>Element-Plus</li>
<li>TypeScript</li>
<li>Pinia</li>
<li>Tailwindcss</li>
</ul>
<p>很多热门模版一般功能都特别强大，这也导致了内容非常多，但实际很多时候我们就只要一个主体内容就可以。所以，这里值得注意的是，<strong>vue-pure-admin</strong>还提供了一个精简版本，更适合直接引入到项目作为开发初始版本。</p>
<p><strong>vue-pure-admin</strong>提供的精简版打包后全局引入（包含Element-Plus的情况下）才2.3MB的大小，再利用brotli压缩之后，甚至低于350kb，可谓是极致精简了！</p>
<p>该模版还贴心的提供了教程视频，简直是保姆级模版了，实属难得：</p>
<ul>
<li>开发教程：https://www.bilibili.com/video/BV1kg411v7QT</li>
<li>UI设计：https://www.bilibili.com/video/BV17g411T7rq</li>
</ul>
<p>接下来一起欣赏下<strong>vue-pure-admin</strong>的效果吧：</p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vue-pure-admin/1691554257384.png" alt="登录界面"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vue-pure-admin/1691554273600.png" alt="Dashboard"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vue-pure-admin/1691554291171.png" alt="流程图组件"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vue-pure-admin/1691554303193.png" alt="表单设计组件"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vue-pure-admin/1691554329445.png" alt="文本编辑器组件"></p>
<p><img src="https://static.didispace.com/images2/202308/tj-opensource-vue-pure-admin/1691554339369.png" alt="PPT在线操作组件"></p>
<p>这里就简单预览一下，其实还有更多有意思的组件展示，留给大家自己去探索吧！最后，奉上相关地址，喜欢的直接冲吧！</p>
<ul>
<li>体验地址：https://yiming_chang.gitee.io/vue-pure-admin</li>
<li>开源地址：https://github.com/pure-admin/vue-pure-admin</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202308/tj-opensource-vue-pure-admin/1691554257384.png" type="image/png"/>
    </item>
    <item>
      <title>可能是效果最像的微信开源复刻项目</title>
      <link>https://spring.didispace.com/tj/tj-opensource-wechat.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-wechat.html</guid>
      <source url="https://spring.didispace.com/rss.xml">可能是效果最像的微信开源复刻项目</source>
      <description>微信已经成为大家平常生活中离不开的一个工具，今天TJ君就给大家分享一个可能是效果最像的微信复刻项目 TLChat TLChat，使用iOSAppTemplate代码重构，此版本TLChat基于TLKit、 ZZFLEX实现。使用到的第三方库包括： Masonry：自动布局框架，简洁高效 FMDB：sqlite数据库管理框架 AFNetworking：网络请求 SDWebImage：网络图片下载、缓存 MJExtension：JSON - Model互转框架，高效低耦合 MJRefresh：下拉刷新，上拉加载更多，继承简单 CocoaLumberjack：日志分级、本地化 MWPhotoBrowser：图片选择器 SVProgressHUD：进度提示框</description>
      <category>开源推荐</category>
      <pubDate>Mon, 13 Dec 2021 12:55:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>微信已经成为大家平常生活中离不开的一个工具，今天TJ君就给大家分享一个<strong>可能是效果最像的微信复刻项目</strong></p>
<p><strong>TLChat</strong></p>
<p>TLChat，使用iOSAppTemplate代码重构，此版本TLChat基于TLKit、 ZZFLEX实现。使用到的第三方库包括：</p>
<ul>
<li>Masonry：自动布局框架，简洁高效</li>
<li>FMDB：sqlite数据库管理框架</li>
<li>AFNetworking：网络请求</li>
<li>SDWebImage：网络图片下载、缓存</li>
<li>MJExtension：JSON - Model互转框架，高效低耦合</li>
<li>MJRefresh：下拉刷新，上拉加载更多，继承简单</li>
<li>CocoaLumberjack：日志分级、本地化</li>
<li>MWPhotoBrowser：图片选择器</li>
<li>SVProgressHUD：进度提示框</li>
</ul>
<p>为什么说他<strong>可能是最像的？</strong> 让我们一起来看看这些效果截图：</p>
<p><img src="https://static.didispace.com/images/pasted-768.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-769.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-770.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-771.png" alt=""></p>
<p>这跟微信有什么区别呢？简直就是<strong>一毛一样好不好</strong>！如果不告诉你你是不是就会觉得这是真实微信截图？</p>
<p>能达到这么像的效果，还是要从完成度来说，目前TLChat已经完成了大多数微信常用功能的实现，我们可以从5大模块来了解下：</p>
<h4> 消息界面</h4>
<p>这个可能是大家使用微信用到最多看的最多的界面了，可以用的功能包括从消息列表的展示、新消息会话的加入、消息列表的侧滑删除、好友或消息模糊搜索等</p>
<h4> 通讯录界面</h4>
<p>没有好友就没有消息，通讯录界面里面包括了好友的列表、搜索、详细资料、权限设置，还有将好友分组，从手机联系人里面读取新的好友，还可以增加好友标签及设立群聊等功能</p>
<h4> 发现界面</h4>
<p>有了好友就会有的朋友圈，还有微信里大家常见的扫一扫、摇一摇、漂流瓶、游戏等功能。</p>
<h4> 我界面</h4>
<p>对自己的各种信息设置、表情的管理下载、整体的使用设置（字体大小、聊天背景、清空记录、使用空间管理等）</p>
<h4> 聊天界面</h4>
<p>除了上述最大模块，还有一个就是具体的聊天界面了，包括如何从输入框输入信息（文字信息、图片信息、表情信息、语音信息）、表情包的新增下载删除、不同的键盘输入方式、聊天记录的存储等等。</p>
<p>是不是微信有的大多数功能他都有了？至于未来的优化计划，TLChat作者表示会在近期进行项目结构的梳理，从而使整个项目可以实现模块化，模块化之后可以更方便的优化项目功能，适配高版本的IOS等。</p>
<p>想自己写个微信出来的小伙伴，赶紧来研究下这款项目吧。</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“复刻微信”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-768.png" type="image/png"/>
    </item>
    <item>
      <title>一个不错的在线影视开源项目</title>
      <link>https://spring.didispace.com/tj/tj-opensource-zaixianshipin.html</link>
      <guid>https://spring.didispace.com/tj/tj-opensource-zaixianshipin.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个不错的在线影视开源项目</source>
      <description>昨天，是人人影视粉丝们悲伤的一天，人人影视字幕分享官微宣布：人人影视不可能再恢复或重启。App的尸体可以删了，我们不可能解决的了版权问题。 人人影视，可能是许许多多喜欢追剧的小伙伴最初打开那扇追剧大门的启蒙老师，如今官方的正式宣布，可以说是一个时代的告别、缩影。 为了纪念我们曾经喜欢过的用过的人人影视，TJ君今天跟大家分享一款基于Material Design + MVP + RxJava + Retrofit + Realm + Glide + Dagger2 实现的在线视频App：</description>
      <category>开源推荐</category>
      <pubDate>Tue, 23 Nov 2021 16:23:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>昨天，是人人影视粉丝们悲伤的一天，人人影视字幕分享官微宣布：<strong>人人影视不可能再恢复或重启。App的尸体可以删了，我们不可能解决的了版权问题。</strong></p>
<p><img src="https://static.didispace.com/images/pasted-719.png" alt=""></p>
<p>人人影视，可能是许许多多喜欢追剧的小伙伴最初打开那扇追剧大门的启蒙老师，如今官方的正式宣布，可以说是一个时代的告别、缩影。</p>
<p>为了纪念我们曾经喜欢过的用过的人人影视，TJ君今天跟大家分享一款基于<strong>Material Design + MVP + RxJava + Retrofit + Realm + Glide + Dagger2</strong> 实现的在线视频App：</p>
<p><strong>微影</strong></p>
<p>微影的主要特点有：</p>
<ul>
<li>使用RxJava配合Retrofit2做网络请求</li>
<li>使用RxUtil对线程操作和网络请求结果处理做了封装</li>
<li>使用RxPresenter对订阅的生命周期做管理</li>
<li>使用AndroidEventBus来方便组件间的通信</li>
<li>使用Material Design控件和动画</li>
<li>使用MVP架构整个项目，对应于model、ui、presenter三个包</li>
<li>使用Realm做阅读记录和收藏记录的增、删、查、改</li>
<li>使用Glide做图片的处理和加载</li>
<li>使用RecyclerView实现下拉刷新、上拉加载、侧滑删除、长按拖曳</li>
<li>支持主题设置</li>
<li>包含搜索、收藏、历史等功能</li>
</ul>
<p>运行效果：</p>
<p><img src="https://static.didispace.com/images/pasted-717.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-718.png" alt=""></p>
<p>从功能画面上看，肯定和人人影视还是有差距的，但是作为一款开源的项目，还是比较适合我们学习下该类型的APP是如何实现各种在线播放、查找选片等功能的，同时也多多少少有点象征是一种缅怀人人影视的方式。</p>
<p>当然小伙伴们要注意的最主要的一点，一定要注意版权意识，千万可别像人人影视一样在版权上翻了车哟！记住，开源项目，个人练习使用哟！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“在线影视”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-719.png" type="image/png"/>
    </item>
    <item>
      <title>整理了一波年终小结PPT，速取！</title>
      <link>https://spring.didispace.com/tj/tj-ppt-nianzhongxiaojie.html</link>
      <guid>https://spring.didispace.com/tj/tj-ppt-nianzhongxiaojie.html</guid>
      <source url="https://spring.didispace.com/rss.xml">整理了一波年终小结PPT，速取！</source>
      <description>又到了一年总结工作的时候，每年的这个时候，大家是不是都在期待着年终奖得发现？期待着年会得举办？期待着抽一个大奖喜滋滋地过年？ 当然，凡事都有两面性，虽然有那么多值得期待的事情，但是每年年底是不是也是大家要写年终小结的时候啦？有些要求高的单位，是不是不仅要文字稿，还要求PPT稿？ TJ君之前介绍一个用Markdown的方式来做PPT的工具，Slidev，忘记了的小伙伴点这里：让你用Markdown的方式来做PPT</description>
      <category>程序人生</category>
      <pubDate>Mon, 10 Jan 2022 11:33:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>又到了一年总结工作的时候，每年的这个时候，大家是不是都在期待着年终奖得发现？期待着年会得举办？期待着抽一个大奖喜滋滋地过年？</p>
<p>当然，凡事都有两面性，虽然有那么多值得期待的事情，但是每年年底是不是也是大家要写年终小结的时候啦？有些要求高的单位，是不是不仅要文字稿，还要求PPT稿？</p>
<p>TJ君之前介绍一个用Markdown的方式来做PPT的工具，Slidev，忘记了的小伙伴点这里：<a href="http://mp.weixin.qq.com/s?__biz=MzU5Mjc5NTIzMA==&amp;mid=2247486325&amp;idx=1&amp;sn=8884fc94b96a99a6d684fd69e43109b7&amp;chksm=fe1b0844c96c8152a2a13379b1db20d3d89cafb1e325e768c78b0db3813faef712ebe4d2f925&amp;scene=21#wechat_redirect" target="_blank" rel="noopener noreferrer">让你用Markdown的方式来做PPT</a></p>
<p>但即便有这样的利器，我们做PPT的时候还会遇到一个难题，就是没有各种模板样式！</p>
<p>通常office自带的那几个简陋的模板实在不够用，想用一些好看的过得去的网上的模板，往往都是收费的。真的就像过年回家被家长收拾的小朋友一样，永远都有别人家的PPT比自己的好看。</p>
<p><img src="https://static.didispace.com/images/pasted-840.png" alt=""></p>
<p>那怎么样才能让自己的PPT令人眼前一亮呢？别着急，今天TJ君就给大家带来一些PPT模板，专为年终小结准备，各种各样的，一定有你喜欢的一款，准备好了吗？</p>
<p><img src="https://static.didispace.com/images/pasted-841.png" alt=""></p>
<p>TJ君带给大家的模板以简洁风格为主，毕竟现在的精明老板都不太喜欢花里胡哨的吹嘘。</p>
<p><img src="https://static.didispace.com/images/pasted-842.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-843.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-844.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-845.png" alt=""></p>
<p>用TJ君带来的这些模板还有一个好处，是什么？那就是模板里其实已经把年终总结的章节都规划好了，小伙伴们只需要往里面大胆的填写自己的功绩就可以了。</p>
<p><img src="https://static.didispace.com/images/pasted-846.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-847.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-848.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-849.png" alt=""></p>
<p>当然，TJ君的模板除了年终小结还能满足不同行业的诉求，例如还有专门为学校老师准备的模板：</p>
<p><img src="https://static.didispace.com/images/pasted-850.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-851.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-852.png" alt=""></p>
<p>这些PPT都是TJ君平时辛辛苦苦的积累，这次一下子全都分享给小伙伴们，希望对小伙伴的年终小结、平日工作能有所帮助。</p>
<p>同时TJ君还给大家推荐一个PPT有关的网站，里面收集了各种有关PPT模板的站点，只要肯花时间在里面仔细找，一定能找到独一无二的PPT素材模板。不过TJ君也会定时将里面的好东西分享给大家，所以更轻松地办法就是关注TJ君，每天TJ君都会给你带来有趣的好玩意~</p>
<p><img src="https://static.didispace.com/images/pasted-853.png" alt=""></p>
<p><img src="https://static.didispace.com/images/pasted-854.png" alt=""></p>
<p>那想要这些好东西的小伙伴，地址在这里：</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“年终PPT”，获取仓库地址！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-840.png" type="image/png"/>
    </item>
    <item>
      <title>Redis作者开源最小聊天服务器，仅200行代码，没几天已斩获2.8K Star</title>
      <link>https://spring.didispace.com/tj/tj-smallchat.html</link>
      <guid>https://spring.didispace.com/tj/tj-smallchat.html</guid>
      <source url="https://spring.didispace.com/rss.xml">Redis作者开源最小聊天服务器，仅200行代码，没几天已斩获2.8K Star</source>
      <description>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！ 中午时候，在技术交流群里聊起关于Redis创始人的一些趣事，比如离开Redis之后，去写科幻小说之类的。 因为好奇科幻小说，TJ君就去搜索了一下。结果一搜，发现Redis作者最近居然又搞了个新活儿！ 世界上最小的聊天服务器 这次Redis作者的新开源项目名叫：SmallChat。 从关于内容中可以知道，这个开源项目是要打造最小的聊天服务器。</description>
      <category>开源推荐</category>
      <pubDate>Fri, 03 Nov 2023 14:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！</p>
<p>中午时候，在<a href="/jiaqun.html" target="blank">技术交流群</a>里聊起关于Redis创始人的一些趣事，比如离开Redis之后，去写科幻小说之类的。</p>
<p>因为好奇科幻小说，TJ君就去搜索了一下。结果一搜，发现Redis作者最近居然又搞了个新活儿！</p>
<h2> 世界上最小的聊天服务器</h2>
<p>这次Redis作者的新开源项目名叫：<a href="/tj/tj-smallchat"><strong>SmallChat</strong></a>。 从关于内容中可以知道，这个开源项目是要打造最小的聊天服务器。</p>
<p>从开源项目的内容中来看，确实如此，就下面这些：</p>
<p><img src="https://static.didispace.com/images3/31d5e7d3988d83a9e7800e4ba23674f7.png" alt=""></p>
<p>代码部分除去大量注释之后，更是惊人的只有200+行代码，可以说真的是做到了极致的精简。</p>
<h2> 起源与未来</h2>
<p>在该项目的README中，目前还没有更多关于该项目的使用说明，更多的是关于该项目的背景和未来展望。</p>
<p>内容也是非常值得大家细品，TJ君从中感受到一名优秀开发者的思维模式，是非常值得大家去学习的。我们也可以去多学习这种思维方式，来多创造一些更有意思的东西。</p>
<p>下面一起来看看他的故事：</p>
<p>昨天和几个朋友聊天，大部分都是前端开发人员，离系统编程有点远。我们正在回忆 IRC 的旧时光。我说道：编写一个非常简单的 IRC 服务器是每个人都应该做的经历（我向他们展示了我用 TCL 编写的实现；我很震惊我在 18 年前写了它：时间过得很快）。这样的程序中有一些非常有趣的部分。单个进程执行多路复用、获取客户端状态并在客户端拥有新数据后尝试快速访问此类状态，等等。</p>
<p>但后来讨论发生了变化，我想，我将向您展示一个用 C 编写的非常简单的示例。您可以编写的最小的聊天服务器是什么？为了真正做到最小化，我们不应该需要任何合适的客户。即使不是很好，它也应该与 telnet 或者 netcat 一起使用。服务器的主要操作只是接收一些聊天行并将其发送到所有其他客户端，有时称为扇出操作。然而，这需要适当的功能，然后是缓冲等等。我们希望它更简单：让我们使用内核缓冲区进行欺骗，并假装我们每次都从客户端收到完整的行（这个假设在实践中通常是正确的，所以事情还算有效）。</p>
<p>好吧，通过这些技巧，我们可以实现一个聊天，甚至能够让用户在短短 200 行代码中设置他们的昵称（当然，删除空格和注释）。因为我写了这个小程序作为给我的朋友们的例子，所以我决定也将它推送到 GitHub 上。</p>
<p>关于未来的工作：</p>
<p>在接下来的几天里，我将继续修改这个程序，以使其进化。不同的演变步骤将根据我的写作系统软件系列的 YouTube 剧集（涵盖此类变化）进行标记。这是我的计划（可能会改变，但或多或​​少这就是我想要涵盖的内容）：</p>
<ul>
<li>实现读和写的缓冲</li>
<li>避免使用线性数组，使用字典数据结构来保存客户端状态</li>
<li>编写适当的客户端：能够处理异步事件的行编辑</li>
<li>从 select(2) 切换到更高级的 API</li>
<li>用于聊天的简单对称加密</li>
</ul>
<p>怎么样？一个有趣的开源项目就这样诞生了。好了，今天的分享就到这里。最后，老规矩，奉上开源地址：https://github.com/antirez/smallchat ， 感兴趣的可以去围观代码。</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/31d5e7d3988d83a9e7800e4ba23674f7.png" type="image/png"/>
    </item>
    <item>
      <title>阿里发布AI编码助手：通义灵码，兼容 VS Code、IDEA等主流编程工具</title>
      <link>https://spring.didispace.com/tj/tj-tongyilingma.html</link>
      <guid>https://spring.didispace.com/tj/tj-tongyilingma.html</guid>
      <source url="https://spring.didispace.com/rss.xml">阿里发布AI编码助手：通义灵码，兼容 VS Code、IDEA等主流编程工具</source>
      <description>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！ 今天是阿里云栖大会的第一天，相信场外的瓜，大家都吃过了​。TJ这里就不说了，​有兴趣可以看看这里：云栖大会变成相亲现场，最新招婿鄙视链来了... TJ想说的是，阿里还发布了一款AI编码助手，​对于我们开发者来说，还是非常值得关注的。 根据官网介绍，这款插件支持VS Code、JetBrains​旗下的诸多IDE。</description>
      <category>工具推荐</category>
      <pubDate>Tue, 31 Oct 2023 10:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>大家好，我是TJ君，一个专注推荐开源、免费、好用工具的程序员！</p>
<p>今天是阿里云栖大会的第一天，相信场外的瓜，大家都吃过了​。TJ这里就不说了，​有兴趣可以看看这里：<a href="https://mp.weixin.qq.com/s/pFwLZo-FXDx3weKxo6FFww" target="_blank" rel="noopener noreferrer">云栖大会变成相亲现场，最新招婿鄙视链来了...</a></p>
<p>TJ想说的是，阿里还发布了一款AI编码助手，​对于我们开发者来说，还是非常值得关注的。</p>
<p>根据官网介绍，这款插件支持VS Code、JetBrains​旗下的诸多IDE。</p>
<p><img src="https://static.didispace.com/images3/b2d9b55d14113a0104452a8d27d2a62f.png" alt=""></p>
<p>大家要使用的话，只需要各自的插件市场​去安装就可以了。</p>
<h2> ​VS Code安装</h2>
<ol>
<li>在左​侧导航栏中点击扩展图标：</li>
</ol>
<p><img src="https://static.didispace.com/images3/98836bd4b39c62378d4a1fa6a73f4070.png" alt=""></p>
<ol start="2">
<li>搜索：TONGYI Lingma，并点击安装</li>
</ol>
<p><img src="https://static.didispace.com/images3/0b2b032e7d0776b92b8b01daa9daec36.png" alt=""></p>
<ol start="3">
<li>重启VS Code，即可完成安装，开始使用</li>
</ol>
<h2> JetBrains IDEs安装</h2>
<ol>
<li>Mac用户：在IntelliJ IDEA菜单下点击设置(Settings)。文件菜单下点击设置；Windows用户：在文件(File)菜单下点击设置(Settings)。</li>
</ol>
<p><img src="https://static.didispace.com/images3/524c038962e6ed3ba65ffc712272d816.png" alt=""></p>
<ol start="2">
<li>从插件市场安装：搜索：TONGYI Lingma，并点击安装</li>
</ol>
<p><img src="https://static.didispace.com/images3/54e5a6a29b041478d91ad824c1fa2fc6.png" alt=""></p>
<p>最后，老规矩，奉上官网地址：https://tongyi.aliyun.com/lingma/</p>
<h2> 功能特性</h2>
<p>完成安装之后，大家可以一起根据官方介绍来体验下，它所提供的强大能力：</p>
<p><img src="https://static.didispace.com/images3/64592e15f8bb06f97a9d5a0996fb128c.png" alt="行/函数级实时续写"></p>
<p><img src="https://static.didispace.com/images3/56c0ddb0e0dcfbf04c01577c76ddd4d4.png" alt="自然语言生成代码和单元测试生成"></p>
<p><img src="https://static.didispace.com/images3/04da97e8e7237dd10405227debee8022.png" alt="代码注释生成和代码解释"></p>
<p>最后，老规矩，奉上官网地址：https://tongyi.aliyun.com/lingma/ 。更多功能，自行探索吧～</p>
<p>如果您觉得TJ的分享不错，欢迎点赞分享，您的支持是我持续更新的最大动力！</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/b2d9b55d14113a0104452a8d27d2a62f.png" type="image/png"/>
    </item>
    <item>
      <title>一个不错的IP地址来源查询工具：IPInfo（含免费额度和数据下载）</title>
      <link>https://spring.didispace.com/tj/tj-tools-ipinfo.html</link>
      <guid>https://spring.didispace.com/tj/tj-tools-ipinfo.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个不错的IP地址来源查询工具：IPInfo（含免费额度和数据下载）</source>
      <description>一个不错的IP地址来源查询工具：IPInfo（含免费额度和数据下载） 大家好，我是TJ君！ 如今在国内运营的各种互联网应用都有接入IP来源显示的要求，现在相关API的供应商也很多。今天TJ刚好看到一个不错的，所以马上给大家推荐一下。 这款不错的产品名称为：IPInfo</description>
      <category>工具推荐</category>
      <pubDate>Sun, 24 Sep 2023 11:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 一个不错的IP地址来源查询工具：IPInfo（含免费额度和数据下载）</h1>
<p>大家好，我是TJ君！</p>
<p>如今在国内运营的各种互联网应用都有接入IP来源显示的要求，现在相关API的供应商也很多。今天TJ刚好看到一个不错的，所以马上给大家推荐一下。</p>
<p>这款不错的产品名称为：<a href="http://www.didispace.com/tj/tj-tools-ipinfo.html" target="_blank" rel="noopener noreferrer"><strong>IPInfo</strong></a></p>
<p><img src="https://static.didispace.com/images3/20477e214d6b469e113ac2445d582c59.png" alt=""></p>
<h2> 产品特性</h2>
<p>该IP查询工具除了传统的提供地址位置之外，还有很多其他能力，具体的这里TJ君给大家整理了一下，主要下面有这些：</p>
<ul>
<li>IP所在现实世界中的地理位置</li>
<li>IP背后的公司信息，包括：公司名称、域名、公司类型等</li>
<li>查找公司拥有或运营的IP范围</li>
<li>检测隐藏用户IP的VPN、代理等</li>
<li>IP与每个ASN相关域的详细信息</li>
<li>IP地址上托管的域列表</li>
<li>IP Whois信息查询</li>
<li>检测移动运营商的信息</li>
<li>IP滥用信息</li>
</ul>
<h2> API服务与免费额度</h2>
<p>从官网的价格页上可以看到，该工具提供了4种不同价格套餐：</p>
<p><img src="https://static.didispace.com/images3/0013c54c4ced7f95332fd583f80895fd.png" alt=""></p>
<p>不同套餐除了调用次数不同外，对于数据类型的查询范围也不同，下面是不同套餐响应的数据丰富程度：</p>
<p><img src="https://static.didispace.com/images3/39dda784407d7d559c63668f3b8961ca.png" alt=""></p>
<p>可以看到该工具还提供了免费套餐，一共50000次/月的请求额度。对于很多刚起步的小产品，或者个人博客等独立产品来说，这个免费额度，基本上也够用了。刚好有这个需求的小伙伴，可以来试试。其他付费套餐，这里就不介绍了，感兴趣的小伙伴可以去价格页查看。</p>
<h2> 数据下载与免费子集</h2>
<p>另外，这块IP查询工具，不光提供API的查询方式，还提供数据库的下载，如果调用量很大的话，可以考虑这个方案：</p>
<p><img src="https://static.didispace.com/images3/bcd501ddbfca80d862766cf81759b922.png" alt=""></p>
<p>该方案会提供每日下载IP地理位置、IP范围、运营商、公司等数据，用户可以保证访问到最新、最准确的IP数据。</p>
<p>同时，对于一般用户来说，也可以下载它们的免费数据来使用：</p>
<p><img src="https://static.didispace.com/images3/bd362ef98a984770076f9df490a474a0.png" alt=""></p>
<p>最后，奉上该工具的官网地址：https://ipinfo.io/ ，感兴趣的小伙伴可以自行前往查看。</p>
<p><strong>欢迎关注公众号：TJ君，订阅每日推荐，了解更多效率工具、发现优质开源项目</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/20477e214d6b469e113ac2445d582c59.png" type="image/png"/>
    </item>
    <item>
      <title>一个用Markdown来设计HTML表单的小工具</title>
      <link>https://spring.didispace.com/tj/tj-tools-markdown2form.html</link>
      <guid>https://spring.didispace.com/tj/tj-tools-markdown2form.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个用Markdown来设计HTML表单的小工具</source>
      <description>一个用Markdown来设计HTML表单的小工具 大家好，我是TJ 关注TJ君比较久的读者应该知道，我是一名后端开发。对于前端知识是比较零碎的，所以很多时候写表单这样的工作，一般就是复制黏贴，然后改改字段。对于HTML格式，一直觉得比较杂乱，不够简洁。 最近TJ发现了一个有趣的小工具：Create HTML Form。</description>
      <category>工具推荐</category>
      <pubDate>Mon, 11 Sep 2023 23:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 一个用Markdown来设计HTML表单的小工具</h1>
<p>大家好，我是TJ</p>
<p>关注TJ君比较久的读者应该知道，我是一名后端开发。对于前端知识是比较零碎的，所以很多时候写表单这样的工作，一般就是复制黏贴，然后改改字段。对于HTML格式，一直觉得比较杂乱，不够简洁。</p>
<p>最近TJ发现了一个有趣的小工具：<a href="/tj/tj-tools-markdown2form"><strong>Create HTML Form</strong></a>。</p>
<p><img src="https://static.didispace.com/images2/202309/tj-tools-markdown2form/1694445951188.png" alt=""></p>
<p>看看上面它的Slogan，是不是很有意思？居然可以通过Markdown来编写HTML的表单？下面就来一起看看这款工具的能力。</p>
<p>下面是官方页面给出的Markdown案例：</p>
<div class="language-markdown line-numbers-mode" data-ext="md"><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>通过上面的Markdown内容，将获得如下图所示的结果内容：</p>
<p><img src="https://static.didispace.com/images2/202309/tj-tools-markdown2form/1694446276195.png" alt=""></p>
<p>其中，左边是表单的可视化结果，右边是具体的HTML代码（包括：pico.css、bootstrap、tailwindcss三种），根据自己需要选择性的复制就用就可以了。怎么样？是不是很有趣？</p>
<p>如果你觉得写Markdown还麻烦，也可以通过官方给出的<a href="https://createhtmlform.com/FormsLibrary/forms-library" target="_blank" rel="noopener noreferrer">表单库</a>去找找是否有自己需要的，可以直接去复制黏贴：</p>
<p><img src="https://static.didispace.com/images2/202309/tj-tools-markdown2form/1694446886585.png" alt="表单库"></p>
<p>好了，今天的分享就到这里。最后，奉上该站点地址：<a href="https://createhtmlform.com/?ref=didispace.com" target="_blank" rel="noopener noreferrer">https://createhtmlform.com/</a>，有需要的就冲吧～</p>
<img src="https://static.didispace.com/images/qrcode/tj.png">
<p><strong>欢迎关注公众号：TJ君，订阅每日推荐，了解更多效率工具、发现优质开源项目</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202309/tj-tools-markdown2form/1694445951188.png" type="image/png"/>
    </item>
    <item>
      <title>免费的在线人声分离工具，一键提取歌声/人声和伴奏/音效</title>
      <link>https://spring.didispace.com/tj/tj-transduck-audio-vocal.html</link>
      <guid>https://spring.didispace.com/tj/tj-transduck-audio-vocal.html</guid>
      <source url="https://spring.didispace.com/rss.xml">免费的在线人声分离工具，一键提取歌声/人声和伴奏/音效</source>
      <description>免费的在线人声分离工具，一键提取歌声/人声和伴奏/音效 最近正好在重构TransDuck的视频翻译功能，顺手把中间涉及的很多处理环节，比如：视频转录、字幕翻译、字幕配音、背景声音提取等小模块都一一做成在线的小工具，这样用户就可以快速便捷的实现一些小场景需求或者临时使用。不需要支付费用，也不需要下载庞大的音视频处理软件。 免费人声分离工具 第一个要介绍的就是最近使用人数最多的免费工具：人声分离。该功能在各大剪辑软件中都是付费功能，需要购买VIP才能使用的。如果你用的不多，应用场景也不复杂，不想给剪辑软件充值，更不想下载庞大的客户端软件。那么直接用我们这个在线工具就可以轻松实现了。</description>
      <category>工具推荐</category>
      <pubDate>Thu, 23 May 2024 16:10:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 免费的在线人声分离工具，一键提取歌声/人声和伴奏/音效</h1>
<p>最近正好在重构<a href="https://transduck.com/" target="_blank" rel="noopener noreferrer">TransDuck</a>的视频翻译功能，顺手把中间涉及的很多处理环节，比如：视频转录、字幕翻译、字幕配音、背景声音提取等小模块都一一做成在线的小工具，这样用户就可以快速便捷的实现一些小场景需求或者临时使用。不需要支付费用，也不需要下载庞大的音视频处理软件。</p>
<h2> 免费人声分离工具</h2>
<p>第一个要介绍的就是最近使用人数最多的免费工具：<a href="https://transduck.com/zh/guides/audio-vocal.html" target="_blank" rel="noopener noreferrer">人声分离</a>。该功能在各大剪辑软件中都是付费功能，需要购买VIP才能使用的。如果你用的不多，应用场景也不复杂，不想给剪辑软件充值，更不想下载庞大的客户端软件。那么直接用我们这个在线工具就可以轻松实现了。</p>
<p>使用方法很简单，注册并登录<a href="https://a.transduck.com/" target="_blank" rel="noopener noreferrer">TransDuck后台</a>，然后如下图找到功能，上传音频文件就能完成了。</p>
<p><img src="https://static.didispace.com/images3/5cfcaa5e998337628da3899c7476ff3c.png" alt=""></p>
<p>下面是拿周杰伦的《七里香》做的案例，可以看看效果，还是非常不错的。</p>
<ul>
<li>原歌曲：</li>
</ul>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/5cfcaa5e998337628da3899c7476ff3c.png" type="image/png"/>
    </item>
    <item>
      <title>免费的在线语音转文字、视频字幕识别工具，自定义转录词汇实现准确识别字幕</title>
      <link>https://spring.didispace.com/tj/tj-transduck-sst.html</link>
      <guid>https://spring.didispace.com/tj/tj-transduck-sst.html</guid>
      <source url="https://spring.didispace.com/rss.xml">免费的在线语音转文字、视频字幕识别工具，自定义转录词汇实现准确识别字幕</source>
      <description>推荐一款非常不错的免费在线语音转文字工具：TransDuck 用户只需要上传音频或者视频： Tips: 这里还支持自定义转录词汇，如果你的音频和视频里包含一些容易混淆的人名、专业词汇或者品牌名称之类的就可以实现准确转录。比如：张三，如果没自定义词汇的话，可能就会识别为章三。</description>
      <category>工具推荐</category>
      <pubDate>Sun, 22 Dec 2024 12:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>推荐一款非常不错的免费在线语音转文字工具：<a href="https://transduck.com/" target="_blank" rel="noopener noreferrer">TransDuck</a></p>
<p>用户只需要上传音频或者视频：</p>
<p><img src="https://static.didispace.com/images3/591e898d596d29cc19bf9fdef683f0e7.png" alt="上传音频/视频"></p>
<p><strong>Tips</strong>: 这里还支持自定义转录词汇，如果你的音频和视频里包含一些容易混淆的人名、专业词汇或者品牌名称之类的就可以实现准确转录。比如：张三，如果没自定义词汇的话，可能就会识别为章三。</p>
<p>自动生成音频/视频中语音所对应的文字内容：</p>
<p><img src="https://static.didispace.com/images3/3fc3d08c5577d83b27ae221fa12a5568.png" alt="生成文本内容/视频字幕提取"></p>
<p>除此之外，还会自动生成音频/视频中语音所对应的字幕文件：</p>
<p>另外，这款工具是免费在线可用的，不需要自己提供GPU资源！</p>
<p>平时有一些小量需求或者偶尔使用的用户可以收藏。</p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images3/591e898d596d29cc19bf9fdef683f0e7.png" type="image/png"/>
    </item>
    <item>
      <title>一个基于GPT模型实现的Git Commit信息自动生成工具</title>
      <link>https://spring.didispace.com/tj/tj-vscode-gpt-commit.html</link>
      <guid>https://spring.didispace.com/tj/tj-vscode-gpt-commit.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个基于GPT模型实现的Git Commit信息自动生成工具</source>
      <description>每次提交代码的时候，你是否有为如何写Commit Message而迟迟按不下提交的时刻呢？然后，死磨硬泡写了一些并提交后，又被review的小伙伴吐槽了呢？相信很多小伙伴有过这样的经历吧？ 趁着最近ChatGPT那么火，就来顺手推荐一个可以用于解决这个问题的VS Code插件：vscode-gptommit 该插件可以帮助我们自动的生成提交信息，而且生产内容也是八九不离十。</description>
      <category>工具推荐</category>
      <pubDate>Sat, 11 Mar 2023 10:00:19 GMT</pubDate>
      <content:encoded><![CDATA[<p>每次提交代码的时候，你是否有为如何写Commit Message而迟迟按不下提交的时刻呢？然后，死磨硬泡写了一些并提交后，又被review的小伙伴吐槽了呢？相信很多小伙伴有过这样的经历吧？</p>
<p>趁着最近ChatGPT那么火，就来顺手推荐一个可以用于解决这个问题的VS Code插件：<strong>vscode-gptommit</strong></p>
<p><img src="https://static.didispace.com/images2/202303/tj-vscode-gpt-commit/1678507377770.png" alt=""></p>
<p>该插件可以帮助我们自动的生成提交信息，而且生产内容也是八九不离十。</p>
<p>它会根据你的文件变动信息来产生提交消息，所以产出的内容还是非常具有可读性，比如下面的例子：</p>
<p><img src="https://static.didispace.com/images2/202303/tj-vscode-gpt-commit/1678452580556.gif" alt=""></p>
<h2> 如何使用</h2>
<p>第一步：在VS Code的插件市场里搜索“vscode-gptcommit”，并安装它</p>
<p><img src="https://static.didispace.com/images2/202303/tj-vscode-gpt-commit/1678507588298.png" alt=""></p>
<p>第二步：通过VS Code的快捷键<code>Ctrl+Shift+P</code>或者<code>Cmd+Shift+P</code>唤出命令输入框来生成提交消息</p>
<p><img src="https://static.didispace.com/images2/202303/tj-vscode-gpt-commit/1678507738699.png" alt=""></p>
<p>你也可以通过Git面板的这个按钮来生成：</p>
<p><img src="https://static.didispace.com/images2/202303/tj-vscode-gpt-commit/1678508107537.png" alt=""></p>
<p>当然了，很重要的一点，您还需要配置好openai的api key，具体如何获取，这里就不具体说啦，大家可以自行搜索去获取</p>
<p><img src="https://static.didispace.com/images2/202303/tj-vscode-gpt-commit/1678508137895.png" alt=""></p>
<p>项目地址：https://github.com/pwwang/vscode-gptcommit</p>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-vscode-gpt-commit/1678507377770.png" type="image/png"/>
    </item>
    <item>
      <title>一个NASA、Google都在用的开源CMS：wagtail</title>
      <link>https://spring.didispace.com/tj/tj-wagtail.html</link>
      <guid>https://spring.didispace.com/tj/tj-wagtail.html</guid>
      <source url="https://spring.didispace.com/rss.xml">一个NASA、Google都在用的开源CMS：wagtail</source>
      <description>说起开源CMS，你会想到哪些呢？WordPress？DoraCMS？joomla？ 今天再给大家推荐一个非常好用的开源CMS：wagtail 如果您正在选型的话，可以了解一下Wagtail的特点： 基于Django构建，具有出色的文档管理功能和友好的用户界面。 提供了一个灵活且易于使用的页面编辑器，支持多种类型的内容块，包括文本、图像、视频和HTML代码。 具有出色的SEO功能，包括友好的URL和元标记管理。 支持多语言网站，并提供了一个易于使用的翻译界面。 完全开源的CMS，拥有强大的社区支持和活跃的开发人员社区。 内容审核和版本控制：wagtail支持审核和审批工作流程，以确保您的内容在发布之前经过审核和批准。 网站搜索：wagtail提供了一个易于使用的搜索框架，支持全文搜索和过滤器。 云存储支持：wagtail支持多种云存储服务，包括Amazon S3和Google Cloud Storage，以帮助您管理和存储大量的媒体文件。 定制化：wagtail提供了一个灵活的插件系统，使您可以轻松地添加自定义功能和扩展。</description>
      <category>开源推荐</category>
      <pubDate>Fri, 03 Mar 2023 01:22:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>说起开源CMS，你会想到哪些呢？WordPress？DoraCMS？joomla？</p>
<p>今天再给大家推荐一个非常好用的开源CMS：<strong>wagtail</strong></p>
<p><img src="https://static.didispace.com/images2/202303/tj-wagtail/1677777787874.png" alt="图片 1"></p>
<p>如果您正在选型的话，可以了解一下Wagtail的特点：</p>
<ul>
<li>基于Django构建，具有出色的文档管理功能和友好的用户界面。</li>
<li>提供了一个灵活且易于使用的页面编辑器，支持多种类型的内容块，包括文本、图像、视频和HTML代码。</li>
<li>具有出色的SEO功能，包括友好的URL和元标记管理。</li>
<li>支持多语言网站，并提供了一个易于使用的翻译界面。</li>
<li>完全开源的CMS，拥有强大的社区支持和活跃的开发人员社区。</li>
<li>内容审核和版本控制：wagtail支持审核和审批工作流程，以确保您的内容在发布之前经过审核和批准。</li>
<li>网站搜索：wagtail提供了一个易于使用的搜索框架，支持全文搜索和过滤器。</li>
<li>云存储支持：wagtail支持多种云存储服务，包括Amazon S3和Google Cloud Storage，以帮助您管理和存储大量的媒体文件。</li>
<li>定制化：wagtail提供了一个灵活的插件系统，使您可以轻松地添加自定义功能和扩展。</li>
</ul>
<p>wagtail的忠实用户中还有NASA、OXFAM、NHS、Google等知名公司</p>
<p><img src="https://static.didispace.com/images2/202303/tj-wagtail/1677777781489.png" alt="图片 1"></p>
<p>目前wagtail在GitHub上拥有14.3k的Star，可见其用户与生态是非常庞大的。</p>
<p>总之，wagtail的功能非常强大且灵活，适用于各种不同类型的网站，包括博客、新闻网站、企业门户等。如果您是一位开发人员或具有一定的技术知识，那么wagtail绝对是一个值得考虑的选择。</p>
<ul>
<li>官方网站：https://wagtail.org/</li>
<li>开源地址：https://github.com/wagtail/wagtail</li>
</ul>
<p><strong>欢迎扫描下方二维码，关注公众号：TJ君，订阅每日推荐，获取更多好用效率工具！</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202303/tj-wagtail/1677777787874.png" type="image/png"/>
    </item>
    <item>
      <title>秒杀各种云盘，真正高速、无广告、大容量的免费网盘！</title>
      <link>https://spring.didispace.com/tj/tj-wangpan-niubi.html</link>
      <guid>https://spring.didispace.com/tj/tj-wangpan-niubi.html</guid>
      <source url="https://spring.didispace.com/rss.xml">秒杀各种云盘，真正高速、无广告、大容量的免费网盘！</source>
      <description>TJ君这两天碰到个怪事，好多平时不怎么联系的老朋友，都让TJ君上下QQ，然后组了个群，TJ君很是好奇这到底在干啥？ 本着凡事要追根到底讲道理的精神，TJ君抓到一个这么做的朋友，严刑逼供（好说歹说）之下，终于告诉了TJ君实情: 原来QQ才是真正的网盘！！！ QQ，平时大家是不是都是用来聊天的？像TJ君这样的老人，有很多个以前读书时候的班级群，而大家可能不知道的是，每个QQ群的群文件都有10G的永久存储空间！</description>
      <category>日常记录</category>
      <pubDate>Tue, 21 Dec 2021 09:15:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>TJ君这两天碰到个怪事，好多平时不怎么联系的老朋友，都让TJ君上下QQ，然后组了个群，TJ君很是好奇这到底在干啥？</p>
<p>本着凡事要追根到底讲道理的精神，TJ君抓到一个这么做的朋友，严刑逼供（好说歹说）之下，终于告诉了TJ君实情:</p>
<p><strong>原来QQ才是真正的网盘！！！</strong></p>
<p>QQ，平时大家是不是都是用来聊天的？像TJ君这样的老人，有很多个以前读书时候的班级群，而大家可能不知道的是，每个QQ群的群文件都有<strong>10G的永久存储空间！</strong></p>
<p><img src="https://static.didispace.com/images/pasted-794.png" alt="10G的永久存储空间"></p>
<p>如果这还不算什么的话？想一想你的QQ群上传文件的速度，基本都是每秒MB为单位的，是不是一下子有了网盘VIP的感觉？</p>
<p>不过也有小伙伴说，才10G，怎么够用？TJ君不得不敲打下这么问的小伙伴，你家的QQ只能建一个群？TJ君不是说了吗，<strong>每个</strong>QQ群的群文件都有10G的永久存储空间！划重点、划重点，是<strong>每个</strong>！</p>
<p>说明什么？你建几个群，就是几*10G的免费空间！</p>
<p><img src="https://static.didispace.com/images/pasted-795.png" alt="免费空间"></p>
<p>所以说。。。TJ君当了好久的工具人这个事情坐实了！</p>
<p>好了好了，TJ君整理了下如何快速使用<strong>QQ群网盘</strong>的操作~</p>
<ul>
<li>1、首先肯定是你要建个QQ群</li>
<li>2、其次群文件里面上传文件，这样只需要在用的时候登录你的QQ就可以了</li>
<li>3、群文件里可以建不同名字的文件夹，方便查找内容</li>
<li>4、如何获取别人的信息？在别的群里看到有人上传的内容，可以直接点击转发到自己的群里进行保存。</li>
<li>5、如何分享？在你的群文件里找到要分享的内容转发给好友即可，或者直接拉到群里分享所有群文件（非紧密好友不建议这么做）</li>
</ul>
<blockquote>
<p><strong>怕忘记的话，记得关注TJ君的公众号哦</strong></p>
</blockquote>
<p>除了速度快，理论存储无限量，随用随看等等好处，QQ群网盘还有个很大很大的优点，是啥？当然是没广告啊，不会碰到其他网盘各种推销活动，眼前的世界安静了不少。</p>
<p>当然有的小伙伴说，我不想拉人建群啊，不想麻烦别人，有没有办法我自己做工具人自己建群，群里只有自己呢？</p>
<p>当然可以！TJ君将如何建一个只有自己的群的方法拍摄了一个指导视频，供大家参考，只要按照TJ君视频中的操作，就可以稳稳的想建多少建多少啦！乘现在知道的人不多，赶紧建起来，万一以后人多了说不定就有限制了哦！</p>
<p><strong>扫描下方二维码，关注公众号“TJ君”，回复“QQ网盘”，获取操作视频地址</strong></p>
<img src="https://static.didispace.com/images/qrcode/tj.png">]]></content:encoded>
      <enclosure url="https://static.didispace.com/images/pasted-794.png" type="image/png"/>
    </item>
    <item>
      <title>史上最强Mac上手指南，建议收藏</title>
      <link>https://spring.didispace.com/tj/tj-website-mac-quick-start.html</link>
      <guid>https://spring.didispace.com/tj/tj-website-mac-quick-start.html</guid>
      <source url="https://spring.didispace.com/rss.xml">史上最强Mac上手指南，建议收藏</source>
      <description>史上最强Mac上手指南，建议收藏 昨天看到群里有小伙伴分享了一个对Mac用户非常有用的网站：Mac终极配置教程 该站点中的内容涵盖了Mac新手和老手（尤其是开发人员）都适用的一些常用软件和环境配置。</description>
      <category>Mac使用技巧</category>
      <pubDate>Wed, 06 Sep 2023 11:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<h1> 史上最强Mac上手指南，建议收藏</h1>
<p>昨天看到群里有小伙伴分享了一个对Mac用户非常有用的网站：<a href="/tj/tj-website-mac-quick-start"><strong>Mac终极配置教程</strong></a></p>
<p><img src="https://static.didispace.com/images2/202309/tj-website-mac-quick-start/1693965357855.png" alt=""></p>
<p>该站点中的内容涵盖了Mac新手和老手（尤其是开发人员）都适用的一些常用软件和环境配置。</p>
<p>对于新手来说，很多人刚拿到Mac电脑是不知所措的，所以网站贴心的给出了从验机开始，再有系统设置的各种详细说明，带你一步步的设置并了解MacOS的基本功能。</p>
<p><img src="https://static.didispace.com/images2/202309/tj-website-mac-quick-start/1693966919282.png" alt=""></p>
<p>在完成了基本设置之后，就是安装软件了，该网站紧接着就提供了关于HomeBrew的安装使用，其他软件商店和常用软件的推荐。</p>
<p><img src="https://static.didispace.com/images2/202309/tj-website-mac-quick-start/1693967076571.png" alt=""></p>
<p>如果您是跟我一样，是名开发者的话，接下来的内容会特别喜欢，因为他还提供了开发相关软件的安装和配置教程，可以帮助你快速的构建你需要的开发环境</p>
<p><img src="https://static.didispace.com/images2/202309/tj-website-mac-quick-start/1693967287332.png" alt=""></p>
<p>另外，该站点除了Mac教程之外，还有一个Kali教程，感兴趣的小伙伴也可以看看。</p>
<p><img src="https://static.didispace.com/images2/202309/tj-website-mac-quick-start/1693967377859.png" alt=""></p>
<p>好了，今天的分享就到这里。最后，奉上该站点地址：<a href="https://44maker.github.io/wiki/Mac/index.html?from=www.didispace.com" target="_blank" rel="noopener noreferrer">https://44maker.github.io/wiki/Mac/index.html</a>，有需要的就冲吧～</p>
<img src="https://static.didispace.com/images/qrcode/tj.png">
<p><strong>欢迎关注公众号：TJ君，订阅每日推荐，了解更多效率工具、发现优质开源项目</strong></p>
]]></content:encoded>
      <enclosure url="https://static.didispace.com/images2/202309/tj-website-mac-quick-start/1693965357855.png" type="image/png"/>
    </item>
  </channel>
</rss>