Emacs — jabber
就是把 gtalk 放到 emacs 里,AUR 里神马都有。。
yaourt -S emacs-jabber
然后简单地配置一下
(require 'jabber) (setq jabber-account-list '(("bee@lazybee.me" (:network-server . "talk.google.com") (:port . 443) (:connection-type . ssl))))
这个语法高亮插件竟然没 Lisp 的语法高亮。。用的 Scala 的,将就着看。。
常用的命令
连接服务器 [Meta x] jabber-connect-all 快捷键 [Ctrl x][Ctrl j][Ctrl c]
打开聊天 [Meta x] jabber-chat-with 快捷键 [Ctrl x][Ctrl j][Ctrl j]
添加好友 [Meta x] jabber-send-subscription-request
Emacs — 快捷键
Emacs 里略高级点的快捷键备忘,持续更新
粘贴前一次复制的东西
[Meta 2][Ctrl y]
删除到( Vim -> df )
[Meta z]
光标回到上次编辑的行( Vim -> ”)
[Ctrl u][Ctrl SPC]
跳到对应的括号( Vim -> %)
[Ctrl Meta f] [Ctrl Meta b]
Erlang Web 框架 cowboy BUG 一枚
为熟悉 Erlang ,手头有个 Web 项目就用 Erlang 在写,用的 cowboy<https://github.com/extend/cowboy> 框架
在处理 Cookie 的时候发现一个问题:同时写多个 Cookie ,后一个会把前一个覆盖,只会留下一个
{ok, Req2} = cowboy_http_req:set_resp_cookie(<<"uid">>, Uid, [{path, "/"}], Req), {ok, Req3} = cowboy_http_req:set_resp_cookie(<<"session_id">>, SessionID, [{path, "/"}], Req2),
执行这个之后,在浏览器里查看 Cookie,只有 session_id 而没有 uid
用 Erlang 的 gb_trees 实现了一个 memcached
最近蛋疼在用 Erlang 写 web 程序,这货是存 session 用的
定时器部分是拍脑袋拍的,不知道正规的实现应该是什么样子,想到这样,就这么写了..
ActionScript3.0 语法快速参考
//类的写法 package x{ final public class B{//final表明该类无法被继承 final function hi(){//该函数无法被重载 } } dynamic public class C{//动态类允许动态添加修改属性和方法 } public class A extend B{ //变量声明及默认值 private var a:Boolean = false; var b:int = 0; var c:Number = NaN;//整数,无符号整数,浮点数 var d:Object = undefined;//动态类 d.left = "青龙"; var e:String = null; var f:uint = 0;//常用于颜色 //重载函数,无返回值 override public function say(): void{ //调用父类的函数 super.say() //在console中输出信息 trace(a); } //存取器方法,实例可以通过 x.abc 来访问 private 变量 public function set/get abc(){} } } //索引数组的创建: var myArray:Array = new Array(); var myArray:Array = new Array(5);//五个元素的数组 var myArray:Array = new Array("我","笨"); var myArray:Array = []; var myArray:Array = [12, true, "hi"]; //只有一个length属性 for(var i:uint = 0; i < myArray.length; i++) { trace(myArray[i]); } //另两种遍历 for(var key:String in myArray) { myArray[key]; } for each(var element:* in myArray) { trace(element); } //关联数组 var a:Object = { key1: v1, key2: v2, key3: v3 }; var a:Object = new Object(); a.key1 = v1; a["key2"] = v2; //使用Dictionary类,可以用对象作为键
Three.js canvas 问题
问题发现于 three.js examples 中的 canvas_interactive_particles . 问题截图如下:
右边的尾巴是紫色的圆形移动时留下的,会在该部分重绘的时候被抹掉,应该属于 bug .
绘图函数如下:
context.arc( 0, 0, 1 , 0, PI2, true );
如果将第三个参数1改成更大的数值,拖尾现象将更加明显.推测是包围盒的计算问题.
解决方法是采用小于1的数值:
context.arc( 0, 0, 0.5, 0, PI2, true );
如果想绘制更大的粒子,采用如下方式放大:
particle.scale.x = particle.scale.y = 100;
Hadoop 操作备忘
DateNode 测试(添加、删除、灾难)
测试前:
master.hadoop: 248
secondaryname.hadoop: 106
slave104.hadoop: 104
slave110.hadoop: 110
slave250.hadoop: 250 (准备加入,不在集群内)
格式化DateNode:
hadoop namenode -format
平衡DateNode:
hadoop balancer Read more »
ArchLinux — zsh
用 zsh 的人大多都在用 oh-my-zsh 吧,AUR 里也找得到~不过这个东西也有很多让人不爽的地方,最典型的就是 [Meta .] 补全上一条命令的最后一个参数,让这家伙改成了回到上一层目录。
扫了一下目录发现 oh-my-zsh/lib/key-bindings.zsh 这个文件里有一行 bindkey -s ‘\e.’ “..\n”,直接注释后问题解决。
但这个解决方案太不优雅了,废话不多说
echo "bindkey '\e.' insert-last-word " >> ~/.zshrc
start webGL!
为了参加 HTML5 contest 开始学习 webGL 啦! 教程来自 HiWebGl 网站~
关于浏览器对 webgl 的支持问题,详情请戳这里 → http://www.scriptlover.com/static/1483-%E6%B5%8F%E8%A7%88%E5%99%A8-WebGL
学习时发现从第五章开始, chrome 的显示出现问题,原因是从第五章的demo开始使用纹理,在 win7 下的解决方案是右键单击 chrome 的快捷方式,在目标框的路径后加入参数 -allow-file-access-from-files, 用设置好的快捷方式打开chrome,网络的 demo 就可以正常显示了.但是在本地的 demo 直接打开仍然显示不正常,解决方法是将 html 文件拖动到设置好的 chrome 快捷方式上,用设置好的参数打开,就可以正常显示了.
另外火狐浏览器本来在我电脑上可以正常显示所有的 demo, 但是重装系统以后不知道为什么所有 demo 都打不开了,出现”can’t initialize webgl”的提示,解决方法是在地址栏输入 about:config ,然后将 webgl.force-enabled 设置为true, 将 webgl.disabled 设置为 false (默认).查了下,是因为 firefox 升级把参数改掉了, force-enabled 的作用好像是” ignore the blacklist “(意思是我的显卡被列入黑名单了吗=___=!).
而且 firefox 的3D方式查看网页的功能也不见了.调出来的方法戳这里,也是要改参数(我的显卡是被赤果果的鄙视了啊摔) → http://blog.alphatr.com/firefox-11-3d-webpage.html, 根据参数设置推断这个功能应该也是 webgl 实现的 .
——————————————————傲娇的分割线———————————————————
下面是学习心得.据说 webGL 继承自 openGL2.0.由于之前学过 DX 而没学过 openGL ,所以学习的时候会与 DX 对应.同样经历的可以参考下….
webGL 使用硬件加速渲染,于是要写 shader, 使用 GLSL ,和 dx 的 HLSL 差不多 .
shader 分为 顶点着色器 vertex shader 和 片元着色器 fragment shader (这个跟dx的pixel shader 差不多,我还是喜欢 pixel 这个叫法).下面贴下一段示例:
<script id="shader-vs" type="x-shader/x-vertex"> attribute vec3 aVertexPosition; attribute vec2 aTextureCoord; uniform mat4 uMVMatrix; uniform mat4 uPMatrix; varying vec2 vTextureCoord; void main(void) { gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0); vTextureCoord = aTextureCoord; } </script>
<script id="shader-fs" type="x-shader/x-fragment"> precision mediump float; varying vec2 vTextureCoord; uniform sampler2D uSampler; void main(void) { gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t)); } </script>
shader 里的 attribute 值就相当于HLSL里的 Input 值, uniform 相当于 const 常量,这些值都来自于javascript, varying 相当于 output , varying 值从顶点着色器输出到片元着色器,然后片元着色器进行处理后 gl_FragColor 输出的就是每个像素的颜色值了.
通过html5的 canvas 标签可以很方便的将 webGL 的显示结果像一张图片一样的嵌入网页:
<canvas id="lesson05-canvas" style="border: none;" width="500" height="500"></canvas>
————————————————-???————————————————————————
写的东西被批评了T___T,不写了….
windows当前目录问题
做泡泡堂编辑器的时候,第一次载入地图时没有错误,但是第二次载入的时候就会出现文件加载错误,最后发现原因是打开其他文件时windows的当前工作目录改变了,然后再使用相对路径载入文件时就会出现错误.
解决方法:
调用 SetCurrentDirectory() 函数设置当前路径或者使用绝对路径.绝对路径的设置见上篇日志.