自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lucyTheSlayer的博客

一条没用的咸鱼

原创 pyqt股票行情软件性能优化 差点又让python背了锅

因为对c++一直处于差不多能看的懂代码,但写的话一头包,所以毅然采用pyqt编写一个股票行情软件。部分窗体截取如下: 等大体上快完工了,跑着跑着突然发现,界面卡顿的一笔。一看cpu,飚到了十几。瞅瞅人家的行情软件,那cpu使用都是稳定的在2以下。 行情一频繁就尿裤,难道是py太拉胯了? ...

2020-05-25 12:28:41 75 0

原创 p2p的基石: 快乐udp打洞试验

因疫情在家办公,远程操作公司电脑。突然想起来试一试很久以前一直想做的试验: udp打洞。毕竟男人鳝变,最爱钻洞。 试验步骤记录如下: 注:家里的电脑记为PC_A,公司电脑记为PC_B 1.利用stun服务,检测两边电脑的NAT类型,并得到两边的内网,外网地址。 这里使用https://gi...

2020-03-12 15:26:28 50 0

原创 python 中四舍五入的巨坑

先来个灵魂三问: print(round(0.5)) print(round(1.5)) print(round(2.5)) 一般人肯定以为输出1, 2, 3了,实际跑出来,却是0, 2, 2 有些同学马上说,可以利用格式化字符串呀: print("%.0f" % ...

2019-11-05 10:10:35 45 0

原创 grpc 加密传输 golang服务端 python客户端 最简单方法

场景:golang作为服务端,python作为客户端,grpc的加密传输 试了网上很多的方法,有带ca的有不带的,天花乱坠头都晕了。最烦躁的是网上服务器和客户端都是同一语言的,试了下都不怎么灵光。纠结了不少时间后,终于试出一套最简单的能调通的方案。 本方案不使用ca,因此不够高大上,但对于一般...

2019-10-23 14:52:49 262 0

原创 js 从json字符串反序列化对象,如何恢复其对象方法的小技巧

应用场景中,有将前端的一些数据保存到后台,在下一次使用的时候取出恢复的操作。对象的字段在这个过程中,是不会产生问题的,但是通过json序列化/反序列化后,对象的方法却不能恢复。 解决这问题最原始的方法,就是重新new个对象,然后把字段依次赋值,但这种耗时耗力无法自适应变更的方法未免也太low了点...

2019-07-25 09:31:48 263 0

转载 Android sqlite: Cursor Window is full

https://stackoverflow.com/questions/35766836/cursorwindow-window-is-full

2019-06-26 09:47:42 286 0

原创 pyinstaller 打包出现第三方库FileNotFoundError的一般解决方法

在用pyinstaller打包(-F 选项),如果用到的第三方库含有data文件,而pyinstaller又没有自带该第三方库文件的hook的时候,执行打包后的exe一般会报以下错误 FileNotFoundError: [Errno 2] No such file or directory:...

2019-06-18 16:35:23 2587 5

原创 vs2017 代码标红波浪线但编译通过 解决办法

在c++代码引用其他类的时候,发现被标下划红色波浪线了,但是编译生成完全没问题。所以肯定是vs脑残了。 网上搜了下, https://weblog.west-wind.com/posts/2018/Aug/07/Fixing-Visual-Studio-Intellisense-Errors ...

2019-03-20 11:23:25 3802 2

原创 websocket中,使用protobuf的要点总结

作为一个有逼格的实时动态网站,websocket是必不可少的;对于数据量不大的场景,使用json传递数据便绰绰有余了。然后当你想偷懒,直接这么写的时候,老板就会来敲打你的狗头:“现在数据量变多了,网站怎么不动了啊?” 于是,必须使用protobuf了。 protobuf的简介就不多说了,百度都...

2019-02-27 16:52:53 3918 0

原创 golang sql事务rollback写法的思考

与springmvc什么都封装好了不一样,使用go开发的时候很多轮子都得自己造,但也正因为此,go的开发更为自由灵活。 go比较著名的orm库是gorm,在写带有事务的方法,而碰巧业务逻辑又比较复杂的情况下,一旦出现了error,则事务必须回滚,这样的话,代码中将会有很多的tx.Rollback...

2019-01-29 18:48:47 1662 0

原创 大端序 小端序 之简单记忆法

如我们有值 i = 0x12345678, 若字节流为(地址从左往右从低到高): 0x78 0x56 0x34 0x12 则为小端序 若字节流为: 0x12 0x34 0x56 0x78 则为大端序   那么,记忆方法就很简单了,如果顺着读等于真实值的就是大端序;如果不是就是小端序。 ...

2018-11-13 22:24:43 125 0

原创 KMP算法学习的一点个人理解

PS:KMP算法的背景相关请自行百度,本篇编程语言使用python,个人学习用,理解上可能存在谬误。算法实现出自本人自以为理解的KMP而码成,不保证正确性以及性能最优。 假设有两个字符串s, r,求r在s中出现的位置,效率最高的算法似乎就是KMP了。 1.生成next数组 算法的第一步是生成...

2018-11-09 10:34:11 114 0

原创 量化 ZIG函数的python实现

来自某百科的定义,ZIG(K,N) 函数当数值K的变化量超过N%时折线转向。 本文只考虑收盘价(close)的5%转向。 先上图,直观感受下ZIG线(白线) 所以给定日线收盘价序列,要求出其ZIG线; 大体思路如下: (x = 0.05即5%转向) 若是上涨趋势:     扫描点...

2018-11-02 11:15:33 1372 1

原创 pycoin学习笔记(6) 对交易签名的源码简析(PayToAddressScript)

(个人学习用,可能理解上存在谬误)上篇中,签名的步骤如下,solver = build_hash160_lookup([exponent]) signed_new_tx = unsigned_new_tx.sign(solver)对于pycoin是如何完成交易签名的,很有必要从其源码中进行研究 ...

2018-07-15 22:05:51 307 0

原创 pycoin学习笔记(5) 本地对交易签名(p2pkh)

注:本篇所有实验均在比特币测试网络(testnet)下进行这次实验对交易进行本地签名,即不利用第三方钱包的签名功能。本次的场景是,将mh4xx1pgjqLmjVUJxfdj3qV8BJaYARLdh9上的0.2btc转到2N113Ujyc6Pj7kvnZMyZNpAtAfj9EzoHStQ上去。开...

2018-07-13 15:55:36 648 0

原创 pyinstaller打包报错: RecursionError: maximum recursion depth exceeded

今天给以前写的python脚本用pyinstaller打包的时候,居然报错了: ... File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit return visitor(node) F...

2018-07-13 14:53:41 11013 13

原创 pycoin学习笔记(4) 生成交易,使用jsonrpc签名并广播

注:本篇所有实验均在比特币测试网络(testnet)下进行前置步骤:1)下载比特币钱包客户端: bitcoin core. 选择testnet并开启jsonrpc的相关功能。2)去网上乞讨一些比特币这是我乞讨得到的1.03个比特币该交易的hex表示为:0200000001ae2e375fe76f3...

