诶..重签名

codesign --force --deep --sign - /Applications/(请把你的应用图标直接拖放到终端窗口)

用途自寻

2020/10/10 posted in  技术杂谈

Gorm操作记录

2020/10/9 posted in  Go

Go 服务部署

Go程序可以进行交叉编译,使得可以在MacOS上进行开发并直接生成在Linux上可执行的文件。

编译linux上执行的程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
Read more   2020/10/9 posted in  Go

Golang Gin使用记录

2020/10/9 posted in  Go

k8s ? k3s

k3s[1]是rancher®开源的一个Kubernetes发行版,从名字上就可以看出k3s相对k8s做了很多裁剪和优化,二进制程序不足50MB,占用资源更少,只需要512MB内存即可运行。

Read more   2020/10/7 posted in  Docker

使用Go 操作Excel的实践

2020/9/29 posted in  Go

VSCode 修改设置支持Go单元测试支持日志输出

VSCode的配置分为两个高度:

User Settings - 全局配置, 适用于所有的打开的实例
Workspace Settings - 储存在工作区之下并仅适用于本工作区的配置
显然工作区配置优先级会高于用户配置, 在冲突是会重载用户配置

Read more   2020/9/29 posted in  Go

MacOS上使用launchctl对Service进程守护

plist example:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.jake.service.frpc</string>
     <key>ServiceDescription</key>
    <string>frpc service</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/jakehu/Service/frp_0.33.0_darwin_amd64/frpc</string>
      <string>-c /Users/jakehu/Service/frp_0.33.0_darwin_amd64/frpc.ini</string>
    </array>
    <!-- 标准输入文件 -->
    <key>StandardInPath</key>
    <string>/Users/jakehu/Service/frp_0.33.0_darwin_amd64/frpc/log/run-in-frpc.log</string>
    <!-- 标准输出文件 -->
    <key>StandardOutPath</key>
    <string>/Users/jakehu/Service/frp_0.33.0_darwin_amd64/frpc/log/run-out-frpc.log</string>
    <!-- 标准错误输出文件 -->
    <key>StandardErrorPath</key>
    <string>/Users/jakehu/Service/frp_0.33.0_darwin_amd64/frpc/log/run-err-frpc.log</string>
</dict>
</plist>

Read more   2020/9/27 posted in  Linux_UNIX

WWDC 20 `@StateObject` 和 `@ObservedObject` 区别

在WWDC 20 新增了 @StateObject , @StateObject 基本上来说就是一个针对 class 的 @State 升级版

他们的区别简单而言就是:

使用 @ObservedObject 修饰的属性会随着View更新重新创建,而 @StateObject 修饰的属性不会随着 View 更新被重新创建。

Read more   2020/9/27 posted in  SwiftUI

利用群辉搭建旁路由

2020/9/24 posted in  硬件折腾

【转】基于AVPlayer封装的播放器细节

一个播放器需要解决的技术点:

基本功能

  1. 支持本地视频、网络视频播放

  2. 支持横、竖屏切换

  3. 左侧1/2位置上下滑动调节屏幕亮度

  4. 右侧1/2位置上下滑动调节音量

  5. 左右滑动调节播放进度

  6. 拖动slider控制进度,显示视频的预览图

其他功能

  1. 支持在TableviewCell播放视频

  2. 断点下载功能

  3. 切换视频分辨率

Read more   2020/9/24 posted in  音视频

沙盒中的图片数据格式

写了图片data数据到沙盒,又想保留图片格式?

Read more   2020/9/21 posted in  iOS

斯坦福大学 SwiftUI 教程

2020/9/15 posted in  SwiftUI

Swift 的 Future 和 Promise

Future&Promise 来源于函数式语言,概念早在 1977 年就已经提出来了。其目的是分离一个值和产生值的方法,从而简化异步代码的处理。
Future 是一个只读的值的容器,它的值在未来某个时刻会被计算出来(产生这个值的行为是异步操作)。
Promise 是一个可写的容器,可以设置 Future 的值。

A Promise is something you make to someone else.(承诺是你对别人的承诺)
In the Future you may choose to honor (resolve) that promise, or reject it.(在未来,您可以选择兑现(解决)该承诺,或拒绝承诺。)

Read more   2020/9/13 posted in  SwiftUI

群辉NAS [时间返回舱] Mac Time Machine

2020/9/12 posted in  硬件折腾

【转】交叉网线和直连网线

双绞线的制作方式有两种国际标准,分别为EIA/TIA568A以及EIA/TIA568B。而双绞线的连接方法也主要有两种,分别为直通线缆以及交叉线缆。简单地说,直通线缆就是水晶头两端都同时采用T568A标准或者T568B的接法,而交叉线缆则是水晶头一端采用T586A的标准制作,而另一端则采用T568B标准制作,即A水晶头的1、2对应B水晶头的3、6,而A水晶头的3、6对应B水晶头的1、2。

Read more   2020/9/12 posted in  硬件折腾

【转】NSPredicate

2020/9/12 posted in  iOS

千兆级别网线

写这篇文章的原因是,我在使用AirDrop 传输Xcode(almost 12G)到另外一台电脑上,发现时间竟然要六七个小时。传输速率也就大概只有 2~3M每秒,这..不就是原始的USB2.0的传输速率了吗?!这让我无法接受。我能想到的比较经济又通用的方法是给我的笔记本增加一个千兆网卡拓展坞,然后使用网线连接到我的台式电脑上(查询过电脑网卡支持千兆网络),如此理论的峰值传输就有 1Gbps。

Read more   2020/9/8 posted in  硬件折腾

Wireshark 抓包 iPhone 数据包

连接手机

想抓iphone的数据,首先需要让iphone数据通过mac才行。看到网上很多设代理什么的方法,比较复杂,有的还要越狱。其实没必要。只要链上数据线,然后在mac的终端执行:

rvictl -s iphone设备id  

断开链接执行

rvictl -x iphone设备id  
Read more   2020/9/1 posted in  iOS

【转】Socket 缓冲区以及阻塞模式

socket缓冲区

每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。

write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。

Read more   2020/9/1 posted in  网络基础