jk2K's 窝

休息,是为了更好的前行

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


  1. 如何安装托管在私有 GitLab 实例上的 composer 包?

    composer 包安装方式有哪几种?一般来说开源的 PHP 包都会放在 packagist.org, Composer 直接安装就行 私有包有以下几种安装方式 在 packagist.com 购买付费服务, 不用自己维护, 省心 搭建 Satis 实例, 相当于搭建了私有的 packagist.org, 需要自己维护服务器 购买了 GitHub 企业版, 将包托管在企业版上 搭建 GitLab 社区版 实例, 将包托管在这上面 可以根据各自情况选择合适的方案, 笔者在这篇文章中只讲解如何安 …

    于  PHP 继续阅读

  2. 如何使用 Markdown 写 PPT?

    为啥要用 Markdown 去写 PPT? 相比 PowerPoint 更轻量, 更灵活 能够高亮代码 专注文字内容, 节省排版和制作动画的时间 用什么工具去生成 PPT?有以下几个工具可供选择 reveal.jsHakim El Hattab 创造了 reveal.js, 他随后创建了 Slides, 这是一个使用 reveal.js 创建幻灯片的网站 cleaver为 hacker 准备的, 只需写 markdown, 然后用工具生成 html 网页 md2googleslidesgoog …

    于  markdown 继续阅读

  3. Android NDK 介绍与使用示例

    简单介绍NDK 是干啥的?全称 Native Development Kit, 允许你在 Android 应用中使用 C 或 C++ 代码 NDK 的好处 NDK 可以生成 .so 文件, 方便代码共享 增加反编译的难度 提高性能 使用示例版本说明 Android Studio: 2.2 Android Plugin for Gradle: com.android.tools.build:gradle:2.2.0 Gradle: 2.14.1 准备工作在 Android Studio 里下 …

    于  android 继续阅读

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

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

    于  git 继续阅读

  5. 让 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 继续阅读

  6. 实现 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 继续阅读

  7. Fragment 最佳实践

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

    于  android 继续阅读

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

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

    于  android 继续阅读

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

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

    于  android 继续阅读

  10. 为 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 继续阅读