My Mac Env Setup
1. Zsh setup: XDG + Prezto
1. Zsh setup: XDG + Prezto
LLVM 禁止使用 C++ native RTTI,主要是嫌弃 native RTTI 的 performance,并不是说 LLVM 不需要 RTTI 这个 feature。我们可以说 LLVM 自己实现了一套新的 RTTI (以下称 LLVM-style RTTI),它有:
Q1: What is polymorphism, again?
Prerequisite: Complemented Lattice
References
引子:Pre-ordering on Monoids
Overiew
1. macOS 自带的 Ruby
1. Relation (Mathmatics)
Part I - The Mechanics of Change
首先这俩工具对没有耐心的人真的非常不友好:
Appetizer: What do the numbers in a man page mean?
URL Parameters / URL Query
1. 问题
参考 Socket Programming in Python (Guide) 的前半部分,代码有改动。另外我觉得这个例子用两个 ipython 来玩更方便理解。
如何形象理解 socket
我本来只是想研究下 Condition 怎么用 (因为 java 里没见过),但既然展开了就写一篇记录一下吧。
我觉得用 Java 学 design pattern 有个问题就是:总是要有 interface / abstract class 介入,搞得整个 class hierarchy 非常复杂。其实我用 duck typing 的思路来看,Adapter、Proxy、Decorator 这三个模式的基本结构是一样的,...
我们在 PPP 里其实有讲 visitor pattern,但最近在读的 Crafting Interpreters 提供了一个绝妙的解读,虽然只能适用于 vanilla 的 visitor pattern,但还是值得记录下。
这真的是困扰了我很多年的问题,而且我发现这还不是中文教材的锅,老外的很多教材也是上来就 CFL,也不告诉你这个 context 到底是啥 context,这个 free 是怎么个 free 法。我就纳闷了,多讲这么几句怎么就这么难呢……
当你的 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. 再谈 heap
1. What does REST mean literally?
我写这篇的起因来自于这个灵魂拷问 Is JSON a string? 我觉得这又是个老外瞎用词导致的误解。
最近研究 regular expression 顺便补了下 escape 的课 (参 Escape Character / Control Character / Python Raw Strings / Python Bytes Literals),然后我今天就发现了 python 光一个 escape cha...
这么多年了,我终于决定要探一探这个 “escape” 到底是啥意思。看了一圈下来,这些概念虽然说不上是乱成一锅粥,但的确够喝一壶的了。
我本来只想记录下 short-circuit operations,但是 chained comparisons 我很少写,这里一并记录下。
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. Volume 是什么
按 AndrewD on How to generate a Dockerfile from an image?,可以这么操作:
Stéphane Chazelas on Syntax highlighting in the terminal 总结得挺好,以下方法都可以 highlight less 命令的 output:
1. yield is a pun
Preemptive / Cooperative / Multitasking
super() 实在是有点复杂,所以它的 doc 的信息量看起来就很有限。
本来挺简单的概念,但是因为英语的用词非常地迷惑,所以搞得有点难懂。
SICP 的 Section 1.2.1 Linear Recursion and Iteration 着重强调了 “无论是 recursive process 还是 iterative process,写出来都是 recursive procedure”,但其实只需要稍微归纳一下,”procedure vs p...
感谢作者王炳明写了这么多内容。这本《Python黑魔法手册》语言平实,举例得当。虽然前面有些简单的 “黑魔法” 我看来也就是 “茴香豆的四种写法”,但后面高级的、有趣的内容也不少,这里摘一摘。
1. Name Binding / Name Resolution / Variable / Indentifier / Value / Reference
Quiz 1
Subsequence
0. 文字游戏
1. enumerate(start=0)
Simply because generators/itertors would drain.
用单个下标 access 直接返回 list 的单个 element,用 slice (或者严格一点说是用一个 slice object 去 access) 返回一个 sub-list,这俩都是很常见的操作。但是:
假设我们有一个 class Test,有一个 @staticmethod foo:
Summary
1. 求 min/max sub-array 或 sub-string 问题的套路
参考 Quicksort with Python
参考:
Question: Find the $k$-th Smallest Element in an Unsorted Array
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。
这 statistics 和 biology 搁一块儿简直就是灾难:各种不讲人话的、侧面描述的、不给数学公式的定义,各种 overloaded terminology。好嘛,这又来一个 effect size。
这俩是有区别的,我一直没有注意直到我发现公式上的区别。我没有注意的原因应该是 regression 没有显式使用 cross entropy loss,而 classification 的 cross entropy loss 是对原生 cross entropy 的扩展。
首先说下为啥需要把代码转成 graph。我觉得可能主要有两点考虑:
Huber loss:
我真的是出离愤怒。我不知道最开始把 convolution 看做 dot product 的人是怎么想的!有 convolution 的公式不用,非要用这么蹩脚的 intuition?而且明显 convolution 和 Hadamard product 的关系更大一点呢,咋没见人提?
$$ \DeclareMathOperator*{\argmin}{argmin}
1. Generative vs Discriminative
1. Check installed Open JDK
1. Sampling from a Probability Distribution
写这篇主要是因为我看到有些 measure 的定义用到了 $\delta$-ring.
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...
1. Quick Facts On SNAP
再次提出这个问题是因为遇到了一个 “想在 function 中修改 list 内容” 的场景,而正确的写法应该是用 slice-then-assign:
合着按着我自己的思路才是最好理解的。PCA 的整个过程其实就是:寻找一个基变换 (change of basis),使得新坐标系内的 axes 的功效可以量化。这个量化的意思是,如果新坐标系内有 x’-axis 和 y’-axis,我可以明确地写出 $\frac{\operatorname{effect}(\te...
1. An example of statement evaluation
1. 预备知识:class() / typeof() / mode() / storage.mode() 2. 预备知识:R Basic Types 总览 3. 深入 Language Objects 4. 深入 Function Types
1. Gene
CAGE & FANTOM
Two brilliant posts on this sampling technique:
```python DATA_DIR = “./data”
Suppose those 2 DataFrames has identical column names.
1. Scaling
Definition
Homeomorphism
这些个术语总是见到,也总是记不住……
首先感谢有 PyTorchViz 这个项目 (依赖 Graphviz) 使得我们可以画出 PyTorch 的 computational graph。PyTorch 自己好像并没有 built-in 的机制来做这件事情。
这次我们从结论出发反推。
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.
1. Definition
注意这里反复使用了 $\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 太...
This is funny.
Quote from How To Solve by George Polya.
知道了 Radial basis function 和 kernel function 之后,Radial basis function kernel 就好理解了:它是一个 kernel function,然后属于 radial basis function 大类。
Hypothesis Space
$$ \newcommand{\icol}[1]{ \bigl[ \begin{smallmatrix} #1 \end{smallmatrix} \bigr] }
The last expression evaluated in a function becomes the return value.
之前写过一篇 Expectation-Maximization Algorithm,但是太细碎了,没有抓住核心。
Original post is The Gradient and Directional Derivative from Mathematics School, Oregon State University. Here I thank the author(s) sincerely.
参考自 Introduction to Semi-Supervised Learning。
def square_and_cube(x): yield x**2 yield x**3
其实 Digest of Fluent Python 里有讲,只是我实在是太不习惯它的用法了:
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 ...
My aim is to install ALL packages I need for a project to a non-default location.
If you run cross_validate(n_jobs > 1) with your own estimator, pay attention that your estimator will be copied per job.
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...
Suppose $X[\text{“groups”}] = \begin{bmatrix} a \newline b \newline b \newline c \newline c \newline c \end{bmatrix}$ and n_splits=3.
Prepare a test dataset:
Precomputed Eigen scores are available at Download Eigen/Eigen-PC scores.
总结自 R Graphics Cookbook
If you just google, you may find autocommit a vaguely defined term.
```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。
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...
The inconsistency among the unlabeled examples:
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.
需要注意的是:one-hot encoding 应该是 binary encoding 的特殊情况。one-hot 的意思就是:只有一个 bit 是高位(1);类似还有 one-cold encoding
1. Introduction to Information Theory
From stackoverflow: What do the terms “CPU bound” and “I/O bound” mean?:
Greatest thanks to 3Blue1Brown!
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:
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
Pipeline 的作用,见名知意,就是把多个 processor units chain up 起来。Pipeline 要求前 $N-1$ 个 processor units 是 Transformer,最后一个 processor unit 是 Estimator。我们举个例子看看就很好理解了:
首先 a Mixin is class to be mixed-in,它在 python 里起到的作用类似于 interface 或者 abstract class,但是又有点微小的差别,我们来看个例子:
Confusion matrix $\subset$ Contingency table
1. MySQLdb Installation
场景:我有一套老的数据,比如 2015 年发布的 db,现在 2016 年发布了新的数据,它的 dump file 里还是用的老的 database name db,我想把这两套数据都存在数据库里。
homology: [həˈmɒlədʒi] homologous: [həˈmɒləgəs]
R 里面常见的一个用法是 dataframe[boolSeq, "foo"],pandas 里也是一样:
Course site: Applied Nonparametric and Modern Statistics
Github Pages 升级到了 Jekyll 3.0,而且将使用 kramdown 解析引擎。我紧跟大部队,local build 环境也升级了,但是发现了 MathJax 有超级多的问题,特来写下血泪史……
Basic Installation Flow
Chapter 1. Your First Python Program
Backup My Ubuntu
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.
摘自 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
总结自 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...
在查 non-parametric tests 时,Wikipedia 上提到了 Non-parametric models,于是干脆就记录一下。参考 Wikipedia: Parametric model。
参考资料:
看 wikipedia 什么的都不好使,还是得看书 Handbook of Parametric and Nonparametric Statistical Procedures,写得非常清楚。
Rcpp 初体验。请结合 Rcpp Hierarchy 做进一步的理解。本文待修改。
搬运自 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++。
整理自 Thinking in C++。
整理自 Thinking in C++。
长久以来我就有这么一种理解:int * 其实可以做一种新类型。因为在函数的参数列表里,你把 int * 看做是一种新类型明显更容易理解些。但是我又不得不注意以下这个事实:
整理自 Thinking in C++。没啥特别好说的。
整理自 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++。
整理自 Thinking in C++。
参考文献:
来自 R Cookbook。
整理自 R Cookbook。
R 的文档为什么就这么难看懂呢……
参考自 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
概念挺简单,主要是生单词太多了,mark 一下。
总结自 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. Equation Numbering
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。
1. Motivation
0. Symbols
0. Dictionary
对 Air Pollution Case Study 的总结。
Saving R Data
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 ...
Question: Does changing the text on your website improve donations?
摘自 Six Types Of Analyses Every Data Scientist Should Know 和 Types of Questions;两者内容基本相同。
R console 并没有提供 theme 选项,只有自己配 color。在 “X:[R-folder]\etc\Rconsole” 文件中可以指定 color(在 ## Colours for console and pager(s) 小节)(color 的名称在 “X:[R-folder]\etc\rgb.t...
One-vs-all Classfication 的作业里用到了 fmincg,但是语法有点奇怪:
1. log
感谢 良田围 网友在 偏导数有什么用 问题上的精彩回复,以下全文摘抄,仅加音标并稍微排版。
斜率(Slope)
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),作总结。
ArrayList: 非线程安全 LinkedList: 非线程安全
系统大了就要拆分,比如豆瓣读书、豆瓣电影和豆瓣音乐。
1. User, Organization, and Project Pages
局部内部类对外部变量的访问权限
失败的情形有 403 和 EOF 什么什么的,此时可以这么搞:
<target unless="condition">
XSS,Cross-site scripting,类型有:
1. charset=utf-8 & charset=UTF-8 are both OK
若设置了 useStatementNamespaces="true",如:
SpringMVC Controller 如何返回 404?
SO_TIMEOUT == ‘http.socket.timeout’:
Martin Fowler 的 Inversion of Control Containers and the Dependency Injection pattern 中提到的。
线上机的 exception log 可能被吞(日志量很大的时候,exception log 根本就打不出来),此时可以用测试机 debug。如果测试机没问题,说明是线上环境问题(网络不好、依赖的外部接口挂了之类的)。如果测试机一样挂,那么直接在测试机上找问题就好了
1. Java Object <-> JSONObject
<context-param> <param-name>ibatisResourceCharset</param-name> <param-value>UTF-8</param-value> </context-param> <...
不设置 host,直接 ip 连,肯定取不到 cookie。
copy 一段代码到 jsp,tomcat 的 catalina.err 总说:org.apache.jasper.JasperException: /WEB-INF/jsp/admin/lottery/add.jsp(425,32) equal symbol expected。
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...
Error setting a property: IllegalArgumentException 的一种可能的原因
调用 window.open() 的注意事项
模拟 sleep 功能
迅速切换 onclick 函数的写法
disable 某 element 用:$("#xxx").attr("disabled", true);
Ajax Post 数据加号变空格
302:我们常说的 “302 跳转” 其实就是 sendRedirect 404:说明 URL 不对,可能是后台 URL 没发出来,可能浏览器 URL 写错,或者后台 URL 写错 500:后台异常,一定会有 exception log,不要因为 log 刷屏而认为没有 exception 50...
IE 6 下,json 内部末尾不能有逗号
IP 层提供了 IP 地址,IPv4 是 4 byte,32 bit == 网络号 (#network) + 主机号 (#host),所谓 #network 就是区分 A 类、B 类、C 类网的那个。
ZT. 转载茫茫多,原文地址不可考。
网络协议:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
ZT. 转载茫茫多,原文地址不可考。
摘自 Short introduction to log4j,自加评论。
见 stackoverflow: Why is Java’s SimpleDateFormat not thread-safe?
```java Boolean b = null; boolean b2 = b;
ScheduledExecutorService.scheduleAtFixedRate() 内部任务发生异常时,不会继续定时运行
交互稿没画边界情况的话后患无穷,态度一定要强硬,直接拒收! 至少在部署前要询问是否有统计需求,产品不会提醒你加统计日志的,都是事后才说。 中途换技术方案是很坑爹的。涉及第三方或自己不可控的控件,提前考虑是否有压力隐患,压力测试越早做越好(越早做越先发现问题,修改的成本越小,如:Magick,lp 项...
mc_lottery 是一个大表(28个字段),对应 Lottery 也是个大对象。如果一个页面只用展示 Lottery 对象的3个字段,那么,SQL 层的传输就很浪费。 如果把 mc_lottery 拆成多个小表,Lottery 对象也要拆成多个小对象的话,你就需要处理事务问题,也很烦。 由于小表...
1. 接口粒度设计
1. 按 sql schema 设计
Deploy 最需要注意的问题
最简单也最容易忽视的一点:最终的操作是什么?要输出什么?要写什么值?是写 DB 还是写 UD 还是写 MD?输入往往很清楚,但输出有时候很恍惚(比如:aupg 项目) 搞清楚:接口给谁用?(比如:aupg 项目,两个接口给用户,一个接口给 SA)
这本书 的副标题是 “By Example”,所以整书适合一口气读完,也不用每个例子都敲一遍,顺着作者思路走完一遍就可以了。
默认情况下,Servlet、Controller、Service、Dao 什么的,在 SpringMVC 中都是单例,spring mvc declaring all beans singleton 有说:
slab / page / chunk
1. 设计的总体原则
Pre-reading
Example from project:
不管这篇 自定义input type=”file”的样式以及引出的相关技术问题 描绘得有多么好,永远不要妄想用 <span> 来代替 <input type="file"> (即自定义样式的 file 控件),浏览器兼容性问题 is watching you! 我们可是连 IE6 都要测的...
为了解决昨天晚上碰到的 aLock 那个吞 Exception 的问题,下午配了一下 struts 2 的拦截器。
class Field implements Cloneable { public String name; @Override protected Object clone() { Field f; try { f = (Field) super.clone(...
有两个地方可以可以阻止 form submit,一是 <form onsubmit=""> ,二是 <form> 下的 <input type="submit" onclick=""> ,只要这两个函数有一个是 return false;,那么点击这个 button 并不会 s...
<form> 下的 <input> 必须写 name
匹配原则
有一些 util 类或是 config 类会用到 static 属性,这些 util 类或是 config 类也可以通过 Spring 来初始化,和初始化一个 POJO 没什么区别,虽然实际应用中不太可能去创建一个 util 对象或是 config 对象,一般都是使用 static getter 而已。
除去 properites 文件路径错误、拼写错误外,出现 “Could not resolve placeholder” 很有可能是使用了多个 PropertyPlaceholderConfigurer 或者多个 <context:property-placeholder> 的原因。
原来在 5.1 版本时,为了解决中文乱码问题设置默认字符集为 utf8 时,在 my.ini 内的 [mysql] 和 [mysqld] 项中都是写:
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() 是会产生问题的。
异常信息:failed to lazily initialize a collection of role: <容器类对象>, no session or session was closed
最近接触到了 HibernateTemplate,用到了 HibernateCallback,决定把 callback 的逻辑关系彻底搞清楚,以前总是不明白这个 call 到底是谁 call 的谁,这个 back 到底是从哪里 back 到哪里。
紧接着 Spring AOP 学习(三):例子与基本概念 中的例子。其实 Spring AOP 注解的概念理解了后,看 XML 配置就是件很简单的事情了。
依旧是 LogInterceptor 的例子。下面是 beans.xml:
ZipInputStream zis = new ZipInputStream(new FileInputStream("process.jpdl.zip")); processEngine.getRepositoryService().createDeployment().addResourcesFromZ...
假设我部署了一个 jpdl.xml,<process name=”test-vehicle”>,那么,查询出的 ProcessDefinition 的属性如下:
部署的时候,deploy() 返回的就是 deploymentId。deploymentId 虽然是个 String,不过仅包含数字,目前我还不清楚它的生成策略。
如果系统中有 500 个类,每个类都要添加日志功能,此时无论是直接修改源代码、继承还是组合,都是十分巨大的工作量。此时 AOP 可以帮我们解决这个问题。
来自尚学堂 Spring 视频教程;作文字总结。
说明与 esb 服务器通讯不正常。
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.
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"/>
使用 clover-for-eclipse 时,发现测试一个简单的 Dynamic Web Project 时,servlet 总是显示不出来,提示找不到类 com_cenqua_clover/CoverageRecorder。
A notice displays information that explains nearby content. Often used to call attention to a particular detail.
考虑一个简单的语句:
参考 Regular Expressions - User Guide
swizzle 本来的用法应该是 to swizzle a beverage with a spoon,基本就是 “搅动” 的意思。pointer swizzling 有的翻译叫 “指针混写”,第一眼看上去简直不知所云。
以下来自百度百科和Wikipedia。
继续补课。来自wikipedia。
例子来自 Developing a Spring Framework MVC application step-by-step ,版本是 spring-framework-2.5.6.SEC01。
1. 何为依赖
看似是一个 variable 有 name 和 mapped-name 两个名称,其实情况很复杂。看例子。
1. 向量模型同样将 dj 和 qcc 同级计算,采用的同级方式是扩展 qcc 到 t 维
1. 经典模型的前提概念
RT。自己试试就好了,废话不多说了。
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { doGet(req, resp); }
假如我们需要确定谁占用了我们的 80 端口。
当前项目用的是 eclipse 3.5,然后文件编码都是 utf-8。在执行 Ant 脚本时,javac 死活不动,解决方案是:右键 build.xml –> run as –> External Tools Configurations –> Common 选项卡 –> Console ...
1. org.jbpm 包下的 JbpmContext 类
有的文章上说只用 CATALINA_HOME 这么一个,也有的说是 CATALINA_HOME、CATALINA_BASE、TOMCAT_HOME 这3个。我看 Tomcat Document,CATALINA_HOME 好像是必须的,还有地方提到了 CATALINA_BASE,既然这样的话,那就三个都设置好了。
关于动态代理,一般的代码结构为:一个业务接口、一个业务接口的实现、一个自定义的 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
1.MEMMAP