gitbook初探

本文出自svtter.com gitbook是在利用nodejs搭建的一个写书的平台,也可以用来做别的事情,比如说作为项目的文档。 gitbook样式,编辑方式【markdown】都是比较不错的,有一个官方网站 http://www.gitbook.com,但是国内的访问速度不是很理想,所以直接挂上去可能体验不是很好,建议自己download下来然后重新部署。

Read More

google-chrome浏览器输入法

最近google推出了个浏览器插件输入法。 具体的名字是google输入工具: 可以在chrome内核的浏览器中使用。唯一的问题是速度有些慢。但是对于许多Linux发行版的使用者来讲,相比一些fcitx和ibus框架给人感觉要好很多。 fcitx太丑了。配置起来比较麻烦。ibus相对优秀一些,个人感觉。但是对于不同的发行版而讲,配置起来都有一定的难度。这对Linux/PC桌面环境的输入法有一定的改善。 可以复制粘贴嘛。

Read More

leanote

{% blockquote 本文出自 http://svtter.com svtter.com %} 本文可以随意转载,但是转载请保留本信息. leanote这个项目很不错,然后看到了免费的套餐十分诱人,已经很久没有更新自己的站了,大部分的更新都在 _segmentfault_上面,另外,很多配置等等leanote的blog做的的确都不错,感觉上要优于hexo,有兴趣的朋友 可以看一下.

Read More

n种方法实现并行枚举排序

这篇文章一直没有写,因为并行计算的报告写的比较潦草。此外,没有实现fork。 文件的源代码贴在 https://github.com/Svtter/workspace/tree/master/parallel/enum_sort 实现了Java, MPI, openmp, pthread, win32, MFC, .NET 的并行枚举排序,测试机是双核四线程的ThinkpadE430. MPI的环境是archlinux . openmpi 贴一个MPI的源代码, 运行结果都在源代码对应的文件夹中保存,这里就不贴了。 /*============================================================================= # # Author: svtter - svtter@qq.com # # QQ : 57180160 # # Last modified: 2014-11-02 17:08 # # Filename: enum_sort_MPI.cpp # # Description: # =============================================================================*/ #include "mpi.h" #include <stdio.h> #include <math.h> #include <sys/time.h> #include <stdlib.h> #include <time.h> #include <string.h> #include <iostream> using namespace std; #define MAXN 10000 #define PMAX 1000 void build(int a[], int b[]) { srand(time(NULL)); for(int i = 1; i <= MAXN; i++) a[i] = b[i] = random()%PMAX; } //serial enum sort double serial_enum_sort(int a[], int at[]) { double t1, t2; t1 = MPI_Wtime(); int k, i, j; for(i = 1; i <= MAXN; i++) { k = 1; for(j = 1; j <= MAXN; j++) if(a[i] > a[j] || (a[i] == a[j] && i > j)) k++; at[k] = a[i]; } t2 = MPI_Wtime(); return (t2 - t1); } // 用于调试数组 void debug(int a[], int len) { for(int i = 1; i <= len; i++) { fprintf(stderr, "

Read More

php-php的类

关于PHP的类 http://php.net/manual/zh/language.oop5.php (本来想顺便学学nodejs的,但是谁有那么多精力啊。。还有js学的像狗屎一样= =) <?php class Test { private $name; // 可以定义类的访问权限 public function __construct($name) //构造函数 { $this->name = $name; } public function echoname { echo $this->name; } } $a = new Test("This is a."); $a->echoname(); 构造函数重载我不会,有时间再更新吧。。 先记录这些。

Read More

php-测试表单的php文件

本文出自svtter.com 用于测试form, 上传的文件 <?php // 乱码问题 // 页面设置为gb2312, 如果是utf-8, 则改为uft-8 header("Content-type: text/html; charset=gb2312"); // 针对ajax, // iconv( "UTF-8", "gb2312" , $_POST["post"]); //用于测试submit, 显示所有上传的变量 function test_submit() { while(list($key,$val) = each($_POST)) { echo "$key => $val<br />"; } } test_submit(); //保存到固定文件,重新转存 function one_file_upload($name) { // 测试单文件 if ($_FILES[$name]["error"] > ) { echo "Error: " . $_FILES[$name]["error"] . "<br />"; } else { echo "Upload: " . $_FILES[$name]["name"] . "<br />"

Read More

pipenv入门指南

前言 pipenv是书写flask的大神kennethreitz的新作;pipenv集成了virtualenv和pip等工具,让你从requirements.pip以及virtualenv的环境中解放出来。并且他还集成了pyenv的选择python版本,可以说是所向披靡了。 这是他的原话: You no longer need to use pip and virtualenv separately. They work together. Managing a requirements.txt file can be problematic, so Pipenv uses the upcoming Pipfile and Pipfile.lock instead, which is superior for basic use cases. Hashes are used everywhere, always. Security. Automatically expose security vulnerabilities. Give you insight into your dependency graph (e.g. $ pipenv graph). Streamline development workflow by loading .env files. 相信随着pipenv更加流行,许多工具也会在自己的环境中对pipenv提供支持,解决许多令人不舒服的问题,也能更好的提高编辑的舒适度。

Read More

python UART编程

UART串口编程发送接收上使用pyserial,数据处理使用struct struct廖雪峰 Python使用struct处理二进制 用C语言 一般情况下,有了struct就不需要使用C语言写Python扩展了,但是实际上使用C语言在处理一些情况的时候会更方便一些,因此一个比较好的选择是,用C写模块,然后用Python调用。

Read More

python-opencv中的一些问题

窗口假死 在Python-opencv中,有时会出现已经cv2.detroyallwindows()但是没有退出窗口的情况。 此时需要在代码段的末尾添加waitKey函数来进行刷新。 http://stackoverflow.com/questions/6116564/destroywindow-does-not-close-window-on-mac-using-python-and-opencv 原因为止,但是这么处理是有效的。

Read More

python如何使用不可变量const

# python2 # Put in const.py...: class _const: class ConstError(TypeError): pass def __setattr__(self,name,value): if self.__dict__.has_key(name): raise self.ConstError, "Can't rebind const(%s)"%name self.__dict__[name]=value import sys sys.modules[__name__]=_const() # that's all -- now any client-code can import const # and bind an attribute ONCE: const.magic = 23 # but NOT re-bind it: const.magic = 88 # raises const.ConstError # you may also want to add the obvious __delattr__ # python3 version class _const: class ConstError(TypeError): pass def __setattr__(self, name, value): if name in self.

Read More