<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hanxl (半庄)</title>
    <link>https://beta.w2solo.com/hanxl</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>我发布的第一款 Chrome 浏览器插件：NoteSync</title>
      <description>&lt;p&gt;安装链接：&lt;a href="https://chrome.google.com/webstore/detail/note-sync/dlndiobcgnbmbeekdekcpjglkpnfcnnl?hl=en&amp;amp;authuser=0" rel="nofollow" target="_blank"&gt;https://chrome.google.com/webstore/detail/note-sync/dlndiobcgnbmbeekdekcpjglkpnfcnnl?hl=en&amp;amp;authuser=0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;之前发布了几期 Build In Public，做的是一款开源的浏览器插件，提供功能是同步发布内容到微博、即刻、twitter 三个平台，现在已经在 Chrome 应用市场上架了，有需要的朋友可以安装试试。&lt;/p&gt;

&lt;p&gt;插件本身不处理登录，所以要先在浏览器中登录好微博、即刻，twitter 发布使用读 Typefully 的 API，需要先去获取 API Key，在选项页配置，可以参考链接：&lt;a href="https://help.typefully.com/api" rel="nofollow" target="_blank"&gt;https://help.typefully.com/api&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;目前只是实现基础的文字发布功能，我已经使用了一段时间，体验还不错，一方面是同步发布，另一方面也是我编辑文字的地方，页面很干净，打开页面，知道写下的文字是准备发出去的，对象感很强，可以增强我输出的欲望。有 twitter 拆分预览，可以简单做个排版。&lt;/p&gt;

&lt;p&gt;这是一款根据我自己需要开发的工具，也是独立开发路上的一个尝试，虽然功能很简单，但是感觉很好，相比在公司做一个螺丝钉，自己做出一个小产品，成就感很强。有想尝试独立开发的小伙伴也可以试试，选择一个自己的需求，用一个小产品来满足自己。
最后欢迎使用和反馈。&lt;/p&gt;</description>
      <author>hanxl</author>
      <pubDate>Mon, 17 Jul 2023 10:13:17 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3992</link>
      <guid>https://beta.w2solo.com/topics/3992</guid>
    </item>
    <item>
      <title>Build In Public #8 上架市场</title>
      <description>&lt;p&gt;我开始尝试独立开发这条路，公开自己开发过程中遇到的问题和思考，最近在开发一款浏览器插件，主要功能是在多平台同步发布内容，计划支持的平台：微博、即刻和 twitter。
仓库地址：&lt;a href="https://github.com/lban2049/note-sync" rel="nofollow" target="_blank"&gt;https://github.com/lban2049/note-sync&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这个插件的基本功能已经实现了，所以准备先上架 Chrome 市场，体验下整个流程，后续功能也会继续优化。&lt;/p&gt;

&lt;p&gt;1、注册了开发者账号，支付了 5 美元的一次性费用。我用了国内的 Visa 信用卡，支付成功。&lt;/p&gt;

&lt;p&gt;2、插件打包，我用的 plasmo 框架，运行命令 pnpm pakcage ，直接就打包好了。&lt;/p&gt;

&lt;p&gt;3、在上传压缩包之前，账号开要开启两步安全验证，上传时会提醒。用手机接个验证码就可以了，国内手机号也可以。&lt;/p&gt;

&lt;p&gt;4、上传压缩包之后会要求继续补充信息，按要求填写就可以了，其中要上传宣传图片，尺寸必须和要求一致，我全用的应用截图，推荐一个截图工具 Snipaste ，可以指定尺寸截图。&lt;/p&gt;

&lt;p&gt;5、我使用 Storage 和 content_script，隐私要求更高，需要填写额外的说明，阐述为什么要申请这个权限。&lt;/p&gt;

&lt;p&gt;6、在申请前可以检查下打包的结果，content_script 可以指定域名，提交审核时有提示，申请权限的范围越小，审核的时间会越断，我只申请了微博和即刻的域名权限。&lt;/p&gt;

&lt;p&gt;7、发布范围，也就是发布到哪些国家，选的少也可以减少审核时间，我这个插件基本也只是给国人使用，取消勾选了很多国家。&lt;/p&gt;

&lt;p&gt;现在已经提交审核了，后面就是等审核结果了。整个流程操作还是比较简单的，新注册了一个 google 账号，使用的国内的手机号，付一次性的注册费用 5 美元，上传压缩包，完善信息，提交审核完成。&lt;/p&gt;</description>
      <author>hanxl</author>
      <pubDate>Wed, 12 Jul 2023 11:32:59 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3984</link>
      <guid>https://beta.w2solo.com/topics/3984</guid>
    </item>
    <item>
      <title>Build In Public #7 Logo 制作</title>
      <description>&lt;p&gt;我开始尝试独立开发这条路，公开自己开发过程中遇到的问题和思考，最近在开发一款浏览器插件，主要功能是在多平台同步发布内容，计划支持的平台：微博、即刻和 twitter。
