jk2K's 窝

休息,是为了更好的前行

哈喽, 我是叶萌(@jk2K), 一名来自中国的 PHP / iOS 开发者


  1. 用 git 和 git hooks 解决多地开发时 MySQL 同步问题

    需求我经常在家和公司的不同电脑上开发一个Web项目, 代码托管可以用GitLab或者GitHub, 这解决了代码的多地同步问题, 但是MySQL一直没发现一个好的方式来同步。目前MySQL多地同步的方案主要有以下几种 使用可远程连接的MySQL, 多地开发时直接连接这个数据库, 这个方案如果网速不好的话,就不合适 A 地使用mysqldump导出sql文件,发送给 B 地,B 地再恢复到MySQL中,这个方案手动操作的话很麻烦,费时 使用git和git hooks在提交和合并代码时自动相应 …

    于  git 继续阅读

  2. 让 iTerm2 支持拖拽上传文件和右键下载文件

    条件准备 iTerm2 version 3 nightly builds 动手需要在你自己的机器和想通过ssh远程连接的机器上都安装shell integration 自动安装curl -L https://iterm2.com/misc/install_shell_integration.sh | bash 手动安装 下载这个脚本 curl -L https://iterm2.com/misc/`basename $SHELL`_startup.in >> \~/.iterm2_ …

    于  mac 继续阅读

  3. 实现 DownloadManager 下载完 apk 自动提示安装的功能

    运行环境 Android 5.1.1, API 22 解决方案 下载新版本的 apk public void downloadNewVersion() { mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); // apkDownloadUrl 是 apk 的下载地址 DownloadManager.Request request = new DownloadManager …

    于  android 继续阅读

  4. Fragment 最佳实践

    初始化 Fragment对于不需要接收参数的Fragment,只需要实现public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 方法即可 传参给 FragmentFragment需要提供一个静态的创建方法, 通常叫做newInstancepublic class DemoFragment extends Fragment { public …

    于  android 继续阅读

  5. 当发布新版本时自动递增 versionCode

    需求versionCode是android应用内部用来识别版本,判断新旧用的, 希望每次发布新版本时能够自动化的自增,避免人工修改可能带来的问题 更好的做法import java.util.regex.Patterntask('increaseVersionCode') << { def buildFile = file("build.gradle") def pattern = Pattern.compile("versionCode\\s+(\\d+)") …

    于  android 继续阅读

  6. 让 fresco 支持双指缩放与拖动

    需求fresco 的 SimpleDraweeView 不支持缩放与拖动,想尽可能简单的实现这个功能 代码 说明在 PinchToZoomScaleDetector.java 的基础上实现了拖动操作, 不是很难, 在这个过程中最大的收获就是了解了ScaleGestureDetector和GestureDetector该如何使用, 好的, 尽情使用吧 参考链接 Implementing pinch zoom and drag using Android's build in gestur …

    于  android 继续阅读

  7. 为 apache 运行用户创建 ssh key

    解决方案方案1, 自动sudo -u apache ssh-keygen -t rsa 方案2, 手动你必须复制root用户生成的key到apache用户的.ssh文件夹下, 软链接是不行的, 必须复制, 复制, 复制, 重要的事情说三遍 假设apache的homedir是/var/www(检查/etc/passwd), root用户生成的私钥(key)是id_rsa-git mkdir -p /var/www/.ssh/cp /root/.ssh/id_rsa-git /var/www/.ss …

    于  ubuntu 继续阅读

  8. 自定义 ubuntu ssh 欢迎信息

    步骤 打开/etc/update-motd.d, 这个目录下面的文件会在登录成功后按照序号的顺序先后运行 cd /etc/update-motd.d 我们找到00-header这个文件, 修改它, 在文件末尾添加如下代码 cat << "EOT" /\_/\=( °w° )= ) ( // (__ __)//EOT 重新登录服务器就会看到如下效果啦 小提示重新登录服务器后也许不会看到效果, 你再登录一次就肯定会看到啦, 就酱 参考资料 http://stackov …

    于  ubuntu 继续阅读

  9. chrome 刷新 dns 缓存小技巧

    Windows按住 ctrl + f5 一段时间 Mac按住 Command + Shift + R 一段时间 吐槽“域名切换ip后chrome无法立即生效”这个问题苦恼了好久, 之前花了很多时间都没有找到解决办法, 有的朋友还专门写了个脚本去刷新chrome sockets, 脚本用过一段时间觉得还是挺麻烦, 不是最优解 参考资料 http://stackoverflow.com/questions/15289766/how-to-enable-instant-host-file-readin …

    于  chrome 继续阅读

  10. 如何并发访问apache

    需求需要同时访问某个链接, web服务器是apache 条件准备apache需加载mod_status模块 打开apache配置文件httpd.conf, 搜索mod_status, 找到如下代码, 取消前面的#注释符 #LoadModule status_module modules/mod_status.so 配置查看apache服务状态的页面地址, 在httpd.conf最后一行添加如下代码 <location /server-status> sethandler serv …

    于  apache 继续阅读