跳到主要内容

博客

代码人生:编织技术与生活的博客之旅

  • 项目用到了 socket io 通信 发送信息

  • client 和 server 直连无问题

  • 但是走 niginx 集群就直接报错了

  • 大神改了一个配置然后就通过了

  • 记录一下 Nginx 配置

        location /socket.io {    
proxy_pass http://pro_socketio;
proxy_http_version 1.1;
proxy_set_header upgrade $http_upgrade;
proxy_set_header connection $connection_upgrade;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header host $http_host;
proxy_set_header x-nginx-proxy true;
proxy_set_header Access-Control-Allow-Origin *; # 主要起作用
proxy_set_header Origin ""; # 主要起作用字段
proxy_read_timeout 86400;
}

随笔阅读需 1 分钟

音程

  • 不看黑键,只看白健,在此基础上在看所按的音与标准白健差几个半音
  • 减 差两个
  • 小 差一个
  • 大 不差
  • 增 多一个
  • 例如 1 3 白健之间数字关系为 1-3 为三度 音阶上差三个半音 1# 2 2# 所以为大三度
  • 例如 1 2# 白健之间数字关系为 1-2 为二度 音节上为一个两半音 1# 2 所以为曾二度
  • 例如 3 5# 白健之间数字关系为 3 5 = 1 3 为三度 音阶上为三个半音 所以为 大三度

三和弦

  • 三个音之间的关系为某两个音程的组合 称为一个和弦
  • 大三度 + 小三度 为大三和弦 3 2 (三个音之间差 三个半音 两个半音 例如 1 3 5 大C和弦)
  • 小三度 + 大三度 为小三和弦 2 3
  • 大三度 + 大三度 为增三和弦 3 3
  • 小三度 + 小三度 为减三和弦 2 2

七和弦

  • 大七 = 大大七 3 2 3 也可看作大三和弦加上一个标准七度
  • 属七 = 大小七 3 2 2 也可看作大三和弦加上一个小七度
  • 小七 = 小小七 2 3 2 也可看作小三和弦加上一个小七度
  • 半减七 = 减小七 2 2 3
  • 减七 = 减减七 2 2 2
  • 例如C大七 1 (3个半音) 3 (2个半音) 5 (3个半音) 7

大小调关系

  • 大调的第六个音为小调的第一个音
  • 如1234567 大调 67123456
随笔阅读需 2 分钟

项目的部署

一。安装 gosuv Git 地址

  • 这里 下载对应系统的二进制文件

  • 测试启动:gosuv start-server -f

  • 将 gosuv 的二进制启动文件软链接到系统 bin 目录 ln -s gosuv /usr/local/bin

二。将 gosuv 安装为 linux 的系统服务

1. 编写systemd的单元配置文件 (启动命令 ExecStart 和启动路径 WorkingDirectory 酌情修改)

  • vim /lib/systemd/system/gosuv.service
[Unit]    
Description=gosuv
After=syslog.target
After=network.target

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple # 如果要启动的命令是一个 daemon 进程,这里的值设置为 forking
User=root
Group=root
# 可以将 gosuv 链接到 bin 目录或者直接移动到 bin 目录
WorkingDirectory=/usr/local/bin
# -f 参数指定 gosuv 前台启动,默认后台启动(如果没有-f 参数,则 Type 需要改为 forking)
ExecStart=/usr/local/bin/gosuv start-server -f
Restart=always

# Some distributions may not support these hardening directives. If you cannot start the service due
# to an unknown option, comment out the ones not supported by your version of systemd.
ProtectSystem=full
PrivateDevices=yes
PrivateTmp=yes
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

2. 将此文件放到 /lib/systemd/system文件夹下,此时就能够让服务开机启动和自动重启了

  • 开机启动:systemctl enable gosuv
  • 启动服务:systemctl start gosuv
  • 浏览器中访问:localhost:11313
编程阅读需 2 分钟

  • 文本来自于 QPython 编程群
  • 感谢**【架构分析】坚决不讨论专业问题的 IE6** 大佬

image.png

自测题

  1. 随便拿来一个软件/功能,绝大多数情况下能否正确推测出背后的实现原理。
  2. 能不能在 5 天/7 天/10 天/30 天内
    • 用一个新的框架(所有时间-2)开发出一个最小模型
    • 在之前没接触过/没有知识储备的情况下做出 app/网站/小程序/3d 游戏的最小模型。....
  3. 能不能看出计算机每层之间东西的关联以及设计思想,比如路由器和消息队列。
  4. 是否熟悉常用的语言的虚拟机 / 编译器,和框架从内存对象布局到部分代码实现原理再到 GC,从框架实现原理到设计思想,解决问题。
  5. 对计算机网络,计算机组成,编译原理,数据结构有一定了解,能够进行多学科联动的问题分析和性能分析以及问题查找。(重点是联动分析)
  6. 是否具备严谨的分析问题的能力,比如单一变量原则,假说演绎推理。
  7. 是否能够知道什么该优化,什么不该优化,用最小代价换最大收益。

什么叫编程

  • 编程其实只是在做两件事:解决问题以及,更好的解决问题。
  • 不管是写代码,抄开源项目,造轮子,拖拽开发出 app,都是为了解决问题。
  • 只要能解决问题,没有对错。
  • 代码说到底就是工具的一种。能解决问题就是及格的解决方案。
  • 如果你用代码解决不出来你要解决的问题,那你就是不如用拖拽开发的。
  • 更好的解决问题是一种进阶能力,用更好的算法能不能提高识别准确率,用更新的框架是不是能换来更优秀的- 响应速度。我能不能通过优化提高我解决问题的速度和质量。