仓库地址：&lt;a href="https://github.com/lban2049/note-sync" rel="nofollow" target="_blank"&gt;https://github.com/lban2049/note-sync&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;之前聊过一点，我希望制作一个看得过去的 Logo，但是没有成功，今天我再次进行尝试，先是搜索了其他人如何制作，有那些可以用的工具。最近 AI 很火，也出现了很多相关的工具，一种是专门制作 Logo 的网站，让我们输入关键词，描述，选择一些风格，然后生成一些 logo 让我们选择，我试了一些，生成出的效果并不好，没有喜欢的。另一种是直接使用 SD、MJ，这类通用的 AI 绘图工具，先在社区找自己喜欢的图片，然后在这个提示词的基础上进行修改。&lt;/p&gt;

&lt;p&gt;另一类传统的工具，不使用 AI 功能，和 Canva 类似，提供模板和很多矢量图标，可以在模板的基础上进行修改，或者组合矢量图标生成自己想要的图片，我觉得这种工具使用更简单，特别是在模板上进行修改，AI 提示词先阶段不是特别好写，而且生成出的图片是随机的。但是这个领域比较成熟，我搜了一些类似的工具，都已经开始收费，相比之下还是 Canva 的使用体验更好。&lt;/p&gt;

&lt;p&gt;社区中别人分享的，使用 AI 创建的 logo 很漂亮，但是我目前不太熟悉，尝试生成了几个，不太满意，预感需要花很多时间去学习，调试。最后我还是选择使用 Canva 会员素材，简单制作了一张看得过去的 logo，后面 AI 绘画更熟悉了再替换吧。&lt;/p&gt;</description>
      <author>hanxl</author>
      <pubDate>Tue, 11 Jul 2023 11:48:52 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3983</link>
      <guid>https://beta.w2solo.com/topics/3983</guid>
    </item>
    <item>
      <title>Build In Public #5 twitter 内容拆分预览</title>
      <description>&lt;p&gt;我开始尝试独立开发这条路，公开自己开发过程中遇到的问题和思考，最近在开发一款浏览器插件，主要功能是在多平台同步发布内容，计划支持的平台：微博、即刻和 twitter。
仓库地址：&lt;a href="https://github.com/lban2049/note-sync" rel="nofollow" target="_blank"&gt;https://github.com/lban2049/note-sync&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;今天添加了三个功能：
1、输入框添加了清空，方便操作。
2、添加了 twitter 内容拆分预览功能，可以方便看到超长内容会拆分成什么样，如果不满意，可以手动调整结构。
3、优化了内容超长的判断和拆分逻辑。&lt;/p&gt;

&lt;p&gt;twitter 单条推的长度限制是 280 个字符，我之前以为中文限制是 140，不完全对，当文本中混杂着标点符号、英文时，这个限制是不固定的，会再长一点，之前写的拆分逻辑简单了，可以优化的更好一点，拆的太短，分隔结果实在难受。&lt;/p&gt;

&lt;p&gt;twitter 的文档中有关于字符如何计算的解释：
&lt;a href="https://developer.twitter.com/en/docs/counting-characters" rel="nofollow" target="_blank"&gt;https://developer.twitter.com/en/docs/counting-characters&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;并提供了开源的依赖包，包含计算推文长度的方法：
&lt;a href="https://github.com/twitter/twitter-text" rel="nofollow" target="_blank"&gt;https://github.com/twitter/twitter-text&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;通过这个依赖包提供的方法，更精准的计算了推文的长度，当超长或者不够加 “1/3” 这种小尾巴的时候我会分隔为两段，自己写内容的时候，再注意下长度，主动去分成多段，目前效果还不错。&lt;/p&gt;

&lt;p&gt;昨天发布之后，有朋友建议可以在描述中添加一些界面截图，纯文字太单调，今天已经补充上去了。本来是准备加的，但是以为还需要准备图床，就先放下了，今天查了下，github 的 readme 是支持相对路径的，直接把图片放到仓库中就可以了。&lt;/p&gt;</description>
      <author>hanxl</author>
      <pubDate>Tue, 04 Jul 2023 14:19:36 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3967</link>
      <guid>https://beta.w2solo.com/topics/3967</guid>
    </item>
    <item>
      <title>Build In Public #4</title>
      <description>&lt;p&gt;我开始尝试独立开发这条路，公开自己开发过程中遇到的问题和思考，最近在开发一款浏览器插件，主要功能是在多平台同步发布内容，计划支持的平台：微博、即刻和 twitter。
仓库地址：&lt;a href="https://github.com/lban2049/note-sync" rel="nofollow" target="_blank"&gt;https://github.com/lban2049/note-sync&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;今天添加了插件的选项页，有两个菜单，“内容发布” 菜单和弹窗提供相同的功能，输内容输入框，发布按钮，因为弹窗每次失去焦点会自动关闭，连续发布多条的时候不太方便，所以加了这个菜单。“配置” 菜单，添加了 Typefully API Key 的配置，twitter 使用这个 API 发布。&lt;/p&gt;

