代码 > github.com/googollee/go-socket.io的两个坑

2020-05-26

几年前的项目用过socket.io,用了github.com/googollee/go-socket.io这个库起了服务。

最近需要做一点升级,发现了几个蛋疼的坑。

1.BroadcastToRoom反应迟缓

这个好分析,爬了下代码,broadcast的时候是同步的……同步的……同步的……,不是并发的。

万一有连接超时,必须等超时的连接过了timeout才能发下一个……

真有想法。

解决方案:用ForEach方法自己实现一下

func BroadcastToRoom(s *socketio.Server, nsp string, room string, event string, args ...interface{}) {
s.ForEach(nsp, room, func(c socketio.Conn) {
go func() {
c.Emit(event, args)
}()
})
}


2.400错误,提交的信息丢失

这个怕了整个代码,无解。

首先,有错误后不打任何日志,直接返400错误,这个操作略骚

其次,明明每次请求不是异步的,偏要解析payload搞几个chanel搞成异步,然后有pause和resume的状态,判断了pause会报错,这个我也没抓到点。

参考

https://github.com/googollee/go-engine.io/issues/82

解决方案:

检查代码后,websocket没对应的方法……

客户端强制使用websocket....

强制使用websocket我还走一层socket.io干嘛……

杂言碎语 > [记录]关于编程/数学能力和逻辑思维能力的关系

2020-05-12

记录下自己部分知乎回答的内容

很多程序员被认为情商低,就是因为思路长期模拟程序,对现实生活产生了偏差,认为世界是二元的,是非黑即白,有特定输入就一定有特定输出的,不然就是出bug的思路。

我认为,这是对认识世界能力的摧残,是缺乏辩证认识和分析社会能力的体现。
而"辩证认识和分析社会能力"是我认为的逻辑思维能力中最重要的一块。
因此,我认为,学习编程对逻辑思维能力有极大的负面作用。

我认为编程也好,数学也好,本质需要的不是逻辑思维能力,而是想象力。  

编程能力和数学的能力是需要一种能构建和想象出不存在于现实世界中的架构的能力。
所以我写代码和做数学是唯二需要用到纸笔的事情。  
通过画一些简略的图,帮助自己更好的在脑海中架构出我需要理解的东西,像脚手架一样为因为我想象力不足而摇摇欲坠的理解进行稳定和支撑。

游戏 > 杀戮尖塔-静默猎手过进阶20了

2020-05-03

猎手的特色应该是对手牌和费的控制

后期套路很单调

初期一张致命毒药一张毒雾过第一层

然后2张杂技,一张战术大师,保证手牌和费的循环

然后抓住一切机会移除手牌,只拿一些能消耗的强力牌过渡,如炼金药水,死吧死吧死吧,背刺等,以便能活到手牌正循环。

能熬就赢,不能就输。

如果初期没拿到致命毒药,可以拿华丽收场或者终结技作为主要输出技能。

第三层boss只有时间吞噬者有点难度。但我20阶时第二个boss是时间吞噬者,也一次过了……

下一个目标是故障机器人了。

杂言碎语 > 又又又被知乎禁言了

2020-04-24

看了知乎上提到的朝鲜信息后。

评论了句看到鑫胖妹妹,去查了下吨位。

又是禁言7天,不可申诉。

怎么说呢,没什么好说的。

这帐号早晚要挂。

自己的blog这一亩三分地还是要维护着。

不然我这么喜欢吐槽一个人早晚要被憋死。

Linux > glusterfs?ceph?

2020-04-17

说实话,现在有点过了glusterfs的蜜月期了。

glusterfs看上去很完美。

扩容容易,mount方便,最重要是数据回复容易,就是一块块磁盘,哪怕系统都挂了,直接接电脑上就能把数据恢复了。

但是,有两个致命的问题。

列文件慢。

没有快照。那个基于lvm快照的方案看得我是一脸蒙蔽……

列文件慢除了不能适用大部分场景外。

rsync也慢

