自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (5)
  • 收藏
  • 关注

原创 centos服务器上安装xnote

开源软件xnote安装

2022-08-14 18:09:22 779 1

原创 计算机领域中Task和Job的区别

作为开发者,我们经常看到Task和Job这两个词,而他们的中文翻译都是“任务”,很难分清这两者的区别,所以作者针对这两个概念搜集了一些资料,然后结合个人的一些经验,尝试来探讨这个话题。英汉词典解释首先看看两者的英文解释(Mac上的英汉・汉英词典,只看两者的名词解释)tasktask |tɑːsk, American tæsk|.noun任务 rènwuto perform or c...

2019-01-13 23:21:53 22899 4

原创 分布式缓存的基本原理

随着互联网的发展,用户规模和数据规模越来越大,对系统的性能提出了更高的要求,缓存就是其中一个非常关键的组件,从简单的商品秒杀,到全民投入的双十一,我们都能见到它的身影。分布式缓存首先也是缓存,一种性能很好但是相对稀缺的资源,和我们在课本上学习的CPU缓存原理基本相同,CPU是用性能更好的静态RAM来为性能一般的DRAM加速,分布式缓存则是通过内存或者其他高速存储来加速,但是由于用到了分布式环境中...

2018-12-31 22:20:51 56088 9

原创 xnote插件功能介绍

准备工作安装Python和xnote , xnote的介绍请查看项目主页快速入门第一个插件打开xnote,点击【插件】菜单,然后选择右侧的新增插件然后输入插件名称,点击确定,我们就创建了第一个插件,进入插件内容编辑页面创建程序已经生成好了一个demo,我在handler方法里面新增了两行代码演示基本的writeline和writehtml的功能# 输...

2018-09-01 23:41:02 1365

原创 xnote 1.4版本发布

新版本说明xnote 1.4版本发布了,主要新增的功能和特性如下首页改版,列表改为网格布局,内容更加丰富紧凑,三大主题一目了然支持添加用户维度的自定义工具链接,以配置文件编辑的方式添加,相信程序员们肯定不陌生新增文件系统的插件,现在还比较粗糙,文件上面多了【更多】的选项,点进去会列出以fs前缀命名的脚本,点击执行,脚本的定义以main方法为入口此外还有一些小的优化和更新新...

2018-05-01 12:41:20 497

原创 使用xnote打造个人知识库

非常喜欢Pythoner的一句格言 人生苦短,我用Python但是有了Python之后,感觉时间还是不够用!作为苦逼的加班狗,经常忙的晕头转向,我就萌生了开发一套管理资料和时间的工具的想法,于是xnote产生了。xnote是什么xnote是基于Python打造的一款个人知识库系统,它具有以下特点集笔记、个人记事、文件管理、定时任务于一身强大的搜索,不仅可以让你快速...

2018-03-03 20:44:51 5873 3

原创 taskpool-基于MySQL的分布式任务池

简介taskpool是一个任务池,它提供了一种类库的方式来实现分布式的任务队列。相比于一些消息队列框架,taskpool的目标不是高吞吐量的消息生产和消费场景,而是提供一种分布式的任务池“对象”,它更像是一个数据结构封装类。应用场景taskpool适用于对性能要求不高,需要保证事务的应用场景。比如 - 异步任务,保证不重复执行API说明put 把任务放入任务池get 从任务池获取任务upda

2017-12-21 21:30:21 1551

原创 xnote阶段总结

xnote的由来xnote是我在业余时间开发的一款个人信息管理系统,开始是想做一款智能笔记系统,随着我自己的使用和工作上的需求,xnote逐渐发展成个人信息管理系统,其中主要的功能是资料管理日程管理工具整合相比于传统的个人信息管理系统,xnote多了一些为程序员定制的工具,比如脚本管理、代码搜索、代码统计、文字对比等。我从大学开始就幻想这做一款自己的操作系统,开始是实体操作系统,后面随着对w

2017-11-25 15:38:41 532

原创 一次BUG排查过程: Python导入的模块运行过程中变成了None

