09 2016 档案
摘要:AsyncContext理解 Servlet 3.0(JSR315)定义了Servlet/Filter的异步特性规范. 怎么理解"异步Servlet/Filter"及其使用情景? Servlet3.0以前 流程: 1. 容器初始化ServletRequest与ServletResponse对象. 2
阅读全文
摘要:Servlet 3.1 新特性详解 参考: "IBM developerworks: Servlet 3.0 新特性详解" "开涛的博客: Servlet3.1规范(最终版)" 关键特性 Asynchronization(异步支持): 通过AsyncContext另起异步线程处理业务逻辑, 不再阻塞
阅读全文
摘要:终于实现了go与java互用的AES算法实现。基于go可以编译windows与linux下的命令行工具,十分方便。 Java源码 Go源码 使用go可以编译Windows与Linux下的可执行工具。
阅读全文
摘要:针对三种Base64实现: * 自已实现的 * JDK8的java.util.Base64 * apache-common的org.apache.commons.codec.binary.Base64 测试结果: t2-t1:7871 #自己实现的t3-t2:2820 #JDK8自带的t4-t3:2
阅读全文
摘要:准备工作 1. 假设集群: 选一台作管理机 注意 : ceph集群引用hostname,而非ip. 1. 安装用户 注意 : 建议不要使用"ceph",因为"apt install ceph"需要使用ceph. 用root最省事 ^_^ 测试用户 完成后记得将/root/.ssh/id_rsa从te
阅读全文
摘要:问题: 访问异常 错误日志 dmesg信息 core dump设置 默认Worker进程用户nobody:nogroup,无法写coredump. 需在nginx.conf配置: 执行"sbin/nginx s reload"重新加载配置。 core dump分析 使用readelf工具 core
阅读全文
摘要:前面的哪些话 关于Nginx模块开发的博客资料,网上很多,很多。但是,每篇博客都只提要点,无法"step by step"照着做,对于初次接触Nginx开发的同学,只能像只盲目的蚂蚁瞎燥急!该篇文章没有太多技术深度,只是一步一步说明白Nginx模块的开发过程。 开发环境搭建 工欲善其事,必先利其器。
阅读全文
摘要:学习Golang书籍&资料: 1. The Go Programming Language Specification: http://golang.org/ref/spec 2. How to Write Go Code: http://golang.org/doc/code.html 3. Effective Go: http://golang.org/doc/effective_go.ht...
阅读全文
摘要:C开发的IDE很多,为什么使用Eclipse?原因: 1. 历史原因:使用eclipse时间长,比较熟悉。 2. 功能原因:使用eclipse查看源码,可以在各个函数与头文件间直接跳转。这是所谓号称“最牛IDE”的CB没有的。 安装gcc apt-get install build-essesials 安装JAVA apt-get install oracle-jdk8-install...
阅读全文
摘要:tail [OPTION]... [FILE]... -c, --bytes=K output the last K bytes; alternatively, use -c +K to output bytes starting with the Kth of each file -f, --fo
阅读全文
摘要:在Java中使用Rhino, 能让你使用类似Groovy, ECMAScript...等等之类的不同动态脚本语言, 其中值得推荐的是ECMAScript, 它是Rhino的默认实现, 同时也在JDK1.6中集成了.使用ScriptEngine的时候, 还有二个接口, 看似不相关, 却是非常有用. 一
阅读全文
摘要:使用tail -F收集日志时,经常报出file truncated, 导致日志又重新读取.tail: `test.out' has appeared; following end of new file1234tail: test.out: file truncated以前没注意, 后来查询资料,说
阅读全文
摘要:结果:used time:53574684used time:1800077620used time:12563690可见MappedByteBuffer读写数据是最快的, 其次是FileChannel, 再其次就是RandomAccessFile.public class BufferedCach
阅读全文
摘要:使用nio的MappedByteBuffer映射内存, 在最后执行File.delete()方法的时候, 返回false, 即文件没有被删除. 原因是MappedByteBuffer在内存中也会创建文件的一个句柄, 所以必须先释放MapppedByteBuffer之后才能执行文件的删除操作.如果使用
阅读全文
摘要:今天又中彩了, 原本很简单的多线程程序, 蓦然间冒了个"java.lang.IllegalMonitorStateException" , 杀了个措手不及. 一直纳闷, 为什么为什么? 查资料说该异常由于对象未获取得到Lock就试图操作Lock. 再细细源码, 原来不不小将lock.lock()写错
阅读全文
摘要:JDK5后建议使用ExecutorService与Excutors来创建与管理线程池, 不再建议直接使用Thread. 开始不明白原因, 今天知道结果了:使用Thread.currnetThread.join()后,线程卡着无法退出, 事实二个子线程已经完成了. 使用这个方法是等待子线程完成后再自行
阅读全文
摘要:NIO可谓陈词旧调,不值一提. 但之前都是泛泛而谈, 现在深入应用才知道秘诀所在. 对于SocketChannel有read()与write(),但由于"非阻塞IO"本质, 这二个方法的返回值提示其字符数目. 说白点, 就是你得有个措施解决可能一次不能完成的操作. 否则, 你在服务端的数据会莫名其妙
阅读全文
摘要:A left join B, 这个B会连到A. 如<A1,B>, <A2,B>,在处理第一条记录的时候将B.clear(),则第二条记录的B是[]空的这是自定义UDF函数必须注意的, 简单地说: 不要去操作参数. 让框架去负责.
阅读全文
摘要:XStream将Java对象序列为XML, 如果对象属性带有下划线,输出到XML时会转成"__"双下划. 网上很多资料说是Bug, XStream开发的大神没有哪么笨吧? 查了一下源码.public static void main(String[] args) {XStream xs = new
阅读全文
摘要:mysqlimport是MySQL导入数据的工具,高效易用. 但掌握不透彻就会有一些变态事情.mysqlimport --host='laswebapp.mdb.game.yy.com' --port='3306' --user='loganalyse' --password='HARu5OHutF
阅读全文
摘要:迭代器与生成器的区别: 1. 迭代器由Class对象创建. 生成器由包含yield表达的Function对象或者Generator Expression创建. 2. 迭代器的原理: (1)由Iterable.__iter__()返回Iterator. (2)由Iterator.__next__()返
阅读全文
摘要:参数的类型: 函数的参数有2种类型: 1. 函数定义时用于接收值的形式参数Parameters. 2. 函数调用时用于传递值的实际参数Arguments. 参数的传递: 传递方式有2种: 1. 值传递: 将实参的值复制一份给形参, 不管此值是原始值, 指针值还是堆对象值. 2. 引用传递: 将形参与
阅读全文
摘要:perl -nla -F/\t/ -e"...", 其中-n: while(<>){...}-l: chomp-a: autosplit-F: 与a结合的分隔模式-e: 执行eC:\Users\jason>perl -nla -F/\t/ -e "BEGIN{our $cnt=0;print 'st
阅读全文
摘要:北京_张华(28620211) 2014/1/27 星期一 11:10:57传统的网络是通过STP协议来避免交换机在二层形成环路,但是对于虚拟交换机,因为有东西向的流量,故将bridge_stp设成off北京_张华(28620211) 2014/1/27 星期一 11:16:29
阅读全文
摘要:netfilter/iptables概述: netfilter/iptables是Linux内核防火墙架构,由netfilter实现功能,由iptables提供接口. iptables有2个关键概念:表与链. 表的划分依据是数据包的操作. 链的划分依据是流程的阶段. iptables包括4张表与5条
阅读全文
摘要:1. 根据命令生成md5做为文件名保存当前进程的pid2. 使用exec执行命令3. 如果再次执行, 使用ps -p检测上次pid是否有效, 如果是则exit 200.否则重复1.hadoop@ubuntu102:~$ cat guard#!/bin/bashdeclare fpid=/tmp/$(
阅读全文
摘要:usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -B : don't write .p
阅读全文
摘要:执行top会显示Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stMem: 2044500k total, 739604k used, 1304896k free, 15880k buffersSwap: 1
阅读全文
摘要:原理:JDK的nio包中FileLock实现类似Linux fcntl的文件锁, 可使文件被进程互斥访问. 借助此功能, 可以实现强大的Java进程互斥锁, 从而在应用层面保证同一时间只有惟一的Jar应用进程在运行! 避免某些因素导致jar重复执行, 多个进程产生竞争,破坏业务数据. (当然, 你可
阅读全文
摘要:在java.net包描述中, 简要说明了一些关键的接口. 其中负责networking identifiers的是Addresses. 这个类的具体实现类是InetAddress, 底层封装了Inet4Address与Inet6Address的异同, 可以看成一个Facade工具类. 复制代码 在O
阅读全文
摘要:import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.lang.reflect.Fiel
阅读全文
摘要:以下命令以root用户运行:#cd /tmp/#wget http://redis.googlecode.com/files/redis-2.6.11.tar.gz#tar xzf redis-2.6.11.tar.gz#cd redis-2.6.11#make#make install#cd ut
阅读全文
摘要:以下命令以root用户运行:#sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10#echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dis
阅读全文
摘要:以下命令以root用户运行:#echo 'deb http://www.rabbitmq.com/debian/ testing main' >> /etc/apt/sources.list#cd /tmp#wget http://www.rabbitmq.com/rabbitmq-signing-
阅读全文
摘要:openstack@openstack:~$ echo "abc" | shasum03cfd743661f07975fa2f1220c5194cbaff48451 -而使用Java实现SHA1输出:a9993e364706816aba3e25717850c26c9cd0d89d相同算法, 居然结果
阅读全文
摘要:>安装Nova1. 安装# apt-get install nova-novncproxy novnc nova-api \ nova-ajax-console-proxy nova-cert nova-conductor \ nova-consoleauth nova-doc nova-sched
阅读全文
摘要:>安装Glance1. 安装# apt-get install glance python-glanceclient删除sqlite文件rm -f /var/lib/glance/glance.sqlite 2. 创建dbcreate database glance;grant all privil
阅读全文
摘要:1. 安装:# apt-get install memcached libapache2-mod-wsgi openstack-dashboard!Note for Ubuntu users# apt-get remove --purge openstack-dashboard-ubuntu-the
阅读全文
摘要:>安装Keystone1. 安装# apt-get install keystone2. 创建dbcreate database keystone;grant all privileges on keystone.* to 'keystone'@'%' identified by 'openstac
阅读全文
摘要:> OVS安装:1. Install the Open vSwitch plug-in and its dependencies:# apt-get install \neutron-plugin-openvswitch-agent \openvswitch-datapath-dkms \ 2. R
阅读全文
摘要:>安装准备1. 安装MySQL# apt-get install python-mysqldb mysql-server将/etc/mysql/my.cnf修改bind-address为"0.0.0.0",否则无法访问.[mysqld]...bind-address = 192.168.0.10然后
阅读全文
摘要:1. 安装(1)Install Networking services on a dedicated network node# apt-get install neutron-server neutron-dhcp-agent neutron-plugin-openvswitch-agent不需要
阅读全文
摘要:OpenStack提纲: 初识OpenStack, 千头万绪, 不知所措. 逐渐剥茧抽丝, 厘清思路...一. OpenStack逻辑概念: 管理虚拟机及其网络的平台软件.二. OpenStack软件体系: <参见DOCS>三. OpenStack硬件集群: OpenStack集群的机器分为: Co
阅读全文
摘要:1. 简单说明:在JSP 2.0后, 你不再需要大刀阔斧地定义一堆TagSupport或BodyTagSupport, 使用JSP Tag Files技术可以实现功能强大的页面模板技术. 在这里抛砖引玉, 结合项目开发, 简单介绍Tag Files技术的应用. 至于详细教程与资料, 请大家参考Jav
阅读全文
摘要:HttpURLConnection的变态事: Keep-Alive JDK自带的HttpURLConnection默认启动Keep-Alive, 使用后的HttpURLConnection会放入池里重用. 相关描述: What does the current JDK do for Keep-Ali
阅读全文
摘要:介绍UTF-8编码规则 复制代码 源码实现: 复制代码 在本机测试, JDK原生API需要创建CharBuffer,性能明显慢了25%以上. 复制代码
阅读全文
摘要:三种进程用户的简单解释:三种用户/组ID:uid/gid: 实际用户/组IDeuid/egid: 有效用户/组ID, 进程执行某个应用的用户/组ID.suid/sgid: 设置用户/组ID, 应用所属用户/组ID. 几者关系:进程执行应用时根据euid/egid. 而euid/egid设置规则:(e
阅读全文
摘要:struct是变量的集合 interface是方法的集合 struct与interface都支持匿名字段, 换言之, 支持组合实现继承. golang的struct与C++的class一样, 只能声明变量, 不能初始化. golang的错误机制就是借且多值返回将错误作为结果返回. 所以关键API调用
阅读全文
摘要:golang反射来自Go AST(Abstract Syntax Tree). reflect操作更多像traverse AST. t := reflect.TypeOf(obj) 使用TypeOf()获取类型信息. v := reflect.ValueOf(obj) 使用ValueOf获取值信息
阅读全文
摘要:在golang中空的interface即interface{}可以看作任意类型, 即C中的void *. 对interface{}进行类型测试有2种语法: 1. Comma-ok断言: value, ok = element.(T), 其中T是具体类型. 2. Switch测试: switch el
阅读全文
摘要:golang的每种类型, 凡是用type定义的类型, 其类型名既是其构造函数,也是其转换函数. 其中,构造函数后眼{...}, 转换函数后跟(...)
阅读全文
摘要:http://www.100hack.com/2014/04/14/golang%E4%B8%AD%E7%9A%84des%E5%8A%A0%E5%AF%86ecb%E6%A8%A1%E5%BC%8F/ henry(454213807) 0:26:14继续下午问的 ECB 问题. 在 go 的 is
阅读全文
摘要:golang中关键API的调用都会在最后返回err(golang多值返回). 调用者可以选择处理, 或者不处理该err, 或原装返回给上一层的调用者. golang中的err是error类型, type error interface{ Error() string }
阅读全文
摘要:golang中什么样的类型可以赋值nil? 类型文档中有注定"uninitialized value is nil"的类型都可以赋值nil. golang的基本类型不能赋值nil: bool int uint float complex byte rune string struct golang的
阅读全文
摘要:Semicolons The formal grammar uses semicolons ";" as terminators in a number of productions. Go programs may omit most of these semicolons using the f
阅读全文
摘要:Go support for Android David Crawshaw June 2014 Abstract We propose to introduce Go support for the Android platform. The focus will be on supporting
阅读全文
摘要:Introducation (1)How to organize go code (2)How to develope go package (3)How to use go tool How to orgnize go code: workspace: (1)src: one pakcage pe
阅读全文
摘要:Golang的iota的特性: 1. iota在每个ConstBlock中自动归0. 2. iota在每个ConstSpec后自动增1. 换言之: iota是ConstBlock中ConstSpec的下标. 例如: const ( item0 = 1 item1 = 1 item2 = 1 item
阅读全文
摘要:详见The Go Programming Language Specification中Expressions一章中未提及此表达式, 故其不支持. 再强调一次, GO不支持条件表达式 condition ? espr1 : expr2
阅读全文
摘要:Golang的goroutine是非抢占式的, 令人相当蛋疼! 有痛不能呻吟...只能配合channel在各goroutine之间传递信号来实现抢占式, 而这形成了golang最灵活与最具性能的核心. 相信, 彩虹总在风雨后... 学会process, thread, routine之间的配合与取舍
阅读全文
摘要:1. 用于数组: 表示长度与元素个数相同. 在golang中数组的长度是类型的一部分,不同长度,不同类型. 2. 用于参数: 用于形参表示可变参数. 用于实参表示直接传递. 具体解释参数见官方文档: 传递可变参数时: (1) 如果实参后不跟..., 则在底层创建与形参类型相同的slice,然后将实参
阅读全文
摘要:http://godoc.golangtc.com/doc/faq#inc_dec 简单地说, 在golang中++,--操作是语句而不是表达式. 所以a=b++, return x++之类绝对提示错误. 语句是无法放到表达式的位置 Without pointer arithmetic, the c
阅读全文
摘要:// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE
阅读全文
摘要:要彻底理解new()与make()的区别, 最好从内存模型入手. golang属于c family, 而c程序在unix的内在模型: |低地址|text|data|bss|heap-->|unused|<--stack|env|高地址| 其中: (1)text存储程序主体,即机器指令. (2)dat
阅读全文
摘要:在golang中package是个困惑的概念, 特别是package还可以与folder不同名, 委实让我恶心了一把. 关于golang的package的最佳实践: package is folder. package name is folder name. package path is fol
阅读全文
摘要:slice陷阱,slice底层指向某个array,在赋值后容易导致array长期被引用而无法释放
阅读全文
摘要:之前说到Golang中某些类型可以赋值nil, 某些类型不能赋值nil. 不能赋值nil都是initialized value不为nil的类型, 例如: bool int, intN uint, uintN floatN complexN byte, rune string struct 可以赋值n
阅读全文
摘要:Golang的并发涉及二个概念: goroutine channel goroutine由关键字go创建. channel由关键字chan定义 channel的理解稍难点, 最简单地, 你把它当成Unix中的双向通道Pipe. 1. channel的定义 2. select阻塞 3. 缓存机制: 使
阅读全文
摘要:在golang中, 函数是第一类值(first-class object), 即函数可以赋值与被赋值. 换言之, 函数也可以作为ReceiverType, 定义自己的method. 实例: http.HandleFunc(pattern string, handler func(ResponseWr
阅读全文
摘要:用Golang与perl脚本比较, 初想至多差一倍吧...结果可不是一般的坑爹, 简直就是坑爷了. Perl脚本 #!/bin/bash source /etc/profile; function extractAndZip(){ _debug "$FUNCNAME,$@"; local logFi
阅读全文
摘要:golang写backend之类的应用,还是挺方便的...使用encoding/json包时, 必须注意, 在struct定义的属性必须是exported, 否则不会设置值. 例如:type DRole struct { Id string `json:"id"`}type DataRole str
阅读全文
摘要:1. 在Go中引用C代码很简单, 在 import "C"前用注释引入标准的C代码, 然后使用C.xxx的伪包引用C代码空间的标识符即可. 需要注意, import"C"是伪package,不能与其他package一块定义为import (..."C"...) 2. 在Go中引用C代码必须手工释放C
阅读全文
摘要:1. 使用apt-get -d install 命令下载安装包, 其中-d表示下载不安装. 下载后的deb包放在/var/cache/apt/archives目录 2. 使用dpkg-preconfig xxxx.deb预加载安装包. 3. 使用debconf-show 显示安装包需要填入的选项内容
阅读全文
摘要:ring.Ring 是一个环链. 其Link操作规则是: r.Link(s) => t = r.Next r.Next.Prev = s.Prev s.Prev.Next = r.Next r.Next = s s.Prev = r return t 此规则造成: 1. 如果r,s是不同的环链, 则
阅读全文
摘要:AES/DES加密/解密涉及4个概念:1. Block, 也叫分组, 相应加密/解密的算法. 2. BlockMode, 模式, 相应加密/解密的处理.3. InitalVectory, 初始向量4. Padding, 尾部填充操作如下:1. 调用xxx.NewXXXCipher(key)创建Blo
阅读全文
摘要:1. 在golib下载go-sql-driver/mysql go get github.com/go-sql-driver/mysql 2. 代码引入 import ( "database/sql" "github.com/go-sql-driver/mysql" ) 3. 创建DB? db, e
阅读全文
摘要:RTFM是一个网络语言,意思是:“去读那些他妈的手册”(Read The Fucking Manual),这句话通常用在回复那些只要查阅文件就可以解决,拿出来提问只是浪费别人时间的问题。
阅读全文
摘要:#apt-get install ntpdpkg-reconfigure tzdata --> Asia -->Shuanghai #apt-get install python-mysqldb mysql-serverEdit the /etc/mysql/my.cnf file:[mysqld]
阅读全文
摘要:1. 生成私钥openssl genrsa -out key.pem 20482. 生成证书openssl req -new -x509 -key key.pem -out cert.pem -days 10953. 服务端代码: package main import ( "fmt" "log"
阅读全文
摘要:这个特性很坑爹:@Test public void test() throws ParseException { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); /* lenient为true,容忍处理 */ System.out.
阅读全文
摘要:JVM规范组成: 1. 字节码(ByteCode): 以Class或Interface为基本单位, 具有固定结构. 2. 指令集(InstructionSet): 每个指令用一个字节表示, 最多256条指令, 除却永久留用的指令. 3. 虚拟机(VirtualMachine): 根据字节码, 调用指
阅读全文
摘要:file Protocol Opens a file on a local or network drive. Syntax file:///sDrives[|sFile] Tokens Remarks The file protocol and sDrives parameter can be o
阅读全文
摘要:public class GenericUDAFTopNRow extends AbstractGenericUDAFResolver { @Overridepublic GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters) throws
阅读全文
摘要:使用-Djava.security.policy=xxx.policy启动安全策略, 你会想到codesource的配置如此蛋疼么? grant CodeBase "file:////D:/SourceDemo/demo/src/main/Friend.jar"{ permission java.i
阅读全文
摘要:AccessController.checkPermission()检测模型: 从VM Stack的current stack frame起逐个检测stack frome所指class的protectedDomain是否包含Permission. (1)若stack frame所指class的pro
阅读全文
摘要:注意: 如果改写finalize()方法,PhantomReference将不再生效!https://weblogs.java.net/blog/enicholas/archive/2006/05/understanding_w.html Understanding Weak References
阅读全文
摘要:参考: cannot load JSTL taglib within embedded Jetty server:http://stackoverflow.com/questions/2151075/cannot-load-jstl-taglib-within-embedded-jetty-serv
阅读全文
摘要:理解1: 左值和右值针对等号而言, 等号左边称为左值, 等号右连称为右值. 理解2: 左值和右值针对表达式而言, 表达式结束后依然存在的持久对象称为左值, 表达式结束后不存在的持久对象称为右值. 理解3: 左值和右值针对地址而言, 拥有地址的对象称为左值, 没有地址的对象称为右值. C++11的值分
阅读全文
摘要:1. 安装apache2: apt-get install apache2 2. 配置用户目录 在/etc/apache2/apache2.conf中配置用户目录 <Directory /home/zuyang/www> #复制默认目录/var/www的配置即可 </Directory> 3. 配置
阅读全文
摘要:序列: 元素之类有序的类型. Python 2.x支持6种内置序列: list, tuple, string, ustring, buffer, xrange (1)序列的定义: list: [] tuple: () string: ', ", ''' 或""" ustring: u', u", u
阅读全文
摘要:可以这样理解: range()立即执行,返回结果 xrange()延迟执行,需要时再返回结果.
阅读全文
摘要:python字串声明: 单引('), 双引("), 三引(''' 或 """"). python字串前缀: r表示原生字串, 字串内容: (1)不能包含声明符(除非转义,但转义符也会作为字串内容.) (2)不能奇数转义符结尾(实质也是避免最后声明符转义) 简言之, 原生字串的写法一般用于正则表达式.
阅读全文
摘要:python可重用代码库的组织依赖二个概念: 1. 模块 module 2. 函数 function 没有Java哪么灵活的包概念, 比较偏近C++的namespace.
阅读全文
摘要:对于对象obj: str()生成的字串是给人看的 repr()生成的字串是给解析器看的 ``与repr()等义. 最直接就是: obj=eval(repr(obj))
阅读全文
摘要:input(): 要求输入合法的python表达式, 例如字串需要加"", 四则运算会自动计算. raw_input():所有输入视作字串 >>> val=input("input your expression: ")input your expression: "what is your nam
阅读全文
摘要:在Python语言中提供了类似于C++的运算符重在功能:一下为Python运算符重在调用的方法如下:Method Overloads Call for__init__ 构造函数 X=Class()__del__ 析构函数 对象销毁__add__ + X+Y,X+=Y__or__ | X|Y,X|=Y
阅读全文
摘要:可以使用setattr(), getattr(), hasattr()动态对实例进行操作. 相当于Java中的反射机制, 或者更确切地, 像JavaScript中属性操作. 具体属性: __dict__: 返回内部属性的字典 其它有用函数: callable(): 判断属性是可调用,即方法 isin
阅读全文
摘要:python类的成员前加双下划线"__", 则被看作"私有"成员. 实例不能简单地通过<instance>.<name>来访问. 但python的"私有"成员也不是不可访问的, 只是python玩了个"名称变化术": "尽管双下划线有些奇怪,但是看起来像是其他语言中的标准的私有方法. 真正发生的事情
阅读全文
摘要:python提供了支持函数式编程的简单机制: 1. map函数 2. filter函数 3. reduce函数. 典型的M/R计算模型. 但还是有点简单...
阅读全文
摘要:<python基础教程>第7章说python中的类定义: 1. 要么声明__metaclass__=type 2. 要么继承object. 但是直接定义下类, 也没报错: >>> class Person:... def setName(self,name):... self.name=name..
阅读全文
摘要:python很多特性与JavaScript是相似甚至相同的: 1. 无类型 2. 函数亦对象 .... 自然: python也允许函数嵌套, 这与JavaScript中函数闭包的作用一样....
阅读全文
摘要:python中除了if...elif...else..还有while...else, for...else..., try...except...else...finally... 不管哪种else, 其语义都是: 语句块的结尾, 如果语句块中间发生break,continue, return,或者
阅读全文
摘要:1. 参数传递有2种方式: 按位置传递, 按关键字传递. 2. 形参可以定义默认值, 可以用*收集元组, 可以用**收集字典. 其中, (1)指定默认值的形参可不接收实参. (2)指定*的形参用元组收集剩余按位置传递的实参. (3)指定**的形参用字典收集剩余按关键字传递的实参. 同时指定*, **
阅读全文
摘要:程序设计语言: 量的类型: 1. 直接量 2. 常量 3. 变量 量的因素: 1. 存储类别 2. 数据类型 3. 作用域 4. 生存期
阅读全文
摘要:python之super()函数 python的构造器奇特, 使用魔方. 构造器内对基类对象的初始化同样也很奇特, 奇特到没有半点优雅! 在构造器中使用super(class, instance)返回super对象,然后再调用某个方法, 这样super对象就自动将继承链上所有的super实例迭代地调
阅读全文
摘要:python, javascript中域与属性是二个不同的概念, 域就是变量, 而属性则是符合某些约束, 例如getter, setter...等的特殊"变量". python中使用property()函数定义属性, 该函数接收4个参数: getter, setter, deler, descrip
阅读全文
摘要:python的OOP的方法有3种: 1. 实例方法: 接收self参数 2. 类方法: 接收cls参数, 并要用classmethod()注册或者@classmethod注解. 3. 静态方法: 不接收self, cls, 并要用staticmethod()注册或者@staticmethod注解. 实在想不明白静态方法有什么应用? 使用某个未绑定函数就可以取代了, 为什么还...
阅读全文
摘要:Java的哪些事 Java学习分2个方面: Java语法与Java类库 Java: A simple, object-oriented, network-savvy, interpeted, robust, secure, architecture-neutral, portable, high-p
阅读全文
摘要:学习python书籍&资料: 1. Python v2.7.5 documentation 2. [Python参考手册(第4版)].(美)比兹利.扫描版.pdf 3. [Python技术手册(第2版)].(美)马特利.扫描版.pdf 4. Python标准库.pdf 5. [Python.Unix
阅读全文
摘要:学习Golang书籍&资料: 1. The Go Programming Language Specification: http://golang.org/ref/spec 2. How to Write Go Code: http://golang.org/doc/code.html 3. Effective Go: http://golang.org/doc/effective_go.ht...
阅读全文
摘要:理解HTTP配置 相关数据结构 先明白Nginx下述数据结构,再理解 HTTP配置的解析与合并过程 ngx_module_t "官方API" ngx_http_module_t "官方API" ngx_command_t "官方API" HTTP配置的内存布局 HTTP配置的解析 主循环= 配置文件
阅读全文
摘要:对着代码说话: 在C中声明struct, enum, union时需要在类型前面加上这些关键字修改,否则报错。而C++则不用。 在C中使用typedef定义类型,可以省略struct,union,enum关键字。而这也是nginx的习惯用法,例如:
阅读全文
摘要:自定义模块的编译流程 add module参数 configure使用 add module参数指定添加模块目录. config脚本 由 add module指定的目录保存为$ngx addon dir环境变量. 其他环境变量由$ngx addon dir下的config脚本提供. 局部环境变量用小
阅读全文
摘要:请求报文 依次是: 1. 请求行: 2. 请求头部,允许多行: 3. 空行: 4. 请求数据 响应报文 依次是: 1. 状态行: 2. 响应头部,允许多行: 3. 空行: 4. 响应数据 差异比较 1. 请求报文与响应报文格式类似.区别在于请求行与状态行. 二者都有3段内空, 请求行以结尾, 状态行
阅读全文