Software

浏览模式: 标准 | 列表 | 图文
McpRouter,值得推荐的一个工具

McpRouter,值得推荐的一个工具

2025 年了,各类 AI IDE 层出不穷,也都有自己的市场 以及允许 手工配置 ,我试了一下,如果同时打开 windsurf / cursor /vscode /.......等,你会发现你所启用的那些 mcp 都开了一个进程,如果不信,可以用 ps aux|grep node 看一下就知道了。

这时候 mcp router,其实就有效果了,他用一个统一入口来处理,然后自己启动一份相应的 mcp server,从名字上就看出来,是一个 mcp router。
如果是他支持的 ide,连配置都不用。
https://github.com/mcp-router/mcp-router
当然也不是没有缺点,这种就只适合不和项目目录深度绑定的那种 mcp server,如 git 就需要每次在自己项目里重新配置。
大多数的情况下,已经够用了,而且你的每次调用 mcp router 也都有调用日志,方便你查看 。
DeepSeek R1 本地部署?

DeepSeek R1 本地部署?

这个春节应该是被 DeepSeek 引爆了,所有的人都在讨论,懂的不懂的,听说过的。炒股票的,都在讨论。搞技术的在讨论怎么自用,炒股票的在讨论创业版进不了场之类的。DeepSeek 的 APP 里各种 语境的回复,都被 玩成了花。

割韭菜的就是在拼命说,现在可以本地部署了,部署了你也就有一个自己的 R1 了,然后什么基于 Ollama 的各种教程、课程遍地都是,其实都只是自嗨罢了。本地部署?呵呵。。。。
看一下 Ollama 的页面:https://ollama.com/library/deepseek-r1:70b/blobs/4cd576d9aa16,70b 的,都是基于:DeepSeek R1 Distill Llama 70B 进行蒸馏的。那些普通人的机器能跑起来的所谓的 7b/8b 的,也不过是 QWen 或者 Llama 7b/8b 的蒸馏版罢了。Ollamah 写的很明白。

DeepSeek's first-generation of reasoning models with comparable performance to OpenAI-o1, including six dense models distilled from DeepSeek-R1 based on Llama and Qwen.

仔细看好那个下拉列表,只有 671b 的模型才是 R1 的。。。你觉得你跑得起来?别激动了,用用 API 就行了。反正也没那么贵。对比 openai/claude,真的便宜多了。而且付费也方便。
Valet + PHPMon ,你值得拥有

Valet + PHPMon ,你值得拥有

Valet是laravel官方推出的轻量级server,仔细看一下就知道了,其实就是一堆脚本,帮你安装nginx,帮你配PHP。甚至 帮你装个dnsmaq,至少 你要虚拟域名的时候 不要改 /etc/hosts 了。

当然不是说Valet没问题,相比于MAMP来说,mamp可以指定任何一个项目用任何一个指定的php版 本。valet,就不支持。。。至少默认不支持,你只能valet use php@7.4,类似这样的方式来调用和切换。

所以,phpmon就来了,作者也是这么说的,管理和切换PHP版本,还能改配置,快速定位配件文件啥的,程序也小,只有4M,轻轻松松。,妈妈再也不用担心我的PHP环境了

----

之所以想换,是因为mamp pro太重了。而且从6开始,不能再单独 启动某一个服务了,这简直就是倒退。。比如 我mysql要重启,他只能group restart。所以干脆换成valet+rds+phpmon(虽然90%的情况下,都 不太用切换PHP版本)。你真可以试试

1、composer global require laravel/valet

2、https://github.com/nicoverbruggen/phpmon

记录一次自己被自己坑的过程

记录一次自己被自己坑的过程

众所周知,现在的PHP开发基本上都是前后台+服务器通吃,虽然都是各种三脚猫,但毕竟也算是大半个全栈。

