Author Archives: mmommo

800px-Leica_D.R.P._Ernst_Leitz_Wetzlar

莱卡的序列号 Leica Serial Numbers

懒人点这里,这个法语网站可以搜索到Leica镜头和机身序列号的生产年份。

 

下表罗列了莱卡镜头1933-2004的序列号范围,包括R系列和M系列:

Leica M/R/SM Serialnumbers
Start – End: Production year
156 001-195 000: 1933
195 001-236 000: 1934
236 001-284 600: 1935
284 601-345 000: 1936
345 001-416 500: 1937
416 501-490 000: 1938
490 001-538 500: 1939
538 501-565 000: 1940
565 001-582 294: 1941
582 295-593 000: 1942
593 001-594 880: 1943
594 881-595 000: 1944
595 001-601 000: 1945
601 001-633 000: 1946
633 001-647 000: 1947
647 001-682 000: 1948
682 001-756 000: 1949
756 001-840 000: 1950
840 001-950 000: 1951
950 001-1 051 000: 1952
1 051 000-1 124 000: 1953
1 124 001-1 236 000: 1954
1 236 001-1 333 000: 1955
1 333 001-1 459 000: 1956
1 459 001-1 548 000: 1957
1 548 001-1 645 300: 1958
1 645 301-1 717 000: 1959
1 717 001-1 827 000: 1960
1 827 001-1 913 000: 1961
1 913 001-1 967 100: 1962
1 967 101-2 015 700: 1963
2 015 701-2 077 500: 1964
2 077 501-2 156 300: 1965
2 156 301-2 236 500: 1966
2 236 501-2 254 400: 1967
2 254 401-2 312 750: 1968
2 312 751-2 384 700: 1969
2 384 701-2 468 500: 1970
2 468 501-2 503 100: 1971
2 503 101-2 556 500: 1972
2 556 501-2 663 400: 1973
2 663 401-2 731 900: 1974
2 731 901-2 761 100: 1975
2 761 101-2 809 400: 1976
2 809 401-2 880 600: 1977
2 880 601-2 967 250: 1978
2 967 251-3 013 650: 1979
3 013 651-3 087 000: 1980
3 087 001-3 160 500: 1981
3 160 501-3 249 100: 1982
3 249 101-3 294 900: 1983
3 294 901-3 346 200: 1984
3 346 201-3 383 200: 1985
3 383 201-3 422 890: 1986
3 422 891-3 455 870: 1987
3 455 871-3 478 900: 1988
3 478 901-3 503 150: 1989
3 503 151-3 540 467: 1990
3 540 468-3 583 830: 1991
3 585 831-3 610 680: 1992
3 610 381-3 644 475: 1993
3 644 476-3 677 030: 1994
3 677 031-3 730 290: 1995
3 730 291-3 770 920: 1996
3 770 930-3 818 624: 1997
3 818 625-3 857 849: 1998
3 857 850-3 882 996: 1999
3 882 997 ~ 4 000 000: 2000~2004

4 000 000 之后的为2004年之后的产品。

JAVASCRIPT String.replace() $ 美元符和正则表达式

不常能找到的语法说明。原文戳这里

  • $1: 捕获的第1组的字符。在没有组的情况下返回 “$1″。
  • $99: 捕获的第99组的字符。在小于9组的情况下返回 “$99″。在大于等于9组小于99组的情况下返回”捕获到的第9组字符串”加上字符”9″。
  • $+: 捕获到的最大组。如果最大组没有捕获,不替换任何字符。(IE & Firefox Only)
  • $&:捕获到的所有字符,这里不能用 $0.
  • $` :捕获到字符串左边的字符。
  • $' : 捕获到字符串右边的字符。
  • $_: 整个输入字符串.(IE Only)
  • $$: $的转义(如果仅输入’$’ 效果和 ‘$$’ 一样)。

 

例子:

“Before Now After”.replace(/Now/,”($&-现在)”);
//print: “Before (Now-现在) After”

个人感觉 $& 最实用:
在某字符前面插入字符:
“I like apple”.replace(/apple/,”banana & $&”);
//print: ”I like banana & apple”
在某字符后面插入字符:
“I like apple”.replace(/apple/,”$& & banana”);
//print: ”I like apple & banana”

Bootstrap popover close all hack

Click anywhere on a web page to close all Bootstrap popovers.

//has only been tested in Chrome with bootstrap 3.0
$(document).click(function(e){
    if(!$(e.target).closest(".popover").length){
        var target=$(e.target).closest("[data-original-title]");
        $("[data-original-title]:not(.popover)").not(target).popover("hide");
    }
});

Java HashMap 遍历

只要键名, key

Map map = ...;

for (String key : map.keySet()) {
// ...
}

只要键值, value

for (Object value : map.values()) {
// ...
}

两个都要, key & value

for (Map.Entry entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// ...
}

还有复杂点儿的:

public static void printMap(Map mp) {
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
System.out.println(pairs.getKey() + " = " + pairs.getValue());
}
}