Kho tháng 8/2006
Thứ năm, 24 Tháng tám năm 2006 17:51:39 ICT
Lần đầu tiên dùng git bisect
git bisect
không phải là một phát minh vĩ đại gì. Chỉ là một cải tiến nho
nhỏ, tận dụng lợi thế của hệ thống quản lý mã nguồn. Git có nhiều cái "cải
tiến" nho nhỏ như thế, rất là tiện dụng :)
git bisect start
. test, git bisect bad
. test, test, test... git bisect good
(git tự động checkout về nhánh bisect để test tiếp). Test, bad, test,
bad, test, good, test, bad, test, good ...
2d101132c219d4e23c2ce65216e8e91270339650 is first bad commit.
Xong. :D
Dĩ nhiên muốn xài git bisect cho hiệu quả thì nên có một cái test tự động, chứ ngồi đó mà test điên cuồng thì toi cơm.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 22 Tháng tám năm 2006 06:51:49 ICT
Kết quả SoC
-
Đầu tiên là Vertical Writing for Pango. Mấy bác Nhật chắc hẳn khoái lắm viết chữ dọc bằng Pango:
:http://mathrick.org/images/tategaki.png
-
Kế đến là Mathusalem liên quan đến Epiphany:
:http://tw.apinc.org/media/captures/mathusalem-0.0.4.avi
-
Gentoo-stats cũng đã được đưa vào thử nghiệm dù chưa công bố chính thức.
-
Hỗ trợ VC-1 (WMV3) cho FFMPEG đã được đưa vào từ lâu, miễn bàn.
-
-
:http://uwog.net/blog/gfx/jauco-pdf.png
:http://uwog.net/blog/gfx/jauco-abw.png
-
Trình soạn thảo GuideXML --- Beacon
-
GstEditor. Kho subversion ở: http://svn.berlios.de/svnroot/repos/gsteditor
-
Luộc lại GNOME panel applet
-
Easily creating collaborative applications (thiệt tình, không hiểu lắm. Có cái gì đó liên quan đến Telepathy)
Phù..
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ hai, 21 Tháng tám năm 2006 08:14:29 ICT
Tổng kết sau gần một tuần test punbbonrails
Một số tóm tắt:
- Test là bạn của lập trình viên. Nó phát hiện lỗi không nhiều. Nhưng nó phát hiện được (và có nhiều lỗi thật sự khó phát hiện nếu không nhờ sự cần cù bù ngu si của test)
git --amend
là bạn của test, vậy nên cũng là bạn của lập trình viên- Nên chạy test coverage để biết mình đã test được bao nhiêu phần (dĩ nhiên, độ bao phủ code không phải là tất cả)
- Số byte bỏ ra cho testcase tương đương với viết code thật sự :(
- Tổng kết functional test: 27 file, 1451 dòng, 1189 LOC, độ bao phủ tổng cộng 76.6%, độ bao phủ code 72.3%
- Tổng kết unit test: 16 file, 689 dòng, 510 LOC, độ bao phủ tổng cộng 70.5%, độ bao phủ code 63.5%
- Gắn thêm cái test valid markup nữa là ngon (tuy nhiên cũng hơi khó test UI/view)
- Test corner cases là cả một vấn đề
Nhờ có test mà punbbonrails bây giờ có thể nói gần đến giai đoạn phát hành bản đầu tiên. Vẫn còn thiếu nhiều thứ (search, subscription, bbcode, ban, censoring, moderator, forum pruning, đa ngôn ngữ ... mèn thiếu nhiều quá :D ). Phần kiểm tra quyền vẫn đang làm (và vẫn chưa test phân quyền).
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ tư, 16 Tháng tám năm 2006 11:30:44 ICT
Tao là tester!
Mất cả ngày ngồi đọc A Guide to Testing the Rails. Mất thêm cả buổi nữa ngồi vật lộn với sqlite3, mysql để phần migration chạy cho tử tế. Chỉnh cái use_transactional_fixtures về false trong test_helper.rb. Rồi lại vật thằng fixtures khỉ gió ra vì gõ nhầm hai cái id trùng nhau.
Cuối cùng thì cũng viết xong cái unit test đầu tiên cho punbbonrails. Giờ có thể ghi vô CV là "biết làm tester" :D
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 10 Tháng tám năm 2006 18:50:12 ICT
Nữ Ghen Tuông Đì Vé Lợp Bờ
Hổng ngờ trong đám Gentoo developer cũng có nữ. Nhìn phê lòi :D
!http://www.gentoo.org/images/gwn/20060529_christel.png!
Đem nữ ra làm User Relations thì chết user hết còn gì. Ác quá sức.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ tư, 09 Tháng tám năm 2006 10:54:31 ICT
Nhạc nhọt với Ruby
Do audioscrobbler cung cấp các tập tin dữ liệu dạng xml nên việc phát sinh đồ thị giống như last.fm cũng không khó. Script audioscrobbler.rb có thể làm được (hàm gen_all).
Tuy nhiên cái hay hơn của audioscrobbler.rb là phát sinh đồ thị thể hiện số bài nghe của từng tuần theo thời gian. Cần có ruby-cairo và ruby-pango để tạo ra cái hình này (700kB)
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ tư, 09 Tháng tám năm 2006 00:32:17 ICT
Chơi MMORPG với GNOME Bugzilla
Davyd có một ý tưởng tuyệt vời về GNOME Bugzilla: Bugzilla chính là MMORPG (Mass Multi-user Online Role Playing Game). Đây là một thể loại “game” đòi hỏi một lượng kiến thức, thời gian và sự kiên nhẫn hơi bị nhiều. Có ai muốn chơi không hè?
Theo bảng tổng sắp thì “level” 12 của mình có 109 người :)
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ ba, 08 Tháng tám năm 2006 12:01:57 ICT
Tổng kết nhạc nhọt
Tổng kết đến ngày 8/8/2006
1 | Apocalyptica | |
2 | Within Temptation | |
3 | Nightwish | |
4 | Scorpions | |
5 | Metallica | |
6 | Blackmore's Night | |
7 | Whitney Houston | |
7 | Therion | |
7 | The Cranberries | |
7 | The Beatles | |
7 | Edenbridge | |
7 | David Gates | |
7 | Dan Bryd | |
7 | Chantal Kreviazuk | |
7 | Anna Puga |
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ bảy, 05 Tháng tám năm 2006 23:36:12 ICT
FFMPEG WMV3 chạy??
Mike is enabling the WMV3 decoder for xine and reports that it is working great for his private samples collection. So even though some of the samples in the official samples collection still cause problems it may be time enable WMV3 decoding within FFmpeg.
I vote for enabling. Kostya, what do you think?
Diego
Phản ứng chung là "chạy, nhưng còn một số vấn đề với các tập tin sau...". Kết quả:
On Wed, Aug 02, 2006 at 06:23:20PM +0200, Diego Biurrun wrote:
Mike is enabling the WMV3 decoder for xine and reports that it is working great for his private samples collection. So even though some of the samples in the official samples collection still cause problems it may be time enable WMV3 decoding within FFmpeg.
I vote for enabling. Kostya, what do you think?
Diego
OK, I'll enable it in a minute.
@All: thanks for samples, I'll use them to fix remaining bugs.
Hỡi đồng bào, hãy dòm mặt win32codecs lần cuối! (Nếu không dùng realmedia)
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 04 Tháng tám năm 2006 17:26:07 ICT
Cùi Bắp 0.1 chính thức phát hành
Giới thiệu tóm tắt
Cùi Bắp là một phần mềm để ghi blog “ngoại tuyến”. Bạn ghi blog như thể soạn tài liệu thông thường, sau đó tạo ra html và đưa lên mạng nếu thích. Cùi Bắp viết bằng ruby và một số lệnh của shell. Có thể xem lại bài Chào Cùi Bắp! để biết thêm phương châm cùi của Cùi Bắp.
Cài đặt
Cần có ruby (1.8.5), redcloth, rake, shell (bao gồm lệnh date, cal và locale tiếng Việt). Cài đặt dễ òm, bung cuibap-0.1.tar.bz2 ra, tạo một tập tin cấu hình mới tên config.yaml đại loại như:
---
url: http://dev.gentoo.org/~pclouds/blog
lang: vi-vn
title: Lý sự pclouds
description: Đêm qua mơ dáng em đang ôm đàn tằng tăng tắng tăng
author: pclouds
Tạo thư mục data, xong.
Với ai khoái git và muốn theo dùng bản đang phát triển của Cùi Bắp thì lấy ở ngay trang này (ngạc nhiên chưa)
Sử dụng
Cùi Bắp chưa có giao diện dòng lệnh riêng mà dùng thông qua rake. Có một số lệnh để sử dụng là
- rake ls: liệt kê cách mục đã có kèm số thứ tự. Số này được dùng với rake rm, rake test, rake edit ... Xác định thêm N=n nếu muốn xem n mục.
- rake new: tạo một mục mới. Nếu bạn không đặt biến EDITOR thì vim sẽ được dùng. Viết bất cứ gì mình thích. Mặc định sẽ dùng định dạng của textile. Phần TAGS cách nhau bằng dấu phẩy. Lưu ý, TAGS phân biệt hoa thường và số khoảng trắng ở giữa.
- rake test: tạo tập tin test.html để xem thử. Nếu không xác định ID=n thì sẽ thử với mục mới nhất
- rake edit: sửa một mục, mặc định là mục mới nhất nếu không có ID=n
- rake: Phát sinh html (tốt nhất nên chạy rake metadata trước khi dùng lệnh này, xem thêm phần lỗi Cùi Bắp). Sau khi tạo html xong, đẩy lên server thế nào là chuyện.. không phải của Cùi Bắp ;-)
- rake clobber: Xoá bỏ tất cả các tập tin html đã phát sinh
Tính năng
- Tương thích với dữ liệu cũ của nanoblogger. Tuy nhiên, các mục mới sẽ không tương thích với nanoblogger.
- Cho phép liên kết các mục nội bộ theo kiểu textile. Nhập ID (tên tập tin trong thư mục data không có đuôi ".txt") thay cho URL.
- Có biểu tượng cười
- Đánh tag thoải mái
- Tạo được rss cho .. trang chính (hack mà :-D)
Khuyết điểm và tương lai
- Các trang có thể phát sinh sai lần đầu tiên, hoặc khi metadata được cập
nhật. Nói chung, để chắc ăn, cứ chạy
rake metadata;rake
- Chưa có giao diện riêng
- Cơ chế modular rendering vẫn chưa hoạt động thật tốt. Không cần phải nạp toàn bộ lên nếu thực hiện những lệnh không liên quan đến db như edit, rm ...
- Thay thế smiley nhiều chỗ chưa ổn thì phải
- Vẫn chưa đặt ràng buộc tự động cho các Partial
- Chưa hỗ trợ RSS/Atom cho tất cả các trang
- Chưa có phân trang
- Chưa được "quốc tế hoá"
- Chưa hỗ trợ "article" như nanoblogger.
- Chưa tích hợp với git
Cùi Bắp tạm thời thế là ổn. Ngưng lại để làm việc khác :-)
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ sáu, 04 Tháng tám năm 2006 01:34:35 ICT
Khác biệt giữa initrd và initramfs?
initrd đã ra đời khá lâu, có lẽ từ thời kernel 2.4. Với kernel 2.6, có thêm một lựa chọn mới: initramfs. Hai thằng này thiệt là khó phân biệt vì một bên là “ramdisk” còn một bên là “ramfs”(RAM filesystem). Google initramfs vs initrd ra được bài Introducing initramfs, a new model for initial RAM disks. Ngoài ra bài giới thiệu initramfs của LWN (Linux Weekly News) cũng cho một cái nhìn cơ bản về initramfs. Hai tài liệu khác cũng nên tham khảo là /usr/src/linux/Documentation/filesystems/ramfs-rootfs-initramfs.txt và /usr/src/linux/Documentation/early-userspace/README
Tóm lại, cả initramfs và initrd đều cố gắng giải quyết “vấn đề root=” bởi vì hệ thống Linux càng ngày càng phức tạp và kernel không còn biết đường nào mà lần để có thể mount root bảo đảm thành công. Trong khi initrd là một hỗ trợ cho kernel trong việc mount root thì initramfs lại là một thay thế. Với initrd, sau khi chạy /linuxrc trong initrd image xong thì quyền điều khiển trả về kernel, kernel chạy init (tiến trình đầu tiên của hệ thống). Với initramfs, kernel chạy /init ngay trong chính initramfs image và không thèm quan tâm kết quả là gì nữa. Nói cách khác, kernel bỏ của chạy lấy người.
Ngoài đặc điểm đó ra, initramfs sử dụng bộ nhớ đỡ hơn initrd, tuy nhiên cái này không thực sự quan trọng lắm.
Một điểm khác nữa (có lẽ thế) giữa initrd và initramfs là initramfs được gắn trực tiếp vào kernel (nối vào đuôi kernel) còn initrd nằm riêng. Phát sinh initramfs bằng /usr/src/linux/usr/get_init_cpio. initramfs image được xác định bởi CONFIG_INITRAMFS_SOURCE
Nói tóm lại (lần nữa), Linux kernel ngày càng phức tạp một cách dễ sợ. Không thể theo kịp tiến độ của kernel nữa rồi.
TB. Xem thêm LWN 23/11/2006 phần “Embedded Linux: Small Root Filesystems”
Cập nhật 3 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 03 Tháng tám năm 2006 01:32:03 ICT
Gtk#/Mono vào GNOME
Quyết định cuối cùng đã được đưa ra: Gtk#/Mono/Tomboy sẽ vào GNOME nếu thoả mãn một số điều kiện nhất định (không quá khó).
Chuẩn bị học lại C# là vừa rồi. :) Chiến trường chính d-d-l có vẻ im lặng. Nhưng OSNews thì cãi nhau um sùm.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ năm, 03 Tháng tám năm 2006 00:49:38 ICT
Chuyển "Sổ tay những người ghét UNIX" sang Textile
Sổ tay những người ghét UNIX là một tài liệu khá dài. Chuyển qua textile giúp phát hiện ra hạn chế của textile:
- Không có quyền điều khiển trong khối pre và code dẫn đến phải sử dụng html ở nhiều chỗ
- Không có blockquote lồng nhau. Tuy nhiên có thể khắc phục bằng cách dùng cú pháp của markdown . Phải nói là dùng markdown trong chuyện này thật tuyệt.
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017
Thứ tư, 02 Tháng tám năm 2006 17:39:35 ICT
Cùi Bắp đã biết nhập một mục mới
Mất hết hai ngày chỉ vì lỗi YAML của Ruby 1.8.4. Làm bới tung đống code metadata cho Cùi Bắp lên. :(
Thêm một cái rake task mới cho Cùi Bắp. Bây giờ có thể gõ rake new
để tạo
một mục mới. Bước tiếp theo:
- Liệt kê danh sách các item đã có
- Xoá item
- Tích hợp với GIT (đề phòng trường hợp xoá nhầm)
- Sửa một item đã có
- Kiến trúc plugin (hiện lại cái lịch!)
- Thông qua kiến trúc plugin, chỉnh luôn cách phát sinh URI vẫn còn đang lộn xộn
- Cuối cùng, quảng cáo cho Cùi Bắp! :grin:
Cập nhật 2 lần. Lần cuối: Tue Aug 08 11:22:15+0011 2017