&lt;p&gt;这里我犯了一个安全上的错误，就是直接把自己的 API Key 推送到了 github ，虽然之前仓库没有分享出来，但是也是 public 的，虽然我的 twitter 账号就是个小透明，但是这种问题还是要引起重视，毕竟很多大事件，都是因为大意，把密钥推送到公开仓库导致的。我已经删除并重置密钥了。&lt;/p&gt;

&lt;p&gt;今天简单写了 Readme 文档，然后把仓库地址公开分享了，感兴趣的朋友可以看看。目前功能基本实现了，不过还比较粗糙，所有没上应用市场，想体验的朋友，可以自己下代码，编译后体验。&lt;/p&gt;

&lt;p&gt;除了开发，今天本来想自己弄一个看得过去的 Logo，虽然现在 AI 很热，也特别擅长图片生成，但是我做了一些尝试，没有生成出自己满意的 logo，AI 也许很强，但是使用的门槛目前还是比较高的，如何编写出优质的提示词很重要。&lt;/p&gt;

&lt;p&gt;还有一个种方式是之前用过的，使用 Canva 制作，Canva 提供了很多模板，可以选一个自己喜欢的，简单改改颜色、文字，也能做出一个还不错的 logo，但是现在很多功能都变成付费了，连导出透明图片都是付费的，不付费基本无法使用。&lt;/p&gt;

&lt;p&gt;在设计方面，有什么好的方式，欢迎给点建议。&lt;/p&gt;</description>
      <author>hanxl</author>
      <pubDate>Mon, 03 Jul 2023 15:49:33 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3965</link>
      <guid>https://beta.w2solo.com/topics/3965</guid>
    </item>
    <item>
      <title>Build In Public #2</title>
      <description>&lt;p&gt;我开始尝试独立开发这条路，公开自己开发过程中遇到的问题和思考，最近在开发一款浏览器插件，主要功能是在多平台同步发布内容，计划支持的平台：微博、即刻和 twitter。&lt;/p&gt;

&lt;p&gt;昨天完成了微博和即刻的自动发布，今天按计划完成 twitter 的发布，本来计划同样使用 JS 操作 DOM，模拟用户操作的方式实现，但是 twitter 的发布界面相对复杂一点，不是普通的 input 输入框，而且文字超长时，还需要分隔成多条输入，比较麻烦。&lt;/p&gt;

&lt;p&gt;twitter 是有开放 API，相比国内的平台要开放的多，但是自己去对接也比较麻烦，我平时用到的一款第三方工具 Typefully，是一款 twitter 运营工具，有内容编辑、定时发布和分析统计的功能，这个工具提供了封装的 API，免费版就可以使用，对接也比较简单，直接 Http 请求就可以了。&lt;/p&gt;

&lt;p&gt;但还是遇到了问题，还是 twitter 字数限制的问题，英文限制是 280 字，但是中文还是 140 字，Typefully 的 API 中有个参数可以自动分隔超长的段落，或者用 4 个换行来分隔段落，自动分隔应该是按英文的 280 字分隔的，导致中文超过 140 会出错，无法发布，还是要手动处理超长的部分。&lt;/p&gt;</description>
      <author>hanxl</author>
      <pubDate>Thu, 29 Jun 2023 16:27:54 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3959</link>
      <guid>https://beta.w2solo.com/topics/3959</guid>
    </item>
    <item>
      <title>Build in public #1</title>
      <description>&lt;p&gt;我准备开发一款多平台内容同步的工具，公开开发的进度和思考。&lt;/p&gt;

&lt;p&gt;主要关注短内容的分发，准备实现的功能是：将纯文本的短内容自动同步发到即刻、微博、twitter。&lt;/p&gt;

&lt;p&gt;首先是我自己有这个需求，而且关注的博主中，也看到不少博主会把相同的内容在这几个平台同步发，没有搜到实现这个功能的工具，所以自己开发一个。&lt;/p&gt;

&lt;p&gt;产品形式是浏览器插件，通过打开网页，模拟用户操作，自动发布内容，这样的好处是不用解决登录问题，用户在自己平时用的浏览器上，已经是登录状态，模拟用户操作，也不用去 hack 平台功能，相对简单。&lt;/p&gt;

&lt;p&gt;今天花了半天的时间，已经实现了即刻和微博的自动发布，预计明天完成 twitter 自动发布后，会把开源地址发出来。&lt;/p&gt;</description>
      <author>hanxl</author>
      <pubDate>Wed, 28 Jun 2023 16:47:15 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3958</link>
      <guid>https://beta.w2solo.com/topics/3958</guid>
    </item>
  </channel>
</rss>