2018-07-12 16:15:49 794 0

原创 pycoin学习记录(3) hd钱包 bip32

from pycoin.ecdsa import public_pair_for_secret_exponent, generator_secp256k1 from pycoin.encoding import wif_to_secret_exponent, public_pair_to_bitc...

2018-07-10 15:32:48 488 0

原创 pycoin学习记录(2) 生成 bitcoin address

from pycoin import encoding from pycoin.ecdsa import public_pair_for_secret_exponent, generator_secp256k1 from pycoin.serialize import h2b is_compre...

2018-07-09 15:27:36 680 0

原创 pycoin学习记录(1) ecdsa

from pycoin.ecdsa import public_pair_for_secret_exponent, generator_secp256k1, sign, verify secret_exponent = 0x12345678 public_point = public_pair_...

2018-07-09 14:02:14 378 0

原创 overflow:hidden 的妙用

示例如下:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&a...

2018-05-31 10:48:22 394 0

原创 @ConditionalOnClass的使用探索 新日暮里格斗大会

Spring的新引入的注解 @ConditionalOnClass是Springboot实现自动配置的重要支撑之一。其用途是判断当前classpath下是否存在指定类,若是则将当前的配置装载入spring容器。举例来说,如果在maven中引入了velocity,那么视图就使用velocity,若引...

2018-05-24 11:18:42 26865 21

原创 生产环境 ios推送证书更换

苹果的推送证书的有效期是一年,过期了就没法推送了,那问题就严重了。整体步骤很简单:1)先去apple developer上,对相应的appid重新生成生产环境的推送证书2)下载到mac后,导入钥匙串中,然后导出为p12,期间自己设个密码3)到第三方推送官网上(本人采用的个推),将p12证书更换一下...

2018-05-23 09:46:07 1822 0

原创 编译原理练手之撸个Json Parser(二) 实体类映射

上一篇中,实现了json字符串的解析;但是一个json库真正cool的地方是跟实体bean的转换,于是今天便来撸下。这次其实跟编译方面没有任何关系,主要是java反射的运用。之前反射用的也少,正好一边百度一边练练。基本功能码完后的感受就是,看似简单的一个实体映射,其实要考虑的细节非常之多,因此也只...

2018-05-22 15:06:45 207 0

原创 编译原理练手之撸个Json Parser

https://github.com/lucyTheSlayer/FFJson手撸个python目标还是太遥远,先从简单的json解析器开始。捣鼓了半天,似乎是ok了,现总结一下。1.Lexer 分词器分词器的目标是将输入的String token化,定义了以下Token种类public enum...

2018-05-21 21:16:37 337 0

原创 自制简易编程语言 个人笔记(2)

https://github.com/lucyTheSlayer/orange网上把tiny machine的源码下载下来,省的自己敲了,赶紧试了下自己生成的字节码,不出所料一大堆bug。经过debug,总算是能跑个像样的程序了。立马敲一个,就从最简单的计算阶乘开始:#welcom to oran...

2018-05-17 19:22:52 446 0

