Dart和Flutter及其开发环境

去年关注到了 Flutter 这个来自 Google 的跨平台框架,上个月突然就发现 Flutter 火爆了,原来是阿里巴巴的闲鱼团队在他们的项目里混入了 Flutter,还分享了几篇文章,这无疑奠定了 Flutter 可以用于大型项目中的基础,毕竟闲鱼是有超千万用户级的体量. Dart Dart 和 Golang 一样也是来自 Google, 是在 2011 年发布的语言, 发布只比 Golang 晚了两年.前些年不温不火,混的实在是惨,但最近也是被 Flutter 带火了一把. 这就像当初 2009 年 Android 起来后,把半身入土的 Java 硬生生给送上了云端,并且最关键的一点就是根据 Flutter 的自我描述, 它将会是跨 Android … “Dart和Flutter及其开发环境”

Read More

关于Ubuntu 18.04图形界面下的max file open 值

正常在Linux下,对打开的文件描述符的数量限制设置有两个地方: sudo sysctl -a | grep file-max 是全局最多可打开文件描述符设置 sudo ulimit -n 是单进程最多可打开的文件描述符设置 全局的最大打开数量修改比较容易,只需要在/etc/sysctl.conf中添加fs.file-max并指定值即可,如fs.file-max = 6553500. 单进程的最大打开数量设置就比较坑了,我当前用的是Ubuntu 18.04,若仅是Server版本Ubuntu或是用SSH登陆的情况下,只需在/etc/security/limits.conf添加如下: * soft nofile 1024000 * hard nofile 1024000 # 16.04下用 * 会无效,需要指定用户如: root soft nofile 1024000 root hard … “关于Ubuntu 18.04图形界面下的max file open 值”

Read More

curl命令上传文件到开启CSRF的Django站

Django默认开启csrf防跨站,因此需要在提交信息时同样带上csrf. # 每次都获取csrf,也可以用固定的 csrf=`curl -s -o /dev/null -c –url ‘http://example.com/’ | grep ‘csrf’ | awk ‘{print NF}’` # 提交 curl –request ‘POST’ –url ‘http://example.com/’ –cookie “csrftoken={csrf}” –form “username=user” –form “password=pwd” –form “csrfmiddlewaretoken=${csrf}” –form “[email protected]” 其中表单的key根据实际值填写.

Read More

Protobuf在TypeScript中的64位长整型精度问题

一直以来,在 JavaScript 中表示数值的只有 Number 这种以 64 位浮点形式存储的类型, 是不存在类似 Long 这种64位的长整形,这就会造成后端传输来的长整型数据到了前端出现精度丢失的情况: let n1 = 177777777777777777; console.log(n1) // 177777777777777800 遗憾的是在 TypeScript 中也没有 Long 这样的长整型,但是 Node.JS 中的,有许多十分优秀的 modules ,其中 long这个第三方 module 使用了一个 class ,封装了两个 32 bit 有符号 number … “Protobuf在TypeScript中的64位长整型精度问题”

Read More

创建基于Flannel网络的Kubernetes 1.10.3

和之前系列的文章一样,都是手动部署 Kubernetes,流程也相似,参考之前记录的 关于 IPVS 以及部署Kubernetes 1.9.2 并启用IPVS和CoreDNS. 早在上个月 Kubernetes 就已经发布了 1.10 系列,这个系列的新特性主要是将 CSI 和 CoreDNS 特性置为 beta. 开启 IPVS modprobe ip_vs ip_vs_sh ip_vs_rr ip_vs_wrr. 手动管理 IPVS 可用 ipvsadm工具, RedHat 系的系统使用yum install -y ipvsadm安装 ,Debian 系的系统使用apt … “创建基于Flannel网络的Kubernetes 1.10.3”

Read More

QT下无法执行C++编译

安装QT完成后,无法执行c++项目的构建: Could not determine which “make” command to run. Check the “make” step in the build configuration. Error while building/deploying project xxx (kit: Desktop Qt 5.10.1 GCC 64bit) When executing step “qmake” 一般以为是qmake或make问题,但其实是C++的编译工具没指定:

Read More

MacOS 下登陆私有Docker 仓库并拉取镜像

在mac下,并不存在/etc/docker/certs.d文件夹,虽然可以手动创建,但即便将自己私有仓库的CA证书放入,仍旧提示x509: certificate signed by unknown authority错误. 因此可以在图形界面打开Docker.app-Preferences-Daemon在Insecure registries栏中填入私有仓库的doman:port.这样便可以直接拉去公开的镜像.但若要拉去私有镜像,则必须先登录,此时便有可能遇到如下错误: Error saving credentials: error storing credentials – err: exit status 1, out: `User interaction is not allowed.` 有两种方法可以解决这个情况: 在图形界面打开Docker.app-Preferences-General,取消勾选的Securely store Docker logins in macOS keychain,此后的登陆便不会验证证书. 在launchpad中搜索Keychain Access并打开,然后在搜索栏中搜索仓库的证书,关键字为仓库的domain. … “MacOS 下登陆私有Docker 仓库并拉取镜像”

Read More

Kubernetes 的多种调度方法

label 通常在部署对机器有特殊需求的服务的时候,可以使用给 Node 贴上label 的方式来绑定这些服务: # add label kubectl label nodes node-name key1=value1 # show node label kubectl get nodes –show-labels # remove label kubectl label nodes node-name key1- 接着在部署的 YAML 描述文件中spec字段添加nodeSelector即可: spec: nodeSelector: key1: … “Kubernetes 的多种调度方法”

Read More

修改登陆Jenkins后session过期的时间

Jenkins的web默认会话30分钟过期,不过可以修改该值. 因为Jenkins使用Jetty,所以启动war包时,追加参数覆盖原配置即可-DsessionTimeout=<minutes>. 或者也可以配置文件方式,在Jenkins的配置目录下找到web.xml,路径是jenkins/var/WEB-INF/web.xml. 修改该文件,在中添加,值为session的过期分钟数,比如需要6个小时过期就填360. eg: <session-config> <session-timeout>360</session-timeout> </session-config>

Read More

Nginx的HTTP2 PUSH与开启WordPress支持

扯一下 都知道 HTTP 协议都是 Client Request,然后 Server Response 这种一来一回的模式,并且一次请求都要重开一个连接.而 HTTP/2 的第一大特性就是真正意义上的复用一个链接,这减轻了服务端的性能压力;然后 HTTP/2 PUSH 这可以由服务端主动同时推送多个资源,大大加快了一个有大量资源页面的打开速度. 网上有好多关于HTTP/2的介绍,前不久 Nginx 终于宣布在 1.13.9 起加入 HTTP/2 PUSH 的支持,HTTP 服务端的主动推送, 如果是手动编译 Nginx 程序的话,需要添加参数–with-http_v2_modul,这样才可以启用ngx_http_v2_module模块.而我这使用的 Nginx 官方的 Docker Image: nginx:alpine,重新 docker pull nginx:alpine更新最新的即可. 这次加入了 … “Nginx的HTTP2 PUSH与开启WordPress支持”

Read More