Kho tháng 11/2006
Thứ ba, 28 Tháng một năm 2006 19:44:10 ICT
Tĩnh tâm, tắt thở
Luyện thế hệ F1 mất hai tiếng (chỉ tính vnexpress đến 2003, 2.5M câu). Gần hết
2 tiếng là dành cho sc-train
. Thêm mười phút để sort (có 37M dòng à) và chạy
sc2wngram
. Cần dành ít nhất 1GB trống để cúng cho sort
. sc-train
chạm
ngưỡng float, chuyển qua dùng kiểu double (hi vọng không cần phải chuyển
qua long double). Kết quả LM 27K unigram và 2.5M bigram, tốn 62MB.
Cứ đà này luyện đến F5 mất nửa ngày, thử nghiệm vài chục lần thì cháy
CPU, thay đĩa cứng mới. Dự đoán ngram chuẩn bị cho lần phát hành đầu tiên sẽ
tốn ít nhất một ngày tròn (để xem đúng không). Viết lại sc-train
thôi :D
So với kết quả lần trước thì rõ ràng kích thước ngữ liệu có tác động nhất định. Lần trước đường màu đỏ ổn định ở mức gần 0.6. Lần này đường đỏ ở mức gần 0.7 -- tăng gần 10%.
Đường xanh vượt mức 1.0 là vì tính trùng các trường hợp bắt đúng (bắt đúng cả ở mức tiếng và từ). Vẫn không hiểu tại sao strict word checking lại có thể nâng kết quả lên đến 20%. Quái đản.
TB. Donald Knuth có lẽ nói đúng.
"Premature optimization is the root of all evil". Dùng sysprof kiểm tra thử.
Kết quả cho thấy mình hoàn toàn sai trong việc dự đoán đâu là nơi tốn nhiều
thời gian xử lý nhất. Phần tính toán tốn không đáng kể (kể cả hàm exp10).
Thời gian sử dụng nhiều nhất được dùng để đọc lattice và xây dựng DAG. Loại bỏ
phần này có thể giảm thời gian huấn luyện F1 từ hai tiếng xuống còn nửa
giờ, trong đó sc-train
chiếm mười lăm phút. Chấp nhận được (hi
sinh thêm 300MB nữa).
TB2. Chắc lại phải thêm hỗ trợ gnuplot cho Cùi Bắp nữa quá :D
TB3. Tin nóng hổi vừa thổi vừa phun. Táck token (tokenize-test
) cho
7.7M câu (VnExpress trọn bộ, khoảng 2/3 kho) tốn ... 7 giờ! Dự đoán
lattice-test
mất thêm 7 giờ nữa. sc-train --record
mất 10-12
giờ. train
mất cỡ một giờ mỗi lần luyện, luyện 5 lần cỡ 5 giờ
nữa. Tổng cộng ... vài ngày :D
TB4. Sửa lỗi rò rỉ bộ nhớ (nhằm đúng ngay hash table mà rò), nguyên
nhân làm chương trình càng ngày chạy càng chậm. Sau đó thì
wngram2idngram
tràn số. Sửa wngram2idngram
chuyển từ int
sang
long long int
cũng đồng nghĩa với sửa lại định dạng file idngram,
đổi hàm get_ngram()
... Mình cứ đâm đầu vào tường để làm cái gì nhỉ?
Cập nhật 7 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 27 Tháng một năm 2006 18:15:23 ICT
The party is over
I lost you in the morning when the snow fell in our world.
I lost you in the cold between these shades of our illusions.
Within this kiss -- this kiss goodbye.
For I will never forget your face behind the window of this
parting train.
I asked the moon to bring you back into my arms.
I called the wind to guide your way.
I begged the earth to hold you tight, keep you from harm.
I sent you kisses in my dreams.
For I know
We had our time
I close the door
The party is over...
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 26 Tháng một năm 2006 21:19:17 ICT
Một phút bon chen
:file:banner.svg
:file:banner.svg
:file:banner.svg
Thông tin giấy phép có trong SVG.
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 26 Tháng một năm 2006 19:26:44 ICT
Tổng kết kho chữ
Đợt phát động phong trào coi như chấm dứt sau khi thu hồi 3 năm tin tức của VnExpress từ 2004 đến nay. Thông tin chi tiết xem ở liên kết trên. Dĩ nhiên, ai có nhu cầu sử dụng và không ngại chuyện bản quyền linh tinh, có thể liên hệ để lấy.
Xin chân thành cám ơn những người sau (không sắp thứ tự):
- Nguyễn Đại Quý (vnpenguin)
- Nguyễn Duy Thọ (ntdt)
- Lê Ngọc Hiếu (mybb)
- Nguyễn Thành Luân (lihavim)
TB. Khi xưa ít thì đói, than. Nay nhiều thì ứ, ói cả ra. CMU SLM toolkit dường như không tiêu hoá nổi mớ chữ này dù đã điều chỉnh để nó dùng long long int thay vì int :(
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 24 Tháng một năm 2006 11:37:06 ICT
Hiệu Hạnh phúc các bà
Tưởng đâu truyện mới. Đọc đến phần giới thiệu, đề cập tên nhân vật chính mới nhận ra truyện này đọc rồi.
Danh sách những truyện từng đọc (quyết tâm không bỏ sót):
- Hiệu Hạnh phúc các bà (Au Bonheur des Dames) của Émile Zola
- Chuông nguyện hồn ai (For Whom the Bell Tolls) của Ernest Hemingway
- Ông già và biển cả (The Old Man and the Sea) của Ernest Hemingway
- Giã từ tuổi thơ của Nguyễn Minh Châu
- Đi tìm ngọc của Trần Thanh Giao
- Rừng già và tuổi phiêu lưu của Văn Linh
- Cửa ngõ miền Tây của Thu Bồn
- Hảo hán nơi trảng cát (Capitães da Areia) của Jorge Amado
- Tereda (Teresa Batista Cansada da Guerra??) của Jorge Amado
- Ca cao của Jorge Amado
- Ngôi nhà của những hồn ma (La casa de los espíritus hoặc The House of the Spirits) của Isabel Allende
- Đoạt lửa (La Guerre du feu hoặc Quest of Fire) của J.H. Rosny
- Đảo châu báu của Jules Verne
- Hòn đảo huyền bí (The Mysterious Island) của Jules Verne +1
- Hai vạn dặm dưới đáy biển, Vòng quanh mặt trăng, Vòng quanh thế giới trong 80 ngày cũng của Jules Verne
- Chú bé thoát nạn đắm tàu hình như cũng của Jules Verne
- Hội chợ phù hoa (Vanity fair) của William Makepeace Thackeray
- Những con chim ẩn mình chờ chết (The Thorn Birds) của Colleen McCullough
- Trà hoa nữ (La dame aux camélias hay The Lady of the Camellias) của Alexandre Dumas con
- Hán Sở tranh hùng
- Chúa tể thế giới (The Lord of the World/Властелин мира) của Alexander Belyayev/Алекса́ндр Беля́ев
- Vâng.. Các vị thần vui đùa của Dennis London
- Một số truyện của A.J. Cronin và Sidney Sheldon nữa thì phải
- Yêu muộn (hi vọng là Pavilion of Women) của Pearl S. Buck
- Con nhân mã trong vườn (“The Centaur in the Garden”) của Moacyr Scliar
- Người tình tuyệt vời (“No Greater Love”?) của Frank G. Slaughter
- Một số truyện (không kế hết) của Nguyễn Nhật Ánh
- Vĩnh biệt mùa hè của Nguyễn Đông Thức
- Thế giới đã mất (The Lost World của Arthur Conan Doyle +1
- Con cái chúng ta giỏi thật và Những người thích đùa của Aziz Nesin
- Harry Potter and the Philosoper’s stone của J.K. Rowling +4
- Harry Potter and the Chamber of Secrets của J.K. Rowling +5
- Harry Potter and the Prisoner of Azkaban của J.K. Rowling +4
- Harry Potter and the Globet of Fire của J.K. Rowling +3
- Harry Potter and the Order of the Phoenix của J.K. Rowling +3
- Harry Potter and the Half-Blood Prince của J.K. Rowling +3
- Harry Potter and the Deathly Hallows của J.K. Rowling +3
- Câu chuyện tình yêu (Love Story) của Erich Segal
- Gió bụi Sài Gòn của Bùi Cát Vũ
- Dũng Sài Gòn của Nguyễn Trí Công
- Găng-xtơ —- Đặc sản Hoa Kỳ (The Last Testament of Lucky Luciano)? của Martin Gosch và Richard Hammer
- Frankenstein của Mary Shelley
- Bến bờ xa lạ của ai? (truyện kể về nhà thám hiểm Miklukho-Maklai)
- Thuỷ Hử của Thi Nại Am
- Bản di chúc cỏ lau của Hoàng Phủ Ngọc Tường
- Chim hót trong lồng của Nhật Tiến
- Cuộc đời của Pi của Yann Martel +1
- Đônha Bácbara (Doña Bárbara) của Rómulo Gallegos
- Bá tước Dracula của Bram Stoker
- Tuyển tập truyện cười Hoàng Thiếu Phủ
- Truyện ngắn Nam Cao
- Solaris của Stanislav Lem
- Tình yêu cuộc sống - Tác phẩm chọn lọc của Jack London
- Alexis Zorba, con người hoan lạc (Zorba the Greek) của Nikos Kazantzakis
- Thần thoại Hy Lạp của Nguyễn Văn Khoả
- Suối nguồn (The Fountainhead) của Ayn Rand.
- Tu La Đạo của Bộ Phi Yên.
- Tình nhân của Janusz L.Wisniewski.
- Đo thế giới (Measuring the World) của Daniel Kehlmann.
- Đường xưa mây trắng của Thích Nhất Hạnh.
- Tuyết của Maxence Fermine.
- Quần Jeans may mắn (The Sisterhood of the Traveling Pants) của Ann Brashares.
- Thiếu nữ đánh cờ vây của Sơn Táp.
- Lụa của Alessandro Baricco.
- Người tình Sputnik của Haruki Murakami
- Lược sử cái chết của Kevin Brockmeier
- Tên tôi là Đỏ của Orhan Pamuk
- The Hitchhiker’s Guide to the Galaxy +3
- The Restaurant at the End of the Universe +2
- Life, the Universe and Everything +1
- So Long, and Thanks for All the Fish
- Say ngủ (Asleep) của Banana Yoshimoto
- Thằn Lằn của Banana Yoshimoto
- Wagner the Werewolf của George W. M.Reynolds
- Đèn không hắt bóng của Junichi Wantanabe
- Axit Sunfuric của Amélie Nothomb
- Người đưa tin (“The Messenger”) của Daniel Silva
- Tobie Lolness Ngàn cân treo sợi tóc của Timothée De Fombelle
- Kitchen của Banana Yoshimoto
- Xin lỗi em chỉ là con đĩ của Tào Đình
- Cánh đồng bất tận của Nguyễn Ngọc Tư
- Xứ cát (Dune) của Frank Herbert +3
- Đất rừng phương Nam của Đoàn Giỏi
- Yêu người ngóng núi của Nguyễn Ngọc Tư
- Mostly harmless của, dĩ nhiên, Douglas Adams
- Foundation của Issac Asimov +2
- Starship Troopers của Robert A. Heinlein +6
- Childhood’s End của Arthur C. Clarke
- Neuromancer của William Gibson +1
- Paladin of Souls của Lois McMaster Bujold
- Tobie Lolness Đôi mắt Elisha của Timothée De Fombelle
- Rendezvous with Rama của Arthur C. Clarke +1
- Dune Messiah của Frank Herbert
- Fallen Dragon của Peter F. Hamilton
- I am Legend của Richard Matheson +1
- The Girl with the Dragon Tattoo của Stieg Larsson
- The Lord of the Rings của J. R. R. Tolkien
- Anne tóc đỏ dưới chái nhà xanh của L. M. Montgomery
- Children of Dune của Frank Herbert
- Nightfall của Isaac Asimov và Robert Silverberg
- Foundation and Empire của Isaac Asimov +1
- Second Foundation của Isaac Asimov +1
- Rừng Na Uy của Haruki Murakami
- The Graveyard Book của Neil Gailman
- Stranger in a Strange Land của Robert A. Heinlein
- Ngày mai cho những ngày mai của Nguyễn Ngọc Tư
- Foundation’s Edge của Issac Asimov
- Tình yêu chân chính của Danny Scheinmann
- Cuộc đời chín ngày của Thierry Cohen
- Foundation and Earth của Isaac Asimov
- Water for Elephants của Sara Gruen
- The White Tiger của Aravind Adiga
- A Clockwork Orange của Anthony Burgess
- Đại Gia Gatsby của F. Scott. Fitzergald
- Nỗi cô đơn của các số nguyên tố của Paolo Giordano
- Dragon Haven của Robin Hobb
- Forward the Foundation của Issac Asimov
- 2001: A Space Odyssey của Arthur C. Clarke
- Do Androids Dream Of Electric Sheep? của Philip K. Dick
- The Sirens of Titan của Kurt Vonnegut
- Beyond Black của Hilary Mantel
- Snow Crash của Neal Stephenson
- Cat’s Cradle của Kurt Vonnegut
- The Time Machine của H. G. Wells
- The Forever War của Joe Haldeman
- Ender's Game của Orson Scott Card +2
- Pandora’s Star của Peter F. Hamilton
- The Moon is a Harsh Mistress của Robert A. Heinlein
- Fahrenheit 451 của Ray Bradbury
- Ringworld của Larry Niven
- The Hobbit của J.R.R. Tolkien
- 1984 của George Orwell
- Trăm năm cô đơn của Gabriel García Márquez
- The Cat Who Walks through Walls của Robert A. Heinlein
- Caves of Steel của Isaac Asimov
- The Color of Magic của Terry Pratchett
- The Mote in God’s Eye của Larry Niven
- American Gods của Neil Gailman
- Slaughterhouse-Five của Kurt Vonnegut
- Speaker for the Dead của Orson Scott Card
- Gateway của Frederik Pohl
- Stardust của Neil Gailman
- Dealing with Dragons của Patricia C. Wrede +1
- Calling on Dragons của Patricia C. Wrede +1
- Talking to Dragons của Patricia C. Wrede +1
- Searching for Dragons của Patricia C. Wrede +1
- The Fountains of Paradise của Arthur C. Clarke
- I, Robot của Isaac Asimov
- Guards! Guards! của Terry Pratchett +6
- Men at Arms của Terry Pratchett +6
- Mort của Terry Pratchett
- Small Gods của Terry Pratchett
- A Game of Thrones của George R. R. Martin
- The Snow Queen của Joan D. Vinge
- Going Postal của Terry Pratchett +4
- Shades of Grey của Jasper Fforde
- Reaper Man của Terry Pratchett
- Soul Music của Terry Pratchett
- Night Watch của Terry Pratchett +3
- Brave New World của Aldous Huxley
- Thud của Terry Pratchett +4
- Hogfather của Terry Pratchett +1
- Wyrd Sisters của Terry Pratchett
- Breakfast of Champions của Kurt Vonnegut
- The Martian Chronicles của Ray Bradbury
- Good Omens của Terry Pratchett và Neil Gailman +2
- The Gods Themselves của Isaac Asimov
- A Canticle for Leibowitz của Walter M. Miller Jr.
- Making Money của Terry Pratchett +4
- Thief of Time của Terry Pratchett
- Interesting Times của Terry Pratchett
- Witches Abroad của Terry Pratchett
- Falling Free của Lois McMaster Bujold
- Shards or Honour của Lois McMaster Bujold
- The Princess Bride của William Goldman
- Hyperion của Dan Simmons
- The Fall of Hyperion của Dan Simmons +2
- Spin của Robert Charles Wilson +1
- Neverwhere của Terry Pratchett và Neil Gailman +1
- Feet of Clay của Terry Pratchett +4
- Jingo của Terry Pratchett +1
- The Final Empire của Brandon Sanderson +3
- The Well of Ascension của Brandon Sanderson +2
- The Hero of Ages của Brandon Sanderson +1
- The Truth của Terry Pratchett +3
- Monstrous Regiment của Terry Pratchett
- The Fifth Elephant của Terry Pratchett +1
- The Last Hero của Terry Pratchett
- Pyramids của Terry Pratchett
- Moving Pictures của Terry Pratchett
- The Golden Compass của Phillip Pullman +1
- The Subtle Knife của Phillip Pullman +1
- The Amber Spyglass của Phillip Pullman +1
- Babel-17 của Samuel R. Delany
- The Einstein Intersection của Samuel R. Delany
- Doomsday Book của Connie Willis +1
- Tehanu của Ursula K. Le Guin
- Rite of Passage của Alexei Panshin
- Red Mars của Kim Stanley Robinson
- The Falling Woman của Pat Murphy
- The Way of Kings của Brandon Sanderson +2
- Words of Radiance của Brandon Sanderson +4
- Dreamsnake của Vonda N. McIntyre
- Axis của Robert Charles Wilson
- Vortex của Robert Charles Wilson
- Prelude to Foundation của Isaac Asimov
- Lords and Ladies của Terry Pratchett
- Maskerade của Terry Pratchett
- Unseen Academicals của Terry Pratchett
- Equal Rites của Terry Pratchett
- The Quantum Rose của Catherine Asaro
- Camouflage của Joe Haldeman
- Forever Peace của Joe Haldeman
- The Left Hand of Darkness của Ursula K. Le Guin
- The Speed of Dark của Elizabeth Moon
- Barrayar của Lois McMaster Bujold
- The Warrior’s Apprentice của Lois McMaster Bujold
- 2010 Space Odyssey Two của Arthur C. Clarke
- 2061: Odyssey Three của Arthur C. Clarke
- 3001: The Final Odyssey của Arthur C. Clarke
- Wintersmith của Terry Pratchett
- Worlds của Joe Haldeman
- The Hunger Games của Suzanne Collins
- Pebble in the Sky của Isaac Asimov
- A Hat Full of Sky của Terry Pratchett
- The Wee Free Men của Terry Pratchett +1
- Carpe Jugulum của Terry Pratchett
- A Fire Upon the Deep của Vernor Vinge
- Dragon’s Egg của Robert L. Forward
- Steelheart của Brandon Sanderson
- Mitosis của Brandon Sanderson
- Firefight của Brandon Sanderson
- Calamity của Brandon Sanderson
- Lord of the Flies của William Golding
- Quán gò đi lên của Nguyễn Nhật Ánh
- Những chàng trai xấu tính của Nguyễn Nhật Ánh
- Cô gái đến từ hôm qua của Nguyễn Nhật Ánh
- Trại hoa vàng của Nguyễn Nhật Ánh
- Buổi chiều Windows của Nguyễn Nhật Ánh
- Ngày xưa có một chuyện tình của Nguyễn Nhật Ánh
- Nữ sinh của Nguyễn Nhật Ánh
- Bồ câu không đưa thư của Nguyễn Nhật Ánh
- Animal Farm của George Orwell
- Elantris của Brandon Sanderson
- Oathbringer của Brandon Sanderson +2
- Theatre of Cruelty của Terry Pratchett
- The Dispossessed của Ursula K. Le Guin
- Dolphin Island của Arthur C. Clarke
- Anansi Boys của Neil Gailman
- Greek Mythology: A Captivating Guide to the Ancient Gods, Goddesses, Heroes, and Monsters
- The Hammer of God của Arthur C. Clarke
- The Man in the High Castle của Philip K. Dick
- Skyward của Brandon Sanderson
- Giao thừa của Nguyễn Ngọc Tư
- Rhythm of War của Brandon Sanderson
- Ender's Shadow của Orson Scott Card
- Warbreaker của Brandon Sanderson
- Mistborn: The Alloy of Law của Brandon Sanderson
- A Canticle for Leibowitz của Walter M. Miller Jr.
- Slow River của Nicola Griffith
- The Last Continent của Terry Pratchett
- The Light Fantastic của Terry Pratchett
À quên.. Đôrêmon, Bảy viên ngọc rồng và Dấu ấn rồng thiêng!
Cập nhật 301 lần. Lần cuối: Sun Dec 22 01:52:01+0001 2024
Thứ tư, 22 Tháng một năm 2006 18:02:13 ICT
Ô chữ Linux Gazette tháng 11
- Ngang: owner. Dọc: oct
- không biết
- không biết
- emacs
- release
- Ngang: spam
- public
- aguide
- membus
- không biết
- huge
- không biết
- không biết
- cernlib
- ripping
- bonsai
- không biết
- nessus
- idu
- không biết
- spaces
- addon
Kết quả tháng mười vậy mà vẫn sai. Số 10 là tide chứ không phải time.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 21 Tháng một năm 2006 09:00:51 ICT
Đập ống tập hai: tee nâng cao
Cái công cuộc thêm xoá sửa xử lý văn bản cho vspell đã chứng minh câu nói của người xưa là đúng: cái khó ló cái khôn .. của người khác (chỉ cần tìm và nhặt).
tee
cơ bản là lưu nội dung stdout vào tập tin. Đại loại như:
cmd blah| tee a | cmd bluh
Giả sử ta không muốn tee ra tập tin a như trên mà thay vào đó ta đẩy stdout cho một tiến trình khác xử lý tiếp. Theo như The Answer Gang thì có nhiều cách:
- Dùng mkfifo
- Dùng process substitution
Dùng process substitution cho ra câu lệnh khá đẹp
cmd blah|tee >(cmd blahblah) | cmd bluh
Một điểm nữa là man bash
cũ quá, không có thông tin về process
substitution. info bash
thì có. Với lệnh này, có thể thực hiện được
một cái luồng đại loại như sau cho vspell:
<graphviz cmd="dot" width="800">
digraph {
rankdir=LR;
src [label="Corpus",shape="box"];
dst [label="Ngram counts",shape="box"];
out_st [label="Sentences",shape="box"];
out_tok [label="Tokens",shape="box"];
out_lat [label="Lattices",shape="box"];
err_prefilter [label="stderr log",shape="plaintext"];
err_sentence [label="stderr log",shape="plaintext"];
err_utf8toviscii [label="stderr log",shape="plaintext"];
err_tokenize [label="stderr log",shape="plaintext"];
err_lattice [label="stderr log",shape="plaintext"];
err_softcount [label="stderr log",shape="plaintext"];
prefilter [label="text-filter"];
sentence [label="sentence-test"];
tokenize [label="tokenize-test"];
lattice [label="lattice-test"];
softcount [label="sc-train"];
sentence_tee [label="tee",shape="diamond"];
tokenize_tee [label="tee",shape="diamond"];
lattice_tee [label="tee",shape="diamond"];
src -> prefilter -> sentence -> utf8toviscii -> sentence_tee -> tokenize -> tokenize_tee -> lattice -> lattice_tee -> softcount -> sc2wngram -> dst;
sentence_tee -> out_st [label="gzip"];
tokenize_tee -> out_tok [label="gzip"];
lattice_tee -> out_lat [label="gzip"];
prefilter -> err_prefilter;
sentence -> err_sentence;
utf8toviscii -> err_utf8toviscii;
tokenize -> err_tokenize;
lattice -> err_lattice;
softcount -> err_softcount;
}
</graphviz>
TB. Đây là phần dành cho phân loại Hâm. Cùi Bắp theo kế hoạch sẽ hỗ trợ hiển thị TeX. Bây giờ thêm graphviz. Có khi nào Cùi Bắp dùng ConTeXt để tạo ra một thứ nhật ký bằng PDF luôn không ta :D
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 20 Tháng một năm 2006 19:13:46 ICT
"Dù có chết mình cũng phải cài Gentoo"
Trích dẫn của bạn otzi từ forum.vnoss.org:
Tớ xem output thấy thế :) thế tóm lại bây giờ tớ phải làm gì :( . Người anh em hãy giúp mình dù có chết mình cũng phải cài gentoo :) người anh em cho tớ xin nick YM tớ chỉ làm phiền xí thôi :D
(bản trích dẫn đã được sửa lỗi chính tả)
Nhắn nhỏ bạn otzi, nếu bạn có tình cờ đọc được những dòng này. Vậy là bạn đang "có chết cũng phải cài Gentoo". Cài xong bạn sẽ làm gì? Tự tử à?
Câu trả lời nghe hợp lý nhất là cài xong để tuyên bố "đã cài được Gentoo, mà từ stage 1 nhé!", xong rồi .. xoá
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 19 Tháng một năm 2006 08:28:17 ICT
Mạng 360
cauchuyennhocuatoi.net gợi ra một ý hay: vẽ đồ thị mạng lưới liên kết trên 360. Sau một hồi hì hục móc friend list của bà con về (dừng ở mức 300 list, móc hết chắc chết). Chỉ xét trong những trường hợp đã móc friend list về thì vẽ được cái này:
:http://flickr.com/photos/pclouds/300514134/
Cái nút đỏ đỏ là "nhân vật chính" pclouds. Ai có nhu cầu vẽ một cái tương tự thì liên hệ qua mail :-)
:http://flickr.com/photos/pclouds/301377579/
:http://flickr.com/photos/pclouds/301377582/
Hai hình vẽ mạng bạn bè trực tiếp. Cái trên vẽ bằng twopi cái dưới vẽ bằng neato. Trông hết sức gọn nhẹ. Vậy hãy xem mạng "bạn của bạn" để thấy rằng mình .. nhỏ xíu:
:http://flickr.com/photos/pclouds/301377584/
Vẫn như trước. pclouds là một chấm (tìm ra không?) màu đỏ. Liên kết trực tiếp đến pclouds màu đỏ. Các nút gắn với liên kết đỏ sẽ đổi sang màu xanh dương. Các liên kết đi từ xanh dương đi ra cũng sẽ có màu xanh dương. Vậy liên kết đen là liên kết "chúng nó chơi với nhau".
Đồ thị này có 2370 nút (tương đương 2370 người) với 2726 mối liên hệ bạn bè của bạn bè mình (trong tổng số 13366 liên kết)
Nếu có ai phân vân vẽ bằng neato nó kinh dị thế nào, thì đây:
:http://flickr.com/photos/pclouds/301388724/
Cập nhật 4 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 18 Tháng một năm 2006 15:12:20 ICT
Sự khác biệt giữa plainTeX, LaTeX và ConTeXt
Khác nhau ở cái \output
:D
Với plainTeX, hết sức đơn giản. \output
là một vbox gồm ba thành phần là
headline (\makeheadline
), phần nội dung (\pagebody
) và footline
(\makefootline
).
Với LaTeX, hết sức phức tạp. Có lẽ do tại LaTeX hỗ trợ văn bản nhiều
cột. Có vẻ như macro thực sự tạo ra một trang là \@opcol
(hai cột
thì chuyển qua xài \@outputdblcol
, một cột thì xài
\@outputpage
). Đến lượt \@outputpage
là một macro to đùng (may
quá, tìm ra manh mối để tìm macro này sau khi đã tìm ra macro này: tìm
\shipout
) với các thiết lập trang chẵn lẻ... Nói chung là nhức đầu.
Với ConTeXt, nó phân ra làm một trong ba macro \OTRMUoutput
, \OTRONEoutput
và \OTRSEToutput
(có vẻ vậy). Ba macro này là ngõ cụt vì không tìm ra đường
dẫn đến \shipout
. À có thể \OTRONEoutput
, sau một hồi xử lý, sẽ dẫn đến
\OTRONEfinalsidefloatoutput
để từ đó gọi \finaloutput
. \finaloutput
qua
một số bước nữa sẽ ra đến \shipout
.
Tò mò đọc thử tài liệu về pdfTeX, thấy lệnh \pdfliteral
. Hèn gì dễ dàng tạo
ra PDF (nói "dễ" cho oai thôi). Một số lệnh hay hay là \pdfimage
để chèn ảnh
PNG vào PDF. \pdfinfo
để thêm thông tin phụ như tác giả... Một số lệnh khác
để xử lý siêu liên kết (ớn). Vậy là để xài pdfTeX, phải tìm hiểu thêm về kiến
trúc và tập lệnh PDF :P
Chưa biết làm thế nào ConTeXt nối MetaPost với TeX lại với nhau. Có lẽ dính dáng đến một số script phụ trợ bên ngoài.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 18 Tháng một năm 2006 07:37:40 ICT
VM --- Có quá trời VM!
Sự kiện Adobe đóng góm ActionScript VM cho dự án Mozilla, dù sớm hơn sự kiện Sun mở mã nguồn Java VM nhưng lại ít được biết đến hơn.
Vậy đến thời điểm này ít nhất có hai công ty to to mở VM. Ngoài ra còn một lô lốc các VM khác như Mono, Parrot, YARV kèm theo một mớ các VM nho nhỏ khác như LLVM hoặc NekoVM … Chưa kể một loạt các ngôn ngữ thông dịch phổ dụng như Python hoặc Ruby đang được chuyển qua nền Java/.NET.
Coi bộ các ngôn ngữ hoạt động trên nền VM bắt đầu vươn lên. Nhưng ngôn ngữ biên dịch trực tiếp ra mã máy bắt đầu đi xuống (dù vẫn còn nhiều). Ngoài một số quá thấp như C và Assembly vẫn trụ vững ở tầng .. hầm của hệ thống. Số còn lại như C++, D, Haskell, Objective C, Lisp, Eiffel, ML/Ocaml... sẽ đi đâu về đâu?
Trừ Objective C vẫn còn bảo đảm tương lai chừng nào OS X vẫn còn, mấy cái khác coi bộ không có bảo lãnh. Ứng dụng nổi tiếng nhất của Haskell chắc là Darcs. D vẫn chưa ra bản 1.0. C++ đang tiến lùi trước C# và Java. Lisp lâu lâu vẫn thấy ở một số ứng dụng (Emacs, Festival...). ML/OCaml có MLDonkey. Nhân nói về mấy ngôn ngữ ngộ ngộ, phải tính thêm Erlang với ejabberd. Tóm lại, trừ Objective C ra, mấy cái còn lại đang trên đường ngáp ngáp. Chết thì không chết. Vẫn có đất sống. Nhưng sống vật vờ trong ngõ hẻm...
TB. Theo tin YARV is merging thì YARV đã bắt đầu được đưa vào Ruby SVN. Điều này có nghĩa là từ này không còn YARV nữa mà chỉ còn RubyVM :-)
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 17 Tháng một năm 2006 22:55:11 ICT
Nối ống, rẽ nhánh, bẻ ống, đập ống... hay "Tất cả các dòng byte đều chảy"
Một lệnh hết sức hay từ Linux I/O Redirection để có thể xuất cả stdout và stderr ra tập tin trong khi vẫn giữ nguyên stdout và stderr để xử lý tiếp:
(((./cmd | tee stdout.txt) 3>&1 1>&2 2>&3 |tee stderr.txt) 3>&1 1>&2 2>&3) 1>out.txt 2>err.txt
Khúc 1>out.txt và 2>err.txt
không tính. Đó là phần còn lại của lệnh, muốn
sửa gì thì sửa. ()
dùng để bảo toàn cả stdout và stderr (stderr bị mất khi
đẩy qua ống). Phần hấp dẫn nhất gì nhiên là 3>&1 1>&2 2>&3
dùng để hoán đổi
vị trí hai ống 1 (stdout) và 2 (stderr). Ống (file descriptor) 3 là ống
tạm. Có lẽ dùng 4 hoặc 5 cũng không chết ai (hi vọng thế).
Vậy là từ nay có thể nối ống từ hai, ba hàng sang bốn, năm hàng :D Đi đăng ký thi bàn tay vàng --- thợ sửa ống nước. Mà với kiểu ráp ống kiểu này, nhất thiết phải có hình minh hoạ. Không có chỉ cần nó "đổi ống" vài ba lần là bỏ mạng.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 16 Tháng một năm 2006 06:31:47 ICT
Bàn về sed
Nhìn lại mấy cái lệnh dùng để xử lý văn bản của mình cũng không nhiều. Quanh quẩn chỉ grep, sed, sort, uniq, head/tail, while;do;done và for;do;done (lâu lâu thêm awk)
Gần đây mò ra cái mánh /^$/blah
trong sed từ cg-admin-rewritehist, nghĩ
cũng đáng viết một chút về sed.
Theo truyền thống, phải giới thiệu sơ qua về sed. sed là viết tắt của stream editor, phần còn lại coi man sed :D
Công dụng của sed? Có lẽ dùng nhiều nhất để thay thế một đoạn văn bản với
biểu thức chính quy thông qua lệnh s///
. Lệnh này cũng đơn giản, biết biểu
thức chính quy, tán vào là ngon. Các tuỳ chọn phía sau của nó cũng na ná như
của Perl. Ví dụ lọc link từ tag <a>
sed 's,.*href="\([^"]*\)".*,\1,' tập-tin
Lệnh này nên áp dụng chung với grep. Bởi vì nó chỉ tác động trên những dòng có href="...". Những dòng không có nó bỏ qua (bởi vậy dùng grep để lọc bỏ những dòng này).
Có một tuỳ chọn trong sed rất hay dùng: -i
. Thêm tuỳ chọn này, các tập tin
phía sau sẽ bị điều chỉnh trực tiếp chứ sed không đẩy kết quả ra stdout như
thường lệ. Rất tiện để chỉnh sửa tập tin (sau khi đã thử không có -i
và cảm
thấy kết quả tốt). Một cách khác an toàn hơn là thêm một cái gì đó vào sau
-i
, ví dụ như -i.bak
. Sed sẽ thay thế như thường lệ, nhưng lưu lại bản sao
cũ dưới đuôi .bak
. Sau đó có thể gọi cái lệnh hầm hố dưới đây để kiểm tra
nội dung:
find -type f -not -name '*.bak' | \
while read i; do
diff -u "${i}".bak "${i}"
done | \
less
Có một phần trong cú pháp sed mà gần đây mới dùng nhiều là cách xác định
những dòng sẽ thao tác. Với lệnh s///
trống hơ trống hoắc trên, sed sẽ áp
dụng lệnh này trên tất cả các dòng. Muốn sed chỉ áp dụng với những dòng thoả
biểu thức chính quy REGEX thì sửa thành /REGEX/s///
. Nói chung, thêm phần
/REGEX/
vào trước lệnh cần thao tác để chọn vùng cho lệnh đó. Xem thêm phần
Addresses trong man sed. Một số ví dụ khác bao gồm:
- thực hiện lệnh
d
(xoá dòng) ở dòng thứN
(số):Nd
- thực hiện lệnh
d
ở dòng cuối cùng:$d
- thực hiện lệnh
d
từ dòngN
đếnM
:N,Md
- thực hiện lệnh
d
từ dòngN
đếnN+M
:N,+Md
- Thay
N
bằng biểu thức chinh quy dạng/REGEX/
nếu thích
Một số lệnh hữu dụng khác của sed ngoài s///
:
- Xoá dòng
d
- Chèn dòng phía trước
iblah
(blah
là cái muốn chèn vào) - Tương tự
i
, dùnga
để chèn dòng phía sau
Tóm lại, với sed, có thể thực hiện hầu hết các thao tác chỉnh sửa tập tin đơn giản (mang tính hệ thống). Với các yêu cầu phức tạp hơn thì dùng Perl, hoặc điên hơn nữa, dùng Vim "tự động hoá" (từ sed qua vim cũng không kinh dị lắm).
TB. Theo tài liệu này thì sed còn có flow control với buffer (variable?) nữa. Ớn quá!
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 16 Tháng một năm 2006 00:47:43 ICT
Kho chữ
Sau gần 1 tuần kêu gọi giúp đỡ, lượng dữ liệu tăng khá nhiều
Nguồn Số bài Số đoạn Số dòng Số từ (cũ) Số từ (wc) Số byte
-------------------------------------------------------------------------------------------------
data/dactrung.net 3.692 277.252 559.332 12.463.893 12.177.324 72.883.621
data/evan.com.vn 1.404 19.836 41.447 1.578.629 1.541.558 9.482.208
data/hanoi.vnn.vn/vanhoc 348 7.176 21.910 657.170 640.951 3.864.075
data/suutap.com 1.477 32.734 135.211 1.199.299 1.167.326 7.132.125
data/vnexpress.net 161.433 1.582.869 8.432.197 72.494.109 70.682.025 437.154.181
data/vnthuquan.net/truyen 4.049 272.974 549.016 13.116.602 12.810.473 76.549.743
-------------------------------------------------------------------------------------------------
Tổng cộng (số cũ) 77.872 1.276.834 5.403.152 56.194.122 54.879.290 353.351.221
Tổng cộng 172.403 2.203.841 9.769.113 104.509.702 99.019.657 599.933.828
Số từ (cũ)
là đếm bằng cách ngắt khoảng trắng. Còn số từ wc là dùng wc để
đếm (LANG là C)
Các nguồn "dự trữ" gồm:
- vi.wikipedia.org
- vi.wikisource.org
- e-cadao.com
- www.quehuong.org.vn
- www.tuoitre.com.vn
- www.nld.com.vn
- www.maiyeuem.net/forum.php (phần Văn học nghệ thuật)
- pcworld.com.vn
- echip.com.vn
- www.bbc.co.uk/vietnamese
- www.dantri.com.vn
- Báo Nhân dân
- Báo VnEconomy
Các việc cần làm (đánh giá lại chất lượng kho):
- Kiểm tra xem sạch tag html hay chưa
- Kiểm tra xem còn html entity không
- Loại bỏ các ký tự đặc biệt ngoài phạm vi ASCII (trừ khi thật sự cần thiết).
- Loại bỏ Unicode tổ hợp
- Đánh giá lượng ký tự ngăn cách
- Đánh giá số lượng âm tiết không phải tiếng Việt (từ nước ngoài + sai chính tả + lọc văn bản sai)
- Phân loại kho, thêm phân loại cho từng nguồn để sau này dễ chọn lựa
Cập nhật 4 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 11 Tháng một năm 2006 23:31:14 ICT
Công dân thành phố
Trong 14MB "ngữ liệu", không có nổi một lần xuất hiện cụm từ "công dân thành phố". Ha ha ha...
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 11 Tháng một năm 2006 16:39:08 ICT
Sửa commit cũ trong Git
Càng dùng Git, càng bị nghiện cái gọi là "thay đổi lịch sử". Lý do có thể là sau khi commit xong mới nhận ra một lỗi nhỏ không đáng để thêm một cái commit nữa, hoặc nhận ra mình commit thiếu mất một tập tin... Nói chung là ba lỗi lặt vặt.
Nếu phát hiện ra ngay lúc vừa commit, việc sửa HEAD tương đối đơn giản. Cứ
git commit --amend
là xong. Tiện và gọn. Mỗi cái khó theo dõi coi mình đã
"amend" cái gì. Cái này có thể dùng git diff HEAD~1
Nếu phát hiện ra lúc đã commit một vài thứ khác nữa thì.. chà phức tạp. Cơ bản là lưu lại SHA-1 của tất cả các commit mới. Sau đó dùng "git reset" để quay về commit cần sửa. Sửa và commit. Xong commit lại những commit cũ (commit con của commit được sửa).
git reset --hard <SHA-1>
# sửa một số thứ
git commit --amend
# làm lần lượt những cái sau cho các commit con
# <SHA-1> là ID của commit con
git read-tree <SHA-1>
git commit -C <SHA-1>
# commit con kế tiếp
Có lẽ nên viết một cái tool để thực hiện chuyện này cho nhanh :)
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ tư, 08 Tháng một năm 2006 08:13:46 ICT
Luyện vspell
Chạm ngưỡng ở lần huấn luyện thứ 3:
:http://flickr.com/photos/pclouds/292339609/
Chưa rõ kết quả này là tốt hay xấu vì .. lỡ tay xoá mất kết quả cũ :P Tại sao strict word checking lại cao hơn khi không có strict word checking tới 20%??
Cập nhật 4 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 07 Tháng một năm 2006 16:30:14 ICT
Festival tiếng Việt và hoan hô Tony Lý
Bạn Phạm Thành Nam xăm mình đi thu âm để festival có thể nói tiếng Việt. Nói chung, nghe cũng tạm được. (Mà nghe được đã là mừng lắm lắm rồi). Các điều khoản mở rộng về việc nói bậy và buồn cười, có lẽ chỉ nên là "gợi ý" chứ không nên nằm trong license thật sự, tại nó mơ hồ quá.
Tin vui thứ nhì là bác Tony Lý đã lên tiếng ủng hộ cải tiến chất lượng của bộ âm thanh này. Hết sức cám ơn bác Tony Lý. Hi vọng sáu tháng sau sẽ có một phiên bản có chất lượng tốt hơn, và có giọng nữ (ngoài một số ưu thế về kỹ thuật, giọng nữ còn được "hâm mộ" hơn).
Địa chỉ của dự án là http://sourceforge.net/projects/vietnamesevoice
Không biết có ai đủ khả năng để xem xét xem có thể chuyển dữ liệu từ vspeech sang CMUSphinx không cà?
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 06 Tháng một năm 2006 20:28:00 ICT
Tái luộc vspell repository
Lịch sử huy hoàng của vspell, theo như kho svn chứa vspell, ghi nhận những biến cố lịch sử:
- Ngày 22/10/2003 (r37), hai tập tin đầu tiên của vspell,
wfst.cpp
vàwfst.h
được đưa vào kho, đánh dấu sự khởi đầu của vspell. - Ngày 12/12/2003 (r64), vspell chuyển sang sử dụng auto* đồng thời chuyển từ
thư mục cũ
/trunk/vspell
sang/trunk/vspell/vspell
- Ngày 29/03/2004 (r140), lại một cơn điên dại nữa xảy ra. vspell được chuyển
từ
/trunk/vspell/vspell
sang/trunk/vspell-old/vspell
. Liền sau đó (r141),/trunk/vspell-old/vspell
được chuyển về thành/trunk/vspell
- Một ngày xấu trời cuối tháng 3/2004 (r147),
/trunk/vspell
được chuyển thành/vspell/trunk
. - Một ngày sau đó, ta tỉnh ra, nhận ra rằng ta không thể kiểm soát nổi hệ
thống nữa nên quyết định quay về r146. Với thay đổi này, vspell cuối cùng
quay lại
/trunk/vspell
Với sự thay đổi thư mục xành xoạch như vậy, git-svn
không thể nào import
được toàn bộ kho mà phải import làm nhiều đợt. Điều này dẫn đến 1 vấn đề: nối
các git repo lắt nhắt này lại để tạo nên repo thống nhất. Cách làm đại loại
như sau:
git checkout old-repo
echo 'commit message' | GIT_AUTHOR_DATE='timestamp +timezone' git commit-tree <tree-object của commit đầu tiên của new-repo> -p HEAD > .git/refs/heads/new-repo-1
git rebase new-repo-1 new-repo
(cuối cùng sử dụng commit-tree, sau một hồi mò mẫm git read-tree, git update-index, git checkout-index...)
Sau khi dùng cg-admin-rewritehist
để loại bỏ SRILM (vì không được phép phân
phối nếu chưa xin phép), kho vspell giờ nằm trên
repo.or.cz! Kho mới do không có SRILM
nên các phiên bản cũ chắc chắn sẽ không chạy. Kho git chứa SRILM sẽ
không được công bố. Ai có nhu cầu thì liên hệ trực tiếp qua mail.
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Chủ nhật, 05 Tháng một năm 2006 21:18:26 ICT
Loại SRILM khỏi vspell
SRILM là thư viện về Language Modeling, trước đây được dùng trong vspell cho tiện. Khổ nỗi SRILM không tiện phân phối và khá nặng nề. Do đó phần LM được thay bằng module của CMUSphinx. Bước kế tiếp sau khi bản LM của CMU Sphinx hoạt động ổn định là chuyển qua PocketSphinx nhằm giảm lượng bộ nhớ sử dụng.
Sau nửa tuần, SRILM đã bị gỡ bỏ khỏi vspell. Dùng boost từ thư viện ngoài thay vì nhúng thẳng vô vspell (nâng cấp là nhức cái đầu). Điều chỉnh lại mấy cái chương trình lắt nhắt dùng để kiểm tra, thử nghiệm và huấn luyện, theo hướng tách nhỏ ra. Nếu cần thì gắn lại với nhau bằng pipe, tiện và gọn. Ngoài ra phần tính toán LM của SRILM cũng bị loại bỏ, thay bằng CMU-Cam SLM Toolkit. sc-train chỉ xuất ra dữ liệu thô và CMULM làm phần còn lại. Cần tìm hiểu tiếp về Principle of maximum entropy. Nếu dùng sc-train lặp đi lặp lại thì có vẻ như đang áp dụng lý thuyết này.
Tổng kết: 298 files changed, 4480 insertions(+), 49473 deletions(-)
Kế tiếp: coi lại cái "corpus" chôm từ VNExpress. Phát sinh lại LM mới và chạy thử lần nữa coi nó có còn chạy (được và đúng) không. Chuyển CMUSphinx sang PocketSphinx. Loại SRILM khỏi vspell repository và thêm phần history còn thiếu (thằng Subversion khỉ gió), sau đó công bố vspell repository :D
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ tư, 01 Tháng một năm 2006 00:13:03 ICT
VSpell chạy rồi!
Tin vui vào lúc 0 giờ vài phút đầu tháng 11 (đúng hơn là cuối tháng 10 --- vspell-gtk được tạo ra lúc 23 giờ 51 phút ngày 31 tháng 10): VSpell chạy lại sau hơn hai năm nằm vùng. Trong điều kiện subversion repository cũ có nguy cơ không thể phục hồi, thằng tác giả chạy lăng nhăng làm đủ việc lăng nhăng, đến khi biên dịch lại thì GCC 4.1 mới quá nó đếch thèm chạy. Phải nâng cấp boost và libsrilm lên rồi ngồi moi móc. Cũng đáng đồng tiền bát gạo.
:http://flickr.com/photos/pclouds/284792515
Vẫn thân thương như ngày xưa. Vẫn tốn RAM như xưa khi đứng đầu bảng những chương trình tốn RAM trên máy :D
Cập nhật 4 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017