工作
文章平均质量分 64
coder_jo
software engineer
展开
-
这个难啃的需求级于完成了
这个XX过程可视化的需求,从 国庆期间调研写demo,到今天把 前端代码也写完,整个就完成了,该收款了。原创 2020-10-12 14:03:04 · 153 阅读 · 0 评论 -
从当前项目中聊开一下
国庆期间,研究了 indexed mode 下的 PNG transparency 的内部格式(最近的项目需要生成特定格式的PNG文件),了解了 tRNS 与 Alpha 通道的不同,也了如下的 探索性代码。过程中 IDAT Chunk 需要用到 zlib 压缩就看了一下 zlib 的代码,只是看的过程中也想起之前工作中的一些场景。场景一:年初,评审开发人员的方案时,我提出 “表驱动” 的方案,结果 所有人都一脸蒙(显然是没有 翻过 《代码大全》的 Code Monkey)我们来看一下.原创 2020-10-07 09:34:16 · 139 阅读 · 0 评论 -
重写一个 composer 包
以前写过一个 php 的 composer 包,可以读取 mp4 视频文件 的旋转角度 ,而不需要调用 ffmpeg这个程序。今天因工作需要把 这个包 扩充了一下,可以同时返回 mp4 视频文件的 旋转角度/宽/高,换了一个新包名,未来看工作需要,可能会扩充更多的输出,如 帧率、duration ...哈哈,然后写了一个 for loop shell cmd 去 循环 compos...原创 2020-02-12 18:14:54 · 247 阅读 · 0 评论 -
阿里云 低版本 centos ECS 磁盘扩容,网上文章没有告诉你的一些东东
目前的项目由于历史原因,ECS 上的 centos 内核版本还是 2.6 ,不能支持 在线扩容 磁盘,只能离线扩容。扩容 ECS A 时,需要1)把 A 上停机2)卸载 A 上的云盘(系统盘)3)挂载到 ECS B 上作为一个 数据盘4)在 B 上修改 A的云盘的分区表时,有如下地方是 要注意:如果用 fdisk 修改分区表时,1)p 先打印旧分区表 的 start,...原创 2020-01-20 14:45:52 · 192 阅读 · 0 评论 -
如何禁止一个软件烦人的更新提示?
从方法上分析有如下方案:1)打开本软件【首选项】,设置不检查更新2)逆向修改 exe 文件跳过 检查更新 的那个函数3)操作系统 防火墙 设置禁止这个 程序连接外网4) 修改 hosts文件,把 更新server的 IP 解析为 0.0.0.05)卸载了它(佛系)各个方案的优缺点和适用场景我就不在这儿分析了,刚刚我实在是忍受不了 xmind zen 第 N 次提...原创 2020-01-17 17:35:30 · 12646 阅读 · 5 评论 -
Always good working with you too
我司的澳洲的数学硕士 同事,负责NL AI 算法may be this is the last time I can help you debuging your python code.原创 2019-11-29 15:18:00 · 175 阅读 · 0 评论 -
写了整洁代码的心情
心情美美哒,项目也完成了一个里程碑,慢慢完成一些TODO,但用户的App不受影响原创 2019-06-20 18:24:27 · 256 阅读 · 0 评论 -
真正解决 windows OpenSSH WARNING: UNPROTECTED PRIVATE KEY FILE!
【提醒】:不要再看其他文章了,以下才是根本的解决方法。我开始用Visual Studio Code - Insiders了,因为有一个很吸引我的功能VS Code Remote Development里的Remote Debug。这是什么功能?就是代码在远程的linux,也运行在远程的linux上,但debuger是在本地的windows上,代码也不用在windows上。...原创 2019-05-14 16:01:07 · 13735 阅读 · 28 评论 -
npm install 在windows host 和 linux guest vm 共享目录下创建软链接失败的解决方法
目前工作的本地开发环境是 windows 10 host ,virtualbox安装centos 7 linux,代码是放在共享目录下,这样的好处是可以在 windows下用IDE调试同一份代码,也linux中的server也运行着同一份代码。代码项目中有用到 node,需要npm install包。但npm install会在node_modules/.bin下创建一些脚本...原创 2019-03-15 19:25:13 · 828 阅读 · 0 评论 -
搭建研发流程
最近在一个跨国的创业团队,有澳洲和中国的开发,按目前的现状,我搭建了一个简单可行的研发流程原创 2019-02-25 16:46:10 · 226 阅读 · 0 评论 -
why php7 throw Fatal error: Allowed memory size of xx bytes exhausted (tried to allocate xx bytes)
用swoole 写的协程 server能做到高并发,但这有一个问题必须考虑的,多个协程跑在一个进程内,某个协程把所有的内存吃光了,其它协程怎么办?这个进程会怎么处理? 首先不要管协程这么一回事,php最初设计就是一个脚本引擎,目前php版本实现的是,遇到 内存不足,不是一个 E_RECOVERABLE_ERROR,直接就 调用shutdown 函数了。当swoole扩展引入协程概念...原创 2018-12-22 10:16:52 · 1030 阅读 · 0 评论 -
php的引用,小心使用
PHP的引用与我们常识中的C指针不同,尽管它们的部分语义是相同的(“指向”相同的 value)。如果你要用引用来提高性能,我建议你要考虑清楚。举个例子$a=[1,2,3];var_dump($a);foreach ($a as &$b) { $b++;}// unset($b);var_dump($a);$c = $a;$c[2]++;var_dump...原创 2018-12-26 22:44:26 · 136 阅读 · 0 评论 -
strace 打印堆栈
平常初次定位问题时,我一般是先看看 api 调用,再不济就多看看堆栈,如用 gdb 的commands 指令在 每次断点时自动打印堆栈。 strace 有个实验性的功能,在打印每个系统调用的同时打印当时的堆栈,有了堆栈简直就是手握问题的钥匙。strace -h... -k obtain stack trace between each syscall....原创 2018-10-30 10:54:50 · 3512 阅读 · 0 评论 -
vim 通过 vbundle 安装 pyclewn 2.3(gdb调试)
前几天在调试PHP源代码时,需要用到gdb,在gdb的终端看代码不是很好,需要用到pyclewn, 但pyclewn 不能通过vbundle安装,于是建了个git仓库,修复了python2.7由于没有asyncio 需要用trollius包来支持的代码把下面的代码,复制到 ~/.vimrccall vundle#begin()call vundle#end()之间,就可以使用了,支持 1.原创 2017-08-04 21:14:00 · 729 阅读 · 0 评论 -
12月份的新业务、新系统架构
前几个月讨论的新业务,刚刚产品经理终于写出了 v0.01 版本的需求文档,要我给出所需的开发时间。我看了 v0.01 版word文档的右边满满都是产品经理的批注,有太多东西产品经理都没想清楚就让我给时间了,从过去的经历来看,这就是一个大坑。BUT还是要配合,而且这个业务的主线在前几个月的讨论中我已经了解了,只来开始架构这个新系统了,先用笔和纸吧,勾勒出数据与子系统、子模块的交互,快原创 2017-12-01 11:14:03 · 236 阅读 · 0 评论 -
求一个整数中的二进制1的位的个数
你以为我会用循环移位法?查表法?no no !!!看看你手上的CPU,今天都2018年了,Intel 2008年 增加了SSE4.2指令集,其中就有硬件popcnt指令,就是用来求一个整数的二进制1位的个数。公司的电脑,CPU还是i3不过可以看到已经是支持sse4指令集的。马上看了一下GCC的支持情况,我手上的工作机上用的是GCC4.8 已经支持了。原创 2018-01-02 17:40:32 · 672 阅读 · 0 评论 -
The Node.js Event Loop, Timers, and process.nextTick()
理解了Node.js Event Loop中的每个 Phases 会执行的 operations 就知道为什么 使用定时器如setTimeout()设定在 5ms后执行回调函数,但在第3ms时有一个 process.nextTick() 回调函数执行了4ms,则setTimeout()的回调实际被执行的时间是第7ms。note: each box will be referr原创 2018-01-05 15:02:18 · 274 阅读 · 0 评论 -
一次MySQL数据库性能排查。不要一想到数据库的问题就都是各种加索引
最近接管一个做B2B的新团队,网站奇慢无比,20多秒的SELECT到处都是。原来的“架构师”认为用MyISAM读性能很好,就广泛采用了 MyISAM 存储引擎。BUTMyISAM表锁MyISAM只支持表锁,表锁有共享读锁和独占写锁两种模式。读锁与读锁是兼容的,读锁与写锁是互斥的,写锁与写锁是互斥的。也就是说,MyISAM表的一个连接的读操作是不会阻塞其它连接的读操作的,但是会阻塞其它连接的写操作,...原创 2018-04-03 15:38:56 · 603 阅读 · 0 评论 -
工作
早上刚上班,正好有新的需要,和下属说讨论怎么把软件的架构做成可适应业务的扩展,就是要想想未来产品会做出什么业务形态来,不要这次写死了代码。产品这次说的是用户可以0元购买,本质是商品的钱是由平台支付了。这个怎么扩展呢?1)平台支付部分 1.1)打折 1.2)现金券、优惠券2)什么商品适用3)活动开始、结束时间4)符合什么条件的用户可参与.....列完点,就会发现 这就是一个活动...原创 2017-06-08 11:01:54 · 260 阅读 · 0 评论 -
重构,招到不合适的员工的后果
这是目前客户的情况,原来的架构是 上游客户有两个部门(未来是多个部门是服务器scale up),共同对接同一个京东商城接口(微服务),现状是要把 下游的京东接口合并到上游(未来是多个部门是git代码上的scale up)插曲是前几个月招了一个PHP开发,按上图的架构参与开发,整整三个月试用期就完成了两件事,每件事的完成都延迟5天左右,每天18:00开始收拾东西,18:04分秒下班,真的,除了几个周...原创 2017-06-05 18:02:25 · 394 阅读 · 0 评论 -
用 php 实现分析 mp4 视频文件的格式
最近工作中,在做小程序第三方开发时,遇到小程序video组件的问题,开发反馈由于video组件的层级太高,总在浮在最前面滚动时会挡住后面的元素,于是开发说要改动一下方案,在原来的列表页面放一张视频的截图,让用记点击这个截图后跳转到一个新的页面观看视频,那个页面只有一个video组件就不会由于它层级太高而导致其他问题。这个新方案可行,但开发做完后,发现在苹果上拍摄的视频是旋转的,在截出来的图片也是旋...原创 2018-04-19 17:58:42 · 3465 阅读 · 0 评论 -
发布一个PHP Packagist包 (mp4-rotate-probe)
前段时间因工作需要写了一个库函数,检测mp4视频的rotate旋转度数,见 用 php 实现分析 mp4 视频文件的格式。 今天抽空把它做成了 Packagist (mp4-rotate-probe),这样别人有需要就可能通过 composer 安装和使用了搜索...原创 2018-05-02 16:01:59 · 287 阅读 · 0 评论 -
3个月前面试的一家金融公司
3个月前面试的一家金融公司,对我说的是老总军人出身、香港xx大学研究生,现在是xx国企金融子公司老总,当时说是有国企背景 palapla,然后说目前是找外包公司正在做一个金融APP,现在需要招一个技术总监管理外包公司和做二次开发。当时还在外包公司开发的APP,我下载试用,还充了100RMB,结果当时体验退款就没到账,今天再看看已经打不开了。所谓牛逼闪闪的 XX系背景也只是个吹,还是干不了实事。联想...原创 2018-04-25 08:49:35 · 556 阅读 · 0 评论 -
30岁这个梗(闲话面试)
昨天来了一位面试高级开发工程师的面试者,在我这做技术面,全程他的脸向和我的脸向是90度角的,33岁,创业过(8个月),在上一家公司也是xx高级工程师。给他一支笔,让他边说边比画一下,画出了如下这样,和我说了很多,我也频频点头,And the end,回顾的时候却是下面一番光景。然后,我边复述他所说的,边画他所表达的,起码画出过轮廓(后面他在上面画画涂涂又画花了)这样的人和我说他的思考是有逻辑性的,...原创 2018-05-10 15:32:53 · 1130 阅读 · 0 评论 -
研发环境的搭建
这两个月在推进研发流程的建设,可以用 呕心沥血 来形容,因为决定给你资源的人不太懂 IT。首先,以前的技术leader认为自己只做“架构师”,不管理团队,留下了这样一个困局给接手的我。1)引入多种技术栈,下属不能很好承接,golang、vue、把外包公司做的java项目用golang和php重写了。2)开发者写完代码就提交测试了,测试了好久都还不能上线。同时种bug的提法是【测试环境】xxx bu...原创 2018-05-10 12:23:02 · 1005 阅读 · 0 评论 -
爆栈
在处理一个被混淆过的js文件,做了美化格式化后,有12W行。想把其中一些代码块处理一下,这些代码块有模式,就用php写正则处理$pattern = "#(^\}, function\(.*\) {|^\}\(\[function\(.*\) {)\n(\s.*\n)*#m";preg_match_all($pattern, $data, $matches);var_export($matche...原创 2018-05-16 17:06:44 · 1328 阅读 · 0 评论 -
人性
刚毕业才来一个多月的运营小妹妹,上周运营的leader 觉得招错人了,能力不合适,就让她离职了。但今天财务的同事来找我说这个人在职期间从公司提现了一些钱走。公司目前这块业务是培训店员,就是发一些任务,有答题、晒小票、拍货架、分享到朋友圈等等,做对了就可以得到几积分、或者几块钱。她是自己发任务自己做,做对就有钱了。也许现在工资很少,但只要是踏踏实实的积累了工作经历、经验,原创 2017-07-26 17:13:58 · 211 阅读 · 0 评论