月度归档:2016年09月

关闭/开启 ubuntu 自动更新提示

发现vps登陆后只有apt update后才知道有多少包需要更新不是很傻么,本地的ubuntu在登录时就有很好的提示,并且还能告知系统负载情况,很有用,这里就想开起来。首先这个提示的名字叫Motd

在ssh的配置文件/etc/ssh/sshd_config中修改PrintMotd为yes或者no来开启或者关闭。

blueImp/jQuery file upload 的正确用法(限制上传大小和文件类型)

这个插件太出名了,几乎能完成所有能想象的到的效果,包括进度条、拖拽、甚至现在已经完美支持图片视频等的处理,三个字形容就是屌爆了。最近在做上传这一部分,发现网上对于上传文件大小的限制和类型检测等的方法都不妥当,包括老外写的。blueimp提供了完整的解决方案,验证当然是有的,所以对于一个普通的上传组件来说需要下面三个组件:

<script src="//cdn.bootcss.com/blueimp-file-upload/9.12.5/js/jquery.fileupload.js"></script>
 <script src="//cdn.bootcss.com/blueimp-file-upload/9.12.5/js/jquery.fileupload-process.js"></script>
 <script src="//cdn.bootcss.com/blueimp-file-upload/9.12.5/js/jquery.fileupload-validate.js"></script>

大部分文章都没有包含process和validate这两个组件,前者负责处理上传过程中各个事件的管理,validate则是对验证的支持,如果不包含这两个组件,那么只能像下面这样来做一些验证:

add: function (e, data) {
        var uploadErrors = [];

        var acceptFileTypes = /\/(pdf|xml)$/i;
        if(data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
            uploadErrors.push('Tipo de Archivo no Aceptado');
        }

        console.log(data.originalFiles[0]['size']) ;
        if (data.originalFiles[0]['size'] > 5000000) {
            uploadErrors.push('Tamaño de Archivo demasiado Grande');
        }
        if(uploadErrors.length > 0) {
            alert(uploadErrors.join("\n"));
        } else {
            data.context = $('<p/>').text('Subiendo...').appendTo(document.body);
            data.submit();
        }

    }

那么用官方的方式可以如下

<pre>acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
maxFileSize: 99 * 1024 * 1024,
minFileSize: 5,
maxNumberOfFiles: 50,
messages: {
    maxFileSize: 'File exceeds maximum allowed size of 99MB',
    acceptFileTypes: 'File type not allowed'
},processfail: function (e, data) {
    var currentFile = data.files[data.index];
    if (data.files.error && currentFile.error) {
        // there was an error, do something about it
        console.log(currentFile.error);
    }
}</pre>

明显简洁很多。

用U盘制作MacOS安装盘

首先先吐槽一下mac 的os,什么都好,就是崩溃起来让人无所适从。好在跟win一样提供了急救和安全模式,还有给力的在线安装,之前有两次修不好用在线安装都搞定了,这次怎么都搞不定在线安装,一会是美国服务器莫名其妙断掉,用fan qiang解决掉,然后账户说地区有问题,好吧我承认一开始是美国账户,然后搞定账户地区问题后,最后加载系统安装信息又报错,最后无解,win下制作的u盘启动盘也不行,无解下只好去天才吧。十分钟就还原了,这里不得不提在有time machine备份下这么做堪称完美,但是如果没有备份,那就只能一边画圈圈去了,虽说是天才吧人家解决不了的问题也肯定是重装来一刀切的。如果TM的备份,但是实在nas上的,那么也不要指望靠恢复来修复,因为压根发现不了网络中的nas,所以最最最保险的重装办法就是在系统没崩溃时做一个u盘系统,然后小心翼翼的束之高阁,以备不时之需。另外这个u盘最好是自己电脑做,好像新旧mac之间还可能会识别不了。

回归正题,网上安装方式一大堆,不外乎叫你下载他们的dmg,这里要慎重说一下,mac的系统不安全,一点也不,而苹果官方从来不给提供dmg,所以这些所谓教程里的dmg都是人家打包好的,就跟盗版的win的iso一样,谁知道这个镜像里安插了多少后门。(赠送一句名言:如果杀毒软件有用的话,就没有黑客了)这里强烈推荐,哦,不,是一定一定要用苹果官方的方法来做u盘,方法巨简单,就是下面一句命令就搞定了,如果不知道哪里输入的话请先了解一下控制台(也叫终端,英文terminal or console)。再开始前现在app store里搜索sierra,点击安装,等下载好后会有一个安装提示出现,这时忽略它直接开始下面命令。(这个包大概占用5G,u盘确定安装好后有两个方法,找到包把它删掉,或者点击继续安装,重启后会自动删除安装包)

  1. 输入(注意后面“MyVolume”这个单词,需要替换为u盘的名字,插上后再finder里能看得到):
    sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ macOS\ Sierra.app
  2. 会要求输入密码,敲入密码是没有***这种符号出来的,感觉输入错误backspace就可以了,回车继续。
  3. 会问巴拉巴拉是yes还是no,当然yes了,不过只需要敲入“y”这一个字母即可回车继续。
  4. 显示“done”说明完工。
  5. 开机按住“option”查看u盘是不是成功了。

RGBA在Python中的合并处理

RGB三色模型一般都懂,合并时无非就是覆盖,最近搞一个头像时涉及到透明背景,透明确实更适合合并多层图来达到想要的效果。而支持透明的rgba模型就是增加了透明的alpha属性。在合并时PIL中的image对象有一个split函数可以分离rgba三个通道,将alpha作为mask参数传入past函数就可以正确合并透明的图像了。

更好的windows控制台Conemu

下载地址:https://www.fosshub.com/ConEmu.html

不用说Mac下的iTerm非常好用,更好的着色,更好的输入交互,还很养眼。最近windows下控制台越来越多了,一个带tab标签的控制台越来越需要了,找了下发现已经有很强的Conemu已经出现了,立马下载测试,其他不提,默认的字体就是大大的舒服。试了一下发现bash中无法使用上下键切换命令历史,这可不行,一搜,大把的人同样的问题,好像是新的bash for  window的输出问题,启动指令修改为(bug地址):

%windir%\system32\bash.exe -cur_console:p1