Mới update Redmine của mình lên version 1.0, làm theo các bước upgrade thấy chạy rất mượt, nhưng hôm nay mới phát hiện ra một bug. Khi mở một issue có update thì luôn bị Internal error 500. Mình mở file log production.log trong thư mục log thì thấy ghi lỗi từ file _history.rhtml vì không xác định được biến issue. Ruby on Rails học chưa xong nên đành google thì mường tượng được nguyên nhân của lỗi này, có thể do mình cài Advance Roadmap nên plugin này tác động vào sự hiện thị của issue. Thấy mọi người chia sẻ sửa lỗi này bằng cách chỉnh sửa lại file _history.rhtml như sau
- <%= render_notes(issue, journal, :reply_links => reply_links) unless journal.notes.blank? %> + <%= render_notes(@issue, journal, :reply_links => reply_links) unless journal.notes.blank? %>
Sau khi patch xong thấy Redmine lại chạy mượt ^_^
Hôm nay ngồi loay hoay tìm iPhone SDK cũ để cài cho con Mac OS 10.5.8 mà không tài nào thấy link trên trang chủ của Apple. Hì hục download từ rapidshare thật là lâu. Cuối ngày thì tự dưng lại tìm được một tập hợp các link download các version khác nhau của iPhone SDK, đành post lên đây cho ai lạc lối như mình.
iPhone SDK 2.2.1 Leopard (10.5.4)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.0 (Xcode 3.1.3) Leopard (10.5.7)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.0 (Xcode 3.2) Snow Leopard (10.6.0)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.1 with Xcode 3.1.4 Leopard (10.5.7)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.1 with XCode 3.2.1 for Snow Leopard (10.6.0)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.1.2 with XCode 3.1.4 for Leopard (10.5.7)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.1.2 with XCode 3.2.1 for Snow Leopard (10.6.0)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.1.3 with XCode 3.1.4 for Leopard (10.5.7)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.1.3 with XCode 3.2.1 for Snow Leopard (10.6.0)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
iPhone SDK 3.2 Final with Xcode 3.2.2 for Snow Leopard (10.6.0)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
Xcode 3.2.3 and iPhone SDK 4 GM seed for Snow Leopard (10.6.2)
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sd...
Chuẩn bị quay lại với người đẹp C thuần túy nào :((
Sau lần thất bại với việc cài đặt Mac OS trên máy ảo để phát triển các ứng dụng iPhone, hôm nay mình sẽ giới thiệu cách thiết lập môi trường để phát triển các ứng dụng trên Android. Không giống như iPhone, SDK cho phát triển ứng dụng Android có thể chạy được hầu hết trên các nền tảng hệ điều hành từ Windows, Linux và Mac. Bài viết này sẽ giúp bạn nhanh chóng cài đặt và thiết lập môi trường để phát triển ứng dụng Android, mình cũng mới bắt tay vào nghiên cứu mảng lập trình này chính xác được 3 ngày, cho nên những gì viết ra sẽ rất sát những gì mình đang nghiên cứu.
Bước đầu tiên, bạn hãy download Eclipse về máy, đây là một IDE (viết tắt từ Integrated Development Environment, có nghĩa là môi trường phát triển tích hợp, một ứng dụng tương tự như Visual Studio của Microsoft). Link để download là http://www.eclipse.org/downloads/, khi vào trang này lần đầu chắc bạn sẽ hoa mắt không biết chọn download cái gì, đo là những gói Eclipse khác nhau cho những mục đích phát triển khác nhau. Bạn hãy lấy bản Eclipse IDE for Java Developer khoảng 97MB cho nhẹ nhàng. Sau khi download thành công, bạn giải nén ra một chỗ nào đó thì tùy vào có thể chạy luôn được Eclipse mà không cần cài đặt.
Bước tiếp theo chúng ta sẽ cài Android Plugin cho Eclipse. Để thực hiện bước này, bạn hãy khởi động Eclipse. Sau khi khởi động xong chọn menu Help/Install new software.... Khi cửa sổ Install mở, bấm vào nút Add để cập nhật thêm source. Khi đó cửa sổ Add Site được hiện ra, quan trọng trong phần này là mục Location bạn điền https://dl-ssl.google.com/android/eclipse/, rồi ấn OK.

Sau khi OK, quay về cửa sổ Install, ứng dụng sẽ update thông tin của plugin, khi đó cửa sổ sẽ giống như hình dưới đây.

Tại đây bạn check vào ô Developer Tools để cài đặt. Sau khi bấm một vài bước xác nhận tiếp theo thì Android Plugin được cài đặt thành công cho Eclipse.
Bước tiếp theo là cài Android SDK, vào link http://developer.android.com/sdk/index.html lấy SDK theo hệ điều hành mà bạn đang sử dụng. Sau khi download thành công, bạn giải nén vào thư mục bất kỳ. Sau đó mở Eclipse, vào menu Window->References->Android, chọn Location trỏ đến thư mục của Android SDK.
Bước cuối cùng, trong Eclipse bạn vào menu Window->Android SDK and AVD manager->Available Packages và chọn các Android API mà bạn muốn.
Vậy là quá trình thiết lập môi trường phát triển ứng dụng cho Android đã hoàn tất. Bây giờ bạn có thể dụng Eclipse để tạo ra các ứng dụng cho Android một cách nhanh chóng và dễ dàng.
Trong bài trước mình đã có lần đề cập đến việc Google công bố Web Font API, ngoài ra Google cũng công bố kho chứa font mở cho người sử dụng. Mình không có tham vọng cạnh tranh với Google những việc đó, chỉ là mình gom những font có hỗ trợ tiếng Việt cho mọi người sử dụng (những font này trên google chưa thể có được). Mình đơn giản chỉ clone lại trang web của Google cho tiện dụng. Những font mình sưu tầm ở đây đều được lấy sau nhiều năm làm thiết kế và gom lại nên không rõ tác giả và vấn đề bản quyền của chúng. Nếu ai là tác giả hay thấy có sự vi phạm nào xin thông báo lại cho mình để mình đính chính lại.
Địa chỉ xem font là http://fonts.huyvq.com. Khi sử dụng nhưng font này bạn không cần phải cài font trên máy, chỉ cần copy đoạn CSS cho vào trang web và có thể sử dụng được luôn. Các font lần lượt sẽ được cập nhật lên trong thời gian sớm nhất.
Ngày 19 tháng 5, Google đã công bố Font API mới và kho chứa font mã nguồn mở để mọi người có thể sử dụng thiết kế trang web miễn phí. Google Font API cho phép bạn nhúng bất kỳ font Google lên trang web của mình chỉ bằng dòng CSS đơn giản. Đơn thuần Font API sử dụng @font-face để khai báo font cần hiển thị, cho dù font chỉ định chưa được cài trên máy tính của bạn nhưng nó vẫn sẽ hiển thị được chính xác (mình đã thử thì chỉ có trên Iphone và các dòng máy điện thoại thì @font-face không làm việc).
Việc sử dụng @font-face đơn giản như vậy mà từ trước đến giờ mình lại bỏ qua và tìm các cách thay thế như là Cufon và sFIR. Phải chăng trước kia @font-face chưa được hỗ trợ nhiều trên trình duyệt? Không phải vậy, mình đã thử đọc lại thông tin về @font-face thì thấy được hỗ trợ từ rất sớm từ các trình duyệt khác nhau. Vậy là từ giờ người thiết kế website sẽ có thêm công cụ linh hoạt để sử dụng font trên trang web của mình.
Đối với những website Việt Nam thì Google công bố font mã nguồn mở cũng không thay đổi lắm cách thức sử dụng font trên site của họ. Vì những font trên google đang có không hỗ trợ Unicode. Mấy ngày nữa mình sẽ tự tạo một thư viện riêng dành cho bộ font hỗ trợ tiếng Việt (cầu mong không bị kiện vì vi phạm bản quyền font) ^_^