to liberate the south

Giải phóng miền Nam (Joe Bangert)

Italian lyric: Liberiamo il sud Vietnam

Swedish lyric: Befria Södern


atching the famous film of Forest Gump, you would probably recognize dozens of war-protesting songs very popular the years of 60s, 70s in America: Blowin’ in the Wind (Bob Dylan), Where have all the flowers gone? (Pete Seeger), Mrs. Robinson (Simon & Garfunkel), Against the Wind (Bob Seger), Free Bird (Lynyrd Skynyrd)… American anti-war music, at its height in the Vietnam war, is only known to most of us (Vietnamese) through just some popular pieces.

My name is Joe Bangert. I’m a Philadelphia resident. I enlisted in the Marine Corps for four years in 1967. I went to Vietnam in 1968. My unit in Vietnam was Marine Observation Squadron Six with the First Marine Air Wing and my testimony will cover the slaughter of civilians, the skinning of a Vietnamese woman, the type of observing our squadron did in Vietnam and the crucifixion of Vietnamese either suspects or civilians in Vietnam. (from American thinker)

To my surprise, they also sang Vietnamese songs, such as this Giải phóng miền Nam (To Liberate the South), sang in Vietnamese by Joe Bangert, a famous Vietnam war veteran. It’s notable that the song is national anthem of the Republic of South Vietnam (1969 ~ 1976). If you understand the lyric, you would know how truthful and brave the men of Joe Bangert is, an American to sing: To liberate the South, we are determined to advance, to defeat the American Empire… Advance! The brave people of the South!… Let listen to the what he said prior to singing: It’s the song that they’d fought, it’s the song that they’d sung marching down the Ho Chi Minh trail…

the rain on the leaves

Giọt mưa trên lá – Thái Thanh

The rain on the leaves – Steve Addiss & Phạm Duy

ome interesting recently – collected video documents: Phạm Duy with Steve Addiss on his song: Giọt mưa trên lá (the rain on the leaves) and Phạm Duy with the legendary Pete Seeger and the American folk song Clementine. Center image: the original poster of the song, and the original Vietnamese rendition (by the singer Thái Thanh) on the left.

It’s not an abnormal thing to see church – music – influential songs like this to be the first to catch notices from Westerners (the Vietnamese – native pentatonic is harder to digest however). Indeed the song has been thought by some as a translation of a certain American folk song, which is absolutely not. The same is applied to several other Vietnamese songs, such as this Scents of Yesteryears, which easily touch the hearts of listeners outside VN.

thị xã trong tầm tay

Dedicated to personnel of the 3 rd division,
who heroically defended the town, Feb ~ Mar, 1979.

xactly 30 years ago… things as seen aftermath, when the bloodshed battles have just been over… Film name: Thị xã trong tầm tay, screenplayer & director: Đặng Nhật Minh, type: 35mm black and white film, year of production: 1982, music, lyric & dialogue: Trịnh Công Sơn & Hoàng Phủ Ngọc Tường.

3rd division (nickname: Yellow Star, official number: 359th) is an elite (but not regular!) formation of the VPA (Vietnam People Army), originally formed and served in the 5th military region (central of Vietnam). For its exceptional performance in the Vietnam war, in 1976, the unit was deployed to the 1st military region in preparation for any threats from the north. The responsibility was to defend Lạng Sơn province, with the historical positions: Đồng Đăng, Kỳ Lừa, Chi Lăng…

When it happened 3 years later, nominally, no regular formation had been committed to battle, the Strategic Army’s 1st and 2nd Corps still stationed around Hà Nội, behind the Như Nguyệt river (aka Cầu river) defence perimeter, in case of any deeper penetrations. Only local militia units took charges of absorbing the offensive forces. In reality, some of the most combat – hardened units, such as the 3rd (359th), the 346th divisions, had already engaged in.