而没有快照导致除了rsync没有特别好的备份手段。

两相综合,备份是个大问题。

最后只能用变通的方案,用qcow2之类的快照格式挂虚拟机用。

但一个文件系统这样当块设备用,完全没有意义了。

感觉不如ceph这种原生支持块设备的系统了。更何况rbd的快照也好香的样子……

又有proxmox ve 这样的完整解决方案直接支持。

感觉要数据安全,离不开备份,难以用glusterfs。

可能glusterfs更适合做相对不那么重要的图片/附件库?

拿来放业务数据还是蛋疼的。


代码 > 用了下go/ast包

2020-04-16

感觉还不错。

用来分析代码,自动生成代码。

如果用来代码分析应该也还行。


杂言碎语 > 知乎的G点越发飘忽了

2020-04-08

继上次问你以为你也行赵被禁言一天后

今天因为评论了句社会主义接班人没错,是接着上班的人又被禁言一天,还不可申诉……

关键原帖说不是接班人是工具人的还活着……

知乎这操作真是看不懂……

杂言碎语 > 作为一个日常被黑的上海人,有些东西还是放不下

2020-04-06

上海人被黑,其实不是有了互联网才有的事情,远在网络在中国生根发芽之前,上海人在全国范围内其实已经臭名远扬了。

上海男人小气,怕老婆,吵架3小时也打不起来。

上海女人虚荣,小心眼,崇洋媚外。

甚至20年前我读大学的时候,有个系里的广东同学喝过了酒和我说 “有些人不是上海人,做的事却和上海人一样,你是上海人倒不像个上海人。”

个中味道,闻者自品。

习惯了上海人被黑,习惯了上海人自黑,在网上有时还会调侃一下,你黑的是上只角还是下只角的。

毕竟,上海的户口论含金量,在国内应该仅次于首都了。教育的好处你占着,医疗的好处你占着,连被别人说几句都不乐意,那太得了便宜又卖乖了。

但现在发现,只有一件事情,上海话,真的过不去。

最近挺火的那个训斥上海店员的视频,我看完的感受是,觉得那上海男人说的真有道理。

上海人在上海家门口一个寻常小超市被要求不要说上海话,要说普通话,太魔幻了。

平心而论,上海话,在我的生活里,越说越少,但却镌刻的越来越深。

 因为会让我第一反应上海话开口的,只剩下了身边最亲近的人,沟通着我生命中对于我最亲近的一部分人。

我自私的推己及人一下,所有人的家乡话,对于自己都有着特殊的的意义。 

 家乡话,是我来到这个世界之后听到的第一句话。

 家乡话,是我童年时和父母和玩伴的记忆。

家乡话,纪录了我的青春懵懂,我的年少不羁,代表着我和朋友曾经的没心没肺,我对曾经傻傻的自己的埋汰和鄙夷。

家乡话,被我用来和爱人表达缠绵的心意,承载着我和我女儿的舐犊之情。

终有一日,当我去世的时候,在灵堂里对我最后的评论,不论是唏嘘,是怀念,还是幸灾乐祸,都是家乡话。

我的短短的一生,注定是一份只有我一个观众的VLOG,我只希望这配音,是纯纯的上海话。 

上海,可以是全国的,是全世界的上海。

上海话,必须还是我熟悉的那个上海话。

代码 > flutter初体验

2020-04-01

用flutter做了个小玩意,大概的了解了下。

怎么说呢,感觉乖乖的。

明显不是原生的开发体验,感觉开发体验更接近于phonegap/cordova,但感觉上稍好点。

语气说是一个平台,ui库,不如说更像一个框架,大概是vue/react + bootstrap的感觉。

语法简单,和js很像,开发起来那一套很像前端。

做点小工具不错。

对于flutter最大的期望是能很好的开发桌面端,如果能做到的花可以投入一定的精力。

Linux > chrome设置使用socks5代理的方法

2020-03-31

google-chrome --proxy-server="socks5://<SERVER>:<PORT>"