'民工技术' Category

  • Vimpress内置markdown支持、多博客支持

    March 28, 2011

    此前介绍用来编辑Wordpress的vim插件vimpress 现在加入了markdown支持,可以直接在vim中以markdown语法编写,使用新增的vimpress命令即可发布成格式清新的博客了。 还加入多博客支持。只需把需要管理的博客资料写到vimrc文件内,可以随时用BlogSwitch命令切换需要发布的博客。 还有加入编辑Wordpress的Page,不仅是Post,见BlogPageXXXX等几个命令。 另外是改进了插件在windows等平台的支持,自动转换gbk等为utf-8编码来编辑博客。 这次版本改进得到了Lenin Lee的代码贡献和测试,在此表示感谢! Markdown 介绍 Markdown 是一个很轻量的文本标记语言,其语法直接可翻译成HTML,便于用户编写和阅读,可以很方便地生成多级标题、链接、缩进、加粗、列表等等格式,实际上和通用的WikiText、reStructed等标记语言的语法都有一定的相通之处。 推荐:Markdown 语法 Vimpress的Markdown 命令 在Vim中用markdown书写好文章后,可以先使用:MarkdownPreview命令在浏览器里面看看编译效果。虽然这样的页面没有CSS修饰,但是文章的结构应该是清晰的,可重复修改。 然后使用:MarkdownNewPost命令,如果原文件中前10行有包含#符号开头的一行(即markdown语法中的header),会被复制成title,并跳转到vimpress的NewPost界面,就可以用:BlogSave publish发布了。 这个流程相当简单直接。 Vimpress的多帐号支持 该版本的博客信息要写入vimrc文件当中。通常, Linux下,该文件位于~/.vimrc; Windows下,C:\Program Files\Vim\_vimrc。 在该文件加入这样一行:(vimrc中的前置\是换行号) let VIMPRESS=[{'username':'user', \'password':'pass', \'blog_url':'http://your-first-blog.com/' \}, \{'username':'user', \'password':'pass', \'blog_url':'http://your-second-blog.com/' \}] 启动vim后vimpress默认使用了第一组的配置信息,使用:BlogSwitch命令可以在它们之间轮环切换。 下载 http://www.vim.org/scripts/script.php?script_id=3510 改进记录 2011 Mar. 24 [by Lenin Lee] Fix: use setl instead of set to set option value; Add: [...]

  • nginx+uwsgi架设自用Mercurial hg仓库:hgwebdir

    March 11, 2011

    Mercurial/hg是分布式版本管理工具之一,如google code等公共代码服务都直接支持。不过公共服务通常都有如公开开源、空间大小等等的限制,如果特殊情况,需要自己在VPS上假设一套,也不太难。 如果单独一个hg仓库,直接运行hg serve就已经是在线仓库,用nginx做的http_proxy反向代理就够了,各种功能齐全。但是要host多个hg仓库,需要用hgwebdir。 Ubuntu当中安装的mercurial已经包含了架设仓库所用的程序,包括cgi/fcgi/wcgi的,主接口在/usr/share/doc/mercurial-common/examples下的hgwebdir.(ws|(f)c)gi。虽然其中的wsgi有效的只有三行。 Mercurial官方Wiki上主要介绍了用apache2来跑cgi方式的仓库,但是作为python的程序,wsgi才是最原生的嘛。用Nginx+uwsgi的方式,资源占用、响应效率等,都要比apache + cgi靠谱。 Nginx+uwsgi的方式很普遍,参见本博客之前的MoinMoin 与 Nginx, fastcgi 与 uwsgi 的配置一文。 但是因为uwsgi处于快速开发过程当中,ppa的打包也还不十分成熟,里面的路径跟以前有些不一样了。 add-apt-repository ppa:nginx/stable add-apt-repository ppa:uwsgi/release apt-get update apt-get install nginx uwsgi-python python-virtualenv mercurial   mkdir -p /var/www/hgwebdir virtualenv /var/www/hgwebdir/python-home   cat >/var/www/hgwebdir/hgwebdir_wsgi.py << EOF from mercurial import demandimport; demandimport.enable() from mercurial.hgweb.hgwebdir_mod import hgwebdir   class hgwebdir_with_fixed_staticfile(hgwebdir): def __call__(self, env, respond): [...]

  • Manage multiple wordpresses with new Vimpress

    March 10, 2011

    Update Vimpress 已经升级到2.x版本,使用、配置都有改进,请关注在vim.org的插件页面: Vimpress had been updated to 2.x, usage and configurations are now different, read the officle page in vim.org: http://www.vim.org/scripts/script.php?script_id=3510 If you noticed Vimpress before and got more than one wordpress to write, must glad now to know this VimRePressed support multiple configs and swith freely. The new VimRePressed (Version: 1.2.0) Changes: Add: [...]

  • 使用wp-super-cache插件静态缓冲的nginx rewrite规则

    March 3, 2011

    WordPress的缓冲插件wp-super-cache默认支持apahce的缓冲方式,在生成了静态页面数据后,通过.htaccess的规则直接让apache读取静态文件,完全不经过PHP,可以很大的提高博客的页面性能。 但是Nginx的改写规则就没这么容易让代码来配置了,虽然wp-super-cache的第二种缓存方式就是为这种使用环境设计,但实际上是用了PHP来提供静态数据了,在使用apache benchmark压力的时候,php-cgi依然占很高的CPU占有率。 通过编写nginx的rewrite规则还是可以让nginx直接读取静态文件,参考来自Code Exchange: nginx rewrite rules for WordPress + WP Super Cache,这里的配置被很多地方引用过,但实际尝试使用过程看到那里面的代码还需要微调。 server { listen 80; server_name apt-blog.net; root /var/www/pt-sites/wordpress; index index.html index.htm index.php; location / { # enable search for precompressed files ending in .gz # nginx needs to be complied using –-with-http_gzip_static_module # for this to work, comment out if using [...]

  • Vim中写WordPress博客 - VimRepress

    February 27, 2011

    Update Vimpress 已经升级到2.x版本,使用、配置都有改进,请关注在vim.org的插件页面: http://www.vim.org/scripts/script.php?script_id=3510 WordPress的客户端其实不少,从live writter到scribefire,用户都不少。但是有时候我们只需要一篇博客包含简洁的HTML,这时候这些所见所得编辑器出来的结果都不一定都让人那么满意,经常需要登录到博客后台去编辑源码。 实际上最适合的还是方法还是先用markdown/reStructed/Tex/WikiText之类的语法写成,然后编译成HTML,再发布到博客。 Vim有个vimpress插件可以直接在Vim当中编辑博客,相当适合这个任务。不过由于官方页面上的vimpress已经久无人维护已经不能用了,之前对vimpress的代码做了 一些改写重构,而且得到外国网友的关注 ,而且冠名 VimRepress ,现在正式发布一个VimRepressed的版本。 比起原版的Vimpress,VimRepress有了更友好的错误提示,带了上传图片等的功能,改善了几个命令的可用性: BlogList <count> 列表文章,可以用参数定义列出多少篇文章。默认最近30篇。 BlogNew 新文章命令,会将当前的buffer内容作为文章的内容。 BlogOpen <id> 打开文章,需要手动输入post id. BlogSave <draft|publish> 保存文章,可以保存为草稿、或者直接发布。 BlogPreview <draft|publish> 预览文章,实际和BlogSave命令相同,之后会打开浏览器窗口预览文章。但如果你是保存成草稿的,还得在浏览器登录才能看到。 BlogUpload <file> 可上传图片等文件到博客。自动添加链接代码到光标后。 BlogCode <code type> 代码片段,添加一个<pre>元素的块,对程序博客特别有用,目前默认用wp-syntax插件的高亮模式。 下载: From Google Code SVN 版本: svn co http://ptcoding.googlecode.com/svn/trunk/vimpress/ 安装: 下载以上.zip文件,解压到~/.vim目录: cd ~/.vim unzip /where/you/downlaod/vimpress-1.x.x.zip 配置: 编辑 ~/.vim/plugin/blog.vim, 查找Settings,将会找到如下的一块代码: ##################### [...]

  • Release of VimRepress 1.1.2

    February 23, 2011

    Update Vimpress 已经升级到2.x版本,使用、配置都有改进,请关注在vim.org的插件页面: Vimpress had been updated to 2.x, usage and configurations are now different, read the officle page in vim.org: http://www.vim.org/scripts/script.php?script_id=3510 VimRepress is a broken fixed version of vimpress, a vim plugin to manage your wordpress. The name VimRepress is given by Justin Sattery described it a "A mod of a mod of a [...]

  • 黑莓续断膏 MDS服务器的Linux版本

    February 23, 2011

    黑莓系统5.0以上系统在没有购买使用黑莓网络服务的手机上的断网现象一直比较恼人。几个月前有人做出了“黑莓续断膏”,原理是自架一台服务器,程序模拟MDS服务的简单回应,可以忽悠手机继续在线。 5.0系统断网自动修复程序黑莓断续膏(AntiBrokenNet!) BrokenNetFixup断网修复工具 区别是前者后台自动修复,后者要手动运行修复。 从网友的留言看出,虽然软件虽然有效,但没有稳定的服务器,软件刚出现时候确实有一批地址提供了服务,但很快就失效了。北京小C这里提供了模拟MDS服务器的程序,是VC写的一个小UDP服务器,虽然原理很简单,但用一台Windows的服务器来跑成本太高了,当然很难稳定提供。 其实服务只是很简单的几行代码,稍微改了一下就可以在Linux下面运行。一台低端Linux VPS的费用大概一年200RMB,这个费用对大多数人来说都不是什么问题的,所以推荐想要稳定防断网服务器的人去弄一台,一台可以很多人共享了。VPS侦探 、Lowendbox上有很多这样的推荐。 Linux版本的MDS服务器代码在Google Code上,可以直接下载。 在服务器(Debian/Ubuntu系统)上编译并运行: 1 2 3 4 5 sudo apt-get install build-essential wget http://ptcoding.googlecode.com/svn/trunk/mds_server.c gcc -Wall -o mds_server mds_server.c sudo cp mds_server /usr/local/bin/ /usr/local/bin/mds_server 现在可以设置手机的续断软件使用这个服务器来连接断网测试了,手机连接的时候,会实时打印出手机的连接信息跟PIN码。 当然最好把程序加入系统自动启动: sudo touch /var/log/mds_server.log sudo chown nobody /var/log/mds_server.log sudo sed -i '/^exit 0/isu nobody -c "nohup /usr/local/bin/mds_server >>/var/log/mds_server.log &"' /etc/rc.local 这样程序会在系统启动后自动在后台运行,运行的LOG会记录在/var/log/mds_server.log文件当中。 下面也无偿提供一枚MDS服务器,就是跑在我的Linux服务器上的。 [...]

  • MoinMoin 与 Nginx, fastcgi 与 uwsgi 的配置

    October 13, 2010

    给自己架了个Wiki http://wiki.apt-blog.net作为自己的知识管理工具。虽然这个博客本来就是工具之一,也累积了快两年了,但经常碰到有些小东西,不值得为之写篇博客,很有用,但用完就忘记。个人wiki适合做写细小的笔记,当累积一定的时候还可以整理成博客。 Wiki我选择了用Python的MoinMoin,一定程度上受CPYUG社区 ZoomQuiet 大妈的推荐影响,首次试用感觉非常impresive,所以就定了。再加上 GraphViz 工具的支持,实在的强大。 在vps上服务,肯定是无视apache的,内存有限。之前架设过用来上Twitter奶瓶腿,是Nginx + php-cgi的方案,nginx是必须的。 Python跟web前端的架构方式有太多选择了,五花八门,MoinMoin的发行包里面都提供了moin.cgi moin.scgi moin.ajp moin.fcgi moin.wsgi等多种启动方式。MoinMoin里面全部通过内置的flup作为中间件提供这些接口,目前我仅尝试使用了fastcgi和wsgi。 虽然解压了moin的源码包就可以直接运行里面的wikiserver.py来本地访问了,但在服务器上通常是由nginx/lighttpd等服务来综合转发。php的话是通过spawn-fcgi启动一些php-cgi的进程,服务器接受到动态的请求就通过本地socket跟php-cgi通讯,返回的结果展现回给客户。php-cgi是使用FastCGI协议的。 MoinMoin 源码当中wiki/server/moin.fcgi就是一个类似php-cgi功能的fastcgi服务,类似地可以使用spawn-fcgi来启动moin.fcgi,作为后端的处理进程。 Running MoinMoin Wiki with Nginx via FastCGI and Flup该文章很形象解释了fastcgi的角色,以及提供了一段很方便的服务脚本来启动spawn-fcgi。 Client ----> Nginx Web Frontend -----------+ | fastcgi_pass \|/ +-------------------------+ moin.fcgi | spawn-fcgi-moin.socket | spawn-fcgi ---------------> | or | | localhost:port | +-------------------------+ 但是文章当中的nginx配置不完整,而且复杂了,这是我的配置: server { listen 80; [...]

Page optimized by WP Minify WordPress Plugin

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org