At the outbreak of the Sino – Vietnam war, Feb, Mar, 1979, facing an enemy roughly 9 times outnumbered (against the Chinese 127th, 128th, 148th, 161th, 163th, 164th, 165th infantry divisions with their supporting artillery and tank units), Yellow Star fiercely defended a line of 60 km in width, only permitted the enemy to advance less than 30 km in depth, at an average rate of 0.8 km per day, and at an huge price of loss (about 11.000 Chinese casualties on only this front, to the overall number of 60.000)!

The division’s personnel also helped in training other defending units the following years. The final offensive had been carefully planned and prepared, but canceled due to the opponent’s unilateral withdrawal and other political reasons, thus denying the unit an evident victory. However, that’s enough for the division to receive great fear and respect from the adversary side! What was left is the completely destroyed provincial capital town of Lạng Sơn, no house is known to stand inside the town, the spaces recalled by the film!

ô ăn quan

Bức tranh lụa Chơi ô ăn quan của danh họa Nguyễn Phan Chánh.
Có 50 quân dân, và 2 quân quan, mỗi quan tương đương 10 dân. + Người chơi có quyền chọn di chuyển theo hướng bất kỳ, những game Mancala khác chỉ được di chuyển theo một chiều nhất định. + Ăn quân ở ô kế tiếp trong lượt đi chứ không phải ở ô đối diện của đối phương. + Khi đến lượt mình mà không còn quân để đi thì phải bỏ 5 quân đã ăn được vào 5 ô của mình để tiếp tục chơi. Trường hợp không có đủ 5 quân thì phải vay của đối phương và trả lại khi trò chơi kết thúc.

rò chơi dân gian Việt Nam Ô ăn quan thuộc họ Mancala, có nguồn gốc châu Phi và có hàng chục biến thể khác nhau trên thế giới. Khi nhỏ, tôi có chơi trò này vài lần, gọi theo tên địa phương là Ô làng chứ không phải Ô ăn quan. Hôm nay thử nhìn cái game này dưới góc độ tin học xem sao! Ô ăn quan có một số luật khác với những game Mancala khác.

Những luật bên, nhất là luật thêm & mượn quân làm Ô ăn quan phức tạp hơn nhiều so với những biến thể Mancala khác. Viết một chương trình cho máy tính chơi Ô ăn quan không phải là quá dễ dàng, dùng những heuristic đơn giản (hill-climbing, min-max, hay brute-force đến một độ sâu nhất định…) không đủ bảo đảm máy tính sẽ thắng trong nhiều trường hợp.

Trên internet, tôi không tìm được game Ô ăn quan nào theo đúng luật Việt Nam. Một số là những biến thể gần giống Ô ăn quan, một số tác giả claim là đã viết Ô ăn quan nhưng không cung cấp được link download. Có vẻ như game này không dể như khi vừa mới nghĩ đến! Bạn nào có ý kiến về chiến thuật chơi game này xin được trao đổi để cùng phát triển một trò chơi hoàn chỉnh.

Bên đây là screenshot của một Java applet tôi vừa viết trong 3g, cho phép 2 người chơi với nhau (máy tính chỉ kiểm luật, chưa phải là một chương trình cho máy tính chơi thực sự). Những hiệu ứng đồ họa: di chuyển quân, ăn quân nhìn rất giống thật, graphics được vẽ bằng Photoshop: những viên sỏi và bàn chơi được vẽ bằng phấn trên mặt sân xi-măng… gợi lại những kỷ niệm thủa nhỏ.

for whom the bell tolls

Men of five still alive through the raging glow.
Gone insane from the pain that they surely know.

(Metallica)

xcerpts from the 1943 film following Hemingway’s novel. In some aspects, this is a great film, highly symbolic and dramatical, beautiful staging and casting, but still nowhere closed to the book. So read the book here (zipped text file)! It’s said that Hemingway handpicked the actors and actresses himself for the roles, but he greatly disliked the film due to it’s political content removal.

Excerpt 1: The old guerilla man of El Sordo and his last four men make their last stand on a dead-end hilltop. They’re waiting for their fate to come, and the young Joaquin does the praying when the Russian machine gun barrel turns hot on his shoulder as the planes approach: Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, Amen!.

