We made it possible. Next, we'll make it beautiful.
Suffering-oriented programming
- 柔軟性向上
- 予想以上に複雑な使い方をしているケースが多かったので、設定ファイルも複雑化して対応する
| #!/bin/bash | |
| brew install dnsmasq | |
| cp $(brew list dnsmasq | grep /dnsmasq.conf.example$) /usr/local/etc/dnsmasq.conf | |
| sudo cp $(brew list dnsmasq | grep /homebrew.mxcl.dnsmasq.plist$) /Library/LaunchDaemons/ | |
| sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist | |
| echo "address=/<domain>/<ip-address>" >> /usr/local/etc/dnsmasq.conf | |
| sudo launchctl stop homebrew.mxcl.dnsmasq | |
| sudo launchctl start homebrew.mxcl.dnsmasq | |
| sudo mkdir -p /etc/resolver | |
| sudo tee /etc/resolver/<domain> >/dev/null <<EOF |
| database: | |
| pre: | |
| - sudo apt-add-repository -y 'deb http://ppa.launchpad.net/ondrej/mysql-experimental/ubuntu precise main' | |
| - sudo apt-get update; sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server-5.6 | |
| - echo -e "[mysqld]\ninnodb_strict_mode = ON\ninnodb_file_format = Barracuda\ninnodb_large_prefix = 1" | sudo sh -c "cat >> /etc/mysql/my.cnf" | |
| - sudo cat /etc/mysql/my.cnf | |
| - sudo service mysql restart | |
| - mysql -u ubuntu -e "SHOW GLOBAL VARIABLES LIKE 'innodb_%'" | |
| - mysql -u ubuntu -e "SHOW DATABASES" | |
| - mysql -u ubuntu -e "ALTER DATABASE circle_test CHARSET utf8mb4" |
| # although StackOverflow has this answer http://stackoverflow.com/a/1128583 | |
| # but that code is unreadable, thus I have this (also based on a SO anower: http://stackoverflow.com/a/1128721 ) | |
| # get the name of the branch we are on | |
| _git_repo_name() { | |
| gittopdir=$(git rev-parse --git-dir 2> /dev/null) | |
| if [[ "foo$gittopdir" == "foo.git" ]]; then | |
| echo `basename $(pwd)` | |
| elif [[ "foo$gittopdir" != "foo" ]]; then | |
| echo `dirname $gittopdir | xargs basename` |
We made it possible. Next, we'll make it beautiful.
Suffering-oriented programming
| #include <sys/xattr.h> | |
| /// Set a flag that the files shouldn't be backuped to iCloud. | |
| + (void)addSkipBackupAttributeToFile:(NSString *)filePath { | |
| u_int8_t b = 1; | |
| setxattr([filePath fileSystemRepresentation], "com.apple.MobileBackup", &b, 1, 0, 0); | |
| } | |
| /// Returns the legacy storage path, used when the com.apple.MobileBackup file attribute is not available. | |
| + (NSString *)legacyStoragePath { |
| # First install tmux | |
| brew install tmux | |
| # For mouse support (for switching panes and windows) | |
| # Only needed if you are using Terminal.app (iTerm has mouse support) | |
| Install http://www.culater.net/software/SIMBL/SIMBL.php | |
| Then install https://bitheap.org/mouseterm/ | |
| # More on mouse support http://floriancrouzat.net/2010/07/run-tmux-with-mouse-support-in-mac-os-x-terminal-app/ |