开发网页的时候,最烦的事情就是页面上改个文字,都得cmd+r(F5)刷新一下网页看看效果。前端这两年在这个上面改进了很多。比如npm run watch,其实就是监控文件改动。自动刷新一下页面。别看这个功能不复杂,但其实会浪费很多时间。比如双屏电脑的时候,听起来很方便,一个屏幕写代码,一个屏幕看效果,但你其实试一下就会感觉到累了:代码写好,鼠标移到另一个屏幕,点击一下浏览器,按一下F5,看一下效果。如果不对,回来再试。。。
以前都忍了忍,但如果改动多了,其实真不能忍。于是找了browser-sync这个软件,他可以代理你本地的网页,设定好监控的文件,改动后,他就会主动刷新页面(看了一下,就是在页面里嵌入了socket.io组件,一旦有更新,软件主动往ws里发通知,让他执行location.reload 之类的)
正常使用的时候都没问题,也自我感觉良好,直到有一天,我POST数据的时候发现了一个奇怪的事情。POST一个JSON数据,一个使用Quill生成的HTML,被我用JSON包了起来的数据。看了一下SQL的LOG,全部提交了两遍。更关键的是,第二次提交的时候。JSON结构还在。但HTML全部没了。。。。这个就太妖异了。
一开始我一直以为是自己哪里程序写的有问题,触发了两次或者触发了XSS的保护,但仔细找了一下,也没有发现自己有使用中间件。
最后排查browser-sync,因为他是代理访问。类似browser-sync --proxy,那就想了,是不是第一次我提交后,他提交了。然后又提交了一次?毕竟是第三方软件,我也没有深究的想法,直接关闭browser-sync的进程,再测试。果然,一次过。也没有提交两次。。。
为了这玩意,我被折腾了2小时。所幸这个小问题影响不大(正常如果只是看页面,几乎完全无影响,后续,我还是准备将页面做成象nova那样。估计会好很多)
--EOF--
都说要知其然并知其所以然,但也没有那么多时间来查看,所以就先这样,也许等有时间的时候好好的探究一下,为什么啥都不变,就将我的HTML那一小段给删除了。。
phpstorm 2019.3 的BUG

phpstorm 2019.3 的BUG

PHPStorm 2019.3更新后,感觉都还可以,只是有时候格式化的时候,页面会错位,比如将所有的use 并成了一行。

起初我以为这是设置的问题,但后来发现不是,因为在同一个项目里数百个文件,只有极少的几个出现了这个问题,这就意味着这个文件我不能自动格式化了。于是一点点的排查
1、删除 .idea 目录,重建一下,排查是不是IDE设置的问题
2、将出错的文件COPY出来,重建 同名文件,再粘贴回去(防止有隐藏不可见的代码)
3、尝试将引用的USE进行人工排序,或者只留2个
上述方法都试了,结果 都不正常。
直到,突然发现有一个很简单的文件也不正常,于是就盯着这个文件进行测试。比如一行行的删代码,看看到哪里才正常。直到。。。。改了个函数名,一切就都正常了。这是什么回事?原来,我的函数名用了关键字:list。即:public function list(Request $request)...
居然是因为这货吗?于是我又找了几个内容里有 list 方法的文件,尝试格式化一下,果然,use全并到一行了。。。
2019.2的时候没有这毛病,到2019.3的时候。。。。居然多了这个
最后,在没有新的补丁出来前,我,将方法名改掉了。。将list改成lists,世界清静了(嗯,其实不太影响,就是路由里也得顺便改一下)

chrome 55之后,网页编码怎么更改?

每次发到这种内容的时候都让我很纠结,那肯定是因为我踩坑了!