Robert Jordan, as illustrated on this Vietnamese translate book cover, using a Lewis gun, or just called a mácquina as in the book.

…Dying was nothing and he had no picture of it nor fear of it in his mind. But living was a field of grain blowing in the wind on the side of a hill. Living was a hawk in the sky. Living was an earthen jar of water in the dust of the threshing with the grain flailed out and the chaff blowing. Living was a horse between your legs and a carbine under one leg and a hill and a valley and a stream with trees along it and the far side of the valley and the hills beyond…

Excerpt 2: Robert Jordan, severely wounded on the way retreat after the mission, says farewell to his lover María. He stays behind to cover the enemy for others to safely escape. The scene removes the detail of Agustín asks if Jordan need a shot or he can manage himself once left behind. Counting the last minutes of his life, in such moment, one can hear the bell tolling for his soul!

Lieutenant Berrendo, watching the trail, came riding up, his thin face serious and grave. His submachine gun lay across his saddle in the crook of his left arm. Robert Jordan lay behind the tree, holding onto himself very carefully and delicately to keep his hands steady. He was waiting until the officer reached the sunlit place where the first trees of the pine forest joined the green slope of the meadow. He could feel his heart beating against the pine needle floor of the forest.

songs for free men

The USSR anthem – English verse and performed by Paul Robeson

…The reasoning behind his persecution centered not only on his beliefs in socialism and friendship with the peoples of the Soviet Union but also his tireless work towards the liberation of the colonial peoples of Africa, the Caribbean and Asia, his support of the International Brigades…

istening to Paul Robeson’s album: Songs for free men… a very lovely basso profondo concert singer (he was one of the few true basses in American music), performing spirituals. Despite being a very famous and successful singer & performer, the man was kept under strict surveillance by US and UK governments for his international activities in Labor and Anti – Colonialist movements. It’s believed that he was unsuccessfully murdered by the CIA while in Moscow. He is now deserved a position in mainstream history by various posthumous recognitions.

In the background video above (1945 victory parade in Moscow), Robeson presents the Soviet Union’s national anthem with a translated English lyric (let read the verses). I think, though it’s a very subjective idea, the song is the best anthem in the world, much more impressive than French’s La Marseillaise. The music’s still used as national anthem in Russia now, with a new lyric.

Don’t know why, but the music reminds me of spaces in the mesmerized text of Ernest Hemingway’s For whom the bell tolls (yet another American activist). As a child, I adored Hemingway’s writing style, and remembered many excerpts from his novel by heart, the spirits of International Brigades! The paragraph quoted on the left had been given a wonderful Vietnamese translation, it describes El Sordo’s final fighting on a hill, his thoughts on life and death, yet another picturesque Song for free men!

minesweeper

wo more hours of work and I’ve added this hexagonal tiles to my MineSweeper! Anyone interested in the game can found the tiny binary and source code (450 LOC) here. Mine sweeping with hexagons is quite a different experience! More about MineSweeper, a simple game?

On the left: Minesweeper with hexagonal tiles

virtualization

MineSweeper running in DOSBox
Click the demo page below (jpcapplet.jar – 1.8 MB in size), it would take some times to load, embedded in it is a DOS image (floppy.img) of a floppy’s size (1.4 MB). In Linux, using dd to create a blank image file, launch JPC app, mount the empty image, fdisk to give it a partition structure, format to give it a bootable FAT12 file system, copy the files over, edit autoexec.bat to have the game run at startup, and voila – there you are, the classic DOS game of MineSweeper on the web!

eside is screen-shot of my very first programming, the classic MineSweeper, an exercise I did first year at university. After getting started with Borland C++ 3.1, I began to write numerous toys like this; small games, graphics, animation, 3D… are among the things I was very fond of. We still had not had Internet in Vietnam then, lacking of information, we’d reinvented many wheels, including a package for displaying 3D objects (in form of polygon mess), a complete GUI for DOS with window, menu, toolbar, all kinds of controls: combo, list, button… But as they say: don’t reinvent the wheel, unless you plan on learning more about wheels, the reason we did all that fun stuff.