什么叫编程能力及格

1。能把实际问题抽象,然后用计算机来描述和解决问题。 2。可以称自己为 xxx 语言程序员,但是不恐惧写任何语言任何项目的代码。从来不会觉得:这个我不会所以做不了。 3。能够进行简单的性能分析,分析,不是瞎想。我看过太多通过瞎想判断性能的自以为是的人了。这需要对自己的代码,语言实现有一定了解。 4。有基础的 debug 和分析问题的能力。不会虾球测试代码。


什么叫编程能力优秀

  • 在写代码的时候能不借助调试器(对就是说我(逃)),通过报错以及出现的状况判断是哪个地方出问题了(也算黑盒测试的一种?)
  • 能够进行性能分析,找出性能瓶颈,这里涉及的知识点就更多了,计算机基础知识,整体化思想(从上到下寻找性能瓶颈。开始于代码(业务逻辑代码),终止于代码(CPU 级别),对业务的熟悉。

什么叫会编程呢

  • (至少同龄人里我没见过任何人跟我思考一样的问题。)
  • 能够做出决定:
    • 到底该不该采取这个优化
    • 什么时候重构代码
    • 到底该不该升级框架
  • 这个要考虑的方面太多了,开发成本,时间成本,风险,协调性。
  • 有一些优化是没意义的/次要矛盾。而大家都喜欢抓着看得到的东西优化。

  • 如果你一句都看不懂,慢慢学 python 吧。
  • 如果你就看得懂几句,说明你根本没入门编程。
  • 如果你能理解大部分内容,说明学习方向还算正确,可以继续按照这样的方向学下去。

  • 文本来自于 QPython 编程群
  • 感谢 架构分析】坚决不讨论专业问题的 IE6 大佬

大佬名称截图

编程阅读需 4 分钟

在hosts文件中加入如下几句即可

  • vim /etc/hosts linux
  • vim C:\Windows\System32\drivers\etc\hosts windows
192.30.252.123 www.github.com    
103.245.222.133 assets-cdn.github.com
185.31.18.133 avatars0.githubusercontent.com
185.31.19.133 avatars1.githubusercontent.com

现在这个IP似乎也不管用了,所以如果使用了shadowsocks的可以用git使用代理

git config --global http.proxy socks5://127.0.0.1:9999    
git config --global https.proxy socks5://127.0.0.1:9999
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080

用完记得关上,不然内网的git也会很慢

git config --global --unset http.proxy    
git config --global --unset https.proxy
编程阅读需 1 分钟

执行

在IPython console里先cd到test.py所在的文件夹,再run test.py。注意使用的是命令run 而不是命令python。

debug

栗子:

debugfile('/home/1/tensor2tensor/tensor2tensor/bin/t2t-datagen', args='--problem=image_mnist --data_dir=~/t2t_data --tmp_dir=~/t2t_data/tmp',wdir='/home/1/tensor2tensor/tensor2tensor/bin')    
  • ipython下
cd /home    
pwd
ls
help(runfile)
Help on function runfile in module _pydev_bundle.pydev_umd:
runfile(filename, args=None, wdir=None, is_module=False, global_vars=None)
Run filename
args: command line arguments (string)
wdir: working directory
run test.py

更多资料

Python阅读需 1 分钟

首先必要要求

公司有 VPN 连接到内网

  • 这里放个用 wireguard 搭建 VPN 的博客 链接

获取机器 ip

  • 参考:windows 下面固定本地 ip

  • 查询机器 ip (win + R 召唤)cmd 下 ifconfig.exe ifconfig.exe

  • 固定机器 ip 这里建议固定下自己机器的 ip, 避免重启 ip 改了。请使用你查询的 ip 固定。

  1. 右键网络->打开网络和共享中心->选择你正连接的网络->属性->双击 Tcp/ipv4; image.png
  2. 设置 ip 和掩码,及网关,网关可以在 cmd 里面输入 ipconfig 即可看到 image.png
  3. ifconfig.exe 验证 image.png

ps. 有可能以后开启机器后连不上网,可能是你的 ip 被别的机器占了,解决方案是不关电脑


必要设置

  • Win + Q 搜索登录选项 设置个密码

  • 【我的电脑】右键【属性】,最左边【远程设置】,✔允许远程连接到此计算机 (L)

image.png

  • Win + Q 搜索安全中心 ----> 防火墙***** ----> 关闭域防火墙

image.png

连接

  • Win + R 运行以下命令 mstsc /v 192.168.0.136

其他问题

win10 的家庭版是没有组策略的

连接卡顿问题

  • 首先在客户端上,搜索策略组进入策略组编辑窗口,打开计算机配置->管理模板->Windows 组件->远程桌面服务->远程桌面连接客户端->关闭客户端上的 UDP->启用;
  • 然后在远程主机上,同样进入策略组编辑窗口,打开计算机配置->管理模板->Windows 组件->远程桌面服务->远程桌面会话主机->连接->选择 RDP 传输协议->启用并选择仅使用 TCP;
  • 两台机器都重启一下,再连接,就不会卡顿了

在家办公还是很爽 der

随笔阅读需 2 分钟

下载地址

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
  • 注意安装目录不能有中文
  • 版本对应 python 版本
  • 命令为:pip install *.whl
Python阅读需 1 分钟