移动端文件上传

最近有个移动端文件上传的需求,不用面向中低端手机用户,所以还是可以用 HTML5 搞一搞,主要利用 XMLHttpRequest 2;后端我用的 Nodejs。主要在 iOS 6/7 和 Android 4.2+ 测试。

input[type="file"] 可以选择手机里的文件,还可以调用拍照功能(某些浏览器不行),Form 表单如下:

<form id="upload-form" action="/upload" enctype="multipart/form-data" method="post">
  <input id="selece-files" type="file" name="fileToUpload" />
  <input id="do-upload" type="submit" value="上传" />
</form>

这里做单文件上传,多文件上传可以给 input[type="file"] 加个 multiple 属性便可。当触发 submit 事件提交:

Continue reading

HTML5 Audio 在 iOS Safari 上的问题

最近接触一个移动短项目,做摇一摇的功能,然后摇的时候要有声音,摇中奖的时候也有声音,问题来了,iOS 5 不能用代码去触发播放声音,其实 Android 4.0+ 也有一样的问题,因为目前只折腾了 iOS,所以这里就以 iOS Safari 的情况为例,其他应该是类似的,大家可以自己验证。以下的 Safari 都是指 iOS 下的。

iOS Safari 中的 HTML5 媒体元素都是单例的,所以一次只能播放一个 HTML5 音频(和 HTML5 视频)流(估计是为了减少数据费用)。音频文件只能从用户触发的触摸(单击)事件加载,如果在 HTML 标记中使用了 autoplay 属性,那么 Safari 将会忽略这个属性,并且不会在加载页面时播放此文件,对于 preload 属性,Safari 同样会忽略。唯一能解决的就是用户进入页面是,让用户触发 touch 事件:

var shakeAudio = $('#shakeAudio')[0],
    winAudio = $('#winAudio')[0]

$(document).on('touchstart', function() {
    shakeAudio.load()
})

Continue reading

WordPress 付费主题 Touch5

Touch5 Screenshot

¥ 109

Touch5 是一个简洁的双栏主题。代码相对精简,没有太多的后台功能,支持 WordPress 2.8+(WordPress 2.8 以下未测试)。
主要特点是自适应设计,自适应分辨率显示;可自定义背景颜色或者背景图片。至于浏览器兼容性,IE6 是不支持的,当然会有提示,IE7 和 IE8 支持度相对高点,考虑到 IE6/7/8 在逐渐消亡的情况,以后升级也不会对它们有所支持(购买的同学需注意这点)。还有,不支持嵌套评论。

预览图:Large / Medium / Small

购买:点击购买

PS. 还弄了一个单独评论样式 Comment Plus7,不支持嵌套,同样是付费。购买 Touch5 同时购买 Comment Plus7 的话减 10 元。

Continue reading

OS X 下给 Raspberry Pi 安装 XBian

搞了个 Raspberry Pi 来折腾,目的就是用用 XBMC 和当个下载机。最简单的安装就是直接下载 NOOBS,解压丢进格式化过的 SD 卡,然后插入 Rasberry Pi 接上电源启动,当然显示器、键盘鼠标啥的也要接上,然后就进入安装了。

最开始我也是用 NOOBS 装的 Raspbian,不过 Raspbian 编译 XBMC 太麻烦,对比了 OpenELEC,RaspBMC 和 XBian,还是决定安装 XBian。我没用 OS X 的 installer 安装,据说下载太慢,下面说说用终端安装的方法:

  1. 下载 XBian image 文件,插入 SD 卡到电脑;
  2. 打开终端,输入 df -h,查看 SD 卡盘符号,比如我的是 /dev/disk2s1,那 2 就是它的盘符号。很重要,下面都需要用到,下面用 ? 代表 SD 卡盘符号;
  3. 输入下面命令(假设 image 文件放在 Desktop):

    sudo diskutil unmount /dev/disk?s1   
    sudo dd bs=1M if=~/Desktop/xbian.img of=/dev/rdisk?
    
  4. 开始安装到 SD 卡了,按 ctrl + t 可以看到安装过程。安装完后你会看到 xxxx bytes transferred in xxx secs 字样;
  5. 输入 sudo diskutil eject /dev/rdisk? 安全拔出 SD 卡;
  6. 把 SD 卡插入 Raspberry Pi,启动就可进入安装了。安装完后直接就是 XBMC 界面了。

Ubuntu VPS 一些安全设置

在 RamNode 搞了个 VPS 来折腾。当然免不了要做些安全方面的设置:

Part 1.

  1. 添加新用户:adduser yourUsername
  2. 把新用户加入 sudo 规则内:visudo,然后添加 yourUsername ALL=(ALL) ALL
  3. 修改 sshd_config 文件,vi /etc/ssh/sshd_config
    • 禁止 root 帐号登录:把 PermitRootLogin yes 改成 PermitRootLogin no
    • 修改 ssh 端口:把 Port 22 中 22 改成你自己想要的端口
  4. 重启 ssh 服务:/etc/init.d/ssh restart

退出 vps 就登录到 yourUsername,而且不能用 root 登录了。

Continue reading