-
calm down Under anxiety
anxiety diary我本身有一点心率不齐(高考体测得)有些很多未补完的事情,一旦即将deadline, 都会本能地有难以遏制地anxiety。而从前不以为意的items也会一起burst出来, 如果是在家的闲余时间,我会将其转为身体运动来暂时性放逐精神,以免思绪乱飞,譬如弹n个小时的钢琴,或是大学时期的大学城内环4km跑步。身体的运动有抚慰精神的效果。如果是在worktime, 则会开始写文档或是日志, 其实也是一部分的身体movements来comfort自己的精神。这两种办法其实...…
-
ucs2 <=> utf8
之前日志里的的 xss,csrf 有利用ucs-2进行安全攻击的说明。有时候需要对其进行utf-8的转换。 Ps: gbk编码转unicode需要查表一般会有流程gbk => unicode(ucs-2) => utf-8pass gbk流程ucs-2转utf-8 可以如下实现:function toUtf8(code) { var iByte = 0; var i = 0; result = ""; while (code > 0x7f) { ...…
-
ruby DSL
Creating a Ruby DSL归纳笔记借用 Creating a Ruby DSL 这篇文章中的例子,假设我们想写一段 HTML 代码:<html> <body> <div id="container"> <ul class="pretty"> <li class="active">Item 1</li> <li>Item 2</li> ...…
-
ruby 元编程 method_missing send
method_missing,顾名思义,在方法找不到时被调用。有了这个强大元编程工具,我们就能创建动态的方法,比如ActiveRecord中的动态finderclass Legislator # Pretend this is a real implementation def find(conditions = {}) end # Define on self, since it's a class method def self.method_missing(metho...…
-
Go 里的 make 和 new 两个函数,how to use?
注:该文作者是 Dave Cheney,原文地址 Go has both make and new functions, what gives ?这篇博客主要是讨论 Go 的内建函数 make 和 new。如 Rob Pike 在今年的 Gophercon 上提到的,Go 有多种方式初始化变量。其中之一的能力就是获取一个 struct literal 的地址,这导致了几种方式做同样的事情。s := &SomeStruct{}v := SomeStruct{}s := &...…
-
发布brew个人包
Mac上的包管理工具,一般都推荐使用homebrew。homebrew开源在github上,其中formula文件夹为brew收录的所有包,目前大概是4000个。但是个人制作的小软件不会被官方仓库的formula收录,homebrew官方留出了tap命令使得我们可以将homebrew-core部署到自己的仓库,这样就可以用brew安装我们指定路径下的可执行文件,并将其安装到/usr/lcoal/bin目录下…
-
commonjs异步模块
如何包装基础性的异步模块,有几种方案:1.包装到对象属性上var Wrapper = function(){ this.foo = "bar"; this.init();};Wrapper.prototype.init = function(){ var wrapper = this; async.function(function(response) { wrapper.foo = "foobar"; });}module.exports = new Wrapper(...…
-
某段ruby元编程
可以用irb(Ruby的REPL程序)实际运行:class A [:scope, :show_snippets, :search_results, :search_objects].each do |name| define_method name do search instance_variable_get "@#{name}" end end def search return if @searched @scope, @show_s...…
-
Ruby 使用 Fiddle 调用 C 函数
写一个c函数// split.cdouble split(double num){ double ret = 0; ret = num / 2; return ret;}编译成动态库gcc -o libsplit.so -shared split.c在 split.rb 里调用 libsplit.so 里的 split 函数require 'fiddle'# Open the filelibsplit = Fiddle.dlopen('./libsplit.so')# Load th...…
-
caddy ace
看了10天的golang, 写了一些东西,参考tj的n写了gvm环境版本控制,不过是用shell写的。今天在migrate模版引擎的时候, 之前是用martini+ ace 写的站点。偶然看到了一个封装很规范的go服务器caddy, 所以想要migrate,顺手试了一下给caddy写扩展,项目caddy-acecaddy为扩展提供了RegisterPlugin方法,一般在插件包的init函数中调用,使用方法如下:caddy.RegisterPlugin("basicauth", caddy...…