HP bought Palm in April 2009. webOS has been belong to HP. However, webOS is minority force of the global mobile marketshare.
In December 9, 2011, HP announced that they will contribute webOS to open source community.
13/12/2011
30/11/2011
弟13課-問題
3.
1)用事がありますから、5時にうちへ帰りたいです。
2)あしたは休みですから、昼まで寝たいです。
3)のどがかわましたから、何か飲みたいです。
4)疲れましたから、何もしたいです。
5)暑いですから、どこも行きたいです。
4.
1)わたしは大きいうちが欲しいです。
2)おなかがいっぱいですから、何も食べたくないです。
3)京都の大学で美術を勉強します。
4)日本へ経済の勉強に来ました。
5)あの喫茶店に入りませんか。
5.
1)図書館へ本を借りに行きます。
2)郵便局へ切手を買いに行きました。
3)デパートへ買い物に行きたいです。
4)暑いですから、ペールへ泳ぎに行きましょう。
5)日本に1年いますから、市役所へ外国人登録に行きます。
6.
1) 0
2) 0
3)x
4) 0
5)x
Labels:
Mina no Nihongo
29/11/2011
Cài đặt XCode 3.2.6 trên Mac OS X Lion
Apple chỉ cho phép cài đặt Xcode 4.1 cho Mac OS X Lion. So với phiên bản trước thì Xcode 4.1 có nhiều điểm nổi trội nhưng bên cạnh đó cũng mang đến cho các dev rất nhiều nổi bực bội:
- Chức năng Design bị gỡ bỏ.
- Thêm ARC quản lý việc tham khảo biến tự giải phóng biến, tuyệt vời quá, tuy nhiên nếu bạn mở một dự án cũ thì mệt lắm.
- Không hỗ trợ PowerPC Mac.
- Tải xcode_3.2.6_and_ios_sdk_4.3.dmg miễn phí từ developer của Apple. Nếu bạn không có tài khoản thì xin đừng hỏi tôi cách tải về mà hãy hỏi nhà thông thái Google nhé. Lưu tập tin tải về tại ~/Downloads
- Chuyển đến thư mục download: cd ~/Downloads
- Tạo ảnh của tập tin này để có thể chỉnh sửa:
hdiutil attach -shadow xcode_3.2.6_and_ios_sdk_4.3.shadow xcode_3.2.6_and_ios_sdk_4.3.dmg
Xoá
chuỗi
&& system.compareVersions(my.target.systemVersion.ProductVersion, '10.7') < 0
' trong tập tin 'Xcode and iOS SDK.mpkg/Contents/iPhoneSDKSL.dist'(dòng 148):
cat '/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg/Contents/iPhoneSDKSL.dist' | sed "s/&& system.compareVersions(my.target.systemVersion.ProductVersion, '10.7') < 0 //g" > '/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg/Contents/iPhoneSDKSL.dist.new' && mv '/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg/Contents/iPhoneSDKSL.dist.new' '/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg/Contents/iPhoneSDKSL.dist'
Tiến hành cài đặt Xcode như bình thường.
Labels:
iOS
27/11/2011
弟13課-復習B
I。
1)わたしはパソコン
が欲しいです。
2)わたしは車が欲しいです。
3)わたしはお金が欲しいです。
4)わたしは彼女が欲しいです。
II.
- どんな車が欲しいですか。。。。ドイスの車が欲しいです。
- どんな靴が欲しいですか。。。。黒い靴が欲しいです。
- どんなパソコンが欲しいですか。。。。IMCのパソコンが欲しいです。
- どんなうちが欲しいですか。。。。広いうちが欲しいです。
III.
1)北海道へ行きたいです。
2)ビールを読みたいです。
3)映画を見たいです。
4)サッカをしたいです。
IV.
1)いつ北海道へ行きたいですか。。。。2月に行きたいです。
2)何を習いたいですか。。。。生け花を習いたいです。
3)だれに会いたいですか。。。。両親に会いたいです。
4)何を食べたいですか。。。。何も食べたくないです。
5)どんな本を読みたいですか。。。。旅行の本を読みたいです。
6)日曜日どこへ行きたいですか。。。。どこも行きたくないです。
V.
1)デパートへお土産を買いに行きます。
2)郵便局へ速達を出しに行きます。
3)図書館へ本を借りに行きます。
4)駅へ友達を迎えに行きます。
VI.
1)ホンコンへ買い物に行きます。
2)ホテルへ食事に行きます。
3)川へ釣りに行きます。
4)市役所へ外国人登録に行きます。
VII.
1)どこへ泳ぎに行きますか。。。。ホテルのプールへ泳ぎに行きます。
2)どこへお土産を買いに行きますか。。。。デパートへ買いに行きます。
3)どこへ絵を見に行きますか。。。。奈良の美術館へ見に行きます。
4)どこへ食事に行きますか。。。。インド料理のレストランへ食事に行きます。
VIII.
- 何を買いに行きますか。。。。フィルムを買いにす行きます。
- だれに会いに行きますか。。。。カリナさんに会いに行きます。
- 何時ごろ子どもを迎えに行きますか。。。。2時ごろ迎えに行きます。
- だれとテニスに行きますか。。。。会社の人に行きます。
Labels:
Mina no Nihongo
弟12課-復習B
I.
1)先月は忙しかったです。
2)お祭りは楽しかったです。
3)去年の冬は暖かかったです。
4)公園は人が多かったです。
II.
- おとといは雨でした。
- 図書館は休みでした。
- 先週は暇でした。
- 奈良公園は静かでした。
III.
- 歌舞伎はおもしろかったですか。。。。はい、おもしろかったです。
- コンサートはよかったですか。。。。。いいえ、あもりよくなかったです。
- お祭りはにぎやかでしたか。。。。はい、とてもにぎやかでした。
- 試験は簡単でしたか。。。。いいえ、かんたんじゃありませんでした。
IV.
- 天気はどうでしたか。。。。曇りでした。
- タイ料理はどうでしたか。。。辛かったです。
- 北海道はどうでしたか。。。あもり寒くなかったです。
- ホテルの部屋はどうでしたか。。。とてもすてきでした。
V.
- このかばんはそのかばんよりならいです。
- ホンコンはシンガポールより近いです。
- 地下鉄は車より早いです。
- ミラーさんはサントスさんよりテニスが上手です。
VI.
- コーヒーと紅茶とどちらがいいですか。。。コーヒーのほうがいいです。
- 大きいみかんと小さいみかんとどちらが甘いですか。。。小さいみかんのほうが甘いです。
- お父さんとお母さんとどちらが料理が上手ですか。。。父のほうが料理が上手です。
- 春と秋とどちらが好きですか。。。どちらも好きです。
VII.
- スポーツで何がいちばんおもしろいですか。。。サッカーがいちばんおもしろいです。
- 1年でいつ(何月)がいちばん暑いですか。。。8月がいちばん暑いです。
- 家族でだれが歌がいちばん上手ですか。。。妹が歌がいちばん上手です。
- ヨーロッパでどこがいちばんよかったですか。。。スイスがいちばんよかったです。
Labels:
Mina no Nihongo
12/11/2011
How to exit program from iOS application
From iOS 4.0 when you push Home button the application go to background instead of exiting as before.
When you launch application again you can see the screen before the application go to background.
Sometime, you don't want this default behavior, you want to exit (terminate) the program when user press on (touch on) a button. How to do this?
There are two ways:
+ Call exit(0) in the action handler method.
+Call [[NSThread mainThread] exit] in the action handler method.
When you launch application again you can see the screen before the application go to background.
Sometime, you don't want this default behavior, you want to exit (terminate) the program when user press on (touch on) a button. How to do this?
There are two ways:
+ Call exit(0) in the action handler method.
+Call [[NSThread mainThread] exit] in the action handler method.
Labels:
iOS
03/11/2011
Determin mp4 file is audio file or video file
If you receive mp4 file from server, you can determin it is audio file or video file by mime information which is sent by server. However, if mp4 file is in your Android terminal (internal or external storage device), how do you solve the problem? In this small post, I present a solution use MP4Parser library.
try{
//mp4 is path string of your mp4 file
IsoBufferWrapper isoBufferWrapper = new IsoBufferWrapper(new File(mp4));
IsoFile isoFile = new IsoFile(isoBufferWrapper);
isoFile.parse();
//Get FileTypeBox
ArrayList boxes =( ArrayList) isoFile.getBoxes(FileTypeBox.class);
FileTypeBox ftb =(FileTypeBox) boxes.get(0);
String major =ftb.getMajorBrand().trim().toLowerCase();
//The list of ftyps http://www.ftyps.com/
if(major.equals("m4a") || //Apple iTunes AAC-LC (.M4A) Audio
major.equals("msnv")|| //MPEG-4 (.MP4) for SonyPSP
major.equals("ndas")|| //MP4 v2 [ISO 14496-14] Nero Digital AAC Audio
major.equals("da1a")|| //DMB MAF audio with ER-BSAC audio, JPG/PNG/MNG images
major.equals("f4a")|| //Audio for Adobe Flash Player 9+ (.F4A)
major.equals("f4b")|| //Audio Book for Adobe Flash Player 9+ (.F4B)
major.equals("m4b")|| //Apple iTunes AAC-LC (.M4B) Audio Book
major.equals("m4p")|| //Apple iTunes AAC-LC (.M4P) AES Protected Audio
major.equals("bsac")|| //MPEG-4 "Bit Sliced Arithmetic Coding" (audio)
major.equals("mot slides") //Digital Audio Broadcasting (DAB) MOT slideshow (ETSI DAB TR 101 497)
){
//AUDIO FILE
}else{
//VIDEO FILE
}
}catch(IOException ex){
ex.printStackTrace();
//ERROR
}
try{
//mp4 is path string of your mp4 file
IsoBufferWrapper isoBufferWrapper = new IsoBufferWrapper(new File(mp4));
IsoFile isoFile = new IsoFile(isoBufferWrapper);
isoFile.parse();
//Get FileTypeBox
ArrayList
FileTypeBox ftb =(FileTypeBox) boxes.get(0);
String major =ftb.getMajorBrand().trim().toLowerCase();
//The list of ftyps http://www.ftyps.com/
if(major.equals("m4a") || //Apple iTunes AAC-LC (.M4A) Audio
major.equals("msnv")|| //MPEG-4 (.MP4) for SonyPSP
major.equals("ndas")|| //MP4 v2 [ISO 14496-14] Nero Digital AAC Audio
major.equals("da1a")|| //DMB MAF audio with ER-BSAC audio, JPG/PNG/MNG images
major.equals("f4a")|| //Audio for Adobe Flash Player 9+ (.F4A)
major.equals("f4b")|| //Audio Book for Adobe Flash Player 9+ (.F4B)
major.equals("m4b")|| //Apple iTunes AAC-LC (.M4B) Audio Book
major.equals("m4p")|| //Apple iTunes AAC-LC (.M4P) AES Protected Audio
major.equals("bsac")|| //MPEG-4 "Bit Sliced Arithmetic Coding" (audio)
major.equals("mot slides") //Digital Audio Broadcasting (DAB) MOT slideshow (ETSI DAB TR 101 497)
){
//AUDIO FILE
}else{
//VIDEO FILE
}
}catch(IOException ex){
ex.printStackTrace();
//ERROR
}
Labels:
Android
23/10/2011
18/10/2011
Cuộc chiến giữa Android phone và iPhone ở khía cạnh nhà cung cấp dịch vụ
Sự lớn mạnh không ngừng của Android phone trong thị trường smart phone trong thời gian gần đây thật ấn tượng. Theo số liệu thống kê vào cuối quý 3 năm 2011, thị phần của Android phone là 43,7%.
Tuy nhiên hầu hết Android phone gắn kết với nhà cung cấp dịch vụ (carrier) Verizon trong khi iPhone lại chọn AT&T. Điểm khác biệt này đôi khi lại là nguyên nhân khiến người dùng chọn iPhone hơn Android phone.
Đọc thêm thông tin ở blog sau:
Jason Pearlow, Why my parents don't use Android
Tuy nhiên hầu hết Android phone gắn kết với nhà cung cấp dịch vụ (carrier) Verizon trong khi iPhone lại chọn AT&T. Điểm khác biệt này đôi khi lại là nguyên nhân khiến người dùng chọn iPhone hơn Android phone.
Đọc thêm thông tin ở blog sau:
Jason Pearlow, Why my parents don't use Android
Labels:
Android
17/10/2011
Set thông tin proxy cho DefaultHttpClient
Sau đây là một đoạn code nhỏ mô tả cách thiết lập thông tin proxy cho HttpDefaultClient
//Tạo đối tượng DefaultHttpClient
DefaultHttpClient client = new DefaultHttpClient();
//Thiết lập thông tin proxy
HttpHost httpproxy = new HttpHost("[Proxy Server Address]",[Proxy Server Port]);
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, httpproxy);
//Tạo đối tượng DefaultHttpClient
DefaultHttpClient client = new DefaultHttpClient();
//Thiết lập thông tin proxy
HttpHost httpproxy = new HttpHost("
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, httpproxy);
Labels:
Android
14/10/2011
Develop an Apache HttpClient client for Android to a JAX-RS web service
Create JAX-RS web service access with the Apache HttpClient library. Jersey, a
reference implementation for JAX-RS, simplifies development of RESTful web
services in the Java™ environment. Android is a popular smartphone and
this article shows you how to create a JAX-RS client for Android. You'll
create an Apache HttpClient library client to a JAX-RS web service.
Read more:
Labels:
Android
03/10/2011
Nokia sa thải 3.500 công nhân
Theo thông tin từ Vietnam+ thì ngày 29/09 vừa qua hãng Nokia thông báo tiếp tục cắt giảm 3.500 công nhân trong đó có 2.200 nhân viên ở Cluj, Romania và 1.300 nhân viên khối Location & Commerce.
Đây là đợt cắt giảm thứ hai sau khi hãng này chuyển 2.800 kỹ sư phát triển Symbian platform sang làm việc tại Accenture vào tháng 06/2011 vừa rồi.
Đây là đợt cắt giảm thứ hai sau khi hãng này chuyển 2.800 kỹ sư phát triển Symbian platform sang làm việc tại Accenture vào tháng 06/2011 vừa rồi.
Labels:
Nokia
07/09/2011
Gosling rời Google và Android
'Cha đẻ của Java', James Gosling đã rời Sun Microsystems sau khi hãng này bị Oracle thâu tóm và đến Google.
Sự kiện này đã gây xôn xao cộng đồng mạng. Mới đây Gosling tiếp tục rời khỏi Google, từ bỏ Android về đầu quân cho Liquid Robotics ( để có thể tạo ra các android,robot, thật sự) với vai trò kiến trúc sư trưởng.
Sự kiện này đã gây xôn xao cộng đồng mạng. Mới đây Gosling tiếp tục rời khỏi Google, từ bỏ Android về đầu quân cho Liquid Robotics ( để có thể tạo ra các android,robot, thật sự) với vai trò kiến trúc sư trưởng.
Labels:
Android
04/09/2011
Microsoft Excel chiếm 100% CPUs
Sáng nay có bà chị gặp vấn đề sau đây:
Chị có một tập tin Excel 2003 trong có có 1 sheet có khoảng vài trăm ngàn row. Tập tin này chạy rất tốt trên Excel 2003.
Khi chị mở tập tin này bằng Excel 2007, chị filter một column thì máy bị not respond và hai CPU của máy bị chiếm 100%.
Chị nhờ mình chẩn bệnh và trị bệnh.
Đầu tiên mình xem qua cấu hình máy thì cấu hình máy rất cao, core i3, RAM 2G, bộ nhớ ảo set 4G.
Xem qua Event Viewer thấy OS ở tình trạng tốt không có vấn đề gì đáng quan tâm.
Mình nghĩ vấn đề là do Excel 2007 chạy file Excel 2003 (compitable mode) và hình save cái file này sang Excel 2007 (.xlsx). Tuy nhiên vấn đề không được giải quyết.
Sau một hồi lang thang trên mạng tìm hiểu sự khác biệt Excel 2007 và Excel 2003 mình phát hiện Excel 2007 có chức năng tự động tính toán. Chỉ cần tắt tính năng này là mọi việc được giải quyết:
Office button > Excel Options > Formula > Manual for Automatic Calculation
Chị có một tập tin Excel 2003 trong có có 1 sheet có khoảng vài trăm ngàn row. Tập tin này chạy rất tốt trên Excel 2003.
Khi chị mở tập tin này bằng Excel 2007, chị filter một column thì máy bị not respond và hai CPU của máy bị chiếm 100%.
Chị nhờ mình chẩn bệnh và trị bệnh.
Đầu tiên mình xem qua cấu hình máy thì cấu hình máy rất cao, core i3, RAM 2G, bộ nhớ ảo set 4G.
Xem qua Event Viewer thấy OS ở tình trạng tốt không có vấn đề gì đáng quan tâm.
Mình nghĩ vấn đề là do Excel 2007 chạy file Excel 2003 (compitable mode) và hình save cái file này sang Excel 2007 (.xlsx). Tuy nhiên vấn đề không được giải quyết.
Sau một hồi lang thang trên mạng tìm hiểu sự khác biệt Excel 2007 và Excel 2003 mình phát hiện Excel 2007 có chức năng tự động tính toán. Chỉ cần tắt tính năng này là mọi việc được giải quyết:
Office button > Excel Options > Formula > Manual for Automatic Calculation
Labels:
Microsoft Excel
01/09/2011
29/08/2011
Set proxy cho HttpURLConnection
String proxy = "proxy.mydomain.com",
port = "8080";
URL url = new URL( "http://www.google.com/" );
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost",proxy);
systemProperties.setProperty("http.proxyPort",port);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.connect();
Labels:
Android
28/08/2011
Lấy danh sách content provider trong một terminal
Sau đây là một đoạn code nhỏ để liệt kê danh sách các content provider trong một terminal:
for (PackageInfo package : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {
ProviderInfo[] providers = package.providers;
if (providers != null) {
for (ProviderInfo provider : providers) {
Log.d("Example", "provider: " + provider.authority);
}
}
}
for (PackageInfo package : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {
ProviderInfo[] providers = package.providers;
if (providers != null) {
for (ProviderInfo provider : providers) {
Log.d("Example", "provider: " + provider.authority);
}
}
}
Labels:
Android
19/08/2011
Xoá Spanable Image khỏi EditText
Nhiều lúc chúng ta muốn thêm hình ảnh vào EditText ví dụ như bạn viết chương trình chat bạn muốn thay chữ "hello" bằng hình ảnh smiley chẳn hạn thì đoạn chương trình sau đây sẽ hữu ích:
SpannableString ss = new SpannableString("hello@");
Drawable d = img.getDrawable();
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
editT.setText(ss);
Bạn hãy hiện thực TextWatcher bằng Activity chứa EdiText hiện tại. Trong sự kiện afterTextChange bạn đặt đoạn chương trình trên sau khi bạn nhận được đoạn text là "hello".
Tuy nhiên lúc này có một vấn đề khác là làm sao để xoá hình khi người dùng nhấn phím "Back" trên Soft Keyboard. Vì khi nhấn phím này thì hình sẽ bị xoá nhưng khi nhập vào ký tự bất kỳ thì hình lại hiện ra và các ký tự nhập vào biến đâu mất.
Để giải quyết bài toán này bạn hãy hiện thực Activity hiện tại interface OnKeyListener. Trong hàm onKey bạn kiểm tra View có phải là EditText, keycode có bằng KEYCODE_DEL và keyevent có action là ACTION_DOWN hay không. Nếu đúng vậy thì bạn sử dụng đoạn mã sau để xoá hình:
Editable buffer = ((EditText) view).getText();
// If the cursor is at the end of a RecipientSpan then remove the whole span
int start = Selection.getSelectionStart(buffer);
int end = Selection.getSelectionEnd(buffer);
if (start == end) {
ImageSpan[] img = buffer.getSpans(start, end, ImageSpan.class);
if (img.length > 0) {
buffer.replace(
buffer.getSpanStart(img[0]),
buffer.getSpanEnd(img[0]),
""
);
buffer.removeSpan(img[0]);
return true;
}
}
SpannableString ss = new SpannableString("hello@");
Drawable d = img.getDrawable();
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
editT.setText(ss);
Bạn hãy hiện thực TextWatcher bằng Activity chứa EdiText hiện tại. Trong sự kiện afterTextChange bạn đặt đoạn chương trình trên sau khi bạn nhận được đoạn text là "hello".
Tuy nhiên lúc này có một vấn đề khác là làm sao để xoá hình khi người dùng nhấn phím "Back" trên Soft Keyboard. Vì khi nhấn phím này thì hình sẽ bị xoá nhưng khi nhập vào ký tự bất kỳ thì hình lại hiện ra và các ký tự nhập vào biến đâu mất.
Để giải quyết bài toán này bạn hãy hiện thực Activity hiện tại interface OnKeyListener. Trong hàm onKey bạn kiểm tra View có phải là EditText, keycode có bằng KEYCODE_DEL và keyevent có action là ACTION_DOWN hay không. Nếu đúng vậy thì bạn sử dụng đoạn mã sau để xoá hình:
Editable buffer = ((EditText) view).getText();
// If the cursor is at the end of a RecipientSpan then remove the whole span
int start = Selection.getSelectionStart(buffer);
int end = Selection.getSelectionEnd(buffer);
if (start == end) {
ImageSpan[] img = buffer.getSpans(start, end, ImageSpan.class);
if (img.length > 0) {
buffer.replace(
buffer.getSpanStart(img[0]),
buffer.getSpanEnd(img[0]),
""
);
buffer.removeSpan(img[0]);
return true;
}
}
Labels:
Android
16/08/2011
Google thâu tóm Motorola Mobility
Ảnh:Digitaltrends
Sau thất bại trong cuộc đấu giá kho bản quyền phát minh Nortel cách đây vài tháng mà người chiến thắng lại là đối thủ trực tiếp RIM, Apple, Microsoft, Sony, Google đã có bước đi chấn động thị trường công nghệ đó là mua lại Motorola Mobility (công ty chuyên sản xuất điện thoại của tập đoàn Motorola) với giá 12,5 tỷ USD.Nói về sự xác nhập này Larry Page nói:“Cùng nhau, Google và Motorola sẽ tạo ra những trải nghiệm sử dụng sản phẩm phi thường, giúp củng cố thêm sự vững chắc cho hệ sinh thái Android, mà ở đó lợi ích của người dùng cuối, đối tác kinh doanh và giới phát triển phần mềm sẽ được đặt lên hàng đầu. Tôi trân trọng chào mừng Motorola trở thành thành viên mới nhất của đại gia đình Google.”
Thương vụ này chứng tỏ rằng Google quyết tâm bảo vệ đứa con cưng Android của mình trước sự tấn công mạnh mẽ của các đối thủ cạnh tranh.
Labels:
Android
11/08/2011
Sử dụng Photoshop/GIMP để thiết kế QML
Sử dụng QML để lập trình giao diện là điều rất hấp dẫn cho những lập trình viên Qt.
Kể từ phiên bản 2.1 Qt Creator đã hỗ trợ khá tốt cho việc thiết kế QML. Tuy nhiên để có một GUI đẹp Qt developer phờ nhờ đến các phần mềm xử lý đồ hoạ chuyên nghiệp như Adobe Photoshop hay GIMP (nếu bạn là thần dân của cộng đồng FOSS). Sau khi có bản thiết kế đồ hoạ để chuyển sang mã QML lại là một bài toán không khó nhưng khá nhàm chán và tốn nhiều công sức. Xuất phát từ ý tưởng slice của Adobe Photoshop chuyển bản thiết kế website sang trang HTML người ta đã viết các plugin cho Adobe Photoshop và GIMP để cho phép design có thể export bản thiết kế của mình sang mã QML. Tôi là thần dân của FOSS nên tôi sẽ giới thiệu với các bạn cách dùng GIMP để export ra QML:
1) Download "Gimp-Python support easier" từ liên kết http://photocomix-resources.deviantart.com/art/Gimp-Python-support-easier-74889017.Giải nén và tiến hành cài đặt tất cả các gói phần mềm có trong đó.
2) Down load GIMP for Windows từ http://gimp-win.sourceforge.net/stable.html. Khi cài đặt nhớ chọn "Customize" để chọn Gimp-Python.
3) Download extension từ http://libregraphicsworld.org/news.php?readmore=597.Đọc file README để biết cách cài đặt.
Bây giờ mở GIMP lên bạn đã nhìn thấy một menu item "Export to QML" đã được thêm vào menu "File".
Xem video:
Reference:
Kể từ phiên bản 2.1 Qt Creator đã hỗ trợ khá tốt cho việc thiết kế QML. Tuy nhiên để có một GUI đẹp Qt developer phờ nhờ đến các phần mềm xử lý đồ hoạ chuyên nghiệp như Adobe Photoshop hay GIMP (nếu bạn là thần dân của cộng đồng FOSS). Sau khi có bản thiết kế đồ hoạ để chuyển sang mã QML lại là một bài toán không khó nhưng khá nhàm chán và tốn nhiều công sức. Xuất phát từ ý tưởng slice của Adobe Photoshop chuyển bản thiết kế website sang trang HTML người ta đã viết các plugin cho Adobe Photoshop và GIMP để cho phép design có thể export bản thiết kế của mình sang mã QML. Tôi là thần dân của FOSS nên tôi sẽ giới thiệu với các bạn cách dùng GIMP để export ra QML:
1) Download "Gimp-Python support easier" từ liên kết http://photocomix-resources.deviantart.com/art/Gimp-Python-support-easier-74889017.Giải nén và tiến hành cài đặt tất cả các gói phần mềm có trong đó.
2) Down load GIMP for Windows từ http://gimp-win.sourceforge.net/stable.html. Khi cài đặt nhớ chọn "Customize" để chọn Gimp-Python.
3) Download extension từ http://libregraphicsworld.org/news.php?readmore=597.Đọc file README để biết cách cài đặt.
Bây giờ mở GIMP lên bạn đã nhìn thấy một menu item "Export to QML" đã được thêm vào menu "File".
Xem video:
Reference:
- Jens Bache-Wiig, Exporting QML from Photoshop and GIMP
- QML exporting script makes GIMP a UI design tool
Labels:
QML
10/08/2011
Xây dựng Hammock Task
Hammock Task (hay Task hình chiếc võng): Từ cái tên đã gợi cho chúng ta hình dung phần nào về đặc điểm của task loại này. Hammock Task là Task C mà thời điểm bắt đầu phụ thuộc vào thời điểm kết thúc của Task A và thời điểm kết thúc phụ thuộc vào thời điểm bắt đầu một Task B .Do đó duration của Task C này hiển nhiên là phụ thuộc vào A và B, khi thời điểm kết thúc của Task A hay thời điểm bắt đầu của Task B thay đổi thì duration của Task C thay đổi theo.
A|------C--------|B
A|------C---|B
Cách xây dựng Task C:
A|------C--------|B
A|------C---|B
Cách xây dựng Task C:
- Xây dựng hay xác định 3 task A,B,C như trên
- Chọn ô chứa ngày kết thúc Task A ( ngày mà Task C bắt đầu).
- Từ Edit menu chọn Copy (Cell).
- Chọn ô mà chứa ngày bắt đầu Task C
- Từ Edit menu chọn Paste Special > Paste Link
- Chọn ô chứa ngày bắt đầu Task B (ngày mà Task C kết thúc).
- Từ Edit menu chọn Copy (Cell).
- Chọn ô chứa ngày kết thúc Task C
- Từ Edit menu chọn Paste Special > Paste Link
- Task C không được có predecessor. Task A và Task B có thể có predecessor.
- Task C không thể có duration âm (Task B xảy ra trước khi Task A kết thúc. Task C trở thành milstone khi duration bằng 0.
- Vì OLE cập nhật không phụ thuộc vào sự tính toán của project do đó có thể bạn sẽ không nhìn thấy một số kết quả như mong đợi sau khi bạn thực hiện việc tính toán trên project. Khi đó bạn cần vào Edit menu >Links > Edit/update OLE links (Patse Link) hoặc nhấn phím F9 2 lần
- Vì Task C phụ thuộc vào A, B nên mọi sự thay đổi của A,B có thể ảnh hưởng đến C.
- Nếu Task C là Task con của một Summary Task thì Task C có thể phải thừa kế các predecessor của Sumary Task và khi đó thời gian bắt đầu, kết thúc sẽ bị ảnh hưởng và có thể bị lặp vòng.
Labels:
Microsoft Project
09/08/2011
Thêm ngày lễ vào lịch của dự án
Bài viết này áp dụng cho Microsoft Project 2007.
Trong Microsoft Project 2007 không có lịch những ngày lễ được thiết lập trước do đó bạn cần thêm các ngày nghỉ lễ của công ty bạn vào trong lịch của dự án một lần. Trong trường hợp bạn muốn dùng lại việc thiết lập này cho nhiều dự án thì bạn nên tạo template hoặc thêm lịch vào tập tin toàn cục hoặc enterprise global template.
Trong Microsoft Project 2007 không có lịch những ngày lễ được thiết lập trước do đó bạn cần thêm các ngày nghỉ lễ của công ty bạn vào trong lịch của dự án một lần. Trong trường hợp bạn muốn dùng lại việc thiết lập này cho nhiều dự án thì bạn nên tạo template hoặc thêm lịch vào tập tin toàn cục hoặc enterprise global template.
- Tools > Change Working Time
- Trong danh sách "For calendar" chọn lịch mà bạn muốn thay đổi.Project Calendar chọn Standard (Project Calendar) hoặc 24 Hours hoặc Night Shift cho lịch của dự án.
- Chọn Exceptions trong Change Working Time.
- Đặt một cái tên ví dụ Ngay_le chọn thời điểm bắt đầu, thời điểm kết thúc
- Nếu Ngay_le lập lại nhiều lần trong dự án thì nhấn chuột vào "Details"
- Trong Recurrence pattern chọn tần xuất lập lại từ "Daily" (hàng ngày) đến "Yearly" (hàng năm).Range of recurrence chọn "Start" cho thời điểm bắt đầu, chọn "End after" hoặc "End by" cho thời điểm kết thúc.
- Nếu bạn chọn "End after" bạn phải nhập vào số lần mà Ngay_le lặp lại.Nếu bạn chọn "End by" bạn phải nhập vào ngày mà Ngay_le ngừng lặp.
Labels:
Microsoft Project
02/08/2011
27/07/2011
Tại sao phải truy xuất View qua hàm findViewById
Trong khi lập trình Java, Delphi, C++ ... nếu chúng ta có Form a, b là Widget nằm trong a thì ta có thể truy xuất b bằng cách a.b hay một cách tương tự.
Vậy tại sao trong Android, nếu có Activity a và View b nằm trong file layout của a thì ta không truy xuất b qua a mà phải sử dụng hàm static của Activity findViewById?
Thật ra nếu ai nắm kỹ về định nghĩa Activity đều dễ dàng trả lời câu hỏi này:
Activity là đối tượng mà chúng ta đặt lên trên nó các View để xây dựng nên màn hình
Vậy các View không phải "nằm trong" hay đối tượng con của đối tượng Activity như trường hợp của Form ở trên.
Vậy tại sao trong Android, nếu có Activity a và View b nằm trong file layout của a thì ta không truy xuất b qua a mà phải sử dụng hàm static của Activity findViewById?
Thật ra nếu ai nắm kỹ về định nghĩa Activity đều dễ dàng trả lời câu hỏi này:
Activity là đối tượng mà chúng ta đặt lên trên nó các View để xây dựng nên màn hình
Vậy các View không phải "nằm trong" hay đối tượng con của đối tượng Activity như trường hợp của Form ở trên.
Labels:
Android
24/07/2011
Tại sao mã nguồn Android có giấy phép sử dụng APL 2.0
Sau khi học qua Kiến trúc của Android:
Có một số bạn thắc mắc GNU libc có giấy phép sử dụng là LGPL vậy Android sử dụng GNU libc thì tại sao Android lại có giấy phép sử dụng là APL 2.0 chứ không phải là LGPL hay GPL?
Thật ra Android không dùng GNU libc (glibc) mà Android sử dụng Bionic libc.
Sau đây là một số đặc điểm của Bionic libc:
Có một số bạn thắc mắc GNU libc có giấy phép sử dụng là LGPL vậy Android sử dụng GNU libc thì tại sao Android lại có giấy phép sử dụng là APL 2.0 chứ không phải là LGPL hay GPL?
Thật ra Android không dùng GNU libc (glibc) mà Android sử dụng Bionic libc.
Sau đây là một số đặc điểm của Bionic libc:
- Giấy phép sử dụng: BSD License.
- Kích thước: Vì libc được load lên trong mỗi process cho nên kích thước của libc càng nhỏ càng tốt. Bionic libc có kích thước khoảng 200KB bằng một nửa kích thước GNU libc.
- Tốc độ:Bionic libc hiện thực lại pthread để nó nhỏ gọn hơn, tốc độ nhanh hơn để khắc phục hạn chế sức mạnh của CPU.
- Bionic libc bổ sung thêm chức năng dành riêng cho Anroid như system properties và logging.
- Bionic libc không hỗ trợ không số đặc điểm của POSIX như C++ exception, wchar cho nên Bionic libc không tương thích với GNU libc.
Labels:
Android
Tại sao gọi hàm setContentView trong onCreate?
Sau khi học qua vòng đời của một Activity:
có người thắc mắc rằng tại sao chúng ta không đặt lời gọi hàm setContentView để thiết lập layout cho Activity ở onStart hay onResume mà phải đặt nó trong onCreate?
Để trả lời cho câu hỏi này chúng ta xem xét mối quan hệ giữa các sự kiện xảy ra trong vòng đời một Activity và ba trạng thái của Activity (background/foreground/visible):
Chúng ta thấy rằng onStart/onResume ở trạng thái visible cho nên người dùng đã nhìn thấy màn hình của Activity. Nếu ta gọi hàm setContentView ở đây thì xảy ra tình trạng người dùng sẽ nhìn thấy màn hình trống trong khoảng thời gian nhất định.
Labels:
Android
19/07/2011
Gửi dữ liệu sang ứng dụng khác sử dụng Notification
Giả sử chúng ta muốn gửi dữ liệu sang ứng dụng khác có tên class:
com.nghelong.blogexample.MainActivity
sử dụng Notification. Điều này có nghĩa là khi ứng dụng chúng ta đang chạy thì xuất hiện một Notification message trên thanh status bar. Khi người dùng click vào Notification thì màn hình MainActivity bật lên.
com.nghelong.blogexample.MainActivity
sử dụng Notification. Điều này có nghĩa là khi ứng dụng chúng ta đang chạy thì xuất hiện một Notification message trên thanh status bar. Khi người dùng click vào Notification thì màn hình MainActivity bật lên.
Notification notification = new Notification(icon, tickerText, when); Bundle xtra = new Bundle();
Intent ntent = new Intent();
ntent.setClassName("
com.nghelong.blogexample", "
com.nghelong.blogexample.MainActivity"); //set data here
//
xtra
ntent.putExtras(
xtra
); int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP;
ntent.setFlags(flags);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
ntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(context, contentTitle, contentText, pendingIntent); nm.notify(NOTIFICATION_ID, notification);
Labels:
Android
17/07/2011
Sử dụng ngôn ngữ trong ứng dụng Android không phụ thuộc vào locale của thiết bị
Các bạn chắc ai cũng biết Android support multi-language dựa vào cơ chế alternative resource và locale của device. Điều đó có nghĩa là ngoài thư mục res/values bạn cần chuẩn bị các thư mục res/values-[mã ngôn ngữ] hay res/values-[language code]-r[mã vùng] ( nếu như ngôn ngữ có nhiều vùng, nhiều quốc gia sử dụng) khi bạn muốn ứng dụng của bạn hỗ trợ một ngôn ngữ nào đó. Ngoài ra để ứng dụng bạn chuyển sang ngôn ngữ này thì bạn cần cấu hình cho thiết bị sử dụng locale tương ứng với ngôn ngữ.
Tuy nhiên có một tình huống đặt ra như sau: Bạn dùng máy với locale Tiếng Anh nhưng bạn lại muốn ứng dụng của bạn hiển thị Tiếng Việt. Hay ứng dụng của bạn có nơi hiển thị danh sách ngôn ngữ, người dùng chọn ngôn ngữ nào thì ứng dụng bạn hiển thị ngôn ngữ đó. Bài toán này được giải quyết như sau:
Tuy nhiên có một tình huống đặt ra như sau: Bạn dùng máy với locale Tiếng Anh nhưng bạn lại muốn ứng dụng của bạn hiển thị Tiếng Việt. Hay ứng dụng của bạn có nơi hiển thị danh sách ngôn ngữ, người dùng chọn ngôn ngữ nào thì ứng dụng bạn hiển thị ngôn ngữ đó. Bài toán này được giải quyết như sau:
String languageToLoad = "vi";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);
T
rong tập tin AndroidManifest.xml:
<activity
android:label="@string/app_name"
android:name=".Dex"
android:configChanges="locale">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true" />
Sau đó để không phải restart lại ứng dụng chúng ta sử dụng câu lệnh sau:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Tham khảo:- Force Locale on Android
- Selecting language from within the app rather than by locale of the system settings
Labels:
Android
11/04/2011
QML Internationalization
- Bước 1: Sử dụng một trong các hàm sau để đánh dấu các chuỗi cần biên dịch: qsTr(), qsTranslate(), QT_TR_NOOP() và QT_TRANSLATE_NOOP(). Ví dụ: Text {text:qsTr("Monday")}
- Bước 2: Sử dụng lupdate để tạo translation source file:
ví dụ:
lupdate vidu.qml -ts vidu.ts
Chúng ta dùng Linguist mở vidu.ts, dịch rồi release thu được tập tin vidu.qm
- Bước 3: Thực thi qmlviewer với tuỳ chọn translatation:
qmlviewer -translation vidu.qm vidu.qml
Labels:
QML
02/04/2011
Trạng thái mạng và android.net.conn.CONNECTIVITY_CHANGE
Đối với một số người mới lập trình hệ thống trên Android sẽ lúng túng khi sử dụng android.net.ConnectivityManager để quản lý trạng thái mạng (kết nối, đứt kết nối ...). Sau đây là một ví dụ đơn giản để giải quyết vấn đề này:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class NetworkStateReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(android.net.conn.CONNECTIVITY_CHANGE)) {
//Làm việc gì đó
}
}
}
Trong manifest file:
<receiver class=".NetworkStateReceiver" android:name=".NetworkStateReceiver" >
< intent-filter>
< action android:name=" android.net.conn.CONNECTIVITY_CHANGE" / >
< /intent-filter >
< /receiver >
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class NetworkStateReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(android.net.conn.CONNECTIVITY_CHANGE)) {
//Làm việc gì đó
}
}
}
Trong manifest file:
Labels:
Android
Canterbury đặt dấu chấm hết cho Debian, Gentoo, Grml, OpenSUSE và Arch Linux
Dự án Canterbury sẽ cho ra đời Canterbury Linux. Đây có thể ví như sự kiện nhà Tần thống nhất Trung Hoa vậy vì Canterbury là sự hợp nhất của Debian, Gentoo,Grml, OpenSUSE và Arch Linux.
Thông tin chính thức đã có trên trang chính của các distro trên:
Sự hợp nhất này đem lại cái lợi lớn là làm đơn giản hoá cho các nhà phát triển ứng dụng tuy nhiên lại làm mất đi sự phong phú, đa dạng trong cộng đồng chim cánh cụt.
Thông tin chính thức đã có trên trang chính của các distro trên:
- http://www.debian.org/News/2011/20110401
- http://www.gentoo.org/news/20110401-canterbury.xml
- http://blog.grml.org/archives/352-The-Canterbury-Project.html
- http://news.opensuse.org/2011/04/01/the-canterbury-distribution/
- http://www.archlinux.org/news/the-canterbury-project/
Sự hợp nhất này đem lại cái lợi lớn là làm đơn giản hoá cho các nhà phát triển ứng dụng tuy nhiên lại làm mất đi sự phong phú, đa dạng trong cộng đồng chim cánh cụt.
Labels:
linux
24/03/2011
Alert Dialog trong Android
Trong lập trình phát triển ứng dụng Android để giao tiếp với người dùng có hai cách:
Việc sử dụng một Dialog thông minh đôi khi cho chúng ta một giải pháp tuyệt vời.
Để hiển thị Dialog trong Android chúng ta thường sử dụng AlertDialog.
Sau đây là đoạn mã sử dụng AlertDialog tôi thường sử dụng:
AlertDialog.Builder mAltBld = new AlertDialog.Builder(this);
mAltBld.setMessage("")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface aDialog, int aID){
//Thực hiện điều gì đó khi người dùng bấm nút Yes.
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface aDialog, int aID){
//Thực hiện điều gì đó khi người dùng bấm nút No.
aDialog.cancel();
}
});
AlertDialog mAlert = mAltBld.create();
//Tiêu đề cho AlertDialog
mAlert.setTitle("Tiêu đề");
//Biểu tượng cho AlertDialog
mAlert.setIcon(R.drawable.icon);
mAlert.show();
- Sử dụng một màn hình (Activity)
- Sử dụng hộp thoại (Dialog)
Việc sử dụng một Dialog thông minh đôi khi cho chúng ta một giải pháp tuyệt vời.
Để hiển thị Dialog trong Android chúng ta thường sử dụng AlertDialog.
Sau đây là đoạn mã sử dụng AlertDialog tôi thường sử dụng:
AlertDialog.Builder mAltBld = new AlertDialog.Builder(this);
mAltBld.setMessage("
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface aDialog, int aID){
//Thực hiện điều gì đó khi người dùng bấm nút Yes.
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface aDialog, int aID){
//Thực hiện điều gì đó khi người dùng bấm nút No.
aDialog.cancel();
}
});
AlertDialog mAlert = mAltBld.create();
//Tiêu đề cho AlertDialog
mAlert.setTitle("Tiêu đề");
//Biểu tượng cho AlertDialog
mAlert.setIcon(R.drawable.icon);
mAlert.show();
03/03/2011
Lấy tên phương thưc hiện tại
Trong lập trình Java. Dôi khi bạn muốn lấy tên phương thức hiện tại ví dụ để xuất thông tin phục vụ cho gỡ rối chẳng hạn. Sau đây là kinh nghiệm của cá nhân mình:
Đối với Java 4:
new Exception().getStackTrace()[0].getMethodName();
Đối với Java 5:
Thread.currentThread().getStackTrace()[1].getMethodName();
Đối với Java 4:
new Exception().getStackTrace()[0].getMethodName();
Đối với Java 5:
Thread.currentThread().getStackTrace()[1].getMethodName();
Labels:
java
Cấu hình Firefox hoạt động với Ultrasurf
Một điều đáng tiếc cho các thần dân Firefox là Ultrasurf không tự cấu hình Firefox khi cài đặt (và hầu hết các công cụ che dấu IP dựa trên VPN khác cũng vậy ngoại trừ IP Privacy)
Có hai lựa chọn cho bạn khi bạn muốn sử dụng Firefox kết hợp với Ultrasurf để dấu mình khi truy xuất mạng:
Bạn đừng quên chuyển "Connection Settings" từ "Manual proxy configuration" sang "Direct connection to the internet" sau khi thoát chương trình Ultrasurf nếu không bạn không thể truy xuất mạng bằng Firefox được.
Có hai lựa chọn cho bạn khi bạn muốn sử dụng Firefox kết hợp với Ultrasurf để dấu mình khi truy xuất mạng:
- Cài Ultrasurf Firefox Addon.
- Tự cấu hình Firfox sử dụng các máy chủ Ultrasurf.
- Mở Firefox.
- Vào Tools --> Options ...
- Chọn trang Network, nhấn nút Settings
- Trong cửa sổ "Connection Settings" chọn "Manual proxy configuration"
- Điền vào ô HTTP Proxy và ô Port các giá trị tương ứng là 127.0.0.1 và 9666 (xem hình trên).
- Nhấn OK rồi OK một lần nữa.
- Khởi động chương trình Ultrasurf (bạn có thể nhìn thấy biểu tượng cái khoá màu vàng ở gócdưới bên tay phải màn hình của bạn)
- Vào trang WhatIsMyIPAddress.com để kiểm tra IP của bạn. Nó sẽ hiện lên một trong các IP của Ultrasurf. Bây giờ bạn đã có thể lướt Web ẩn danh rồi.
Bạn đừng quên chuyển "Connection Settings" từ "Manual proxy configuration" sang "Direct connection to the internet" sau khi thoát chương trình Ultrasurf nếu không bạn không thể truy xuất mạng bằng Firefox được.
03/01/2011
Chuyện tình Rau muống biển
Hôm nay xem ảnh một người bạn vô tình nhìn thấy ảnh hoa muống biển.
Bao nhiêu ký ức tuổi thơ quay về. Nhớ ngày xưa khi chăn trâu, chăn bò, có loài rau rất tốt, hoa tim tím rất đẹp nhưng trâu, bò không ăn. Có phải trâu, bò cũng cảm động với chuyện tình muống biển? Thưở đó, F thường hái hoa muống biển để giữa vòng ngón tay cái và ngón tay trỏ của bàn tay trái . Dùng tay phải đập mạnh, hoa vỡ ra, một tiếng kêu nhỏ phát ra.
Từ khi F nghe câu chuyện đau lòng về muống biển thì F không còn chơi trò này nữa.
HOA MUỐNG BIỂN
(Khải Nguyên)
Thiếu phụ ngóng chồng
Nỗi đau hóa đá - vọng phu.
Em ngóng đợi anh
Nỗi buồn hóa thành hoa muống biển.
Bông hoa trắng xinh xinh
Nhụy hoa buồn tim tím
Rưng rức mắt người
Rưng rức trái tim đau...
Sao em không hóa thành hòn đá ngóng trông nhau
Bền vững, thủy chung, trầm mặc trông ra phía biển
Em lại hóa thành loài hoa rau muống
Cứ mãi bồng bềnh... làm khổ suốt đời nhau
Dưới cái nắng ban trưa - lá héo, hoa úa màu
Cứ dại khờ, oằn mình, vật vã dưới chân ai - trên cát
Anh hiểu được em - nỗi buồn kia tan nát
Người ấy không về... mê mải cuối trời xa...
Suốt một đời, sao em chẳng nhận ra
Hóa kiếp thân em - nỗi buồn xưa còn đó
Lữ khách ơi, đừng một lần giẫm lên loài hoa nhỏ!
Để cô muống chân tình tan nát... cõi lòng đau!
Nỗi đau hóa đá - vọng phu.
Em ngóng đợi anh
Nỗi buồn hóa thành hoa muống biển.
Bông hoa trắng xinh xinh
Nhụy hoa buồn tim tím
Rưng rức mắt người
Rưng rức trái tim đau...
Sao em không hóa thành hòn đá ngóng trông nhau
Bền vững, thủy chung, trầm mặc trông ra phía biển
Em lại hóa thành loài hoa rau muống
Cứ mãi bồng bềnh... làm khổ suốt đời nhau
Dưới cái nắng ban trưa - lá héo, hoa úa màu
Cứ dại khờ, oằn mình, vật vã dưới chân ai - trên cát
Anh hiểu được em - nỗi buồn kia tan nát
Người ấy không về... mê mải cuối trời xa...
Suốt một đời, sao em chẳng nhận ra
Hóa kiếp thân em - nỗi buồn xưa còn đó
Lữ khách ơi, đừng một lần giẫm lên loài hoa nhỏ!
Để cô muống chân tình tan nát... cõi lòng đau!
Chuyện tình Rau muống biển
Nhạc:Hoàng Phương
Trình bày: Giao Linh
Em đến thăm anh mùa vui bên biển
Nụ hoa muống biển rung rinh rung rinh
Chao sóng vỗ về chào em chào em
Làn gió mát ru, triền sóng hát ca
Hải âu tung trời đùa, cá tôm theo thuyền về
Anh kể chuyện tình về biển em nghe.
Thuở loài người có tên trước biển
Và không ai gọi biển như bây giờ
Có chàng trai tên Biển cùng yêu thương cô Muống chân tình
Biển mải mê khơi tìm luồng cá
Con nước vô tình cuốn biển trôi xa!
Muống âu sầu rồi chết bên bờ
Đời gọi tên từ đó loài hoa, loài hoa muống biển
Đời gọi tên từ đó: bông hoa trắng xinh xinh, nhụy hoa buồn tim tím
Mùa xuân không về phố bao giờ!!!
Để đêm đêm nghe biển ru bóng dừa...
Mùa xuân không về phố bao giờ!
Mùa xuân không về phố bao giờ!
Để đêm đêm nghe biển thức vọng về...
Để đêm đêm nghe biển thức vọng về.
Labels:
Ôn cố tri tân
04/08/2010
Khắc phục màn hình CRT bị nhoè
Sáng nay tự nhiên cái màn hình máy tính LG Flatron ez T530S tự nhiên chữ bị nhoè.
Sau một hồi chỉnh sửa các thông số về monitor và display adapter không đem lại kết quả.
F nghĩ chắc là do phần cứng rùi. Cuối cùng mở cái màn hình ra và nhớ lại cái kiến thức xa xưa rồi không dùng về màn hình CRT. F cho rằng phải có cái nút để chỉnh biến trở cho mấy chùm tia quét chứ. Dùng screw chỉ chỏ hồi cũng tìm ra 2 cái ốc hình chữ nhật. Trong đó có một cái là adjustable thôi.Chỉnh qua chỉnh lại đến mức OK.
Lưu ý: Mở màn hình CRT là việc làm vô cùng nguy hiểm vì bạn dễ dàng bị điện giật. Do đó bạn chỉ áp dụng bài viết này cho mình khi bạn có kiến thức về an toàn điện.
Sau một hồi chỉnh sửa các thông số về monitor và display adapter không đem lại kết quả.
F nghĩ chắc là do phần cứng rùi. Cuối cùng mở cái màn hình ra và nhớ lại cái kiến thức xa xưa rồi không dùng về màn hình CRT. F cho rằng phải có cái nút để chỉnh biến trở cho mấy chùm tia quét chứ. Dùng screw chỉ chỏ hồi cũng tìm ra 2 cái ốc hình chữ nhật. Trong đó có một cái là adjustable thôi.Chỉnh qua chỉnh lại đến mức OK.
Lưu ý: Mở màn hình CRT là việc làm vô cùng nguy hiểm vì bạn dễ dàng bị điện giật. Do đó bạn chỉ áp dụng bài viết này cho mình khi bạn có kiến thức về an toàn điện.
Labels:
Phần cứng
16/07/2010
Mind The Bird
Giới thiệu về MindTheBird trên website http://www.mindthebird.com
MindTheBird! is the Firebird Community activation campaign, with main goal to support launch of Firebird 2.5 and ensure the visibility of Firebird in the world of information technologies, media, open-source enthusiasts and end users.
MindTheBird! provides a messaging framework, marketing materials and guidance for Firebird end-users, journalists and even competitors. We encourage all developers and enthusiasts of Firebird to be the part of this very important campaign.
Be Firebird ambassador. Take a look around our website and we'll show you how you can help Firebird.
MindTheBird đã tổ chức một số cuộc thi:
MindTheBird! is the Firebird Community activation campaign, with main goal to support launch of Firebird 2.5 and ensure the visibility of Firebird in the world of information technologies, media, open-source enthusiasts and end users.
MindTheBird! provides a messaging framework, marketing materials and guidance for Firebird end-users, journalists and even competitors. We encourage all developers and enthusiasts of Firebird to be the part of this very important campaign.
Be Firebird ambassador. Take a look around our website and we'll show you how you can help Firebird.
MindTheBird đã tổ chức một số cuộc thi:
- Useful and Cool Stored Procedures
Ba SP thắng giải:
- Firebird Articles
Ba bài viết đạt giải:
- Thiết kế logo sinh nhật thứ 10 của Firebird.
Tải về tại đây.
Labels:
Firbird-InterBase
Webinar:Technological history of Firebird - 3 decades of innovations
Webinar do Ann Harrison trình bày lúc 14:00 08/04/2010.
Tải toàn bộ webinar về tại đây (zip, 10.5MB)
Tải toàn bộ webinar về tại đây (zip, 10.5MB)
Labels:
Firbird-InterBase
Webinar:SuperClassic: new architecture in Firebird
Webinar do Dmitry Yemanov trình bày lúc 15:30 06/04/2010.
Tải toàn bộ webinar về tại đây (zip, 35MB)
Tải toàn bộ webinar về tại đây (zip, 35MB)
Labels:
Firbird-InterBase
10/07/2010
Tích hợp blog RSS feed vào Facebook
Có hai trường hợp xảy ra:
Trường hợp 1:
-Click vào "Profile" để quay về trang của tài khoản của bạn.
-Click chuột vào "Options".
-Bạn nhìn thấy rất nhiều biểu tượng trong đó có Blog/RSS.
-Nhấn chuột vào nó và patse cái liên kết URL của RSS Feed.
Chỉ đơn giản vậy thôi. Bây giờ bạn quay lại tab "Wall" sẽ thấy xuất hiện các headline bài viết mới của bạn trong blog xuất hiện ở đó. Trong tab "Notes" bạn sẽ bài viết mới của bạn import vào đây.
Trường hợp 2:
-Click chuột vào "Edit page".
-Di chuyển xuống "Notes".
-Chọn "Edit".
-Bây giờ bạn theo hướng dẫn trên màn hình để làm các bước kế tiếp.
- Tích hợp RSS feed vào tài khoản facebook của bạn.
- Tích hợp RSS feed vào fan page do bạn tạo ra.
Trường hợp 1:
-Click vào "Profile" để quay về trang của tài khoản của bạn.
-Click chuột vào "Options".
-Bạn nhìn thấy rất nhiều biểu tượng trong đó có Blog/RSS.
-Nhấn chuột vào nó và patse cái liên kết URL của RSS Feed.
Chỉ đơn giản vậy thôi. Bây giờ bạn quay lại tab "Wall" sẽ thấy xuất hiện các headline bài viết mới của bạn trong blog xuất hiện ở đó. Trong tab "Notes" bạn sẽ bài viết mới của bạn import vào đây.
Trường hợp 2:
-Click chuột vào "Edit page".
-Di chuyển xuống "Notes".
-Chọn "Edit".
-Bây giờ bạn theo hướng dẫn trên màn hình để làm các bước kế tiếp.
Labels:
Facebook
08/07/2010
Mozilla Firefox 4.0 có gì mới?
Mozilla vừa cho phát hành bản beta 1 của Firefox 4.0 (trước đây gọi là Firefox 3.7).
Trong phiên bản 4.0 này Mozilla Firefox có những điểm đổi mới sau đây:
Trong phiên bản 4.0 này Mozilla Firefox có những điểm đổi mới sau đây:
- Về các tab: Vị trí của các tab chỉ mặc định ở trên đầu cửa sổ trong Windows. Trong Mac OS và Linux thvì ị trí của các tab sẽ thay đổi tuỳ theo theme.
- Trong Windows 7 & Windows Vista thì thanh trình đơn sẽ được thay thế bằng nút Firefox.
- Bạn có thể tìm kiếm hay chuyển đến một tab đang mở trong Smart Location Bar (Thanh vị trí thông minh).
- Addon Manager mới, Extension Management API mới (giao diện sẽ thay đổi).
- Cải tiến API để hỗ trợ js-ctype.
- Nút Stop & Reload được gộp chung lại thành một nút trên Windows, Mac, Linux.
- Mặc định Thanh công cụ Bookmark Toolbar bị thay thế bởi nút Bookmark (nếu thích bạn có thể cấu hình quay về như cũ).
- Crash protection (chống đóng băng) cho Windows, Mac, Linux khi các trình cộng thêm như Adobe Flash, Apple QuickTime, Microsoft Silverlight bị lỗi.
- Hỗ trợ một phần cho CSS Transitions.
- Hỗ trợ đầy đủ WebGL nhưng mặc định thì chức năng này không kích hoạt.
- Trên Mac OS X thì hỗ trợ trình cộng thêm (plugin) Core Animation redering model.Trình cộng thêm này giúp vẽ hình nhanh hơn và hiệu quả hơn.
- Hỗ trợ HD HTML5 WebM.
- Trên Windows thì thí nghiệm hỗ trợ Direct2D redering backend. Tuy nhiên mặc định cức năng này không kích hoạt.
- Web developer có thể sử dụng Websockets như Bidirectional Communication API đơn giản hơn, nhanh hơn.
- Web developer có thể sử dụng HTML History API để thay đổi URL của trang mà không cần tải lại trang.
- Sử dụng việc xây dựng khung chậm (lazy frame construction) để làm tăng tính đáp ứng khi sinh trang.
- Việc tìm kiếm liên kết đã lưu được tiến hành bất đồng bộ để tăng khả năng đáp ứng khi tải trang tránh trường hợp trang bị đóng băng như trước đây.
- CSS: visited selector để tránh một số website lợi dụng kiểm tra history của người dùng.
- HTML5 parser mới.
- Hỗ trợ thêm một số HTML5 form control.
Labels:
Firefox,
Open Source
29/06/2010
Nokia sẽ ly hôn với Symbian và se duyên cùng Linux
Để cạnh tranh với Apple và Google, Nokia quyết định không sử dụng hệ điều hành Symbian trên dòng điện thoại N-Series của mình nữa. Thay vào đó Nokia sẽ sử dụng hệ điều hành MeeGo (một hệ điều hành nhân Linux, được phát triển dưới sự hợp tác của Nokia và Intel, bằng sự kết hợp Maemo và Moblin). Sở dĩ có quyết định này vì Apple và Google quá thành công với việc sử dụng hệ điều hành Linux trên các sản phẩm của họ. Apple rất thành công hệ điều hành iPhone OS, Google thì sử dụng Androi, Palm dùng WebOS hay Limo. Tất cả chúng đều là hệ điều hành Linux.
Theo số liệu của Gartner thì thị phần của điện thoại sử dụng HĐH Linux tăng từ 8.5% lên 14% trong quý I năm 2010.
Theo số liệu của Gartner thì thị phần của điện thoại sử dụng HĐH Linux tăng từ 8.5% lên 14% trong quý I năm 2010.
Labels:
linux
ICANN đã đồng ý tên miền .xxx
Trước đây rất nhiều lần đã được đế nghị là ICANN (Internet Corporation for Assigned Names and Number) nên cho phép tên miền (.xxx) để gán cho những trang web có nội dung người lớn. Điều này được ví như một phố đèn đỏ trên vương quốc Internet vậy. Người ta cho rằng việc tạo tên miền này sẽ giúp cho việc lọc web bảo vệ trẻ em tốt hơn.Tuy nhiên ICANN đã bác đề nghị này ba lần. Ngày 26/04/2010, ICM Registry gửi email thông báo rằng họ đã thuyết phục được ICANN và họ cho rằng tên miền này sẽ sớm được cho phép đăng ký trong năm này. Đầu tháng 6/2010, ICANN đã chính thức chấp nhận tên miền này.
Tuy nhiên .xxx cũng là một cái tên như bao cái tên khác. Giống như Amsterdam vậy. Amsterdam cũng là một thành phố có một bề dày lịch sử, rất nhiều viện bảo tàng xinh đẹp, thức ăn rất ngon, con người thân thiện và cái khác của Amsterdam là có "khu phố đèn đỏ". Tên miền .xxx domain cũng giống như Amsterdam vậy!
Việc chấp nhận tên miền .xxx đã nhận sự phản đối mạnh mẽ. Rất nhiều nhóm tôn giáo cho rằng sự chấp nhận tên miền .xxx sẽ làm gia tăng nội dung "người lớn" trên Internet. Bộ Thương mại Hoa Kỳ đã phản đối việc cho đăng ký tên miền này vì làm như vậy vô tình xem các nội dung "người lớn" kia là hợp pháp.
Labels:
Internet
28/06/2010
Một phút nhìn lại Tây Du Ký
- Sa Ngộ Tịnh (Sa Tăng): Người chăm chỉ nhất, cái gì cũng làm không thấy than thở nên lúc nào Sa Tăng cũng đi cuối cùng, chậm tiến nhất, lúc nào cũng vác một cái gánh nặng hành lý trên vai. Ở đời cũng thế, thằng nào cứ lầm lũi làm không kêu ca than thở thì lúc nào cũng bị ấn gánh nặng vào đầu và luôn luôn bị xếp bét bảng xếp hạng.
- Trư Ngộ Năng (Bát Giới): Một tên tham ăn, hám gái, ngu dốt lúc gặp yêu quái là chuồn (gặp việc là lướt) nhưng luôn biết nịnh sư phụ (Sếp), lúc nào cũng quấn lấy Sếp nên công việc nhẹ nhàng (chỉ việc dắt ngựa).
- Tôn Ngộ Không: Anh ý giỏi nhất, biết đúng sai, biết làm việc nhưng không bao giờ được làm theo ý mình lúc nào cũng bị một cái gì đó trói buộc (vòng kim cô).
- Đường Tam Tạng: Yếu ..nhát gan ..thông minh cũng chả là bao ...đôi lúc lại còn bị yêu quái nó lừa ...thì lại làm Sếp.
- Yêu quái: Toàn là bọn con ông cháu cha, cứ lúc nào Tôn Ngộ Không đưa gậy định giết thì một vị tiên nào đó xuất hiện kêu:"khoan...." nó vốn là con ông này, ông khác xin đưa về trời dạy dỗ. Yêu quái toàn con nhà trời cả.
(Sưu tầm)
Labels:
Ôn cố tri tân
25/06/2010
Facebook-SSL links Chrome Addon for Facebookers
Nếu bạn là thần dân của Google Chrome bạn có thể sử dụng Facebook-SSL links Extension (hay Add-on) để vào Facebook.
Để cài đặt Facebook-SSL links Extension, bạn click chuột vào biểu tượng cái cờ lê ở thanh công cụ phía sau thanh địa chỉ, chọn Extensions (Phần mở rộng). Sau đó nhấn chuột vào liên kết Browse (Duyệt tất cả phần mở rộng) rồi nhập Facebook-SSL links vào ô tìm kiếm. Sau đó cài đặt là bạn có thể vào Facebook được rùi.
Để cài đặt Facebook-SSL links Extension, bạn click chuột vào biểu tượng cái cờ lê ở thanh công cụ phía sau thanh địa chỉ, chọn Extensions (Phần mở rộng). Sau đó nhấn chuột vào liên kết Browse (Duyệt tất cả phần mở rộng) rồi nhập Facebook-SSL links vào ô tìm kiếm. Sau đó cài đặt là bạn có thể vào Facebook được rùi.
Những điểm mới của Safari 5.0
Safari 5 được ra mắt tại hội nghị các nhà phát triển toàn cầu WWDC 2010 tổ chức ở San Francisco, Mỹ.
So với phiên bản trước Safari 5 có những tính năng mới sau:
Để tải Safari 5 vào đây http://www.apple.com/safari/
So với phiên bản trước Safari 5 có những tính năng mới sau:
- Hỗ trợ chuẩn HTML5. Nhiều tính năng HTML5 bổ sung như Geolocation, chế độ video HTML5 toàn màn hình, HTML5 AJAX History, EventSource, WebSocket, hay HTML 5 Ruby,v.v.
- Tab view được làm mới: Safari tự động mở liên kết ở Tab mới thay vì cửa sổ mới.
- Cho phép tìm kiếm history theo ngày tháng.
- Tính năng Reader:Văn bản hiển thị toàn màn hình, chữ to dễ đọc, header, footer, thanh cuộn tự động ẩn.
- Biểu tượng duyệt riêng tư xuất hiện ở Smart Address Fieldcho phép người dùng ấn chuột vào đây để tắt chế độ duyệt này.
- Hỗ trợ JaveScript cho phép ứng dụng web có thể sử dụng Javascript Object Notation.
Để tải Safari 5 vào đây http://www.apple.com/safari/
Labels:
Safari
24/06/2010
KHÔN DẠI
Bàn về cái sự khôn & dại, nào giờ, Folami tôi rất tâm đắc với mấy câu thơ của nhà thơ Tố Hữu trong bài thơ "Dậy mà đi" (Tập thơ "Từ ấy"):
Ai chiến thắng mà không hề chiến bại
Ai nên khôn mà chẳng dại đôi lần ?
Hôm đọc được bài thơ "Khôn dại" của Trạng Trình Nguyễn Bình Khiêm mình thấy có nhiều điều đáng suy ngẫm:Ai nên khôn mà chẳng dại đôi lần ?
Làm người có dại mới nên khôn,
Chớ dại ngây si, chớ quá khôn.
Khôn được ích mình, đừng rẽ dại,
Dại thì giữ phận chớ tranh khôn.
Khôn mà hiểm độc là khôn dại,
Dại vốn hiền lành ấy dại khôn.
Chớ cậy rằng khôn khinh kẻ dại,
Gặp thời, dại cũng hoá nên khôn.
Labels:
Ôn cố tri tân
Force-TLS Firefox addon dành cho Facebookers
Nếu bạn đang dùng mạng VNPT và vào Facebook không được thì làm như tôi nhé (Tôi đang dùng Mozilla Firefox):
1) Vào Tools > Add-ons> Get Add-ons
2) Tìm Add-on có tên "Force-TLS"
3) Cài đặt Add-ons này.
4) Restart lại Firefox.
5) Vào Tools > ForceTLS Configuration
6) Đánh "facebook.com" vào ô nhập liệu "Address of website" và chọn vào ô vuông "Force Subdomains Too".
7) Nhấn vào nút "Add site" rồi nút "Close".
8) Bây giờ bạn có thể vào Facebook bình thường rùi nhé.
1) Vào Tools > Add-ons> Get Add-ons
2) Tìm Add-on có tên "Force-TLS"
3) Cài đặt Add-ons này.
4) Restart lại Firefox.
5) Vào Tools > ForceTLS Configuration
6) Đánh "facebook.com" vào ô nhập liệu "Address of website" và chọn vào ô vuông "Force Subdomains Too".
7) Nhấn vào nút "Add site" rồi nút "Close".
8) Bây giờ bạn có thể vào Facebook bình thường rùi nhé.
Mozilla Firefox 3.6.4 có gì mới?
Ngày 22/06/2010, Mozilla cho phát hành phiên bản 3.6.4 của trình duyệt Firefox. Bên cạnh việc sửa lỗi và vá các lỗ hỏng bảo mật thì phiên bản này Firefox có tính năng mới gọi là "Out-of-process plugins" viết tắt OOPP. Với OOPP thì khi một plugin bị lỗi (crash) thì không làm cho toàn bộ trình duyệt ngừng hoạt động theo. Kỹ thuật chính của OOPP là các plugin như Adobe Flash, Apple Quicktime, Microsoft Silverlight được thực thi ở một tiến trình (process) bên ngoài khác với tiến trình của trình duyệt.Điều này sẽ giúp cho người dùng có thể kết thúc tiến trình thực thi plugin khi plugin bị treo, lỗi mà không ảnh hưởng đến trình duyệt. OOPP chỉ có trong các bản Firefox chạy trên Microsoft Windows, Linux còn trên Apple Mac phải đợi đến phiên bản 4 (3.7). Khi một plugin bị treo, lỗi (crash) thì bạn chỉ cần tải lại (refresh) trang đó.
Nếu bạn cần biết chi tiết về phiên bản 3.6.4 của Firefox bạn xem ở đây.
Nếu bạn cần biết chi tiết về phiên bản 3.6.4 của Firefox bạn xem ở đây.
Labels:
Firefox,
Open Source
23/06/2010
Gửi email tới người nhận Undisclosed trong Yahoo!Mail
Đôi khi bạn cần gửi một email đến một nhóm người mà bạn không muốn người nhận này biết địa chỉ email của người nhận kia (undisclosed). Làm cách nào để gửi được một email như vậy trong Yahoo!Mail?
Đầu tiên bạn nên tạo một mục trong sổ địa chỉ của bạn có địa chỉ "Undisclosed recipients" theo các bước sau:
Đầu tiên bạn nên tạo một mục trong sổ địa chỉ của bạn có địa chỉ "Undisclosed recipients" theo các bước sau:
- Chọn tab "Contacts" trong danh các tab.
- Ấn chuột vào nút "Add contact".
- Nhập "Undisclosed" (không có cặp dấu nháy) vào ô nhập liệu "First".
- Nhập "recipients" (không có cặp dấu nháy) vào ô nhập liệu "Last".
- Nhập địa chỉ email của bạn vào ô nhập liệu "Email:".
- Nhấn nút "Save".
- Bấm phím N để soạn thảo email mới.
- Gõ "undisclosed" (không có cặp dấu nháy) vào ô nhập liệu "To:".
- Chọn Undisclosed recipients (theo sau là địa chỉ email của bạn) từ danh sách đề nghị của Yahoo!Mail.
- Nhấn vào liên kết "Show BCC".
- Nhập danh sách các địa chỉ email người nhận vào ô nhập liệu "BCC:"
- Soạn nội dung email.
- Nhấn nút "Send" để gửi email.
Labels:
yahoomail
19/06/2010
WEP, TKIP & WPA2 Mixed mode sắp về hưu
Theo kế hoạch của Wi-Fi Alliance thì bắt đầu từ tháng giêng năm 2011 thì TKIP sẽ không được sử dụng trên các access point nữa và chuẩn này sẽ không sử dụng trên các thiết bị Wifi kể từ năm 2012.
Riêng chuẩn WEP thì phải vào cuối năm 2013, một năm sau đó thì chuẩn này sẽ không được sử dụng trên tất cả các thiết bị Wifi.
WPA2 (mixed mode cho phép sử dụng TKIP) cũng sẽ về hưu vào năm 2014. Chuẩn bảo mật duy nhất được sử dụng sẽ là WPA2-AES.
Riêng chuẩn WEP thì phải vào cuối năm 2013, một năm sau đó thì chuẩn này sẽ không được sử dụng trên tất cả các thiết bị Wifi.
WPA2 (mixed mode cho phép sử dụng TKIP) cũng sẽ về hưu vào năm 2014. Chuẩn bảo mật duy nhất được sử dụng sẽ là WPA2-AES.
Labels:
Bảo mật
16/06/2010
Facebook gặp sự cố
Gần đây người dùng Facebook than phiền rằng họ gặp một số sự cố khi sử dụng Facebook và điều này đã được Facebook xác nhận vào hôm thứ 2 này. Các vấn đề mà người dùng gặp phải như mất nội dung bài viết, đăng nhập rất khó khăn, không thể xem lại hồ sơ của người dùng, xuất hiện thông báo lỗi khi gửi bài viết.
Facebook đã trả lời rất ngắn gọn trên trang hỗ trợ người dùng của họ là:
"We are working to resolve these issues as soon as possible"
>> Chúng tôi đang giải quyết các vấn đề nàyvào thời gian sớm nhất có thể được.
Nguyên nhân của các vấn đề phát sinh này là do các trục trặc bên trong Facebook chứ không phải do tấn công từ phía bên ngoài.
Trong email, Facebook cho biết rằng họ đã phát hiện một số vấn đề trong cơ sở dữ liệu và hệ thống cache vào sáng nay và họ cho biết thêm là đội ngũ kỹ thuật sẽ sớm khắc phục chúng.
Tuần rồi Facebook cho biết Facebook đã có hơn 300 triệu người dùng. Facebook sẽ phải đối mặt với những thách thức khi số lượng người dùng tăng lên như cải thiện tốc độ của hệ thống và làm cho hệ thống tiện dụng hơn cho người dùng.
Facebook đã trả lời rất ngắn gọn trên trang hỗ trợ người dùng của họ là:
"We are working to resolve these issues as soon as possible"
>> Chúng tôi đang giải quyết các vấn đề nàyvào thời gian sớm nhất có thể được.
Nguyên nhân của các vấn đề phát sinh này là do các trục trặc bên trong Facebook chứ không phải do tấn công từ phía bên ngoài.
Trong email, Facebook cho biết rằng họ đã phát hiện một số vấn đề trong cơ sở dữ liệu và hệ thống cache vào sáng nay và họ cho biết thêm là đội ngũ kỹ thuật sẽ sớm khắc phục chúng.
Tuần rồi Facebook cho biết Facebook đã có hơn 300 triệu người dùng. Facebook sẽ phải đối mặt với những thách thức khi số lượng người dùng tăng lên như cải thiện tốc độ của hệ thống và làm cho hệ thống tiện dụng hơn cho người dùng.
Labels:
Facebook
Gentoo phát hành cùng backdoor, Linux đã nhiễm malware.
Theo một báo cáo tại đây thì mã nguồn của phần mềm độc hại (malware) đã được đóng gói trong bản phát hành của Gentoo (một Linux distro).
Sau khi nhận được báo cáo, Gentoo đã ra bản vá lỗi tại:
http://packages.gentoo.org/package/net-irc/unrealircd
Trong hệ thống theo dõi lỗi của Gentoo https://bugs.gentoo.org/show_bug.cgi?id=323691 thì lỗi này đã chuyển sang trạng thái VERIFIED (đã kiểm tra) và CLOSED (đóng) với chú thích sau:Gói unrealircd ở các máy phân phối Gentoo đã bị nhiễm nguyên nhân do hệ thống phân phối của unrealircd đã bị tấn công.
Qua sự kiện này đã đánh vào lòng tin của đại đa số người dùng trước nay tin tưởng rằng Virus chỉ xuất hiện ở họ hệ điều hành Microsoft Windows chứ trên Linux thì vô tư đi.
Sau khi nhận được báo cáo, Gentoo đã ra bản vá lỗi tại:
http://packages.gentoo.org/package/net-irc/unrealircd
Trong hệ thống theo dõi lỗi của Gentoo https://bugs.gentoo.org/show_bug.cgi?id=323691 thì lỗi này đã chuyển sang trạng thái VERIFIED (đã kiểm tra) và CLOSED (đóng) với chú thích sau:Gói unrealircd ở các máy phân phối Gentoo đã bị nhiễm nguyên nhân do hệ thống phân phối của unrealircd đã bị tấn công.
Qua sự kiện này đã đánh vào lòng tin của đại đa số người dùng trước nay tin tưởng rằng Virus chỉ xuất hiện ở họ hệ điều hành Microsoft Windows chứ trên Linux thì vô tư đi.
Đăng ký:
Bài đăng (Atom)