Digest of Effective C++
目录
搬运自 C++11 FAQ: Inline namespace。
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
基本就是 java @Override 的作用:
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
我们在 C++ Exception Handling / auto_ptr 里介绍了 RAII wrapper for pointers: auto_ptr,但是它在 C++11 又被 deprecated 了……对应的 replacement 是 unique_ptr。顺带还推出了 shared_ptr 和 w...
整理自 C++ Primer, 5th Edition
return
/ Empty argument list
整理自 C++ Primer, 5th Edition & Thinking in C++
range for 就是 java 的 for each loop,C++ 里有三种形式:
整理自 C++ Primer, 5th Edition
整理自 C++ Primer, 5th Edition
整理自:
Specifiers
整理自 C++ Primer, 5th Edition
2021-01-03 更新:大一统至 Single Dispatch in Java and Python
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 2 & C++ Primer, 5th Edition
整理自:
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 2
具体见 Traits: a new and useful template technique。这里只说下感想:
typename
整理自:Thinking in C++, Volume 2
用法有点奇葩的一个 operator。总结自 What does operator void* () mean?。
整理自:Thinking in C++, Volume 2 & C++ Primer, 5th Edition
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 2
整理自:Thinking in C++, Volume 2
按 Difference between local scope and function scope 的说法:
整理自:Thinking in C++, Volume 1 & Volume 2
整理自:Thinking in C++
整理自:Thinking in C++
2024-08-26 后记:已经不需要太 care 了,现在已经很少用 new 了
整理自:Thinking in C++
operator=
/ shallow copy vs. deep copy / reference counting / copy on write
整理自:Thinking in C++
整理自:Thinking in C++
整理自:Thinking in C++
整理自:Thinking in C++
整理自:Thinking in C++
整理自:Thinking in C++
整理自:Thinking in C++
整理自:Thinking in C++
整理自:Thinking in C++
整理自 Thinking in C++
整理自 Thinking in C++
问题源自:Thinking in C++
整理自 Thinking in C++
在 2010-09-26 原作基础上修改。日期改到 2015-03-26 使本文进入 C++ 文章群落,方便查阅。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
长久以来我就有这么一种理解:int * 其实可以做一种新类型。因为在函数的参数列表里,你把 int * 看做是一种新类型明显更容易理解些。但是我又不得不注意以下这个事实:
整理自 Thinking in C++。没啥特别好说的。
整理自 Thinking in C++。
整理自 Thinking in C++ 和 MSDN: Casting Operators。
整理自:
整理自 Thinking in C++。
老生常谈。整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。
Prerequisite: Complemented Lattice
References
引子:Pre-ordering on Monoids
Overiew
1. Relation (Mathmatics)
本来挺简单的概念,但是因为英语的用词非常地迷惑,所以搞得有点难懂。
这俩是有区别的,我一直没有注意直到我发现公式上的区别。我没有注意的原因应该是 regression 没有显式使用 cross entropy loss,而 classification 的 cross entropy loss 是对原生 cross entropy 的扩展。
我真的是出离愤怒。我不知道最开始把 convolution 看做 dot product 的人是怎么想的!有 convolution 的公式不用,非要用这么蹩脚的 intuition?而且明显 convolution 和 Hadamard product 的关系更大一点呢,咋没见人提?
1. Sampling from a Probability Distribution
写这篇主要是因为我看到有些 measure 的定义用到了 $\delta$-ring.
合着按着我自己的思路才是最好理解的。PCA 的整个过程其实就是:寻找一个基变换 (change of basis),使得新坐标系内的 axes 的功效可以量化。这个量化的意思是,如果新坐标系内有 x’-axis 和 y’-axis,我可以明确地写出 $\frac{\operatorname{effect}(\te...
Two brilliant posts on this sampling technique:
1. Scaling
Definition
Homeomorphism
这些个术语总是见到,也总是记不住……
这次我们从结论出发反推。
Given a eigenvalue $\lambda$ of matrix $A$, the null space (kernel) of $A - \lambda I$ is called the eigenspace of $A$ associated with $\lambda$.
给定方阵 $A$,如果 $\exists \lambda, \mathbf{v} \neq \mathbf{0}$ 满足 $A \mathbf{v} = \lambda \mathbf{v}$,我们称 $\lambda$ 是 $A$ 的一个 eigenvalue,$\mathbf{v}$ 是 $A$ 对应 $\l...
Hadamard Product
参考:
假定有一个 proper cone $K$,它定义了一个 generalized inequality 关系 $\preceq_K$。
Linear Independence / Affine Independence
Chapters
其实只是 Terence Tao 大神的定义写得稍微有一点绕,整体还是好理解的。
虽然 topology 的定义已经摆脱了 metric,但是这并不妨碍我们从 topology 的角度去研究 metric,这并不存在矛盾。
Topology / Topological Space
Quoted from Analysis II by Victor Guillemin, MIT and Topology for dummies by Damian Giaouris, Newcastle University with modification.
注意这里反复使用了 $\nabla$,但要注意的是,$\nabla$ 并不是一个有统一定义的 operator,它只是一个符号而已,在不同的高阶 operator 定义中有不同的解读和记法。具体可以参见 Wikipedia: Del
Gradient Field: a better way to interpret
Vector Space
harmonic 这个词的意思太多了,比如在 periodic signals 里翻译成 “谐波”。而 Harmonic Function 的翻译是 “调和函数”
P.S. 讲了这么多,其实 closed-form expression 就是 “解析解”,analytic expression。这两者其实有微妙的差别,但大体上你理解成是同一事物是 OK 的。而且你还能见到 “analytic closed-form solution” 这种表达方式,真的不需要 care 太...
知道了 Radial basis function 和 kernel function 之后,Radial basis function kernel 就好理解了:它是一个 kernel function,然后属于 radial basis function 大类。
$$ \newcommand{\icol}[1]{ \bigl[ \begin{smallmatrix} #1 \end{smallmatrix} \bigr] }
Original post is The Gradient and Directional Derivative from Mathematics School, Oregon State University. Here I thank the author(s) sincerely.
1. Introduction to Information Theory
Greatest thanks to 3Blue1Brown!
Course site: Applied Nonparametric and Modern Statistics
在查 non-parametric tests 时,Wikipedia 上提到了 Non-parametric models,于是干脆就记录一下。参考 Wikipedia: Parametric model。
参考资料:
看 wikipedia 什么的都不好使,还是得看书 Handbook of Parametric and Nonparametric Statistical Procedures,写得非常清楚。
概念挺简单,主要是生单词太多了,mark 一下。
1. Expectation Operator Rules
总结自 Coursera lecture Statistical Inference section 07 Asymptotics。新的 slide 省略了部分推导过程,最好同时参考下旧的 slide。
参考:
总结自 Coursera lecture Statistical Inference section 03 Conditional probability。
总结自 Coursera lecture Statistical Inference section 02 Probability。
0. Symbols
0. Dictionary
confound 的意思是:
摘自 What are the differences among different study designs, and what are the relative advantages of each?。做目录并排版。 1. Two Classic Types of Studies The two ...
感谢 良田围 网友在 偏导数有什么用 问题上的精彩回复,以下全文摘抄,仅加音标并稍微排版。
斜率(Slope)
我觉得用 Java 学 design pattern 有个问题就是:总是要有 interface / abstract class 介入,搞得整个 class hierarchy 非常复杂。其实我用 duck typing 的思路来看,Adapter、Proxy、Decorator 这三个模式的基本结构是一样的,...
我们在 PPP 里其实有讲 visitor pattern,但最近在读的 Crafting Interpreters 提供了一个绝妙的解读,虽然只能适用于 vanilla 的 visitor pattern,但还是值得记录下。
1. Check installed Open JDK
ArrayList: 非线程安全 LinkedList: 非线程安全
系统大了就要拆分,比如豆瓣读书、豆瓣电影和豆瓣音乐。
局部内部类对外部变量的访问权限
Martin Fowler 的 Inversion of Control Containers and the Dependency Injection pattern 中提到的。
<context-param> <param-name>ibatisResourceCharset</param-name> <param-value>UTF-8</param-value> </context-param> <...
见 stackoverflow: Why is Java’s SimpleDateFormat not thread-safe?
```java Boolean b = null; boolean b2 = b;
ScheduledExecutorService.scheduleAtFixedRate() 内部任务发生异常时,不会继续定时运行
这本书 的副标题是 “By Example”,所以整书适合一口气读完,也不用每个例子都敲一遍,顺着作者思路走完一遍就可以了。
class Field implements Cloneable { public String name; @Override protected Object clone() { Field f; try { f = (Field) super.clone(...
匹配原则
0. 代码
首先明确一点,同步方法本质上也是一个同步控制块(仅针对于锁定 this 的情况,如果同步控制块锁定的不是 this,那么它是不能直接改写为同步方法的),区别在于同步方法的粒度是整个方法,而同步控制块的粒度可以是方法的一部分。
public class Runner implements Runnable { @Override public void run() { for(int i = 0; i < 100; i++) { System.out.println("Runner runs to -...
虽说 Thread 类提供了 stop() 和 suspend() 方法,但这两种方法过于粗暴,如果线程占用了一些资源(如打开了一个文件,建立了一个数据库连接什么的),直接 stop() 或是 suspend() 是会产生问题的。
RT。自己试试就好了,废话不多说了。
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { doGet(req, resp); }
关于动态代理,一般的代码结构为:一个业务接口、一个业务接口的实现、一个自定义的 InvocationHandler 实现和 main 类,如下:
在其所在的块内 (如方法 body、if () {...} 等),throw 语句可以屏蔽其后的语句,即在块内,该 throw 语句后面不能再写其他语句;但在块之外,还是可以写其他的语句的。如:
当有继承发生时,会伴随着重载、覆写 (包括接口方法的实现)、构造器的重写等行为。此时,如果基类或是接口的方法存在异常声明,那么导出类或是接口的实现类的对应方法该如何声明异常?同时对这些方法的调用该如何捕捉异常?下面就这 2 个问题进行探讨,你会看到,针对覆写和构造器的重写是 2 种完全不同的处理方式 (针对重载则...
finally 总是会被执行,即使 try 中有 break、continue、return,如:
try 块里有异常抛出时,程序会进入 第一个 异常类型匹配的 catch 块执行,其他的 catch 块不执行。
Iterable 是一个接口,它只有一个方法 iterator(),要求返回一个 Iterator。
Arrays.asList() 这个方法有点特殊,这里记录一下。
类和类之间有 3 种关系:组合、继承和代理 (proxy)。
前面对继承的理解常常用到了这么一用表述:Base 的代码会被复制到 Ext 中。其实这么理解欠妥,看代码:
首先我们明确下 “enclose” 这个单词的逻辑关系:OuterClass encloses InnerClass,所以外部类就是 enclosing class,内部类是 enclosed class。
如果把 {...} 这么一段称为 “域”,那么方法 body 明显是一个域,方法 body 中的 if {} 或是 for {} 之类的也是域。在方法 body 或是方法 body 中其他域里定义的类就是局部内部类。
class Outer { public class Inner { public String getInnerClassName() { return Inner.this.getClass().toString(); // 'Inner' can be omitted here...
内部类的一个重要作用是隐藏继承或是对接口的实现,典型的形式是:内部类来继承或是实现接口,由外部类提供代理 constructor 方法。这些代理 constructor 方法一般都利用的向上转型,即不返回内部类对象,而是返回内部类继承的父类对象或是实现的接口对象。如:
一个 imp class 可以同时实现多个 interface,格式如下:
我们大可将 interface 视为 abstract class 的延伸。
覆写方法的访问权限不得低于被覆写方法的访问权限(或者说覆写方法不能拥有比被覆写方法更严格的访问权限)。
abstract 的真正含义是“阻止产生对象” (针对类) 或是 “禁止被对象所拥有” (针对方法,类似 static)。
先上代码 (adapted from Chapter 8, Thinking in Java, Fourth Edition):
在 overload and override: 重载与覆写 里面提到过,如果在 base class 中有一个可继承的方法,在 ext class 中添加一个同签名的方法则是覆写行为。其实,覆写对 return type 还是有要求的。
2021-01-03 更新:大一统至 Single Dispatch in Java and Python
2021-01-03 更新:大一统至 Single Dispatch in Java and Python
final data (基本数据类型)
class loading 是一个比较复杂的过程。一般说来,类是在其 static member 被访问时被加载的。在加载时会做的一件事是:初始化 static member 和 static 代码段 (static block, i.e. static {......}),当然,static 是只会被执行 on...
base class 的 private member 是不可继承的(详细请参见 Java: 关于 class 和 class member 的访问权限),所以在 ext class 中也不会有这些 member。
A block-formed initializer can be appended after the fields declared.
class的访问权限
static member / field / method
array reference
最近研究 regular expression 顺便补了下 escape 的课 (参 Escape Character / Control Character / Python Raw Strings / Python Bytes Literals),然后我今天就发现了 python 光一个 escape cha...
我本来只想记录下 short-circuit operations,但是 chained comparisons 我很少写,这里一并记录下。
super() 实在是有点复杂,所以它的 doc 的信息量看起来就很有限。
感谢作者王炳明写了这么多内容。这本《Python黑魔法手册》语言平实,举例得当。虽然前面有些简单的 “黑魔法” 我看来也就是 “茴香豆的四种写法”,但后面高级的、有趣的内容也不少,这里摘一摘。
1. enumerate(start=0)
Simply because generators/itertors would drain.
用单个下标 access 直接返回 list 的单个 element,用 slice (或者严格一点说是用一个 slice object 去 access) 返回一个 sub-list,这俩都是很常见的操作。但是:
假设我们有一个 class Test,有一个 @staticmethod foo:
Summary
参考:
Looks like I’ve been wrong for years… maybe because I am too familiar with the SQL-style groupby operation.
$k$-way Merge ($k$ 路归并)
今天才发现如果是两个 objects 做 and 或者 or 的时候,返回的不是 boolean 而是 object。
参考 Stack Overflow: How does the bitwise complement operator (~ tilde) work? Answer by Anthony。
再次提出这个问题是因为遇到了一个 “想在 function 中修改 list 内容” 的场景,而正确的写法应该是用 slice-then-assign:
```python DATA_DIR = “./data”
def square_and_cube(x): yield x**2 yield x**3
其实 Digest of Fluent Python 里有讲,只是我实在是太不习惯它的用法了:
My aim is to install ALL packages I need for a project to a non-default location.
```python import pprint
Effective Python Item 45: Use datetime Instead of time for Local Clocks
Effective Python Item 50: Use Packages to Organize Modules and Provide Stable APIs
Effective Python Item 57: Consider Interactive Debugging with pdb
Effective Python Item 33: Validate Subclasses with Metaclasses
这一篇的内容在 Digest of Fluent Python: 7.4 Variable Scope Rules 和 Python: Variable scope in if-statement 都有讲到,但是 Effective Python 的 Item 15: Know How Closures Inte...
Python Tips: 19. For - Else:
参 Effective Python Item 25: Initialize Parent Classes with super。
参 Effective Python Item 21: Enforce Clarity with Keyword-Only Arguments 和 PEP 3102 – Keyword-Only Arguments。
next(coro) == coro.send(None)
The fact is that we often take the .send() sematics of coroutines too seriosly that we simply ignore the possibility to use them just like generators.
This is trivial but sometimes misleading.
1. raise-statement in Python 2
简单说一下。except 可以接一个 tuple 表示捕捉多种类型的异常,也可以不带任何参数表示捕捉 everything(当然这是一个 anti-pattern)。
with-statement
Python 的 try-except-finally 和 Java 的 try-catch-finally 其实是一样的,烦就烦在中间那个 else 上:
In Java, this is wrong and you cannot even compile:
Usually this job is done in R, as deescribed in Using R + Bioconductor to Get Flanking Sequence Given Genomic Coordinates. An R sample could be this simple:
之前遇到过这么一个例子:
一个有点鸡贼的方法:
Just take a look at an exemplar output and you’ll know what they are designed for.
zip 这个函数,用起来总是没有什么信心……我们上一下 The Python Standard Library 上的示例代码看看(注意:这并非源码,因为现在已经是返回一个 zip 对象了):
Just a reminder that we have such objects to inspect the function signatures, as PEP 362 – Function Signature Object indicates.
Argument Unpacking: *expression and **expression inside function calls
首先 a Mixin is class to be mixed-in,它在 python 里起到的作用类似于 interface 或者 abstract class,但是又有点微小的差别,我们来看个例子:
1. MySQLdb Installation
R 里面常见的一个用法是 dataframe[boolSeq, "foo"],pandas 里也是一样:
Basic Installation Flow
Chapter 1. Your First Python Program
$$ \DeclareMathOperator*{\argmin}{argmin}
1. Generative vs Discriminative
1. Quick Facts On SNAP
Hypothesis Space
之前写过一篇 Expectation-Maximization Algorithm,但是太细碎了,没有抓住核心。
参考自 Introduction to Semi-Supervised Learning。
The inconsistency among the unlabeled examples:
Confusion matrix $\subset$ Contingency table
参考自 Multi-label Linear Discriminant Analysis
接上一篇 EM method for identifying motifs in unaligned biopolymer sequences,我们接着介绍 Unsupervised Learning of Multiple Motifs in Biopolymers Using Expectation Maxi...
总结下 Unsupervised Learning of Multiple Motifs in Biopolymers Using Expectation Maximization 中的 EM 方法。
原文 A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models。
首先感谢 张洋 先生的这篇 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification),写的非常清楚明白。本文以此为基础做些总结。
总结自 Ensemble Methods in Machine Learning
总结自 Flexible discriminative learning with structured output support vector machines,非常好的一份 tutorial。
原文 RASE: recognition of alternatively spliced exons in C.elegans.
之前一直没搞清楚,这里理一理思路。
总结自 section note 5: Convex Optimization Overview, Part II
总结自 Hidden Markov Models
总结自 Chapter 10, An Introduction to Statistical Learning.
总结自 Chapter 9, An Introduction to Statistical Learning.
总结自 Chapter 8, An Introduction to Statistical Learning.
总结自 Chapter 7, An Introduction to Statistical Learning.
总结自 Chapter 6, An Introduction to Statistical Learning.
总结自 Bayesian Interpretation for Ridge Regression and the Lasso, Section 6.2.2 The Lasso, An Introduction to Statistical Learning.
This post is written by courtesy of:
总结自 Chapter 6, An Introduction to Statistical Learning.
总结自 Chapter 5, An Introduction to Statistical Learning.
总结自 Chapter 4, An Introduction to Statistical Learning.
Exercises of Chapter 4, An Introduction to Statistical Learning.
总结自 Chapter 3, An Introduction to Statistical Learning. 3. Other Considerations in the Regression Model
总结自 Chapter 3, An Introduction to Statistical Learning.
总结自 Chapter 2, An Introduction to Statistical Learning.
1. Motivation
摘自 Six Types Of Analyses Every Data Scientist Should Know 和 Types of Questions;两者内容基本相同。
1. An example of statement evaluation
1. 预备知识:class() / typeof() / mode() / storage.mode() 2. 预备知识:R Basic Types 总览 3. 深入 Language Objects 4. 深入 Function Types
The last expression evaluated in a function becomes the return value.
Given 3 points, $(1,1), (2,1), (2,2)$, how would you connect them with 2 segments? Subtly, geom_line of ggplot2 thinks in a different way when you order the ...
总结自 R Graphics Cookbook
总结自 Seamless R and C++ Integration with Rcpp
1. The C beneath R
P.S. It was 2015 when the 1st edition of this book came out and I wrote this post. Now Hadley Wickham is working on the 2nd edition where a lot contents chan...
Rcpp 初体验。请结合 Rcpp Hierarchy 做进一步的理解。本文待修改。
参考文献:
来自 R Cookbook。
整理自 R Cookbook。
R 的文档为什么就这么难看懂呢……
对 Air Pollution Case Study 的总结。
Saving R Data
Question: Does changing the text on your website improve donations?
R console 并没有提供 theme 选项,只有自己配 color。在 “X:[R-folder]\etc\Rconsole” 文件中可以指定 color(在 ## Colours for console and pager(s) 小节)(color 的名称在 “X:[R-folder]\etc\rgb.t...
1. log
system.time()
第一次看到这个 «- 赋值是在 coursera 的 assignment,这里是实现了一个 cache 了 mean 结果的 vector:
参考资料:A brief introduction to “apply” in R
总结自 Introduction to the R Language - Scoping Rules (pdf)
参照 R Programming slides on cousera (pdf),作总结。
摘抄自 Factors in R,部分删改和注释。
参照 R Programming slides on cousera (pdf),作总结。
这 statistics 和 biology 搁一块儿简直就是灾难:各种不讲人话的、侧面描述的、不给数学公式的定义,各种 overloaded terminology。好嘛,这又来一个 effect size。
1. Gene
CAGE & FANTOM
homology: [həˈmɒlədʒi] homologous: [həˈmɒləgəs]
摘自 Genetic Home Reference - Handbook。
Cell Cell wall (细胞壁) Membrane (细胞膜): [ˈmembreɪn] Cytoplasm (细胞质): [ˈsaɪtəʊplæzəm], the contents of a cell except for the nucleus, ...
taxonomy: [tækˈsɒnəmi], 分类学 taxonomic: [ˌtæksə’nɒmɪk] taxon: [ˈtæksɔn], a taxonomic group or category taxa: [‘tæksə], plural of taxon
我写这篇的起因来自于这个灵魂拷问 Is JSON a string? 我觉得这又是个老外瞎用词导致的误解。
1. Java Object <-> JSONObject
调用 window.open() 的注意事项
模拟 sleep 功能
迅速切换 onclick 函数的写法
disable 某 element 用:$("#xxx").attr("disabled", true);
Ajax Post 数据加号变空格
IE 6 下,json 内部末尾不能有逗号
不管这篇 自定义input type=”file”的样式以及引出的相关技术问题 描绘得有多么好,永远不要妄想用 <span> 来代替 <input type="file"> (即自定义样式的 file 控件),浏览器兼容性问题 is watching you! 我们可是连 IE6 都要测的...
有两个地方可以可以阻止 form submit,一是 <form onsubmit=""> ,二是 <form> 下的 <input type="submit" onclick=""> ,只要这两个函数有一个是 return false;,那么点击这个 button 并不会 s...
<form> 下的 <input> 必须写 name
1. What does REST mean literally?
线上机的 exception log 可能被吞(日志量很大的时候,exception log 根本就打不出来),此时可以用测试机 debug。如果测试机没问题,说明是线上环境问题(网络不好、依赖的外部接口挂了之类的)。如果测试机一样挂,那么直接在测试机上找问题就好了
不设置 host,直接 ip 连,肯定取不到 cookie。
交互稿没画边界情况的话后患无穷,态度一定要强硬,直接拒收! 至少在部署前要询问是否有统计需求,产品不会提醒你加统计日志的,都是事后才说。 中途换技术方案是很坑爹的。涉及第三方或自己不可控的控件,提前考虑是否有压力隐患,压力测试越早做越好(越早做越先发现问题,修改的成本越小,如:Magick,lp 项...
mc_lottery 是一个大表(28个字段),对应 Lottery 也是个大对象。如果一个页面只用展示 Lottery 对象的3个字段,那么,SQL 层的传输就很浪费。 如果把 mc_lottery 拆成多个小表,Lottery 对象也要拆成多个小对象的话,你就需要处理事务问题,也很烦。 由于小表...
1. 接口粒度设计
1. 按 sql schema 设计
Deploy 最需要注意的问题
最简单也最容易忽视的一点:最终的操作是什么?要输出什么?要写什么值?是写 DB 还是写 UD 还是写 MD?输入往往很清楚,但输出有时候很恍惚(比如:aupg 项目) 搞清楚:接口给谁用?(比如:aupg 项目,两个接口给用户,一个接口给 SA)
URL Parameters / URL Query
参考 Socket Programming in Python (Guide) 的前半部分,代码有改动。另外我觉得这个例子用两个 ipython 来玩更方便理解。
如何形象理解 socket
SO_TIMEOUT == ‘http.socket.timeout’:
302:我们常说的 “302 跳转” 其实就是 sendRedirect 404:说明 URL 不对,可能是后台 URL 没发出来,可能浏览器 URL 写错,或者后台 URL 写错 500:后台异常,一定会有 exception log,不要因为 log 刷屏而认为没有 exception 50...
IP 层提供了 IP 地址,IPv4 是 4 byte,32 bit == 网络号 (#network) + 主机号 (#host),所谓 #network 就是区分 A 类、B 类、C 类网的那个。
ZT. 转载茫茫多,原文地址不可考。
网络协议:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
ZT. 转载茫茫多,原文地址不可考。
SpringMVC Controller 如何返回 404?
I added proxy-target-class="true" at the tx:-statement:
Looks like the UserService class is missing a ‘stereotype’ annotation like @Component or @Service. You also have to configure the Spring classpath scanning u...
Example from project:
有一些 util 类或是 config 类会用到 static 属性,这些 util 类或是 config 类也可以通过 Spring 来初始化,和初始化一个 POJO 没什么区别,虽然实际应用中不太可能去创建一个 util 对象或是 config 对象,一般都是使用 static getter 而已。
除去 properites 文件路径错误、拼写错误外,出现 “Could not resolve placeholder” 很有可能是使用了多个 PropertyPlaceholderConfigurer 或者多个 <context:property-placeholder> 的原因。
1. 何为依赖
Appetizer: What do the numbers in a man page mean?
1. 再谈 heap
Preemptive / Cooperative / Multitasking
From stackoverflow: What do the terms “CPU bound” and “I/O bound” mean?:
最近接触到了 HibernateTemplate,用到了 HibernateCallback,决定把 callback 的逻辑关系彻底搞清楚,以前总是不明白这个 call 到底是谁 call 的谁,这个 back 到底是从哪里 back 到哪里。
swizzle 本来的用法应该是 to swizzle a beverage with a spoon,基本就是 “搅动” 的意思。pointer swizzling 有的翻译叫 “指针混写”,第一眼看上去简直不知所云。
以下来自百度百科和Wikipedia。
Quiz 1
参考 Quicksort with Python
Question: Find the $k$-th Smallest Element in an Unsorted Array
1. Definition
场景:我有一套老的数据,比如 2015 年发布的 db,现在 2016 年发布了新的数据,它的 dump file 里还是用的老的 database name db,我想把这两套数据都存在数据库里。
1. 设计的总体原则
原来在 5.1 版本时,为了解决中文乱码问题设置默认字符集为 utf8 时,在 my.ini 内的 [mysql] 和 [mysqld] 项中都是写:
参考 Regular Expressions - User Guide
ZipInputStream zis = new ZipInputStream(new FileInputStream("process.jpdl.zip")); processEngine.getRepositoryService().createDeployment().addResourcesFromZ...
假设我部署了一个 jpdl.xml,<process name=”test-vehicle”>,那么,查询出的 ProcessDefinition 的属性如下:
部署的时候,deploy() 返回的就是 deploymentId。deploymentId 虽然是个 String,不过仅包含数字,目前我还不清楚它的生成策略。
看似是一个 variable 有 name 和 mapped-name 两个名称,其实情况很复杂。看例子。
1. org.jbpm 包下的 JbpmContext 类
整理自 Thinking in C++。
整理自 Thinking in C++。
整理自 Thinking in C++。没啥特别好说的。
整理自 Thinking in C++。
<target unless="condition">
Set fork attribute to true, to run javac in a separate process with its own heap size settings. If fork is set to false, or not set (default is false), javac...
<fileset dir="${lib.dir}" includes="*.jar"/>
当前项目用的是 eclipse 3.5,然后文件编码都是 utf-8。在执行 Ant 脚本时,javac 死活不动,解决方案是:右键 build.xml –> run as –> External Tools Configurations –> Common 选项卡 –> Console ...
紧接着 Spring AOP 学习(三):例子与基本概念 中的例子。其实 Spring AOP 注解的概念理解了后,看 XML 配置就是件很简单的事情了。
依旧是 LogInterceptor 的例子。下面是 beans.xml:
如果系统中有 500 个类,每个类都要添加日志功能,此时无论是直接修改源代码、继承还是组合,都是十分巨大的工作量。此时 AOP 可以帮我们解决这个问题。
来自尚学堂 Spring 视频教程;作文字总结。
XSS,Cross-site scripting,类型有:
1. charset=utf-8 & charset=UTF-8 are both OK
copy 一段代码到 jsp,tomcat 的 catalina.err 总说:org.apache.jasper.JasperException: /WEB-INF/jsp/admin/lottery/add.jsp(425,32) equal symbol expected。
这真的是困扰了我很多年的问题,而且我发现这还不是中文教材的锅,老外的很多教材也是上来就 CFL,也不告诉你这个 context 到底是啥 context,这个 free 是怎么个 free 法。我就纳闷了,多讲这么几句怎么就这么难呢……
这么多年了,我终于决定要探一探这个 “escape” 到底是啥意思。看了一圈下来,这些概念虽然说不上是乱成一锅粥,但的确够喝一壶的了。
1. Name Binding / Name Resolution / Variable / Indentifier / Value / Reference
Caution when you apply any or all on a one-column Boolean DataFrame, or you should never apply these 2 functions to such a DataFrame because it works differe...
Suppose those 2 DataFrames has identical column names.
Prepare a test dataset:
You CANNOT access each row’s index via lambda x: x.index in DataFrame.apply(axis=1) because apply treats each row as a numpy object, not a Series. However yo...
1. 问题
Subsequence
0. 文字游戏
1. 求 min/max sub-array 或 sub-string 问题的套路
默认情况下,Servlet、Controller、Service、Dao 什么的,在 SpringMVC 中都是单例,spring mvc declaring all beans singleton 有说:
例子来自 Developing a Spring Framework MVC application step-by-step ,版本是 spring-framework-2.5.6.SEC01。
If you just google, you may find autocommit a vaguely defined term.
考虑一个简单的语句:
This is funny.
Github Pages 升级到了 Jekyll 3.0,而且将使用 kramdown 解析引擎。我紧跟大部队,local build 环境也升级了,但是发现了 MathJax 有超级多的问题,特来写下血泪史……
1. User, Organization, and Project Pages
Quote from How To Solve by George Polya.
GWAVA, Genome Wide Annotation of VAriants, is a tool aiming to predict the functional impact of non-coding genetic variants. It consists of two parts:
If you run cross_validate(n_jobs > 1) with your own estimator, pay attention that your estimator will be copied per job.
Suppose $X[\text{“groups”}] = \begin{bmatrix} a \newline b \newline b \newline c \newline c \newline c \end{bmatrix}$ and n_splits=3.
Pipeline 的作用,见名知意,就是把多个 processor units chain up 起来。Pipeline 要求前 $N-1$ 个 processor units 是 Transformer,最后一个 processor unit 是 Estimator。我们举个例子看看就很好理解了:
失败的情形有 403 和 EOF 什么什么的,此时可以这么搞:
假如我们需要确定谁占用了我们的 80 端口。
1. 向量模型同样将 dj 和 qcc 同级计算,采用的同级方式是扩展 qcc 到 t 维
1. 经典模型的前提概念
This theme supports link posts, made famous by John Gruber. To use, just add link: http://url-you-want-linked to the post’s YAML front matter and you’re done.
A notice displays information that explains nearby content. Often used to call attention to a particular detail.
若设置了 useStatementNamespaces="true",如:
Error setting a property: IllegalArgumentException 的一种可能的原因
Huber loss:
1. Volume 是什么
按 AndrewD on How to generate a Dockerfile from an image?,可以这么操作:
当你的 Dockerfile 是 FROM 一个 local image,然后你在 VS Code 里右键你的 Dockerfile 再 Build Image...,你可能会看到这样一个 error:
Go to Preference -> Settings -> terminal.integrated.cwd, fill in ${fileDirname}. Now every time you open a new terminal in VS Code, it will start at th...
首先这俩工具对没有耐心的人真的非常不友好:
1.MEMMAP
有的文章上说只用 CATALINA_HOME 这么一个,也有的说是 CATALINA_HOME、CATALINA_BASE、TOMCAT_HOME 这3个。我看 Tomcat Document,CATALINA_HOME 好像是必须的,还有地方提到了 CATALINA_BASE,既然这样的话,那就三个都设置好了。
继续补课。来自wikipedia。
使用 clover-for-eclipse 时,发现测试一个简单的 Dynamic Web Project 时,servlet 总是显示不出来,提示找不到类 com_cenqua_clover/CoverageRecorder。
说明与 esb 服务器通讯不正常。
异常信息:failed to lazily initialize a collection of role: <容器类对象>, no session or session was closed
为了解决昨天晚上碰到的 aLock 那个吞 Exception 的问题,下午配了一下 struts 2 的拦截器。
slab / page / chunk
摘自 Short introduction to log4j,自加评论。
One-vs-all Classfication 的作业里用到了 fmincg,但是语法有点奇怪:
1. Equation Numbering
I met a problem setting up SSH and git today, and I am happy to share my workaround just in case you met the same problem.
Backup My Ubuntu
scipy.spatial.distance.pdist(X) gives the pair-wise distances of X, $\operatorname{dist}(X[i], X[i])$ not included. The distances are stored in a dense matri...
首先感谢有 PyTorchViz 这个项目 (依赖 Graphviz) 使得我们可以画出 PyTorch 的 computational graph。PyTorch 自己好像并没有 built-in 的机制来做这件事情。
首先说下为啥需要把代码转成 graph。我觉得可能主要有两点考虑:
SICP 的 Section 1.2.1 Linear Recursion and Iteration 着重强调了 “无论是 recursive process 还是 iterative process,写出来都是 recursive procedure”,但其实只需要稍微归纳一下,”procedure vs p...
1. yield is a pun
Stéphane Chazelas on Syntax highlighting in the terminal 总结得挺好,以下方法都可以 highlight less 命令的 output:
Configure an upstream remote for your fork, following Configuring a remote for a fork. Sync your fork to the upstream remote, following Syncing a fork.
1. macOS 自带的 Ruby