问题今天测试 xnote 在Python 2.7兼容性的时候,发现一个功能不能使用了,但是Python3下面却运行很好。具体表现是这样,我有一个search模块,它会去加载search目录下的子模块并且把它们注册到一个映射表中,用户输入查询条件之后会通过映射表的pattern匹配,匹配上了就执行相应的方法执行搜索动作。写成伪代码如下mappings = []reg_infos = [...

2017-09-03 17:39:11 1539 1

原创 谈一谈尾调用优化

对计算机感兴趣的同学递归这个概念肯定不陌生,看过《计算机的程序构造与解释》(SICP)这本书的同学对其中的各种用递归实现循环的例子应该是印象深刻,毕竟我们是读着陈浩强老师的《C语言程序设计》这本课程入门了,再加上部分老师学长的宣导,递归在我们眼中似乎成了低效的代名词,遇到递归总是要想办法转换成循环的。递归之所以低效,很大一部分原因是因为这个过程会产生大量的函数调用,消耗相当大的栈空间,并且每次

2017-09-02 00:28:26 1503

原创 postman使用技巧

前言随着web技术的发展,特别是前后端分离的架构主键成为主流,我们后端程序员调试的时候不再依赖页面去操作,而是直接调试接口。对于没有权限控制的GET接口而言,这是一个非常轻松的工作,但是对于有权限的或者使用了其他方法(POST,PUT,DELETE等)的Rest接口,事情就不那么美好了,还好有postman这个神器能够帮我们解决这些问题,基本的使用我就不讲了,这一块网上的教程很多。这里主要提一...

2017-08-23 20:37:59 10529 2

原创 tinypy源码笔记(五)——异常处理

异常机制 异常指的是在程序运行过程中发生的异常事件,通常是由硬件问题或者程序设计问题所导致的。在Java等面向对象的编程语言中异常属于对象。这是百度百科的引用,现代编程大部分都实现了异常机制,而早期语言比如C语言是没有异常机制的,需要程序员根据每个函数的返回值来判断程序是否正常,这样会带来下面这些问题程序员忘记判断函数返回值大量的异常判断使程序臃肿,难以理解和维护异常的出现就是为了解决这

2016-10-20 21:13:48 406

原创 tinypy源码笔记(三)——虚拟机启动过程以及字节码分析

启动过程直接开门见山好了,程序入口为vmmain.c的main函数,启动过程总结起来是以下四步实例化虚拟机,分配内存,初始化根节点对象,初始化GC编译,将python源文件编译成tpc字节码(python的字节码是pyc)执行字节码释放资源具体代码分析如下int main(int argc, char *argv[]) { tp_vm *tp = tp_init(argc,argv

2016-08-15 21:54:36 588

原创 tinypy源码笔记(二)——目录及构建分析

tinypy源码目录及构建过程分析

2016-07-09 18:04:39 630

原创 增量式垃圾回收

简单的增量式垃圾回收通过这段时间对tinypy源码和编译原理这本书的研究,我终于敲开了增量式垃圾回收的“小门”;如果读者没有接触过基本的标记-清扫垃圾回收,最好先对其进行一定的了解。一、数据结构列表:所有对象,标记为R,未扫描对象,标记为U,二、算法的理论基础不可达对象永远不会变成可达对象。树的遍历(增量标记的核心)三、算法的执行过程初始化初始化栈和对象的树;将根对象push进U;

2015-12-27 23:24:02 2376

原创 Java多线程总结

Java线程的分类java线程可以分为用户线程和守护线程。用户线程这就是普通的java线程,可以通过重新Thread的run方法来实现,这是Java里面非常常用的,这里也就不多说了。守护线程守护线程的名字是根据守护进程的概念来的。在Linux系统中,有一类进程会在系统中一直运行到系统关闭,这有点类似于Windows系统的服务,由于这些进程大部分都是提供一些服务来支持其他应用,就好像是在”守护“其他的

2015-12-24 23:30:08 3163

原创 Python的import语法替代方案

为什么要替换import首先,Python导入上级目录的模块是个很麻烦的事,一般要修改sys.path其次,Python导入子目录的模块必须添加__init__.py文件,虽然很简单,但是有必要吗,要吗,吗。。。习惯了web开发的人对相对路径导入都很熟悉,特别是nodejs实用require方法导入很方便,所以我也写了一个类似的Python require方法,可以模仿nodejs的requi

2015-08-02 14:36:17 3672 1

原创 tinypy源码分析(四)——函数调用的实现分析

一、函数的分类在tinypy中,函数分三类 1. 内置函数(或者说C函数,builtin-function) 2. python函数,包括python的方法 3. 对象的实例化方法二、函数的结构体typedef struct tp_fnc_ { int type; struct _tp_fnc *info; int ftype; void *val;} tp_

2015-07-28 20:32:04 657

原创 增量垃圾回收算法原理

增量垃圾回收算法原理

2014-08-17 18:12:47 4985 3

原创 Ubuntu 下用hostapd创建AP热点

由于手机流量很容易就用完了,而且在学校又是用的校园网,笔记本共享无线wifi是非常普遍的事,对于windows平台,除去windows自带的,各种软件简直是漫天飞,但是到了Linux上面,软件就比较少了,而Ubuntu自带的是Ad-hoc热点,很多安卓手机并不支持,在网上挖了两天的资料,终于找出一些靠谱的方案,下面就是其中一个方法。我的电脑是Ubuntu13.10,网卡是ath

2014-03-31 19:58:45 4672 1

原创 Python 反编译

1. 使用第三方库uncompyle,这个库可以将代码反编译成字节码指令和源代码简单的使用方法:from uncompyle2 import *fp = open("code.txt","wb")uncompyle_file('test.pyc',fp,showasm=1,showast=0)fp.close()当然,这只是其中一种方法,还有其他方法可以选择

2014-03-23 22:59:49 2446

原创 C语言里的一些陷阱

每一种语言都会有很多“陷阱”,c语言也不例外。这里我每次遇到的时候就补充一下,以期不断提升自己的水平。语法方面的1.结构体是可以赋值的,但是不能比较(这里说的主要是==操作,感到很郁闷,难道每次只能用memcpy来判断吗)。2.register变量最好用于局部变量。(tcc可以用于全局变量,gcc需要指定,不过一般都不用指定寄存器变量了)3.i++不能作为左值,++i可以。

2014-03-19 13:54:57 823

原创 C语言基础知识汇集

介绍容易踩坑的C语言基础特性

2014-01-28 10:29:49 617

原创 tinypy 语法分析过程

tinypy的文档真的很难找(也许是我搜索技术太烂了。。。),官方说它是一个python的子集,支持的功能如下:1.类和单继承2.可变参数和关键字参数的函数3.字符串,列表,字典,数字4.模块,列表解析5.异常的回溯6.一些内建函数实现语法分析的源文件是parse.pytinypy采用了自顶向下算符优先分析法(Top Down Operator Preced

2014-01-20 18:01:43 1212

原创 javascript break指定标签,打破多层循环

今天看javascript权威指南的时候发现break的语法有两种(break; 和 break label;)。。。以前都没仔细看,就在前几页。   但是不明白label怎么写,于是上网查了一下,找到了一个例子function foo (){ dance: for(var k = 0; k < 4; k++){ for(var m = 0; m

2014-01-19 12:13:21 2200

原创 python多个变量同时赋值

很多东西写过之后才知道自己什么都不懂。。。多变量赋值,写起来很方便,但是结果却出乎意料t=1t,a=2,t+1本来我预料a的值是2+1也就是3,结果却是2。。。开始以为多变量赋值还是执行多个赋值语句,看来不是这样,然后我猜想多变量赋值等号右边是从右向左执行,测试一下:def t1(): print 1def t2(): print 2d

2014-01-04 15:41:06 17915 3

原创 tinypy中缩进的处理

先贴上代码主程序def do_tokenize(s): global T T,i,l = TData(),0,len(s) T.f = (T.y,i-T.yi+1) while i < l: c = s[i]; T.f = (T.y,i-T.yi+1) if T.nl: T.nl = False; i = do_i

2014-01-02 22:18:11 757

原创 tinypy源码笔记(一)——简单介绍

据说python是最慢的脚本语言之一,因为python内核比较大,但是,要相信程序员不是因为使用XX语言而NB,而是XX语言有那些程序员而NB。还是从速度开始吧,python不是慢吗,那就让她快起来,pypy项目正在解决这个问题,而且她做的很好,pypy也是一个很有趣的项目,我从某本比较古老的书籍上读出pypy是为了提供更强的动态特性而不是更快的速度而诞生的,当时她的速度更cpython是天壤之别

2013-12-29 01:09:07 1893

原创 写语法分析器的感想

由于课程设计的需要,我要实现一个源代码到四元式的翻译程序,整个过程对我来说还是很有挑战性的。容易的部分就不说了,本来我就是用递归下降实现的,已经十分的直观了(相对于SLR等自底向上的分析法),但是我在实现的过程中还是遇到了一些问题,最棘手的是:={(+|-)}这样的语句的分析,因为只有是符合文法的情况下才能继续下去,然后我实现的时候就写了一个int类型的term函数,每次判断term是

2013-12-22 19:42:47 2140

原创 git获取旧版本

最简单的方法:直接在浏览器地址栏输入https://github.com/[yourname]/[repisotyname]/tarball/[commit][name]:用户名称[repisoty]:项目名称[commit]:commit的SHA

2013-12-02 15:15:25 1615

原创 JavaScript 在for循环中绑定事件

有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个for循环不就得了,结果发现,额,都是使用了最后一个参数。。。上网查资料!!!结果大神说用闭包解决代码:for(var i=0;i<10;i++){btns[i].onclick=(function(i){return function(){alert(i)}})(i)}大概原

2013-11-30 23:12:25 3694

原创 利用ServerSocket获取浏览器http请求的header

http协议是使用非常广泛的网络协议,作为网站开发人员,了解http协议是十分重要的。但是,我不想读官方的http文档,我想直接自己去一点点了解http协议,通过编写socket与浏览器通信。代码如下import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import...

2013-11-28 22:34:47 3340 2

原创 使用webview要注意的问题

1.权限:因特网权限 android:name="android.permission.INTERNET" />2.读取本地文件:webView.loadUrl("file:///android_asset/index.html");3.设置JavaScriptwebView.getSettings().setJavaScriptEnabled(true);4.

2013-11-26 18:58:19 595

原创 安卓开发JavaScript调用Java

目前对安卓的布局接触太少,但是又要在规定时间里完成界面布局,我打算用HTML和JavaScript来完成。这样做的主要问题就是把HTML捕获的数据传到后台Java程序或者从后台Java程序获取数据。上官网的例子: class JsObject { @JavascriptInterface public String toString() { return "injectedObje...

2013-11-26 17:24:48 673

原创 JavaScript 参数 arguments深入了解以及javascript内置数据类型的讨论

在JavaScript的函数中,参数会保存在一个arguments对象中,而写函数的时候声明的函数参数我感觉就是个赋值语句,另外也可以提高可读性。>function test(){return arguments}undefined>test(1)[1]>test(1,2)[1, 2]>typeof test()"object">test('a','b',12)["a", "

2013-11-26 15:01:04 1657

原创 JavaScript 函数引用的疑问

var a = function(){return 1}undefinedvar b = aundefinedb()1var c = document.getElementByIdundefinedc('a')TypeError: Illegal invocation在上面这段代码中,变量b成功地引用了函数a,但是变量c却不能成功应用内置函数document.getE

2013-11-24 14:48:44 812

原创 JavaScript 正则表达式的test,exec,match

test:RegExp对象方法,判断是否匹配var reg = /a/undefinedreg.test('abc')truereg.test('def')falseexec:RegExp对象方法,以迭代器方式返回所有匹配项,调用一次显示一个,直到没有返回nullvar reg = /a/gundefinedvar text = 'abcabc'unde

2013-11-24 14:35:03 770

原创 linux mint 没有声音

【快速通道】下面废话较多,解决没有声音办法:升级kernel这几天装了 linux mint,但是进去没有声音有事问度娘,看了一些资料我觉得是声卡驱动没装好,于是信心满满地开始编译安装alsa驱动结果运行./configure是碰到:checking for directory with kernel source... Please install the package with full k...

2013-11-20 12:24:22 5621

原创 linux 使用锐捷认证上网

自从mentohust被封以后,校园网认证就只能用锐捷了。官方的锐捷只有可执行程序,没有可以安装的deb包,使用起来不如mentohust方便,但是也不难:首先下载官方的压缩包解压,然后为rjsupplicant.sh 添加可执行权限 sudo chmod +x rjsupplicant.sh然后可以通过./rjsupplicant.sh --help查看帮助,如下:**认证客

2013-11-20 10:07:19 4661

原创 python 中的相互import问题

之前用C语言写作业的时候,偶尔会遇到文件相互引用导致不能编译的问题,那么Python中是否会遇到这种情况呢# a.pyimport bname = 'a'print b.name# b.pyimport aname = 'b'print a.name结果是AttributeError: 'module' object has no attribute 'name'

2013-10-28 14:54:40 5157

pywin32 python2.7

python win32api 让python 使用 windows平台的win32 api

2014-11-16

kde 2 qt programming bible

qt的学习材料,英文版,资料比较老了,初学者可以看看

2013-09-21

oracle11g java驱动

Java连接Oracle11g的驱动,测试能用

2013-08-27

Hyperic-Sigar

VMWare开发的一个收集系统各项底层信息的工具集

2013-08-26

C++版贪食蛇

用MFC做的一个简单的贪食蛇,采用双向链表表示蛇的身体

2013-07-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除