Back to my MineSweeper, it’s tiny, about 350 LOC (Line Of Code), using BGI (Borland Graphics Interface), C/C++ and some ASM. Yesterday, just want to check the old source, but didn’t have a Windows machine at hand, I needed to run the Borland C++ 3.1 compiler on my Linux box. Wine is good for many Windows applications, but it simply won’t work with pure DOS programs. Then I found DOSBox, you start it up in form of a console, mount a directory in local file system, have BC 3.1 installed and compiles flawlessly, and MineSweeper runs well on this virtual DOS on top of Linux!

That’s some layers of virtualization, say I want more, I want to show MineSweeper on the web, but don’t want to make change to the code, or even to the compiled binary. Could it be possible? The answer is: YES! You would need JPC, a pure Java IBM-PC emulator, it runs where there is Java: x86, RISC, mobile phone… On top of it, you can run a bundle of different OS: DOS, Linux, Windows… Then comes the delicate distinction between virtualization and emulation, hardwares, softwares, all can be virtualized to some great extent. Imagine you would run some games & utilities on a virtual DOS (or Linux) running inside JPC, hosted in Firefox browser, which in turn runs on Windows (or Linux)!

JPC can only bring about 20% power of the native machine, and even a tiny game like this is overkill to it, and mouse functioning is really crappy too. But that’s suffice to demonstrate the idea, JPC could be improved I believe. More games would be added to this Web DOS console later on! Anyone still remember Tetris, Croix-Zero, Snake, Mario…? So, what’s the points for JPC? Demonstrating the fractal principles in hardware, software evolution? Too much “nostalgia” for the “good old days” – DOS games? Anything else or just reinventing the wheel? The answer may be so, but I love this idea of cultivating the past, and pop out new things for the future!

otp (one-time-pad)

OTP takes a security problem and changes it into a
distribution problem. Modern cryptography takes a
distribution problem and changes it into a security problem.

Chuỗi khoá được in trên một cuốn sổ bé xíu, để dễ cất dấu hay tiêu huỷ khi cần thiết. Mỗi lần mã hoá dùng một (hay nhiều) tờ trong cuốn sổ, những tờ đó sẽ bị huỷ sau khi dùng, do vậy mà có cái tên one-time-pad

Hình bên: một cuốn sổ OTP của KGB, được in trên giấy phim để dể cháy khi đốt

đĩa Vigenere

Lincolnshire Poacher (MI6 ?)

Magnetic Fields (Deuxième Bureau?)

ôi đến với Computer Science khá trể, nhớ lại hồi năm nhất đại học, khi lần đầu tiên học về toán tử XOR (bit-wise operator XOR), tôi đã nghĩ ngay đến phương pháp mã hoá đơn giản và hiệu quả: thông điệp cần gửi được XOR với một chuỗi ký tự ngẫu nhiên (chuỗi khoá), ở đầu nhận, người ta XOR chuỗi đã được mã hoá với chuỗi khoá lần nữa để giải mã thông điệp. Đây chính là biểu diễn máy tính của phương pháp mã hoá cổ xưa OTP (one-time-pad) được dùng từ thời đệ nhất thế chiến.

OTP được các điệp viên CIA, KGB, MI6… dùng phổ biến trong hai cuộc thế chiến. Lý do thứ nhất là vì nó đơn giản: mã & giải mã chỉ cần dùng đến tính nhẩm (có thể dùng thêm bút chì và giấy), lý do thứ hai là nó rất an toàn. Tuy đã được dùng rất lâu từ trước nhưng mãi đến khoảng năm 1940, phương pháp này mới được chứng mình bằng lý thuyết về tính an toàn tuyệt đối của nó. Chứng minh được đưa ra đồng thời và độc lập bởi Claude Shannon (nhà toán học Mỹ, cha đẻ lý thuyết thông tin) và Vladimir Kotelnikov (viện sĩ khoa học Liên bang Nga, kỹ sư chế tạo rađa).