原创 自制简易编程语言 个人笔记(1)

(写博客是提醒自己挖了坑一定要填)github地址https://github.com/lucyTheSlayer/orange趁着空闲时间,准备学习自己搞一套编程语言出来,就命名为Orange。Orange的最终目标是python的简化版,具有oop的支持(希望能坚持到这步)于是翻出好几年前的老...

2018-05-17 14:18:30 3664 1

原创 闲的蛋疼:用算法解移动一根火柴问题(二)

本文仅个人娱乐所用。趁着空闲,把昨天的程序完善了下,做成了一个控制台小游戏。不得不说,我的智商被爆了。import random class ActionType: Dec = 0 #将火柴移出 Inc = 1 #将火柴移入 SelfTrans = 2 class P...

2018-04-24 09:49:19 573 1

原创 闲的蛋疼:用算法解移动一根火柴问题

最近一直看到诸如的问题,闲的无聊,便写了段代码来自动解答这类问题。初步只能支持标准的数字变化,即9可以变成3,5,6等,但是不能变成13因为一根火柴棍形成不了1(1需要两根火柴棍).另外数字间不能插入符号,例如132不能变成13-2,因为没有空间可以插入。允许更为灵活的变换需要更多的代码,在此不过...

2018-04-23 15:13:44 1874 0

原创 swift 4.0 字符串动画

为了让app看上去酷一点,动画是必要的。花了一整天时间做了下字符串动画,特将成果贴在此处。主要参考了ZZStringAnimation,主要思想便是把uilabel中的字符串,以单字为单位拆分为一个个小的uilabel;那么接下来操纵这些小的uilabel就可以形成很酷炫的动画效果了。github...

2018-04-16 15:40:29 190 0

原创 swift4.0 创建随机字符串

修改自https://www.jianshu.com/p/1ec6ba8a0da3extension String{ static let random_str_characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHI...

2018-04-11 09:50:23 1351 0

原创 swift 自制framework中加载nib

let makeCallVC = FFMakeCallViewController(nibName: "FFMakeCallViewController", bundle: Bundle(for: type(of: self)))Bundle(for: type(of: sel...

2018-04-09 11:11:39 413 0

原创 librtmp 源码分析笔记 RTMP_ReadPacket

索性一口气把RTMP_ReadPacket也记录下来,好尽快开始对具体上层协议实现细节进行细读。与RTMP_SendPacket不同,RTMP_ReadPacket需要多次调用(每次读取一个chunk),并配合RTMPPacket_IsReady这个宏使用才能读取一个完整的RTMPPacket。大...

2018-04-02 14:59:28 1042 0

原创 librtmp 源码分析笔记 RTMP_SendPacket

接下来看一下librtmp最重要之一的函数 RTMP_SendPacket首先必须有一份rtmp文档在手配合源码阅读,点击打开链接顾名思义,即发送一个packet,这是rtmp协议逻辑上数据交互的基本单元(实际物理上还要分成chunk发送)。先看一下 RTMPPacket 的定义 typedef...

2018-04-02 10:45:02 400 1

原创 librtmp 源码分析笔记 WriteN

WriteN实现很简单。贴下源码方便以后翻看。static int WriteN(RTMP *r, const char *buffer, int n) { const char *ptr = buffer; #ifdef CRYPTO char *encrypted = 0; cha...

2018-04-02 09:18:03 302 0

原创 librtmp 源码分析笔记 ReadN

无限缅怀雷神,R.I.P https://blog.csdn.net/leixiaohua1020/article/details/15814587为了能更好的使用librtmp,特将librtmp源码的个人分析记录下来,方便日后查看回顾。rtmp是基于tcp的,无论协议写的如何天花乱坠,本质还是...

2018-03-29 10:50:46 333 0

原创 pyqt5 实现屏幕截屏

最近发现很多时间都浪费在解决以前很久解决过却忘了具体怎么解决的事情上,遂决定也开始在博客上做好记录,也希望能帮助同样咸鱼的屌丝码农,一起copy & paste。。。先上0注释的一坨shit:class KxScreenshotDelegate: def finishedW...

2018-03-28 10:44:59 2983 0

原创 python client 与 netty server , 使用protobuf通讯的问题

场景是这样的,服务端是netty,所有消息采用protobuf封装 //handler ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast(new IdleStateHandler(0, 0, 6...

2018-03-28 09:59:12 2367 1

原创 swift 访问 c struct 中成员

百度了半天也没百度到啥,终于在谷歌的一个小角落发现了答案,特此记录: 代码片段来源:https://stackoverflow.com/questions/24073012/swift-define-double-pointer-for-struct-defined-in-c?rq=1 ...

2017-07-10 10:45:21 432 0

原创 linphone mediatreamer simple demo 之 录音

代码来源于https://github.com/Xianleewu/mediastreamer2-demo 做了一些小修改,以适应新版版本 linphone-sdk-3.11.1 在win32环境下运行通过 本文章仅个人记录用 #include #include #include #...

2017-07-04 09:01:14 770 0

提示
确定要删除当前文章?
取消 删除