本站由Gor生成

马来西亚,闲游 2013-06-14

严重声明

很多图,慎入!!

超级啰嗦,慎入!!

你还是想看?好吧… 不同情你

旅游是最好的投资

4天的马来西亚之行,是首次真正的出国之行,而且还真的是自由行了

出发: 2013-06-10 10:20 亚航 AK1013 白云机场

返航: 2013-06-13 16:05 亚航 AK1016 马来西亚LCCT机场

X11的xcb库卡死 2013-05-23

一个多月没写blog,郁闷了…

X11的xcb库(1.7版)在不知道神马情况下会卡死

操作系统: opensuse 11.4 x86 语言: Qt 4.8.4,vdpau + Nv卡

症状: 在多线程下,调用vdpau_create_decoder会卡住

堆栈:

#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb43dc03e in __poll (fds=0xa5d15798, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb1cc63f0 in _xcb_conn_wait (c=0x80f0b58, cond=0xa5d157f0, vector=0x0, count=0x0) at xcb_conn.c:313
#3  0xb1cc7d4f in xcb_wait_for_reply (c=0x80f0b58, request=13576, e=0xa5d1587c) at xcb_in.c:379
#4  0xb4213f92 in _XReply (dpy=0x80ffdb0, rep=0xa5d158bc, extra=0, discard=1) at xcb_io.c:533
#5  0xb0698032 in ?? () from /usr/lib/vdpau/libvdpau_nvidia.so.1
#6  0xb061715b in ?? () from /usr/lib/vdpau/libvdpau_nvidia.so.1
#7  0xb06174b7 in ?? () from /usr/lib/vdpau/libvdpau_nvidia.so.1
#8  0xb064dddb in ?? () from /usr/lib/vdpau/libvdpau_nvidia.so.1
#9  0xb067dbef in ?? () from /usr/lib/vdpau/libvdpau_nvidia.so.1
#10 0xb063b645 in ?? () from /usr/lib/vdpau/libvdpau_nvidia.so.1
#11 0xb061a423 in ?? () from /usr/lib/vdpau/libvdpau_nvidia.so.1
#12 0x0806d123 in mx::create_decoder (vdp=0x81f37f0, w=1920, h=1080, decoder=0x8235810) at ../../src/disp/xde_res_vdpau.cpp:79

在windows下编译nginx 2013-04-12

又有人在windows下编译nginx – 为什么那么多人喜欢自残呢?

官网教程

Building nginx on the Win32 platform with Visual C

本文基本上就是对着做,但需要对其进行微调 – 不爽吗?咬我啊!!

准备工具

系统: winxp sp3 32位, 例如你可以用个虚拟机什么的安装一个winxp

MSYS-CN 2010-08-19 更新版本

zlib 1.2.7

pcre 8.32

Golang下通过syscall调用win32的api 2013-04-06

源于golang群中再次提到windows下获取磁盘空间的方法

由于golang的api并非完全跨平台, golang本身并没有直接提供windows下的方式

syscall.Syscall系列方法

当前共5个方法

syscall.Syscall
syscall.Syscall6
syscall.Syscall9
syscall.Syscall12
syscall.Syscall15

分别对应 3个/6个/9个/12个/15个参数或以下的调用

Python还是很适合快速开发的 2013-03-25

上周为了重写公司的其中一个关键进程,断然选用Python快速开发了一版

首先,是启动器

虽然python脚本可以直接启动,但为了兼容其他进程,需要封装成一个原命名的进程

#include <Python.h>
#include <sched.h>

