技术

墙内部署Kubernetes

这破东西装起来有多蛋疼,试一遍就知道 最近折腾了下Kubernetes的.......安装与卸载,简单记录下过程 用官方的脚本安装k8s应该顺滑无比 (见 kubernetes.io),然而他与google cloud高度整合,安装包基本都在google的域名下,简单来说不是改几行就能搞定的。 安装脚本 Gist 使用方法: 安装Master: ./manage.sh master 安装Node: ./manage.sh node {MASTER_IP} 停止并卸载Kubernetes: ./manage.sh down 环境介绍 2 x

日常

[MC企划]上班/上课/放假无聊,不如来一起废人

我是开头 总之启示这个企划来源于熊贵,我只是被抓来做整合包的。这次是租用的某宝的托管服务(傻屌手里的vps都是渣配),还是以科技为主体,基于版本1.7.10,服务端使用KCauldron。 下面上几张图: 加载的mod如下: 行星系列mod: 本体 更多行星 额外行星 工业2: (这个就不提了,和行星系列mod配合使用) 动力装甲mod 更多背包 更好的附魔台 插件如下: 登陆 领地 经济 全系投影 和一些基础管理 此外惯例,限制了爆炸岩浆流动火的蔓延什么的 后面是链接 客户端: 百度网盘(

技术

Ansible API 2.x 小结

好久没更了。Ansible也算在微博搬砖接触比较多的东西,通过调用其api可以自定义批量配置下发通道,Ansible官方也有Ansible-Tower(然而没开源且付费)。国内少有人尝试api2.0,这里就稍微写一写。 调用Ansible的手段 通过命令 直接起新进程命令调用Ansible,也有不错的项目是这么做的: Semaphore,看了看代码,原理上其实是每次从一个git仓库克隆playbook到本地,然后把hosts写成tmp文件,直接起新进程调命令执行,即时日志输出通过绑定标准输出来取得。 这种方案语言无关,而且不大容易受api变动影响,个人也很推荐。(然而要写好多临时文件) 通过API 通过api调用和命令调用的区别其实只是Playbook和Inventory的来源是否从文件读取。就算是调用api,每次依然都要走完整的初始化流程,且默认的日志要打在标准输出上。 Ansible从1.x迁移到了2.x重构了大量代码,这也导致Api 1.x和2.

旧坑 – 也谈AOP

最近看到周围小伙伴面阿里被问到,想起去年的某黑历史项目。。。嘛,虽然讲AOP的文章满大街都是,我再加一篇好了。 哈? AOP? 假如用过Python,里面会有一个概念->装饰器,不过那个是装饰器模式,不要和代理模式混了(那你说个卵~)。装饰器模式原则上不会对原函数带来影响,而代理模式像是站在代理函数和调用者之前,具有完全的控制权。不过有一点是类似的,即面向切面的思想,比如说你要在某方法调用前打印日志,调用其他方法,甚至替换掉要执行的函数,都可以使用代理模式。 实现的分类 静态代理: 没什么好说的,把代码写死罢了。或者说,在编译期决定了代理关系。 动态代理: 在程序运行时,运用反射机制动态创建而成,也是这次主要讨论内容。

NIO , BIO , AIO?

起因 嘛,又到了校招的季节。群里孩子们每天都在开心的讨论面试题(说的就和我不是一样),感觉NIO,AIO算是热点问题了,这里整理一发。以及,wp写不了markdown好痛苦啊,是不是该考虑换个博客了….. 前言 I/O 这个词怎么也会很熟悉,UNIX中把所有I/O操作都模型化为文件,就理解成文件的 读写即可 UNIX中的体现 其实NIO , BIO , AIO这种称呼貌似都是Java带起来的 最开始,read / write在一个通道中执行,程序运行到此处阻塞,等待I/O操作完成才能继续,当然可以用多线程/进程解决,然而不够优雅。 于是I/

“性能优化?”饿了么大学生黑客马拉松小结

本次大赛代码Java版本: https://github.com/WhiteBlue/eleme-hackathon 回想起自己的黑历史时代,其实关于”性能优化有很多误解,很多都是我们自以为的”性能提升了”: “去掉了几个循环”,又或者是”我把XX框架换成了XX框架,比之前快多了”。(感觉说起来好羞耻233)。 题目 好歹也是小结,还是提一提参加的这次比赛。简单来说就是:”对方提供服务器,实现一个符合要求的api,要求并发量尽量高” 可以参考这里的 文档 简要分析 提供的是三台server部署应用+单台redis+单台Mysql,初始数据在Mysql。这样看来,首先要保证三台的一致性,其次就是用好redis了。

“BiliBiliAPI-从入门到精通”

好吧这只是个标题而已不要在意= = 这周由于考试不敢有什么大动作,于是划了划水,完成了之前的一个想法:大型B站黑科技->’BiliBiliHtml5′ 项目链接:http://bili.whiteblue.xyz 项目采用Laravel官方精(yan)简(jian)版->Lumen,好奇心重作死用了这个新框架,各种文档不全各种蛋疼,之后补一个简单入门攻略(挖坑) 其实,其实今天是想说说B站API的使用的,Bili官方API文档:http://docs.bilibili.cn/wiki/分类:API

[整理]文本相似度统计算法

昨天拿到的一个任务->设计一个文章查重算法。于是用了一下午尝试去了解了下,最后算是解决了吧。然而仍有许多实现未去了解,这里先留个坑。(真的会填么?)现在这里整理下昨天尝试过的。 相似度统计算法,大概还是算是使用频率很高的。比如十分常见的IR领域(信息检索系统),或者说论文查重。 ”分不分开” 思路分为两种: 把一篇文章分割/取出变成若干字符串,然后对结果集合进行相似度匹配,即向量统计法 求两篇文章的最大公共子序列(LCS算法) 我是这样看的: LCS算法需要根据length(str1)*length(str2)生成矩阵,并进行动态规划计算,空间复杂度和时间复杂度并不理想,得出的最有用结果是两个字符串的最大公共序列(完全相同的最大区域),一小部分对于总体并不是太有价值,

厨们的战争->何为“弱类型”,到底什么是“编译语言”?

和饭老湿日常撕逼时提到了”何为强类型”这一问题,发现在这一认识上一直存在误区,以至于延伸到了编程语言的分类上。很多人对这方面的解释也存在误区,于是打算尽力去解释一下。 Type System 维基上的解释并没有强类型弱类型之分,只是给出了两种区分:动态类型和静态类型,显示转换和隐式转换,然而从定义上看我认为大概只分以下两种。 Explicit type conversion(显示类型转换) 一旦变量被指定某个数据类型,如果不经强制转换,即永远是此数据类型。 Implicit type conversion(隐式类型转换) 据类型可以被忽略的语言。它与显示相反, 一个变量可以赋不同数据类型的值。 Mozilla是这样解释的:”That means you don’