解决 Mac 从睡眠恢复后没有声音的问题

办法1:终端输入sudo killall coreaudiod命令并输入密码即可!

方法2:

打开活动监视器(在应用程序→实用工具里可以找到)
在右上角的搜索框里输入audio,此时可以搜索到coreaudiod进程
选中coreaudiod进程,点击退出进程按钮,在弹出的对话框中点击退出

方法3:

重置 Mac 上的 NVRAM 或 PRAM
关机,拔掉电源线等待15s
按住键盘Command+Option+P+R 键的同时,记住是同时按开机键。等听到两次启动声之后松开这些按键。

删除Mac上的应用程序

  1. launchpad上,长按图标,或者按住键盘上三键:control+option+command,如果是通过App Store安装的应用,就可以点❌删除了
  2. 直接进入/Applications/目录去删除应用,这个可以删除内置应用,谨慎操作
  3. 如果是Chrome等的App,需要进入类似如下目录进行删除咯:/Users/gavin/Applications/Chrome Apps.localized
  4. 另外,Launchpad的图标内容存储在类似如下目录结构的数据库中:/private/var/folders/sj/xtcg7hhs40j51rl4xfty_4gr0000gn/0/com.apple.dock.launchpad/db/db,可以通过类似这个命令进行删除图标:sqlite3 db “delete from apps where title=’应用名称’;”&&killall Dock

参考资料:

  1. https://apple.stackexchange.com/questions/174084/how-to-remove-chrome-app-icons-from-launchpad
  2. https://blog.csdn.net/qq_36004521/article/details/80740491
  3. https://jingyan.baidu.com/article/fa4125ac0d5a2c28ac7092e6.html

Mac /var/folders/sj/目录权限问题

Mac上/var/folders/sj/目录权限问题。
由于Mac的System Integrity Protection(SIP),需要重启进入recover 模式(重启之后按住command+r),在工具中找到terminal执行csrutil disable命令,回车,然后重启,SIP保护就被关闭了。
如果要重新打开SIP保护,操作是一样的,命令中的disable换成enable就可以了。
之后就可以:
sudo rm -rf /var/folders/sj/xtcg7hhs40j51rl4xfty_4gr0000gn
chmod -R 777 /var/folders/sj/xtcg7hhs40j51rl4xfty_4gr0000gn/T


参考:
https://apple.stackexchange.com/questions/266821/how-can-i-fix-permissions-for-files-in-the-var-folders-zz
https://blog.csdn.net/tmpbook/article/details/50292475
https://blog.csdn.net/i_lovenet/article/details/80462829


Error Array to string conversion for Yii::$app->user->id

解决方法如下:

  1. ALTER TABLE user ADD PRIMARY KEY(id);
  2. i remove manually from the browser the cookie and it work.

参考:

https://stackoverflow.com/questions/44499961/error-array-to-string-conversion-for-yiiapp-user-id

https://github.com/yiisoft/yii2/issues/1029

https://stackoverflow.com/questions/27681505/login-on-production-server-doesnt-work

解决mac下的Sourcetree每次拉取提交都需要输入密码

Mac使用SourceTree项目的GIT密码始终保存不到Mac的钥匙串中,明明在钥匙串中是存在的.但是在使用sourceTree pull/push代码的时候还是需要再输入密码,很是繁琐.

于是,网上搜索了一下,说的在https模式下,Mac需要使用osxkeychain凭据助手,并在Git中设置使用. 并且如果已经安装了brew的应该会自带了osxkeychain.但是奇怪的是,我安装了brew的,使用brew安装应用也没有问题.那就只能手动的再设置一次了.

使用方法

  1. 先使用命令下载 git-credential-osxkeychain
    curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
  2. git-credential-osxkeychain 放入 bin目录
    mv git-credential-osxkeychain /usr/local/bin
  3. git-credential-osxkeychain赋权限
    chmod u+x /usr/local/bin/git-credential-osxkeychain
  4. 在Git全局配置中进行设置(也可以在某一个项目里面设置):
    git config --global credential.helper osxkeychain

经过上面的设置,下次访问https的项目时只需要输入一次密码,就会存储到osx的钥匙串中了,以后再也不会在Git中询问了.

HTML5 Canvas转化成图片后上传服务器

用上面这种方式在前端通过js处理,server端不需要进行任何额外处理。

我认为是最方便最直接的办法,反而很多高赞回复,需要server进行各种处理,不推荐。

Had to convert canvas Base64-encoded image to Uint8Array Blob.

 

参考:https://stackoverflow.com/questions/13198131/how-to-save-an-html5-canvas-as-an-image-on-a-server

WordPress定期出现“建立数据库连接时出错”问题的解决方案

配置比较低的虚拟主机,不管是搭在CentOS还是Ubuntu上,Wordpress都会定期出现“建立数据库连接时错误”,那是因为PHP-FPM子进程过多,吃光了内存,MySQL的进程就被干掉了。

通过 netstat -tunlp 发现是MySQL的进程被干掉了,如果service mysqld restart 还重启不了,简单粗暴点就直接reboot。

解决方案
编辑 php-fpm.conf 文件,控制PHP-FPM的子进程数。
1、找到php安装目录etc目录下的 php-fpm.conf 文件:
vim /etc/php-fpm.d/www.conf
2、找到 pm 、pm.start_servers 、pm.min_spare_servers 、pm.max_spare_servers 这几项参数,修改参数的值。
pm = dynamic #php-fpm以动态模式运行,动态模式适合内存较小的服务器
pm.start_servers = 3 #动态模式下,php-fpm的起始进程数
pm.min_spare_servers = 3 #动态模式下,php-fpm的最小进程数
pm.max_spare_servers = 10 #动态模式下,php-fpm的最大进程数
3、重启php-fpm
service php-fpm restart