Mã & giải mã với OTP rất đơn giản, tương đương phép XOR, ta định nghĩa phép biến đổi như sau. Mã hoá = (text T(19) + khoá X(23)) mod 26 = Q(16). Giải mã = (Q(16) – khoá X(23)) mod 26 = text T(19), với 26 là kích thước bản chữ cái (phép XOR thực chất là phép cộng và modulo cho 2, với 2 là kích thước bảng chữ cái nhị phân: 0 & 1). Những người không giỏi tính nhẩm có thể dùng “thiết bị” sau (gọi là đĩa Vigenere), đĩa gồm 2 vòng giấy đặt đồng trục. Mã hoá text T với khoá X: gióng (xoay) vị trí [X] của vòng trong với vị trí [A] của vòng ngoài, tìm [T] tại vòng ngoài, ví trí tương đương [Q] tại vòng trong chính là kết quả. Giải mã là quá trình ngược lại: gióng [Q] của vòng trong với [A] của vòng ngoài, tìm [X] tại vòng trong, vị trí tương đương [T] tại vòng ngoài là văn bản gốc.

Có một cách sử dụng OTP đặc biệt gọi là chia xẻ bí mật (secret splitting), sau khi mã hoá, văn bản gốc bị huỷ thay vì khoá, sau đó khoá và văn bản mã hoá được đưa cho hai người khác nhau cất giữ. Chỉ khi hai người này cũng đồng ý nối hai “khoá” lại với nhau thì mới giải mã ra được văn bản gốc. Tương tự, có thể chia xẻ bí mật cho 3, 4,… người bằng cách sử dụng 2, 3,… khoá. Đây là cách bảo vệ các tài nguyên đặc biệt quan trọng, trách nhiệm bảo vệ đó được chia xẻ cho nhiều người, tuy nhiên lưu ý rằng nếu chỉ một phần của bí mật bị mất đi, thì bí mật đó cũng sẽ mất đi vĩnh viễn.

OTP là phương pháp mã hoá tuyệt đối an toàn nếu được sử dụng đúng cách, và là phương pháp tuyệt đối an toàn duy nhất cho đến thời điểm hiện tại. Văn bản được mã hoá với OTP không cho biết bất kỳ thông tin gì về văn bản gốc, ngoại trừ độ dài. Với một văn bản đã mã hoá cho trước, chúng ta có thể nghĩ ra các chuỗi khoá để “giải mã” nó về bất kỳ văn bản nào chúng ta muốn! Các phương pháp mã hoá mới sau này như DES (Data Encryption Standard), AES (Advanced Encryption Standard), PGP (Pretty Good Privacy), PKI (Public Key Infastructure)… tuy tiện dụng và có nhiều ưu điểm khác, nhưng về mặt lý thuyết không phải là không phá được. Nhưng trong sử dụng thực tế, có những lý do sau khiến OTP trở nên không an toàn:

  • Chuỗi khóa OTP không thực sự ngẫu nhiên (các nhân viên thư ký của KGB tạo ra OTP bằng cách gõ ngẫu nhiên lên máy đánh chữ, nhưng xu hướng gõ phím của tay người vẫn có những pattern nhất định).

  • Việc cất giữ và tiêu huỷ OTP có quá nhiều yếu tố rủi ro (đã có tình huống CIA giải được mã nhờ một cuốn sổ OTP đã bị đốt nhưng chưa cháy hết).

  • Mỗi trang OTP chỉ được dùng một lần (đã có lúc trong tình hình khẩn cấp, nhân viên KGB bất cẩn dùng một trang OTP cho nhiều lần mã hoá, dẫn đến việc CIA giải được khoảng 1% trong số những thông điệp gửi bởi KGB trong những năm 1945 ~ 1950).

