Build extern version of hugo
Feb 15, 2019
Official hugo do’nt support scss Build extern version of hugo from source git clone https://github.com/gohugoio/hugo.git hugo cd hugo go install --tags extended Copy hugo to system path sudo cp ~/go/bin/hugo /usr/bin Check hugo version infomation hugo version Hugo Static Site Generator v0.55.0-DEV/extended darwin/amd64 BuildDate: unknown
nginx with boringssl
Jan 27, 2019
build with boringssl enable TLS 1.3 enable 0-RTT Install & Run mount log dir to /opt/nginx/log config dir to /opt/nginx/etc web root to /opt/www docker pull cntrump/ubuntu_nginx_boringssl docker run -v /opt/nginx/etc:/etc/nginx -v /opt/nginx/log:/var/log/nginx -v /opt/www:/var/www -v /opt/nginx/cache:/var/cache/nginx -p 80:80 -p 443:443 -d cntrump/ubuntu_nginx_boringssl /usr/sbin/nginx -g "daemon off;" Using docker-compose docker-compose.yml version: '3' services: nginx: image: 'cntrump/ubuntu_nginx_boringssl' volumes: - /opt/nginx/etc:/etc/nginx - /opt/nginx/log:/var/log/nginx - /opt/nginx/cache:/var/cache/nginx - /opt/www:/var/www ports: - '80:80' - '443:443' command: /usr/sbin/nginx -g "daemon off;" deploy: restart_policy: condition: on-failure delay: 5s max_attempts: 3 window: 120s docker-compose start/stop/restart nginx Example nginx.…
Build nginx with boringssl on Ubuntu 18.04
Jan 24, 2019
Enable TLS 1.3 support Using official confiuration Using shell script #!/bin/sh set -e apt-get install build-essential curl git cmake ninja-build golang libpcre3-dev zlib1g-dev # build boringssl git clone --depth=1 https://github.com/google/boringssl.git cd boringssl mkdir build cd build cmake -GNinja .. ninja cd ../.. mkdir -p boringssl/.openssl/lib cp boringssl/build/crypto/libcrypto.a boringssl/build/ssl/libssl.a boringssl/.openssl/lib cd boringssl/.openssl ln -s ../include . cd ../.. # build nginx nginx_ver=1.15.8 curl -O https://nginx.org/download/nginx-${nginx_ver}.tar.gz tar zxvf nginx-${nginx_ver}.tar.gz cd nginx-${nginx_ver} .…
Install newest nginx on ubuntu 18.04
Jan 17, 2019
Install nginx_signing.key cd /etc/apt curl -O https://nginx.org/keys/nginx_signing.key apt-key add nginx_signing.key Update apt source vim /etc/apt/sources.list deb http://nginx.org/packages/ubuntu/ bionic nginx deb-src http://nginx.org/packages/ubuntu/ bionic nginx apt-get update apt-get install nginx
Setup flutter for iOS without homebrew on macOS
Jan 15, 2019
requirements: macports Install cocoapods sudo gem install cocoapods Deploy to iOS devices sudo port install usbmuxd libimobiledevice ideviceinstaller ios-deploy pod setup Get the Flutter SDK current stale version: 1.0.0 flutter_macos_v1.0.0-stable.zip unzip flutter_macos_v1.0.0-stable.zip Add the flutter tool to your path: export PATH=$PATH:`pwd`/flutter/bin
Install Chisel for Xcode without brew
Jan 14, 2019
Clone Chisel git clone https://github.com/facebook/chisel.git chisel Build and install chisel.framework cd chisel/Chisel sudo make install Setup chisel commands vim ~/.lldbinit # ~/.lldbinit command script import /your/repo/chisel/fblldb.py script fblldb.loadCommandsInDirectory('/your/repo/chisel/commands')
Get free SSL/TLS Certificates from Let's Encrypt
Jan 13, 2019
My platform: macOS + macports Install certbot sudo port install certbot Write a shell script make_cert.sh #!/bin/sh set -e sudo certbot --duplicate certonly -d "*.$1" -d "$1" --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory Usage make_cert.sh domain.com Configure nginx Copy all certs to /etc/nginx/cert On Ubuntu vim /etc/nginx/sites-available/default Enable ssl configuration ssl on; ssl_certificate /etc/nginx/cert/fullchain.pem; ssl_certificate_key /etc/nginx/cert/privkey.pem;
Change toolchain for Xcode
Dec 20, 2018
Change toolchain for Xcode something about Xcode toolchian: Default toolchain location is /Applications/Xcode.app/Contents/Developer/Toolchains Extension of xcode toolchain bundle is .xctoolchain Display name and identifier of toolchain is defined in .xctoolchain/ToolchainInfo.plist CFBundleIdentifier : toolchain bundle identifier DisplayName : name displayed in Xcode menu All binaries, headers, libs etc in .xctoolchain/usr From menu Xcode - Toolchains to switch toolchians If you want install toolchain out of Xcode, the location is /Library/Developer/Toolchains If your toolchain is installed in /Library/Developer/Toolchains, must add CompatibilityVersion key to ToolchainInfo.…
Calc NSAttributedString size correctly with NSLayoutManager
Dec 16, 2018
Some code like this: NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"lvv" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:30]}]; NSTextStorage *textStorage = [[NSTextStorage alloc] initWithAttributedString:attrString]; NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init]; [textStorage addLayoutManager:layoutManager]; NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:CGSizeMake(INFINITY, INFINITY)]; [layoutManager addTextContainer:textContainer]; CGRect usedRect = [layoutManager usedRectForTextContainer:textContainer]; NSLog(@"usedRect:%@", NSStringFromCGRect(usedRect)); result is CGRectZero: usedRect:{{0, 0}, {0, 0}} Why? Because glyph generation, layout and font fallback not have happened yet. Just adjust code simply: NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"lvv" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:30]}]; NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init]; NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:CGSizeMake(INFINITY, INFINITY)]; [layoutManager addTextContainer:textContainer]; // add layout at the last NSTextStorage *textStorage = [[NSTextStorage alloc] init]; [textStorage addLayoutManager:layoutManager]; // set string after add layout [textStorage setAttributedString:attrString]; CGRect usedRect = [layoutManager usedRectForTextContainer:textContainer]; NSLog(@"usedRect:%@", NSStringFromCGRect(usedRect)); the result is correct:…
Debug WebKit with Xcode on iOS simulator
Dec 15, 2018
Debug WebKit with Xcode on iOS simulator Build WebKit git clone git://git.webkit.org/WebKit.git WebKit cd WebKit sudo Tools/Scripts/configure-xcode-for-ios-development Tools/Scripts/build-webkit --debug --ios-simulator It will take 1 hour. Configure WebKit.xcworkspace open WebKit.xcworkspace with Xcode File - Workspace Settings Advanced … Custom - Relative to Workspace Products: WebKitBuild Intermediates: WebKitBuild Done Configure MobileMiniBrowser open MobileMiniBrowser project in WebKit.xcworkspace change TARGETS (both MobileMiniBrowser and MobileMiniBrowser.framework) Build Settings - Base SDK: iOS change Architectures: Standard architectures (optional) Edit Info.…