自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (6)
  • 收藏
  • 关注

原创 Scala 之 self annotation 标记

package progscala/*alias <=========== */trait Foo { self => def message:String trait Bar { def message = self.message + " Bar" } def fullmessage:String = { object bar exte...

2018-12-07 16:59:05 280

原创 非典型的scala程序及其编译后的结果

初学ScalaFolder structure以及部分代码package.scala的代码package comx package object mypkg { def myprint = println("Hello Ji2 in package object") } object mypkg2{ def my

2015-03-13 16:48:43 1750

原创 Gradle中ListenerManager的初始化流程

接口实现 public void addListener(Object listener) { //interface 1 synchronized (lock) { if (allListeners.add(listener)) { for (BroadcastDispatch broad

2015-02-16 15:18:33 1491

原创 Gradle源码入门学习之十-- Listener & Dispatch

new ListenerBroadcast(OutputEventListener.class);-> public ListenerBroadcast(Class type) { this.type = type; broadcast = new BroadcastDispatch(type); source = new ProxyDis

2015-02-15 21:33:17 2337

原创 Gradle的init.d的工作流程

init.dgradle.projectsLoaded { println "Hi from loaded" }script.run->//script = init_c691rc.... , 也是后面closure  _run_closure1 的delegate通过groovy的closure调用机制->DefaultGradle.java      p

2015-02-11 00:36:21 2757

原创 Gradle源码入门九-settings的include是如何工作的

先上call stackscript.run()  in org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory本代码中,script=settings_ani2pwefx3gv.....->org.gradle.groovy.scripts.BasicScript.methodMissing(String name,

2015-02-10 18:32:31 3579

原创 一个简单的groovy script生成的class文件及其反编译

closure的基本调用过程

2015-02-08 22:45:21 8368 2

原创 GroovyShell的初始化过程

GroovyShell的初始化 public GroovyShell(CompilerConfiguration config) { this(new Binding(), config); } class Binding is subclass of GroovyObjectSupport public GroovyObjectSupport() {

2015-02-05 18:33:29 3718

原创 CEF3 源码的下载和编译

http://src.chromium.org/svn/branches/TortoiseSVN , 可能需要设置代理, 否则unknown hostRepository Browser 输入网址,左边列表出所有branch, 选某个branch, checkout...Windows 下面有个\tools\win\ChromeD

2015-02-05 11:08:38 16534 3

原创 最简单groovy程序的执行堆栈

test.groovydef task = { println "hi source code" } task.call()stack,留个映象吧PrintStream是 java.io.* 了

2015-02-04 11:17:14 1389

原创 Groovy的调试环境

除了基本的把官网down下来的source code加到工程中外,还需要两件事一是从http://forge.ow2.org/projects/asm/ 上下载最新的asm jar包,解决了import org.objectweb.asm.Opcodes 等编不过的问题这个时候java compile在Elipse里面还是有很多红叉主要纠结在 groovyjarjarantlr 下的类

2015-02-03 22:29:22 5164

原创 Groovy中closure的delegate

hello.groovyimport groovy.lang.ClosureClosure clos = { println "Hello closure"}println "delegate:" + clos.delegate.class.name;println "owner: " + clos.owner.class.name;clos.call();println "=

2015-01-19 12:57:41 2706

原创 Gradle源码八续

补充上次的runBuildInProcessbuilder() ->new 了一个ServiceRegistryBuilderbuild()->new 一个前文多次提到的DefaultServiceRegistry, 返回,同时把传入的GlobalScopeServices类attach了上去找configure方法的时候,会找到例如void configure(ServiceRegis

2015-01-13 21:39:51 1000 1

原创 Gradle源码入门八

启动的时候,调用了launcher.cli.BuildActionsFactory.java private Runnable runBuildInProcess(StartParameter startParameter, DaemonParameters daemonParameters, ServiceRegistry loggingServices) {

2015-01-12 18:35:42 1201

原创 Reflect中的Constructor

package com.example.test;import java.lang.reflect.Constructor;public class myCtor { private String s1, s2; public myCtor(String s1, String s2){ this.s1 = s1; this.s2 = s2; } public myCto

2015-01-12 17:16:26 876

原创 Gradle原码入门七

今天分析了Object org.gradle.internal.service.DefaultServiceRegistry.doGet(Type serviceType) 函数 private Object doGet(Type serviceType) throws IllegalArgumentException { synchronized (

2015-01-11 00:08:57 2317

原创 ParameterizedType的作用

public interface ParameterizedType  extends TypesubParam.javapackage com.example.test;public class subParam extends param { public static void main(String[] args) throws Exception{

2015-01-09 18:55:03 23496

原创 gradle源码入门学习六

DefaultServiceRegistry之findProviderMethods private void findProviderMethods(Object target) { Set methods = new HashSet(); for (Class type = target.getClass(); type != Object.class

2015-01-09 09:51:33 1415

原创 Gradle源码入门五

分析DefaultGradleLauncher.javaprivate void doBuildStages(Stage upTo) 函数的第二步 // Evaluate settings script SettingsInternal settings = settingsHandler.findAndLoadSettings(gradle);

2015-01-06 16:42:24 2522

原创 Gradle源码入门四

接三如果我们运行gradle hello  (hello 是一个task) 代码会走到org.gradle.launcher.cli.RunBuildAction,  这个类的run()函数 public void run() { executer.execute( new ExecuteBuildAction(startPar

2015-01-02 18:44:09 1916 1

原创 Gradle源码入门三

本文以在command窗口执行最简单的 gradle -v 为例子说明从上文提到的EntryPoint.java开始,调用该类的doAction实际调用到Main.java  的doAction protected void doAction(String[] args, ExecutionListener listener) { createActionFactory().

2015-01-02 13:49:09 2277

原创 Gradel源码入门二

在org.gradle.launcher.bootstrap  ProcessBootstrap.java中private void runNoExit(String mainClassName, String[] args) throws Exception {//new DefaultModuleRegistry, 做了大量初始化的工作,查找classpath结构 Cl

2014-12-31 16:01:49 1293

原创 Gradle源码一

Gradle执行的关键代码 org.gradle.initialization.DefaultGradleLauncher.java private void doBuildStages(Stage upTo) { // Evaluate init scripts initScriptHandler.executeScripts(gradle);

2014-12-19 15:15:04 4042

原创 Gradle 入门(一)

build.gradle=========================defaultTasks 'loadFile'task testTask  { println "begin without call...."}File[] fileList(String dir){ file(dir).listFiles({file-> file.isFile()} as

2014-12-11 18:27:22 939

原创 Box2D源码编译调试配置

今天下了一个Box2D 2.2.1的包,虽然不是最新的, 但是想学习一下这个物理引擎用cmake-gui.exe转化成VS2008的工程以后,发现只能运行testbed, 不能加断点后来改了两个默认的工程配置,就OK了虽然不知道为甚么默认会把debug禁止掉,但是至少可以编译调试了

2014-06-03 23:16:36 1298

原创 配置LibGdx 1.0

直接在1.0的source的基础上建工程 ,发现少了几个包,找到

2014-05-23 22:46:00 784

原创 Python源码学习十一 一个常用的内存分配函数

void *_PyObject_DebugMallocApi(char id, size_t nbytes){ uchar *p; /* base address of malloc'ed block */ uchar *tail; /* p + 2*SST + nbytes == pointer to tail pad bytes */

2013-12-04 23:25:28 3169

原创 Python源码学习 番外-为方便调试和查看变量而自己写的autoexp.dat

autoexp.dat位于C:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger 目录下,控制了Visual Studio中变量的调试时候的显示方式, 其中预定义了STL中许多类型的显示Python源码中,很多都是PyObject* 类型的变量, 查看起来非常不便,所以自己在autoexp.dat

2013-11-27 23:26:04 1651

原创 Python源码学习十--token的parse

in parsetok.cstatic node * parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret, int *flags) 函数step1 . parser_state * ps = PyParser_New(g, start); --g is static gra

2013-11-10 12:45:17 3082

原创 Python源码学习九,dfa state的初始化

in  graminit.c定义了一些struct, 是理解和实现DFA的关键static dfa dfas[81] = { {256, //d_type "single_input", //char *d_name 0, //d_initial 3, //d_nstates states_0, //state *d_state

2013-11-10 12:21:44 1799

原创 Python源码(八) testbit宏定义

在bitset.h中 ,有这样一个宏定义被广泛用到 testbit#define testbit(ss, ibit) (((ss)[BIT2BYTE(ibit)] & BIT2MASK(ibit)) != 0)#define BIT2BYTE(ibit) ((ibit) / BITSPERBYTE)#define BIT2SHIFT(ibit) ((ibit) % BITSP

2013-11-05 23:37:04 4274

原创 Python源码学习七 .py文件的解释

Python源码太复杂了...今天看了下对.py文件的parse, 云里雾里的py文件是最简单的a = 10print(a)开始分析,堆栈如图把static node *parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret

2013-10-31 22:27:37 1419

原创 Python源码学习(六)-PyCodeObject初探

demo1.pydef f(): c=1 print("Hello")a=9b=5 f();co.pysource = open('demo1.py').read()co = compile(source, 'demo1.py', 'exec')print("type:")print(type(co))print("dir(co)")print(d

2013-10-10 23:33:01 2376

原创 Python源码之初始化(五)-initmain()

初始化执行到initmain()的时候PyImport_GetModuleDict() 返回的是interp->modules, 是一个dict包含了 sys, _codecs, builtins, zipimport等接着PyModule_New("__main__"), 创建一个__main__ module, 并在__main__ module的dict里面加入 __

2013-10-01 11:37:10 2880

原创 Python源码学习(四)-builtins模块的初始化

Module的初始化是从系统预定义的PyModuleDef开始的typedef struct PyModuleDef{ PyModuleDef_Base m_base; const char* m_name; const char* m_doc; Py_ssize_t m_size; PyMethodDef *m_methods; inquiry m_reload;

2013-09-28 15:13:02 6598 1

原创 Python源码学习之初始化(三)-PyDictObject的初始化

先来看它的定义typedef struct _dictobject PyDictObject;struct _dictobject { PyObject_HEAD Py_ssize_t ma_fill; /* # Active + # Dummy */ Py_ssize_t ma_used; /* # Active */ /* The table cont

2013-09-25 23:08:27 1719

原创 Python源码学习之初始化(二)

在初始化中,调用void_Py_ReadyTypes(void){ if (PyType_Ready(&PyType_Type) < 0) Py_FatalError("Can't initialize type type"); if (PyType_Ready(&_PyWeakref_RefType) < 0) Py_FatalError(

2013-09-22 22:38:20 2997

原创 Python源码学习-PyTypeObject

重点学习下一个数据结构PyTypeObject PyType_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "type", /* tp_name */ sizeof(PyHeapTypeObject),

2013-09-21 13:49:57 2294

原创 Python源码入门学习心得-初始化(一)

有点杂...林乱记了几个点,以后整理,主要是一些基本的数据结构Build好python的源码以后,直接debug运行,python就对进入 main.cint Py_Main(int argc, wchar_t **argv)完成一系列的初始化操作.================================================PyObjec

2013-09-20 16:08:34 2617

原创 Django的TemplateResponse

def my_render_callback(response): return responsefrom django.template.response import TemplateResponsedef my_templateresponse(request): response = TemplateResponse(request, 'template.html', {})

2013-09-15 22:34:52 3791

Hana CDS Reference

HANA Core Data Service HANA Core Data Service HANA Core Data Service HANA Core Data Service

2018-11-20

JQuery Novice to Ninja

JQuery Novice to Ninja

2016-07-29

Addison.Wesley.Essential.Windows.Presentation.Foundation.Apr.2007.pdf

介绍wpf入门书籍,欢迎评论

2007-05-31

Addison.Wesley.Effective.C.Sharp.50.Specific.Ways.to.Improve.Your.C.Sharp.eBook-LiB

Addison.Wesley.Effective.C.Sharp.50.Specific.Ways.to.Improve.Your.C.Sharp.eBook-LiB

2007-05-07

[代码大全(第二版)].Microsoft.Press.-.2003.-.Code.Complete.Second.Edition

[代码大全(第二版)].Microsoft.Press.-.2003.-.Code.Complete.Second.Edition

2007-05-07

Addison Wesley - Beyond the C++ Standard Library - An Introduction to Boost (2005)

Addison Wesley - Beyond the C++ Standard Library - An Introduction to Boost (2005)

2007-05-02

空空如也

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

TA关注的人

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