参考:

https://www.centos.bz/2017/12/wordpress%E5%AE%9A%E6%9C%9F%E5%87%BA%E7%8E%B0%E5%BB%BA%E7%AB%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E6%97%B6%E5%87%BA%E9%94%99%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E5%86%B3/
https://www.simcf.cc/4671.html


Mac上git和sourcetree使用终端代理访问被不可描述的主机

自己的部署的Git服务器被不可描述了。由于没有VPN,只有代理服务器V2Ray和SSR,因此需要通过命令行代理来Push代码。

通过命令行启动Sourcetree:/Applications/Sourcetree.app/Contents/MacOS/Sourcetree就可以通过代理访问网络啦!

方法1:
在终端中直接运行命令
export http_proxy=http://proxyAddress:port
这个办法的好处是简单直接,并且影响面很小(只对当前终端有效,退出就不行了)。
如果你用的是ss代理,在当前终端运行以下命令,那么wget curl 这类网络命令都会经过ss代理
export ALL_PROXY=socks5://127.0.0.1:1080

方法2:
把代理服务器地址写入shell配置文件.bashrc或者.zshrc 或者.bash_profile
直接在.bashrc或者.zshrc或者.bash_profile添加下面内容
export http_proxy=”http://localhost:port”
export https_proxy=”http://localhost:port”
以使用shadowsocks代理为例,ss的代理端口为1080,那么应该设置为
export http_proxy=”socks5://127.0.0.1:1080″
export https_proxy=”socks5://127.0.0.1:1080″
或者直接设置
ALL_PROXYexport ALL_PROXY=socks5://127.0.0.1:1080
localhost就是一个域名,域名默认指向 127.0.0.1,两者是一样的。

然后ESC后:wq保存文件,接着在终端中执行source ~/.bashrc
或者退出当前终端再起一个终端。
这个办法的好处是把代理服务器永久保存了,下次就可以直接用了。或者通过设置alias简写来简化操作,每次要用的时候输入setproxy,不用了就unsetproxy。

alias setproxy=”export ALL_PROXY=socks5://127.0.0.1:1080″
alias unsetproxy=”unset ALL_PROXY”
alias ip=”curl -i http://ip.cn”

命令行测试如下:
MacBook:srv gavin$ setproxy
MacBook:srv gavin$ git push
Everything up-to-date
MacBook:srv gavin$ unsetproxy
MacBook:srv gavin$ git push
fatal: unable to access ‘http://xxx/srv.git/’: Failed to connect to xxx port xx: Operation timed out

方法3:
改相应工具的配置,比如apt的配置sudo vim /etc/apt/apt.conf
在文件末尾加入下面这行
Acquire::http::Proxy “http://proxyAddress:port”
保存apt.conf文件即可。

方法4:
利用proxychains在终端使用socks5代理

补充:如果代理服务器需要登陆,这时可以直接把用户名和密码写进去http_proxy=http://userName:[email protected]:port

参考: https://blog.fazero.me/2015/09/15/%E8%AE%A9%E7%BB%88%E7%AB%AF%E8%B5%B0%E4%BB%A3%E7%90%86%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E6%B3%95/

不同IC卡类型:M1、UID、CUID、FUID、UFUID

普通IC卡
0扇区不可以修改,其他扇区可反复擦写,我们使用的电梯卡、门禁卡等智能卡发卡商所使用的都是 M1 卡,可以理解为物业发的原卡。

UID 卡(GEN1)
普通复制卡,可以重复擦写所有扇区,主要应用在IC卡复制上,遇到带有防火墙的读卡器就会失效。所有区块可被重复读写,卡片ID可改且使用后门指令更改ID,ID可被重复修改,响应后门指令(意味着可被使用后门指令检测是否为克隆卡的机器发现)

普通复制卡,可以重复擦写所有扇区,主要应用在IC卡复制上,遇到带有防火墙的读卡器就会失效。

CUID 卡(GEN2)
可擦写防屏蔽卡,可以重复擦写所有扇区,UID卡复制无效的情况下使用,可以绕过防火墙。所有区块可被重复读写,卡片ID可改且使用普通写指令更改ID,ID可被重复修改,不响应后门指令(意味着不容易被反克隆系统发现)

FUID 卡
不可擦写防屏蔽卡,此卡的特点0扇区只能写入一次,写入一次变成 M1 卡,CUID 复制没用的情况下使用,可以绕过防火墙。FUID卡(国外称GEN2)0区块可写且仅可写入一次,使用普通写指令更改ID,更“反克隆”

UFUID 卡
高级复制卡,我们就理解为是 UID 和 FUID 的合成卡,需要封卡操作,不封卡就是 UID 卡,封卡后就变为 M1 卡。

小米手机通过Charles抓取https包设置

看图说话

1. Charles安装证书到钥匙库
2. 把需要代理的网址录入

3. 小米手机使用第三方浏览器访问chls.pro/ssl,下载证书,后缀名改为.CRT

Configure your device to use Charles as its HTTP proxy on 192.168.0.136:8888, then browse to chls.pro/ssl to download and install the certificate.

4. 小米手机:设置->WLAN->高级设置->安装证书 找到刚刚下载的Charles证书安装即可。