说实话,页面不指定编码这事儿让人确实很郁闷,不过现在大多是UTF-8了,所以这样的问题倒还是很少遇到。但很少遇到不代表不会遇到,比如
这是谁?这是京东。。。。
好吧,话说回来,从chrome55开始,就不再有切换编码这个功能了,估计google也认为,页面里应该都是指定编码的,问题不大!
但京东这个API,我真心是拿到一堆乱码。所以,我想知道怎么破
当我看到这里的时候,我就知道,问题解决了:https://www.v2ex.com/t/339398,很多人和我有同样的问题,看看其中的内容:
首先来看普通的国内用户,遭遇怎样的伤害:
[贴吧的哭声]( http://tieba.baidu.com/p/4891458368)

再来看程序员的愤怒:
[囧囧囧]( https://bugs.chromium.org/p/chromium/issues/detail?id=597488)

谷歌这是在倒逼 web 程序员编码规范,各位怎么看?
第 1 条附言 · 86 天前
没想到这么多人回复,那还是说点干货吧:

#官方的解释,55版以后默认按chrome UI语言解析,毫无疑问,中文的chrome就按照GBK(有可能GBK2312?)编码了
最后,建议去安装这个插件:https://chrome.google.com/webstore/detail/set-character-encoding/bpojelgakakmcfmjfilgdlmhefphglae/related,至少我用了它之后,真的是解决了。妈蛋!
CS1.6 Server的架设

CS1.6 Server的架设

CS是很久以前的游戏了。mac上最小支持的就是1.6.....在steam里能下载到的最小版本也只有1.6。

客户端好找,但是创建一个server就比较麻烦了。所幸gameservermanagers.com真是一个良心网站,就提供了一键创建server包。
1、先加入源,并更新: dpkg --add-architecture i386; apt-get update; apt-get install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux tmux lib32gcc1 libstdc++6 libstdc++6:i386
2、创建用户并以该用户登录:adduser csserver / passwd csserver / su csserver
3、下载安装包wget https://gameservermanagers.com/dl/csserver ,设置可执行权限 chmod +x csserver
4、执行它:./csserver install
然后就完事了。。。安装完后
./csserver start就能启动了
还有一些命令,如stop/restart/console/details/update/force-update/debug等
更详细 的还是直接看官网吧:https://gameservermanagers.com/lgsm/csserver/
看看它support server list。。。吓尿你
PhpStorm中因为JS版本低而提示错误的解决

PhpStorm中因为JS版本低而提示错误的解决

开发项目的时候,发现:

这是提示我,当前Javascript版本不支持

打开phpstorm的设置,进行语言和框架设置,选中Javascript,将版本设置为ECMAScript6。

保存一下,再看刚才的文件,提示已经没有了
由于以前只是用JS写写常用的东西,也没有注意过。果然使用ECMAScript6。虽然 VSCode什么的也可以,但切换来切换去的,总觉得不方便,而且这个设置只对当前项目有用,就先这么处理吧
PhpStorm with Laravel Plugin

PhpStorm with Laravel Plugin

有时候,有一个好的IDE其实也没有用的。就象PhpStorm ,明明有Laravel Plugin,但你会发现,你安装了这个插件,在使用Laravel进行开发的时候,还是什么用都没有,仿佛这个插件就象没有安装似的。

确实,如果不是看到官方的介绍,我就真以为这个插件是弄来玩的。

在要使用LaravelPlugin前,你得做好几个准备工作

1、安装 laravel-ide-helper,这是一个 composer 的库:composer require "barryvdh/laravel-ide-helper":"v2.2.0"

2、在config/app.php中加入:Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

3、重建索引,点击菜单:File | Invalidate Crashes / Restart ...,系统会认为你原来是因为出错而重启,重启后会自动重建索引

4、artisan clear-compiled 清除编译缓存

5、artisan ide-helper:generate ,会在项目目录下生成一个_ide_helper.php文件。

然后就完成了所有的配置,你在routes.php中输入Route::get('/test','H'); 你会发现:get方法认到了,输入H的时候,会将你所有的H开头的Controller都认出来。而且会自动将其中的方法形成一个列表,方便你引用。

至此,Laravel的整体插件才算完成(如果你需要自动编译less等,还要安装FileWatch插件)

更详细的教程和图文,详看官方:

1、https://blog.jetbrains.com/phpstorm/2015/01/laravel-development-using-phpstorm/

2、https://confluence.jetbrains.com/display/PhpStorm/Laravel+Development+using+PhpStorm

3、https://github.com/koomai/phpstorm-laravel-live-templates

使用syncthing来同步资料

使用syncthing来同步资料

自从快盘再也连接不上后,总感觉少了点什么,所以,只能使用第三方工具来进行同步,在H.C.的介绍下,我使用syncthing来进行同步。

首先在我的局域网的机器上(mac min + 128SSD + 500G 组的fusion),安装syncthing。方法参考:http://bao3.org/14623502546429.html,它是使用了brew cask,所以就得有以下的方法:

brew tap caskroom/cask
brew tap caskroom/versions
brew cask install syncthing

很妖异的是,我笔记本在最后一步一直无法下载syncthing,而mac mini就成功了。不知道是否因为mini装的是优胜美地,而笔记本是EI Capitan的原因(Capitan总有各种小问题)。

原文中的第一行:cd $(pbpaste),无法直接运行,所以我还是手工进入那个目录,然后运行下面的内容了。

cd $(pbpaste)
sed -i .bak "s/USERNAME/$(whoami)/g" ./syncthing.plist
sed -i .bak "s/\Users\/$(whoami)\/bin/usr\/local\/bin/g" ./syncthing.plist
sed -n '/Users/p' ./syncthing.plist
sed -n '/local/p' ./syncthing.plist

这个执行完后,就是launchctl的load了。load完后就会自动启动浏览器,打开127.0.0.1:8384端口。进行互加设备,同步同一个目录,就完成了

详细教程请看:https://docs.syncthing.net/,如果你不做什么特别的需求,WEBGUI界面,你可以完成所有的操作(最主要的就是共享目录的工作名要一样,才会同步!)

图文教程:

  1. http://www.appinn.com/syncthing/
  2. http://toutiao.com/i6236917708575736321/

找了很多,只有这两个看上去比较详细 ,其他的实在太简单或者就是一句话了