int main(int argc, char *argv[]) {
    //设置进程优先级,因为有其他更重要的进程
    nice(10);
    // 设置cpu亲和性,因为是4线程的机器,所以仅亲和后2个cpu
    cpu_set_t  mask;
    CPU_ZERO(&mask);
    CPU_SET(2, &mask);//第3个
    CPU_SET(3, &mask);//第4个,其实就是第二个core
    sched_setaffinity(0, sizeof(mask), &mask);

    Py_SetProgramName(argv[0]);
    Py_Initialize(); //标准的啦,初始化Python环境
    PySys_SetArgv(argc, argv);
    FILE * fp = fopen("/home/xxx/yyy/zzz.py", "r"); //打开入口py脚本的句柄,准备打开
    // 这里并没有去判断是否真的存放,因为必须存放,不然也什么都做不了
    //PyRun_SimpleFile(fp, "zzz.py");
    PyRun_AnyFile(fp, "zzz.py"); //启动之,哈哈
    Py_Finalize(); // 严格来说从不调用,哈哈,因为是守护进程,退出的话,都是直接退
    return 0;//符合标准C嘛,哈哈
}

Golang的坑之http读取大文件必须读完 2013-03-16

先上代码

package main

import (
    "fmt"
    "net/http"
)

func main() {
    resp, err := http.Get("http://mirrors.ustc.edu.cn/opensuse/distribution/12.3/iso/openSUSE-12.3-GNOME-Live-i686.iso")
    if err != nil {
        panic(err)
    }
    fmt.Println("Resp code", resp.StatusCode)
    resp.Body.Close() // 注意,这里并不读取resp.Body, 而resp.Body有大概700mb未读取
}

天语T619也能Root 2013-02-16

昨天,小黄蜂终于到手 – 广东移动周销售1.4w台的299元廉价机

玩了一天,还是忍不住要root掉的. 实在无法忍受那些百度的app!!!

但,官方固件在哪里呢?

官网,木有 常见论坛,木有

最后,在592zn找到了 天语T619官方固件+592zn带ROOT固件

接下来,当然是root固件啦: 用yaffey 修改好,刷机,搞定!!

接下来,就是各种删除,哈哈

Gor 2.1 发布了 2013-02-15

重要改进

脱离了libyaml引入的cgo限制, 使用纯golang实现, 实现真正的跨平台

下载地址 已编译好的linux/windows/macx下的二进制程序

当然, 也可以通过go install来安装

go get -u github.com/wendal/gor
go install github.com/wendal/gor/gor

ChangeLog

  1. Update: goyaml2 v2.0 纯golang实现的yaml解析器,兼容部分yaml语法(常用的部分)
  2. Update: mustache v2.0 纯golang实现的mustache模板引擎
  3. Add: 同时支持yaml与json格式的配置文件及meta数据
  4. Add: 对自定义partials的支持
  5. Add: 对自定义widget的支持 6: Add: 更换markdown引擎,支持github形式的markdown格式
  6. Fix: 引用不存在的layout会NPE
  7. Fix: Post元数据与widget可能冲突

获取goroutine的id 2013-02-05

获取goroutine的id? 官方不支持的!!

人家官方说了:

"This, among other reasons, to prevent programmers 
for simulating thread local storage using the goroutine id as a key. "

就为了避免咱们当成ThreadLocal的key!! 这是为了神马?为神马?!!

方法还是有的嘛,改动一下源码

神马?!改源码这么大件事?! 对的,但只是添加,不修改不覆盖,不影响其他功能

文件一, $GOPATH/src/pkg/runtime/runtime.c, 在最后面添加一个方法

void
runtime·GetGoId(int32 ret)
{
        ret = g->goid;
        USED(&ret);
}

在Linux下安装Cuda5 2013-01-30

所有操作均为root用户.

安装环境

系统环境: Ubuntu 11.10 Desktop 32位 硬件环境: Nvidia GT540M 注意!! 虚拟机是不行的!!

下载cuda

wget http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/cuda_5.0.35_linux_32_ubuntu11.10-1.run
#当然,我更喜欢用QQ旋风之类的先下载好
#无需额外下载显卡驱动, cuda 5.0已经包含了最适合的显卡驱动

安装必要的库

Fork me on GitHub