Điểm yếu nhất của OTP nằm trong quá trình trao đổi khoá (key exchange), đó là một trong những lý do hình thành phương pháp public key rất tiện dụng sau này. Đến bây giờ, khi những phương tiện mã hoá và truyền thông đã quá hiện đại, người ta vẫn còn tiếp tục dùng OTP cho những kênh thông tin thuộc loại top secret (như đường dây hotline Washington DC – Moscow, liên lạc với tàu ngầm…) vì tính tuyệt đối an toàn đã được chứng minh lý thuyết của nó. Có thể kiểm chứng dấu vết của việc sử dụng OTP trong thực tế:

Các Number Station nổi tiếng bí ẩn, là những đài phát thanh không rõ nguồn gốc, phát trên băng tần sóng ngắn (shortwave) những bản tin toàn chữ số, được xem như những hoạt động tình báo của nhiều nước. Trên internet, những Numbers Relay Pages như nrp.write2me.com là hình thức mới của Number Station, cho phép mọi người gửi đi những thông điệp bí mật. Tất cả đều dưới hình thức những bộ 5 chữ số của mã hoá OTP (e.g: 41888 42037 89537 55295 14846 82981 63440…).

xăm hường

Xăm hường

Tứ sắc

rò chơi ni người mô gốc Huế hay Hội An xưa thì mới biết: xăm (xâm) hường. Bi chừ không mấy ai còn nhớ và chơi trò ni nữa! Khi nhỏ, ba ngày Tết không gì vui hơn là đổ xăm hường hay gầy sòng tứ sắc (ba mẹ tôi còn nói chưa biết chơi tứ sắc thì chưa phải là người Huế 😀 ). Trong các trò bài bạc “truyền thống” VN, miền Trung và miền Nam thường chơi tứ sắc và bài tới, ở miền Bắc hay chơi tổ tôm (hơi giống bài tới) và tam cúc (hơi giống tứ sắc).

Riêng ở một số đô thị cũ như Huế hay Hội An, bài giấy thì có tứ sắc và bài tới, bài thẻ thì có thêm xăm hường và mạt chược. Như người ta hay nói: đi xoè tức là đi đánh tứ sắc, đi xoa tức là đi đánh mạt chược. Tiếc là khi nhỏ tôi không được dạy bài tới và mạt chược, chỉ còn biết hai món ăn chơi chụp ảnh dưới đây.

Chụp lại ảnh bộ xăm hường của nhà post lên đây để bà con biết mặt mũi trò chơi thế nào (cùng với ảnh xáo bộ bài tứ sắc). Xăm hường gồm có: một thẻ trạng anh (trạng nguyên – 32 điểm), hai trạng em (bảng nhãn & thám hoa – mỗi thẻ 16 điểm), 4 thẻ hội nguyên (8 điểm), 8 thẻ tiến sĩ (4 điểm), và các thẻ con tương đương 1 điểm (tú tài), 2 điểm (cử nhân).

1 mặt tứ trên bộ xúc xắc ăn được quân một điểm, 2 mặt tứ ăn được quân hai điểm, 3 mặt tứ ăn được thẻ hội nguyên, 4 mặt tứ ăn thẻ trạng nguyên, 5 mặt tứ thì ăn cả 3 thẻ trạng, 6 mặt tứ (lục phú hường) thì ăn được tất cả các thẻ (kể cả thẻ đã thuộc về người khác). Đây được xem là tột đỉnh may mắn! Ngoài ra còn có các luật tứ tự (4 mặt giống nhau), ngũ tử (5 mặt giống nhau), lục phú (6 mặt giống nhau), phân song (2 nhóm, mỗi nhóm có 3 mặt giống nhau), và suốt (đủ 6 mặt 1, 2 , 3, 4, 5, 6) và nhiều luật lẻ khác…

Thức thâu đêm suốt sáng, tiếng của 6 hột xí ngầu leng keng leng keng trong lòng chiếc tô sứ, những song phân, nhất hường, suốt, giật trạng… những bất ngờ, hồi hộp như tiên đoán vận may trong năm mới…