音ノ木坂学院

叶え!みんなの夢――

0%

GDB

今天遇到一个C的问题,想使用GDB调试一下。在run的时候发现GDB报了一条错误:

During startup program terminated with signal SIG113, Real-time event 113.

系统版本macOS Sierra 10.12.3,GDB是用homebrew安装的,版本7.12.1。经过了解,可以向~/.gdbinit中写入一行set startup-with-shell off解决。那么一行代码搞定就是:

1
echo "set startup-with-shell off" >> ~/.gdbinit

之后重新运行GDB,run的时候依旧报错,只是这次错误代码换了一个:

Unable to find Mach task port for process-id xxxx: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))

这个就说的比较清楚了,需要对gdb进行codesign。虽然可以用sudo gdb暴力解决这个问题,但是更加优雅方法是这样的:

  1. 打开macOS自带的“钥匙串访问 / Keychain Access”,左上角菜单选择“证书助理 -> 创建证书”。
  2. 在弹出的对话框里随便选择一个名称,比如“gdb-cert”;身份类型选择“自签名根证书 / Self Signed Root”;整数类型选择“代码签名 / Code Signing”;勾选“让我覆盖这些默认值 / Let me override defaults”。
  3. 一路继续,可以选择一个长一些的有效期,最后一个“指定用于该证书的位置 / Specify a Location For The Certificate”选择“系统 / System”。
  4. 创建完成后,双击列表中新建的证书,将“代码签名 / Code Signing”改为“始终信任 / Trust”
  5. 在终端中进行
    1
    2
    sudo killall taskgated
    codesign -fs gdb-cert /usr/local/bin/gdb
    最后再次运行GDB,第一次run的时候可能会要求输入管理员账号和密码,之后gdb就可以正常使用了。

lldb

macOS似乎推荐用户使用lldb调试,对于lldb的code-signing方式,可以直接查看opensource.apple.com的官方文档,过程和gdb比较相似,这里不再赘述。

唯一的问题在于,第一次运行可能会提示错误:

ImportError: No module named six

只需要做:

1
pip install six

那么问题来了,谁能告诉我lldb好处都有啥w

What is Ruby ルビィ(误)


其实是这个:

Ruby is…

A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.

最近接触了jekyll,所以需要在macOS上搭建一个Ruby的环境。折腾后发现坑其实不少,最后使用了rbenv + ruby-build的方法。

阅读全文 »

放假从室友那里搞了块RaspberryPi2 B+,首先装个系统。
RaspberryPi不自带Flash,系统和存储全部依赖外接的SD卡,所以需要先在SD卡里灌注系统。官网首推了NOOBS和Raspbian。

NOOBS极其适合新手,直接把解压zip包,或者直接把zip丢到SD卡里后插入树莓派启动,就会引导用户完成剩下所有的操作,包括选择和安装操作系统。支持的操作系统除了Raspbian外,还有Arch Linux、Pidora等,因此通过NOOBS安装Raspbian非常简单。

直接安装Raspbian需要手动的地方则稍稍多一些。

阅读全文 »

waifu2xGithub地址)是十一区作者开发的一款使用CNN对动漫风格图片进行分辨率放大的神奇产物。除了在上述网址在线使用外,还可以使用Mac编译waifu2x-converter-glsl版本本地运行。

首先使用homebrew安装glfw3和opencv3

1
2
brew install homebrew/versions/glfw3
brew install homebrew/science/opencv3

然后clone并使用xcode自带的编译工具编译

1
2
3
git clone https://github.com/ueshita/waifu2x-converter-glsl.git
cd waifu2x-converter-glsl/build/
xcodebuild -project waifu2x-converter-glsl.xcodeproj -target waifu2x-converter-glsl -configuration Release build "HEADER_SEARCH_PATHS = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/local/include ../include /usr/local/Cellar/opencv3/3.0.0/include" "LIBRARY_SEARCH_PATHS = /usr/local/lib /usr/local/Cellar/opencv3/3.0.0/lib"

编译完成后目录可能有点迷,把生成的可执行文件复制到项目根目录下,否则运行时会找不到models

1
2
cd waifu2x-converter-glsl/build/build/Release
cp waifu2x-converter-glsl ../../..

这时候回到根目录就可以运行了

1
./waifu2x-converter-glsl -i image.jpg --noise_level 1 --scale_ratio 2
阅读全文 »

之前ss梯子用的都是默认的aes-256-cfb加密,升级chacha20主要是因为其在ARM上表现更好,所以考虑了更换。

使用chacha20需要先安装libsodium库,一开始使用某个issue里给出的添加ppa并添加sources.list的方法,但是做update的时候发现给出的地址404了。于是删除了/etc/apt/sources.list中被添加进去的行,并使用add-apt-repository -r <package name>删除了添加的ppa源。改用官方文档里给出的编译安装方式。
先在tarball of libsodium下载需要的安装包,因为使用gcc所以这里下载了libsodium-1.0.10.tar.gz

1
2
3
4
5
6
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.10.tar.gz
tar zxvf libsodium-1.0.10.tar.gz
cd libsodium-1.0.10
./configure
make && make check
make install

安装完成后修改ss配置文件,把aes-256-cfb改为chacha20,然后重启。这一步执行的时候可能会提示仍缺少libsodium库,原因是在手动make install安装完动态库后需要执行一次

1
ldconfig

来更新动态库列表。

最后把客户端里加密方式也进行修改即可使用。