2011年11月28日 星期一

死神的手指

鄭明典
「死神的手指」影片說明
這是英國BBC製作的短片,很值得多看幾次!
海水結冰會把水中的鹽分逼出,在海冰成長的過程中,部分被逼出的海鹽會被包覆在冰層中,以極濃的液態鹹水狀態存在,這種鹹水溫度低、密度高。
因為重力的作用,過冷的鹹水最後會從冰層底下流出,因為它比海水重而且冷,流出的過程中讓周圍直接接觸的海水結冰,逐漸形成冰層下的「冰管」,有時冰管可以延伸到海底,結果過冷的鹹水在海底散開來,讓海底相對溫暖的海水瞬間結凍,海底生物來不及走避就會被凍成標本!
因為冰管很像手指,他到達的海底常有生物大量被凍死,所以稱為「死神的手指」!
底下的聯結是BBC攝影團隊在南極冰層底下實地拍攝製作的短片,這是首次完整呈現「死神的手指」發展過程的紀錄片!
http://youtu.be/LMhBuSBemRk

臺61線相片

https://plus.google.com/u/0/photos/106772525394348666482/albums/5678475144528989729?hl=zh-TW

2011年11月15日 星期二

CHENGLAP文章集錦

CHENGLAP文章集錦
http://chenglap-ptt.blogspot.com/

民主失竊的故事 The Story of Citizens United v. FEC 中文字幕

民主失竊的故事 The Story of Citizens United v. FEC 中文字幕
http://www.youtube.com/watch?v=A4x7MFZ4BXg

讓 Facebook 速度飆升的秘密武器:Big Pipe 網頁流水線技術

讓 Facebook 速度飆升的秘密武器:Big Pipe 網頁流水線技術

銀行界不能說的祕密 面板業大到不能倒

銀行界不能說的祕密 面板業大到不能倒
http://news.chinatimes.com/tech/12050905/122011111400096.html

布雷斯悖論 Braess's paradox

布雷斯悖論 Braess's paradox
http://zh.wikipedia.org/wiki/%E5%B8%83%E9%9B%B7%E6%96%AF%E6%82%96%E8%AE%BA

2011年11月8日 星期二

strtol

http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/


Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* strtol example */
#include 
#include 

int main ()
{
  char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
  char * pEnd;
  long int li1, li2, li3, li4;
  li1 = strtol (szNumbers,&pEnd,10);
  li2 = strtol (pEnd,&pEnd,16);
  li3 = strtol (pEnd,&pEnd,2);
  li4 = strtol (pEnd,NULL,0);
  printf ("The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
  return 0;
}

icosahedral photonic quasicrystal and diffraction patterns of decagonal quasicrystals

http://pbircher.blogspot.com/2009/11/icosahedral-photonic-quasicrystal.html

2011年11月6日 星期日

慘遭助教修理的一道程式習題 冼鏡光

慘遭助教修理的一道程式習題 冼鏡光
http://blog.dcview.com/article.php?a=ADgAZgJlVGQ%3D

Fortran筆記2

http://www.chem.ucl.ac.uk/resources/history/people/vanmourik/images/Fortran%2095-manual.pdf
In C:


void foo(void)
{
    static int a = 5;
    int const b = 6;
}


In Fortran90/95:


SUBROUTINE FOO()
IMPLICIT NONE
INTEGER, SAVE :: A = 5
INTEGER, PARAMETER :: B = 5
END





Array assignment statements



coords(1) = 3.5 
block(3,2) = 7 


do i = 1,3 
     coords(i) = 0.0 
 end do 


coords = (/ 1.3, 5.6, 0.0 /)



coords = (/ (2.0*i, i = 1, 3) /)  ! yields (2.0, 4.0, 6.0) 
odd_ints = (/ (i, i = 1, 10, 2) /)  ! yields (1, 3, 5, 7, 9) 
integer, dimension (8), parameter :: primes = (/ 1, 2, 3, 7, 11, 13, 17, 19 /) 



For example, a two-dimensional array b(2,3) can be added to the array section a(2:3, 1:3) 
of the array a of the previous section.  If the array c is an array of dimension (2,3), then 
the expression 
c = a(2:3,1:3) + b 
causes the elements of the array c to have the following values: 
 c(1,1) = a(2,1) + b(1,1) 
 c(2,1) = a(3,1) + b(2,1) 
 c(1,2) = a(2,2) + b(1,2) 
 c(2,2) = a(3,2) + b(2,2) 
 c(1,3) = a(2,3) + b(1,3) 
 c(2,3) = a(3,3) + b(2,3)

The same can be achieved by using a do loop: 
 do i = 1, 3 
     do j = 1, 2 
         c(j,i) = a(j+1,i) + b(j,i) 
     end do 
 end do 
But the expression c = a(2:3,1:3) + b is clearly more concise.   

給老師與同學:作業系統投影片下載 冼鏡光

給老師與同學:作業系統投影片下載 冼鏡光
http://blog.dcview.com/article.php?a=Az0CZlc3AzcGYQ%3D%3D

台灣史上最大貪污 正悄悄進行(張宏林)

台灣史上最大貪污 正悄悄進行(張宏林)
http://tw.nextmedia.com/applenews/article/art_id/33787628/IssueID/20111103

2011年11月5日 星期六

Fortran 筆記

Fortran 77


Data Type


IMPLICIT NONE


INTEGER
[sign][[base]#]constant
1. sign: "+" or "-",省略代表正
2. [[base]#]省略,表十進制。[base]省略,#保留,表16進制。
base:2~36
2#11011
36#2DM8F


REAL
-.28E2
.54D+3 (倍精度)


DOUBLE PRECISION


COMPLEX


(REAL,REAL)


LOGICAL


.TRUE.
.FALSE.


CHARACTER


CHARACTER A
CHARACTER B*10
CHARACTER*20 C*10, D
CHARACTER*(2*3) E
A 1
B 10
C 10
D 20
E 6


PARAMETER( 變數名稱=常數[,變數名稱=常數...] )




Fortran 90/95


INTEGER*1
INTEGER*2
INTEGER*4
INTEGER(4)
INTEGER(KIND=4)


REAL (4 btyes, 單精度)
REAL*4 (4 btyes, 單精度)
ERAL*8 (8 bytes, 雙精度)

2011年11月2日 星期三

菱形

原理:
n=3


  * 
 * * 
* * * 
 * * 
  * 


*  =


       j
    0 1 2
   2  
   1 
 i 0
  -1 
  -2  



#include
int main(void)
{
    int n, i, j;
    scanf( "%d", &n);
    for( i = n-1; i >= -n+1; --i )
    {
        for( j = 0; j <= n-1; ++j )
        {
            if( i <= j && -i <= j )
                printf("* ");
            else
                printf(" ");
        }
        printf("\n");
    }
    return 0;
}

Javascript程序员嘴最脏??

Javascript程序员嘴最脏??
http://coolshell.cn/articles/1850.html

半導體代工的故事

半導體代工的故事
http://mhperng.blogspot.com/2011/10/blog-post_30.html
http://mhperng.blogspot.com/2011/10/blog-post_9962.html
http://mhperng.blogspot.com/2011/10/blog-post_1192.html