昨天,想要在家庭服务器上黑苹果,先是破解ESXi,添加了MaxOS描述文件。
现在需要准备MacOS安装ISO,忽然发现家里的30Mb光纤下载7GB的文件还是需要很久滴。
忽然想起,上次更新 MacBook Pro 好像没有删除安装文件,那么,直接在本地转换安装文件为ISO映像吧,只要区区几分钟就搞定。

# 挂载DMG安装映像
hdiutil attach /Applications/Install\ macOS\ Sierra.app/Contents/SharedSupport/InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/install_app

# 创建并挂载空白映像
hdiutil create -o /tmp/MacOSInstall.cdr -size 7316m -layout SPUD -fs HFS+J
hdiutil attach /tmp/MacOSInstall.cdr.dmg -noverify -nobrowse -mountpoint /Volumes/install_build

# 将BaseSystem.dmg恢复到空白映像
asr restore -source /Volumes/install_app/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase

# 删除链接并复制安装文件到空白映像
rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages
cp -rp /Volumes/install_app/Packages /Volumes/OS\ X\ Base\ System/System/Installation/
cp -rp /Volumes/install_app/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System/BaseSystem.chunklist
cp -rp /Volumes/install_app/BaseSystem.dmg /Volumes/OS\ X\ Base\ System/BaseSystem.dmg

# 卸载映像并转换ISO文件
hdiutil detach /Volumes/install_app
hdiutil detach /Volumes/OS\ X\ Base\ System/
hdiutil convert /tmp/MacOSInstall.cdr.dmg -format UDTO -o ~/Desktop/MacOSInstall.iso
mv /Desktop/MacOSInstall.iso.cdr ~/Desktop/MacOSInstall.iso
rm /tmp/MacOSInstall.cdr.dmg

参考资料:

製作 macOS High Sierra 10.13 的可開機安裝隨身碟及 ISO 映像檔

今天接到一个任务,部署一套iOS-App开发环境,需要用到CocoaPods。

这还不是手到擒来?首先从AppStore安装Xcode,然后运行命令安装CocoaPods即可。

可是意外来的太快,按照官方的命令根本无法安装,各种报错,其中郁闷不足为外人道~~

整理最终命令如下:

# 设置中国源
gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.org/
# 更新gem系统
sudo gem update --system
# 指定安装环境
sudo gem install -n /usr/local/bin cocoapods

html5应用,可以直接使用file功能调用相机拍照并上传,但是在iOS上有个奇葩的问题,图片不会自动翻转,上传到服务器上的图片可能是倒立的。

解决此问题有2种思路:

1.使用客户端JS检测图片信息,旋转后再上传。此方法实现需消耗客户端资源。

懒得整理js代码了,暂时按下不表。

2.使用服务端PHP检测图片信息,旋转后保存。此方法需要消耗少量的服务器资源。

function correct_image_orientation($target) {
    if(!function_exists('exif_read_data')) {
        return false;
    }
    $exif = exif_read_data($target);
    if($exif && isset($exif['Orientation']) && $exif['Orientation'] != 1) {
        switch ($exif['Orientation']) {
            case 3: $deg = 180; break;
            case 6: $deg = 270; break;
            case 8: $deg = 90; break;
            default: $deg = 0;
        }
        if($deg > 0) {
            $img = imagecreatefromjpeg($target);
            $img = imagerotate($img, $deg, 0);
            imagejpeg($img, $target, 95);
        }
    }
}

在编译Nginx时,记得增加http_image_filter模块,然后在server区域加入如下代码即可。
如果你懒得编译这个模块,也可以下载我编译好的Webox直接安装。

#生成缩略图(等比例)
#http://www.anrip.com/expamle/test.jpg?r128x128
if ($args ~ ^r\d+x\d+$) {
    rewrite ^(.+)$ $1/$args? last;
}
location ~* \.(gif|png|jpg|jpeg)/r(\d+)x(\d+)$ {
    rewrite ^(.+)/r(\d+)x(\d+)$ $1 break;
    image_filter resize  $2 $3;
    image_filter_buffer  10M;
}
#生成裁切图片(固定高宽)
#http://www.anrip.com/expamle/test.jpg?c128x128
if ($args ~ ^c\d+x\d+$) {
    rewrite ^(.+)$ $1/$args? last;
}
location ~* \.(gif|png|jpg|jpeg)/c(\d+)x(\d+)$ {
    rewrite ^(.+)/c(\d+)x(\d+)$ $1 break;
    image_filter crop  $2 $3;
    image_filter_buffer  10M;
}

Ubuntu发行版中NodeJs版本低的吓人,几乎没法正常使用。当然我们也有很多种方法可以安装NodeJS,但多多少少都有些麻烦,对于我这种懒人来讲,最好能几行命令完事儿。

nver=v6.11.2

# download the binary
wget https://nodejs.org/dist/${nver}/node-${nver}-linux-x64.tar.xz
tar xvf node-${nver}-linux-x64.tar.xz

# install to /usr/local
rm node-${nver}-linux-x64/{*.md,LICENSE}
cp -av node-${nver}-linux-x64/* /usr/local
rm -rf node-${nver}-linux-*