自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I2Cbus的专栏

be social

  • 博客(109)
  • 资源 (10)
  • 收藏
  • 关注

原创 利用wasm的jit加速功能对代码进行加速

wasm代码的运行一共有三种模式。最早的有两种:binaryen模式和wavm模式。最近还加了一种叫wabt的基于栈的bytecode模式。binaryen模式是基于bytecode的解释器的。而wavm模式是基于JIT的,速度可以达到运行native code的级别。但是wavm模式有一个致命的硬伤:JIT时编译速度太慢。以编译源代码里的eosio.system这个系统智能合约为例,需要5秒左...

2018-10-29 08:44:40 1599 2

原创 Eos发布智能合约所占内存分析

如果你在Eos上发布一个智能合约,细心点的话可能会发现一个问题,就是你发布后代码所占的ram远比你的编译后的wasm代码和abi文件的总字节数大的多,如果减去abi文件所占的存储空间,你会发现,所占的内存刚好是代码大小的10倍。这是一个有意思的问题。答案就在如下的代码中:找到libraries/chain/eosio_contract.cpp这个文件的void apply_eosio_setc...

2018-10-26 17:25:17 745

原创 如何在PyEos上集成一种新的智能合约VM

在PyEos上集成一种新的虚拟机非常的简单。PyEos在代码中实现了VM接口层,使得接入一种新的VM变得异常的简单。只需要实现以下5个函数就可以了。五个重要函数void vm_init(struct vm_api* api) ;void vm_deinit();int vm_setcode(uint64_t account) ;int vm_apply(uint64_t receiver...

2018-10-25 09:00:14 553 1

原创 Python智能合约编程 -- 开篇:为什么是Python

         Python因其简单易用,开发效率高而深受广大开发者的喜爱和推崇。虽说编程最重要的是背后的思想,但是思想的表达也是非常的重要的。Python正是这种有强大表达能力的语言。Python有句名言:Life is short, use Python.中文版是:人生苦短,我用Python。可以从一个侧面来了解Python是一个高效的开发语言。在科学计算,网络编程,人工智能等等领域...

2018-10-22 10:16:27 725

原创 在windows下安装python包管理器pip及使用

从来没有在Windows下用过pip,今天试了下,原来pip也可以在Windows下安装,的使用和linux下一样简单。先从下面的地址下载pip源码:http://pypi.python.org/pypi/pip/最新版本是6.0.8,下载连接为:http://pypi.python.org/packages/source/p/pip/pip-6.0

2015-02-06 23:13:10 18684 2

原创 Android中的常用命令汇总

工欲善其事必先利其器,在Android开发过程中,为了开发调试,查找问题的需要,必须掌握一些常用的命令的用法,这里总结了一些在Android开发中经常会用到的命令,一共15个。

2015-02-02 21:52:58 6861

原创 go语言如何实现类似c++中的多态功能

go语言作为编程语言中的后起之秀,在博采众长的同时又不失个性,在注重运行效率的同时又重视开发效率,不失为一种好的开发语言。在go语言中,没有类的概念,但是仍然可以用struct+interface来实现类的功能,下面的这个简单的例子演示了如何用go来模拟c++中的多态的行为

2015-02-02 21:09:17 2668

转载 软件工程师的鄙视链

最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写 JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,

2015-01-13 20:15:15 1004

原创 Go语言总结和学习指南

早在2009年11月google刚推出go语言的时候,在好奇心的驱使下,就下载体验过。那时的感觉是语法比较奇怪,相关的资源较少,并且习惯了动态语言Python。虽然它一出来就宣称是一种为并发能力而生的语言,但是感觉Python已经能够满足自己的日常的开发要求,所以并不感觉它有什么优势。但是也在持续的关注它一点一点的发展。如今已经是2015年了,不知不觉Go已经走进了第6个年头。发现越来越多的项目采用go作为开发语言来开发程序,也越来越多的程序员,包括Python的程序员,在使用go语言,如今,go1.4 已

2015-01-10 19:01:21 3423

原创 go for android编译指南

去年12月中旬,go已经正式支持android平台!虽然,目前只是初步支持,相应的开发还在紧罗密鼓的进行中。但是仍然挡不住试用一把的冲动。目前go的代码是通过java的jni接口来调用的,go的代码会被编译成so动态库,会在编译的时候包含到apk中。下面来看看怎么在android平台来编译go的代码 。

2015-01-09 21:14:54 6317

原创 docker 使用总结

如今docker可真是如日中天啊,相对于像virtualbox,vmware这些虚拟机的笨重的解决方案,docker则轻了很多,对于开发者来说,其中一个比较实用的好处是:再也不用到处搭建开发环境了!当然,docker的好处还有很多,以后慢慢体会吧。来看下简单的使用方法:

2015-01-08 20:12:17 1871

原创 Android平台Java代码的条件编译问题

在代码的开发过程中,不管是C/C++也好,Java也罢,都要面对在平台移植的问题, 所以不可避免的要考虑条件编译的问题。 在C/C++代码的开发中,条件编译的实现很容易实现,可以分成二种:一种是在单个代码文件中通过 #ifdef ... #endif 或者 #if ... #endif 的方式选择性编译文件中的代码,另一种是在Makefile中通过宏判断来选择性编译某个文件。在Java代码的开发中,实现条件编译则没有直接对应的方法,但是仍然可以采用变通的方法来实现条件编译。

2015-01-05 20:30:59 5121

原创 Android应用开发中如何使用RSA加密算法对数据进行校验

这个世界很精彩,这个世界很无奈。是的,在互联网时代,如何保护自己的数据,如何对数据进行加密和效验就变得非常的重要。这里总结一下Android平台使用Java语言,利用RSA算法对数据进行校验的经验。先来看下如何RSA加密算法对数据进行校验的流程:1、首先要用openssh之类的程序生成一个私钥2、再根据私钥生成一个公钥3、使用私钥和公钥,对数据进行签名,得到签名文件。4、使用公

2014-12-20 17:27:43 2375

原创 Python 代码精简和优化

Python很简单,容易使用,开发效率很高,移植性很好,代码资源也很丰富,被广泛使用。但是Python代码编出来的动态库比较大,python库很全,缺点就是库比较大。在内存占用方法,随着py库的引入,内存也成倍的增加,这里来讨论下如何来给Python瘦身,以及如何优化内存的占用。

2014-11-30 20:29:44 6761

原创 Python的运行机制--操作码(opcode)解析

上一篇文章《Python的运行机制--pyc文件浅析》中已经对Python的运行单元PyCodeObject结构体作了初步的了解,但是要真正理解Python的运行机制,还要通过分析Python的opcode才行。

2014-11-23 17:27:59 10376

原创 Python的运行机制--pyc文件格式浅析

Python的原始代码在运行前都会被先编译成字节码,并把编译的结果保存到一个一个的PyCodeObject中,pyc 文件即是把PyCodeObject从内存中以marshal格式保存到文件后的结果。本文通过测试和工具来了解下pyc文件到底有些什么东西。

2014-11-22 18:24:32 10556 3

原创 只有lua才能编译出小于200K的代码吗?NO! Python 也可以。

现在Python给人的感觉是大,东西多,在Windows上安装后居然要占100多兆的空间。lua给人的感觉是很小,很轻便。Python 2.7在linux下编译出来的代码在strip之后也有3M多,早期版本应该会更小些,但也应该有700K到800K吧。那么Python是不是不能编译出轻便,体积小的代码呢?答案是否定的,这里介绍几个Python的变种,来看下Python可以有多小。

2014-11-14 20:46:56 2719

转载 使用冰箱抢救硬盘数据

英文好的可以去下面的链接看看:http://penguindreams.org/blog/freezing-a-hard-drive/

2014-11-14 19:07:23 1446

原创 Android Framework层如何截获按键消息

代码位置:frameworks/base/services/input/InputDispatcher.cpp

2014-11-14 12:44:19 2961

原创 linux内核 GPIO口编程入门

1. api1.1 int gpio_is_valid(int number);1.2 int gpio_direction_output(unsigned gpio, int value)1.3 int gpio_direction_input(unsigned gpio)1.4 int gpio_request(unsigned gpio, const char *label)

2014-11-14 12:28:22 3430

原创 lua how to

总结了下lua的使用,有点乱,也不完善,先帖出来吧,这也可以成为自己更新的动力,毕竟是有人看的。

2014-11-12 20:39:37 1247

原创 如何将lua移植到arm平台的linux内核

将脚本移植到内核是一件很酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核,只可惜只支持x86,不支持arm,在网上搜索了下,没有找到现成的,于是自己研究了下,现将它分享出来。

2014-11-12 20:23:48 3132

原创 如何在遍历目录时指定目录的最大层数

public static void findFile(String rootDir, String fileName, List fileList,int depth,int maxDepth) { depth += 1; String tempName = null; File baseDir = new File(rootDir);

2014-11-12 20:00:43 1163

原创 开源硬件+软件开发平台Arduino体验总结

什么是Arduino?Arduino是一个开源的硬件+软件开发平台。主要采用AVR的单片机作为主控芯片,外加丰富的硬件扩展模块,可以实现非常丰富的实用的功能:如可以轻松的利用以太网,蓝牙,WIFI,GPS,GSM(2G移动电话),等等扩展模块来实现远程的通信和控制功能。利用Arduino,你甚至可以实现诸如3D打印,机器人,无人机这些高大上,现如今非常酷炫的功能。

2014-10-26 20:27:38 4887

原创 Android平台下使用lua调用Java代码经验总结

动态语言以其运行的灵活性,可配置性,方便调试可以为开发带来极大的方便,如果用好了,可以极大的提高开发的效率。怪不得像游戏开发这样复杂的软件开发里没有不集成脚本语言的。其中,lua以其小巧,灵活,方便扩展,方便嵌入被用于大多数的游戏开发中。对于我来说,对于一个充分认识到动态的力量的人来说,在软件开发里集成一种脚本语言成为一种很重要的很有意义的工作。但是

2014-10-18 12:12:07 6024 2

原创 由Android系统两个漏洞引起的思考

Linux Kernel本地权限提升漏洞(CVE-2013-6282)

2014-09-20 13:19:23 2535

原创 从Java中访问native service的问题

IBinder gpioService = ServiceManager.getService("helloService"); Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); byte hello[] = "sayHello\0".getBytes("UTF8"); data.writeInterfa

2014-09-20 12:01:08 1698 2

原创 Android双系统实现

刷机,似乎是安卓手机用户的一项专利,但是,会刷机的用户一般都是喜新厌旧的角色,一个系统用久了,就想换到另一个系统,或者觉得没有原来的好,或者又觉得要换回去,这样又要重刷。但是刷来刷去都麻烦啊,并且每次刷机也不是没有风险的,一不小心就可能造成重要数据的丢失。没有解决办法吗,有!双系统!甚至三系统,四系统!!

2014-09-01 20:42:07 14328 5

原创 关于无法完全下载CyanogenMod代码的问题

CyanogenMod真的是一个神奇的东东,它让开发手机固件不再是手机生产商的专利,每个有志于此的程序员都可能为自己的手机定制一份专有的,独一无二的固件,这在以前是想都不敢想的。并且CyanogenMod支持的手机型号之多也让人为之惊叹。它的最新版本已经到11.0了。这篇文章讲讲我在下载CyanogenMod遇到的这点事。

2014-08-19 22:07:59 2862

原创 如何完全备份android系统上的system分区和data分区

安卓的系统备份在很多场合下可能会用到,下面这个python的脚本,可以用来备份整个的data分区:将所有data分区的文件和目录打包到data.zip,并生成recovery的专用edify脚本到update-script.sh。当然,简单的修改下脚本的备份路径就可以备份system分区了,如果再加上几行代码,就可以备份boot,recovery,uboot等等分区,不过这要根据不同的分区来写不同的备份代码

2014-08-17 12:22:11 12806

原创 Kivy a to Z -- 一个简单的通过adb同步Android系统文件的工具

来兴趣时写了些Kivy的代码,调试却总成感觉不是很方便。直接打包到public.mp3的方式太繁锁,用文件共享的软件又发现没有一个好用的,用samba filesharing本来也只是慢,但是更新的版本之后就一直提示说wifi没有tethering,意思是wifi热点没有打开,但是打开了还是提示没有tethering。找了个叫什么卓*力的文件管理器,下载了samba插件后输入用户名和密码死活不对,被搞得实在恼火,花了点时间写了个通过adb同步安卓文件的工具,用着也挺爽的。

2014-08-15 21:49:14 3867

原创 Kivy A to Z -- Kivy的UI系统简介

在所有的图形库中,控件,都是基本的

2014-08-03 17:02:57 3283

原创 Kivy A to Z -- Kivy的图形系统简介

Kivy的图形系统是建立在opengl之上的,

2014-08-03 16:33:26 2532

原创 Python 官方代码threading模块的一个死锁的bug

Python的threading模块有一个比较严重的bug:那就是可能会让线程的等待提前结束或者延迟,该篇文章分析了问题产生的原因和提出了相应的解决方法

2014-08-02 18:07:26 8535 1

原创 Kivy A to Z -- 如何实现焦点切换效果

Kivy是面向触屏设备的,对键盘,遥控器等输入设备的处理比较弱,但是有时候我们又需要实现对按键的处理,如通过方向键切换焦点,这篇文章来讨论下如何去实现。

2014-07-27 20:27:34 3186

原创 Kivy A to Z -- Kivy之Properties

Property在Kivy里是一个很重要的概念,本篇讲解了Property的使用方法以及Property的实现过程。

2014-07-26 22:49:05 3931 1

原创 Kivy A to Z -- Kivy的消息处理机制

外面一直在下雨,比较无聊,顺便总结了下Kivy的消息的处理过程。总的来说,在Kivy里,处理的消息一共有四种:按键消息,鼠标消息,触屏消息,还有自定义消息。下面来看下整个消息的处理流程。  先来看张图:      先来解释下这几个类都是干嘛的:1、EventDispatcher:看名称就知道这是一个消息分发类,在这个类中通过了以下的主要方法:regist

2014-07-26 12:36:27 3810

原创 Kivy A to Z -- 如何从Python创建一个基于Binder的Service及如何从Java访问Python创建的Service

《Kivy A to Z -- 如何从python代码中直接访问Android的Service》 一文中讲到了如何从python访问java的service,这一篇再来讲下如何创建一个基于Binder的Python Service以及如何从Java代码中访问这个Python创建的Service。

2014-07-20 19:25:06 2103

原创 Android平台通过C++的MediaPlayer进行多媒体播放在调用prepare时死锁问题

先来看下下面的测试代码:mptest.cpp#include #include #include #include #include #include #include #include #include #include #include "utils/Log.h"#include #include #include #include #include

2014-07-15 20:21:23 4276 1

原创 Kivy A to Z -- 如何从python代码中直接访问Android的Service

如何从python代码中直接访问Android的Service

2014-07-13 20:00:52 3693

BinderTest

如何从C++代码中直接访问java的service示例代码

2014-07-09

设置Python进程运行于固定CPU代码

Python的线程在多核情况下,由于GIL的存在,运行效率会比单核情况下还低,这个时候,可以通过设置运行Python代码的进程所在的CPU以提高线程的性能,达到和单核处理器时一致的性能。该代码从 https://pypi.python.org/pypi/affinity/0.1.0 修改而来,去掉了原代码中对pywin32的依赖。

2014-04-26

《再谈Python的GIL》测试用例

《再谈Python的GIL》一文件用到的例子,放在这里,方便大家下载测试,加深对GIL的理解

2014-04-12

Cython入门 示例

《Cython入门》 示例 http://blog.csdn.net/i2cbus/article/details/18181637

2014-01-18

Cython封装Callback函数 示例

Cython封装Callback函数文章 示例 http://blog.csdn.net/i2cbus/article/details/18415333

2014-01-17

林锐写的软件工程思想

林锐写的软件工程思想,通俗易懂,妙趣横生。其中的附文《大学十年》更是让我感慨万千

2008-09-07

WinPE 2003 SP1 第二部分

用于wrk代码调试的WinPE

2008-05-28

WinPE 2003 SP1 第一部分

用于wrk代码调试的WinPE

2008-05-28

在windows下用insight+bochs源码级调试linux内核第二部分(共二部分)

在windows下用insight+bochs源码级调试linux内核第二部分(共二部分),不需再下载其它软件,压缩包里提供全部调试所需的程序,总共仅10兆

2008-04-07

在windows下用insight+bochs源码级调试linux内核第一部分(共两部分)

在windows下用insight+bochs源码级调试linux内核,不需再下载其它软件,压缩包里提供全部调试所需的程序,总共仅10兆

2008-04-07

空空如也

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

TA关注的人

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