- 博客(195)
- 资源 (21)
- 收藏
- 关注
原创 macbook air 裸机 U盘 安装windows10
1、使用支持 uefi 的PE U盘开机按option键启动进入PE。我这里使用的是 BigBaiCai_UEFI_gw.exe,网上有BigBaiCai,DaBaiCai,WinBaicai的,也不知道哪个是山寨的,谷歌的第一条是BigBaiCai,用这个经过我测试能用。我用的是 win10 来制作 U盘 PE的,注意安装 BigBaiCai 到完成 U盘PE 制作之前,保持 win 10自...
2019-04-21 18:59:51 22603
转载 Understanding Python Class Instantiation
概要(纠正原文中代码的问题)def __call__(obj_type, *args, **kwargs): obj = obj_type.__new__(obj_type, *args, **kwargs) if obj is not None and isinstance(obj, obj_type): obj_type.__init__(obj, *ar...
2019-03-25 21:40:41 399
转载 SO_LINGER on Sockets On different platform
前边博客讨论了 socket 在 Linux 下的关闭场景,这篇文章实验了更多的平台,转载在这里。Cross-Platform Testing of SO_LINGERIntroductionIn this post we look at the effects of setting SO_LINGER on various different platforms. We assume...
2019-03-20 23:25:28 570
原创 Linux socket 关闭场景
测试环境 :[root@centos192.168.1.12 ~]# cat /etc/system-releaseCentOS release 6.9 (Final)工具:服务器 192.168.1.12 ipython Python 2.7.5客户端 192.168.1.119 Jupyter QtConsole python3.6.1测试经过:为了测试效果,将服务器...
2019-03-20 17:45:02 2166
原创 python 作用域总结
1、LEGB 规则。2、方法内部不能直接访问类属性,需要通过 self. 或者类名。python 里只有显示的 self,没有隐式的 this.类体和函数/方法体都是独立的作用域。类体的代码是生成类时执行;函数/方法体的代码是调用时才执行。上边代码调用时已经无法识别 x,x 属于 A 的作用域,而 A 的作用域与 f 的作用域相互独立。所以 f 中访问,需要加显示的写 A.x 或 s...
2018-12-07 22:36:44 376
原创 python 柯里化与偏函数
from functools import partialimport inspectdef f(x, y): return x + ya, b= 3, 4,g = partial(partial(f, a), b)() #偏函数def decorator_1(f): def decorator_2(x): def decorator_3(y): return f...
2018-12-06 18:42:41 497
转载 python给普通对象添加方法
内容来源 stack overflowMethod nought (0) - use the descriptor method, __get__Dotted lookups on functions call the __get__ method of the function with the instance, binding the object to the method and...
2018-12-06 16:30:52 542
原创 python 脚本退出
exit(),os._exit(),sys.exit() 都能退出当前脚本的执行。差别在于 os._exit() 直接退出;exit() 和 sys.exit() 会抛出异常。当然,如果不捕获异常,看起来的效果和 os._exit() 一样,不会有任何意外的信息,不过当然可以用来做一些清理的工作。try: for i in range(10): time.sleep(0.5) ...
2018-11-23 11:20:12 4798
原创 exe 文件添加大尺寸图标
工具:Restorator20181、使用 Restorator 打开 exe 文件,打开之后在左边的 Resource Tree 中,右键打开的 exe 文件,选择 Add Resource.2、弹出 Add Item 对话框中,类型选择 Icon,随便取一个名称。3、在 File Brower 文件管理器中打开保存 icon 的位置,将使用的 icon 拖动到左侧的 ico...
2018-11-08 12:56:26 1829
原创 windows 属性对话框编码问题 The filename, directory name, or volume label syntax is incorrect.
背景:用 go 写个小程序,涉及到文件的读写,右键要打开的文件,打开属性面板,从面板里复制文件的决定路径到notepad++当中,结果程序,运行,提醒 The filename, directory name, or volume label syntax is incorrect. 错误。小实验 ,新建一个文件,复制上边的绝对路径到 notepad++ 当中,然后将文件保存成 utf8 ...
2018-11-07 01:14:20 31096 2
原创 go 字符串总结
1、len 返回的是字符串的字节数。2,string 按utf8编码。range 迭代,每次跳过的是一个 utf8 字符,索引是该字符的起始字节,值是改字符对应的码点值(rune 类型)。获取码点值对应的字符,直接使用 string() 函数转换即可。3、string 类型和 []rune 类型之间可直接进行类型转换。func main() { s := "中国人" fmt.Pr...
2018-10-30 13:30:53 389
原创 python go 延迟调用的多个闭包捕获同一变量的问题
def mult(): return [lambda x : x * i for i in range(4)]for ele in mult(): print(ele(2))lambda 先捕获上下文环境中的变量构成可调用对象,真正的调用在后边显式的调用处。问题在于 lambda 捕获的是变量的引用(一个地址对应的内存),而不是捕获时,变量的值,实际上这个值在捕获之后可以被修改。所以实...
2018-10-26 22:01:32 460
原创 go 短声明与作用域
1、if,for,switch 的短声明和控制语句块({}包含部分),是嵌套的内外作用域(else if 是紧跟的 if 的内部作用域,并非相同的作用域);独立于外部作用域。func main() { x := 6 //1 if x:= 3; x > 4{ //2 fmt.Println("x is greater than", x) }else if x:= 5; ...
2018-10-21 00:40:23 516
转载 Go Range Loop Internals
原文在这里 Go Range Loop InternalsWhile they are very convenient, I always found Go's range loops a bit mystifying. I'm not alone in this: Now I could take these facts and try to remember them bu...
2018-10-16 00:03:41 376
原创 python 抽象基类
具体化抽象基类的两种方式:1、通过抽象基类 ABCMeta 的 register 方法注册。2、通过继承的方式。class Base(metaclass = ABCMeta): @classmethod def __subclasshook__(cls, subclass): if cls is Base: return True return NotImpleme...
2018-09-12 13:55:34 1130
原创 Linux IO 多路复用理解
1、复用的意思时不用每个进程/线程来操控单独的一个IO,只需一个进程/线程来操控多个IO.2、内核空间不能直接解引用用户态的指针。select 与 pollselect 传递 fd_set* 的指针,仍然需要将fd_set从用户态拷贝到内核态。poll 传递的 pollfd* 指针一样需要从用户态拷贝所有 pollfd 到内核态。( copy_from_user 方...
2018-09-08 18:38:24 9555 2
原创 TCP 带外数据传输 OOB 数据完全解析
带外数据说明TCP 的带外数据可传输一字节内容,实际上带外数据和其他数据是一起发送,一起接收。区别在于:对于发送端:发送带外数据,会将当前发送缓冲区待发送的 TCP 报文 header 设置 flag 的 URG 标志和紧急指针 Urgent pointer 的值,仅仅如此而已。带外数据的位置为该次发送带外数据调用的最后一个字节。对于接收端:接收端,则是读取接口的行为的差异...
2018-09-07 00:59:52 3118
转载 How TCP backlog works in Linux
原文地址 http://veithen.github.io/2014/01/01/how-tcp-backlog-works-in-linux.htmlWhen an application puts a socket into LISTEN state using the listen syscall, it needs to specify a backlog for that socke...
2018-09-05 13:35:58 361
转载 The method to epoll’s madness
原文地址 https://medium.com/@copyconstruct/the-method-to-epolls-madness-d9d2d6378642My previous post covered the fundamentals of file descriptors as well as some of the most commonly used forms on non-b...
2018-09-05 13:28:10 748
原创 iptables 端口转发
ssh 也能实现本机的端口转发,只不过原来的 1 条连接会变成 3 条。详情见前一篇 ssh 端口转发博文。而 iptables 的端口转发则是在内核进行。1、将本地的端口转发到本机端口将本机的 7777 端口转发到 6666 端口。iptables -t nat -A PREROUTING -p tcp --dport 7777 -j REDIRECT --to-port 6666...
2018-08-22 17:32:24 74763 6
原创 SSH 端口转发玩转
ssh 端口转发需要配置 /etc/ssh/sshd_config 中tcp转发选项为开启:AllowTcpForwarding yes默认是开启被注释掉的,可以去掉注释保存之后重启 sshd 服务。service sshd restart (systemctl restart sshd).否则,来连接时,会出现 channel 3: open failed: administrat...
2018-08-20 13:48:41 33723 4
原创 firewall-cmd 下规则控制与现象
使用 nc -v 地址 端口号 连接服务器,返回:(tcp) failed: No route to host使用 ss -apn | grep 端口发现该端口确实处于侦听状态。在防火墙开放端口:firewall-cmd --zone=public --add-port=端口/tcp --permanent重启防火墙:systemctl restart firewalld...
2018-06-28 15:40:08 5209
原创 Mysql 编码修改与 pymysql 编码参数说明
show variables like 'character%'; 查看所有的编码:在配置文件 my.ini 中的 [mysqld] 章节下添加 character-set-server = utf8 改变 character_set_server 的编码,需要重启mysql服务生效。character_set_database 的编码的配置不在配置文件中,使用 alter database da...
2018-06-13 13:29:26 1408
转载 细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4 评注
原文在这里 https://www.cnblogs.com/malecrab/p/5300503.htmlUnicode编码点分为17个平面(plane),每个平面包含216(即65536)个码位(code point)。17个平面的码位可表示为从U+xx0000到U+xxFFFF,其中xx表示十六进制值从0016到1016,共计17个平面。2. UTF-32与UCS-4在Unicod...
2018-03-28 21:13:40 973
原创 GDB 编译安装 configure: error: no enhanced curses library found; disable TUI 问题
在使用GDB调试时,本想ctrl + x + a 打开 tui 模式,结果却没有响应。退出 GDB,带参数 gdb -tui 重启,提示 TUI mode is not allowed , 原来是编译安装gdb时,没有使能 tui 模式功能。重新编译安装一次,这次带上参数:./configure --enable-tui=yes --prefix=/root/gdb8.0但是却报错: config...
2018-03-07 14:22:06 3259
原创 Mycat 使用问题一则 通过mycat插入,却不能查询
游戏项目需要全球同服,做分布式架构。数据库需要分库,在使用 Mycat 中间件时,需要一个插入全局唯一id的问题,测试代码如下:import pymysqlimport datetimeimport randomimport socketimport timecon = pymysql.connect(host = "127.0.0.1", port = 8066, user = "r...
2018-02-10 12:21:45 8590 3
原创 Vmware 安装 Kali Linux /CentOS 问题集
1、Kali Linux 安装 VMwareTools之后, /mnt/hgfs 为空Kali Linux 安装 VMwareTools之后 /mnt/hgfs 目录为空 ,并且虚拟机选项设置里边也设置了共享路径,解决方法如下:编写脚本 mount-shared-folders.sh:#!/bin/bashvmware-hgfsclient | while read fold...
2018-02-08 00:19:37 6140 1
原创 Linux shell 命令参数分隔符
Linux 的参数的缺省参数是空白符。所以 echo hello world 实际上是两个参数,hello 和 world 之间存在多个空白符。输出只有 echo 缺省的空格。如果需要作为一个参数,需要加上引号表示是一个整体字符串。所有的参数实际上都是字符串。shell 本身就是文本字节流处理。将一个命令的输出作为另一个命令的参数时,有三种写法。1、ls -la
2018-01-14 15:49:30 7010
原创 Linux crash 快速定位调用栈
一段测试代码发生非法内存访问,发生段错误收到 SIGSEGV 信号崩溃,通过如下几种方法快速的定位到崩溃前的调用栈。1、借助 valgrind 工具。valgrind ./test.out可看到 test.cpp 203 行调用了 std::string 的empty 函数,导致的奔溃。0x401E2B 是函数 CDropScopeConfig::initLineContext 的地址。可通过 a...
2017-12-27 20:35:13 5061
原创 VS 调试记录
项目中有类似于这样结构的一段代码,特此记录一下调试结果。class A{public: virtual void func() = 0;};class B :public A{ int b = 1;public: virtual void func() override { }};class C :public A{public: virtual void
2017-12-06 21:35:34 1654
原创 C++ 标准库中 string 使用的优化技术
往容器中添加元素,若是要使用移动语义,一样的使用 std::move.int main(){ std::string s{"hello world"}; std::cout << (int*)(s.c_str()) << "\n"; std::vector vec; vec.push_back(std::move(s)); std::cout <<
2017-12-06 13:21:01 2524
转载 free 命令结果详解
来自 https://foofish.net/linux-command-free.html数据为自己在 Linux 上的测试。free 的结果如下:要完全理解上面3行数据,先搞明白buffer和cache是什么。buffer:缓冲区将数据缓冲下来,解决速度慢和快的交接问题;速度快的需要通过缓冲区将数据一点一点传给速度慢的区域。例如:从内存中将数据
2017-11-29 13:34:30 2666
原创 git bash配置ssh 登录 Linux
1、首先在 Linux 服务器上生成公钥和私钥文件,默认的存放目录在~/.ssh下。ssh-keygen可以将密码留空,这样之后就可以免密码登录。2、将私钥文件拷贝到本机。scp root@192.168.1.168:/root/.ssh/id_rsa ~/.ssh这里最好将私钥文件放在 ~/.ssh 目录下,不然在使用 ssh 登录时,需要使用 -i 来指定私钥文件。3、公钥文件需要添加到服务器...
2017-11-28 07:15:29 13050 1
转载 C++惯用法:奇特的递归模板模式
using namespace std;templatestruct Base{ void Interface() { cout <<"come from Interface"<<endl; // 转换为子类指针,编译期将绑定至子类方法 static_cast(this)->Implementation(); } static void Sta
2017-11-07 15:42:56 1460
原创 C++ 内存对齐
struct Align{ char a[9]; int b = 0x44; char c = 0x55; double d; char e = 0x66;};int main(){ std::cout << alignof(Align) << std::endl; std::cout << offsetof(A
2017-11-04 22:26:14 1170
原创 远程登录 Windows 上 Mysql 配置
Mysql 自带的Mysql 数据库中的user 数据表,存储着各种用户的权限。::1 表示本机的 ipv6 地址,% 是通配符,表示任意的地址都可以。windows 上配置局域网其他 ip 可访问本机的 mysql:grant all privileges on *.* to 'myuser'@'hostname' identified by 'passwd' ;fl
2017-10-10 12:31:19 1901
原创 Mysql localhost 与 127.0.0.1的区别
收集自网络MySQL主机127.0.0.1与localhost区别:1、localhost也叫local ,正确的解释是:本地服务器127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1,所以其实在 Windows 上是没有区别的。
2017-08-01 10:51:03 2389
原创 python 操作数据库插入语句占位符问题
1,在 Python 中使用 sqlite3 连接数据库,插入语句的展位符为 "?"cur.execute("insert into user values(?,?,?)",(1,2,"zhang"))2、在 Python 中,使用 pymysql 连接 mysql 数据库,插入语句的占位符为 "%s"cursor.execute("insert into user values(%s
2017-08-01 01:20:58 12799 1
tmux_for_git-bash.zip
2020-05-11
The Hacker’s Guide to Scaling Python
2018-05-25
Deep Learning with TensorFlow 第二版
2018-04-18
With Open AI, TensorFlow and Keras Using Python
2018-04-18
Discover the Mathematical Language of Data in Python
2018-04-18
Memory Dump Analysis Anthology, Volume 3 内存分析技术
2018-04-08
Memory Dump Analysis Anthology, Volume 5
2018-04-08
Memory Dump Analysis Anthology Volume 7
2018-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人