<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5479852451851621911</id><updated>2026-04-08T17:41:21.271+07:00</updated><category term="Programming"/><category term="Personal"/><category term="Software"/><category term="Tips"/><category term="Music"/><category term="Funny"/><category term="Blog Hack"/><category term="News"/><category term="Ebook"/><category term="Game"/><category term="English"/><title type='text'>Welcome to Anh Luân&#39;s website</title><subtitle type='html'>Chia sẽ kinh nghiệm - Thông tin và Giải trí</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>76</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-3416226130928903823</id><published>2013-06-08T21:39:00.001+07:00</published><updated>2013-06-08T21:39:36.382+07:00</updated><title type='text'>iPhim - Ứng dụng xem phim HD trên iPhone với nhiều phim miễn phí được cập nhật liên tục</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #fff2cc; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;- iPhim là ứng dụng xem và download hàng ngàn bộ phim HD mới nhất hiện nay&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #fff2cc; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;- Danh sách phim được cập nhật liên tục để giúp các bạn luôn thưởng thức những bộ phim mới nhất&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #fff2cc; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;- Ứng dụng có hổ trợ chức năng download để giúp các bạn xem lại những bộ phim yêu thích mà không cần kết nối internet&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #fff2cc; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;- iPhim còn cho phép bạn xem miễn phí nhiều kênh tivi phổ biến nhất hiện nay&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #fff2cc; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;- Ứng dụng cung cấp khá nhiều phim miễn phí cho các bạn xem mà không mất tiền nhé&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #fff2cc; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;- Download ứng dụng trên Appstore.vn &lt;a href=&quot;http://appstore.vn/ios/home/app/21343&quot;&gt;http://appstore.vn/ios/home/app/21343&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #333333; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;[IMG]&quot; class=&quot;bbCodeImage LbImage&quot; height=&quot;640&quot; src=&quot;http://static.appota.com/uploads/screenshot/052013/thumbs/iOS_Simulator_Screen_shot_May_21,_2013_12.32_.57_AM_.png&quot; style=&quot;border: 0px; max-width: 100%;&quot; width=&quot;424&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #333333; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;[IMG]&quot; class=&quot;bbCodeImage LbImage&quot; height=&quot;640&quot; src=&quot;http://static.appota.com/uploads/screenshot/052013/thumbs/iOS_Simulator_Screen_shot_May_21,_2013_12.30_.36_AM_.png&quot; style=&quot;border: 0px; max-width: 100%;&quot; width=&quot;426&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #333333; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;[IMG]&quot; class=&quot;bbCodeImage LbImage&quot; height=&quot;640&quot; src=&quot;http://static.appota.com/uploads/screenshot/052013/thumbs/iOS_Simulator_Screen_shot_May_21,_2013_12.30_.56_AM_.png&quot; style=&quot;border: 0px; max-width: 100%;&quot; width=&quot;426&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #333333; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;[IMG]&quot; class=&quot;bbCodeImage LbImage&quot; height=&quot;640&quot; src=&quot;http://static.appota.com/uploads/screenshot/052013/thumbs/iOS_Simulator_Screen_shot_May_21,_2013_12.31_.17_AM_.png&quot; style=&quot;border: 0px; max-width: 100%;&quot; width=&quot;426&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #333333; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;[IMG]&quot; class=&quot;bbCodeImage LbImage&quot; height=&quot;640&quot; src=&quot;http://static.appota.com/uploads/screenshot/052013/thumbs/iOS_Simulator_Screen_shot_May_21,_2013_12.32_.15_AM_.png&quot; style=&quot;border: 0px; max-width: 100%;&quot; width=&quot;426&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #333333; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #141414; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: xx-small; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: HelveticaNeue;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/3416226130928903823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2013/06/iphim-ung-dung-xem-phim-hd-tren-iphone.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3416226130928903823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3416226130928903823'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2013/06/iphim-ung-dung-xem-phim-hd-tren-iphone.html' title='iPhim - Ứng dụng xem phim HD trên iPhone với nhiều phim miễn phí được cập nhật liên tục'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/04773867412839413396</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-7432381718968340555</id><published>2013-01-16T11:39:00.001+07:00</published><updated>2013-04-25T20:16:53.633+07:00</updated><title type='text'>tvonhand - Ứng dụng miễn phí xem lịch phát sóng và TV online của 69 kênh phổ biến nhất Việt Nam</title><content type='html'>&lt;br /&gt;
Thành công của phiên bản Android là một động lực lớn, giúp công ty 
phát triển quyết tâm xây dựng và mở rộng ứng dụng với giao diện và các 
tính năng hoàn toàn mới cho phiên bản iOS. Ngoài lịch phát sóng của 69 
kênh truyền hình phổ biến hiện nay, tvonhand hỗ trợ thêm chức năng xem 
truyền hình trực tuyến của 28 kênh với chất lượng cao và ổn định nhất.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lịch phát sóng của 69 kênh như sau:&lt;/b&gt;&lt;br /&gt;
-
 44 kênh nội địa: Bóng Đá TV, BRT, DULICH, HN1, HN2, HTV7, HTV9, 
HTVCCANHAC, HTVCGIADINH, HTVCPHIM, PHUNU, SCTV01, SCTV02, SCTV03, 
SCTV04, SCTV07, SCTV09, SCTV11, SCTV12, SCTV14, SCTV15, SCTV16, SCTV17, 
SCTV18, Thể thao TV, THUANVIET, THVL1, THVL2, TTXVN, VCTV1, VCTV3, 
VCTV6, VCTV7, VCTV8, VTC1, VTC2, VTC4, VTC9, VTV1, VTV2, VTV3, VTV4, 
VTV6, VTV9.&lt;br /&gt;
- 25 kênh quốc tế: Animal Planet, ARIANG, ASIANEWS, 
Australia Network, AXN, Bloomberg, Cartoon, ChannelV, CNN, Discovery, 
Disney Channel, ESPN, FASHIONTV, FBNC, HBO, KIDSCO, MAX, MTV, National 
Geographic, OPT, Star Movies, Star Sports, Star World, TodayTV, Travel 
&amp;amp; Living.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Các chức năng chính của ứng dụng:&lt;/b&gt;&lt;br /&gt;
- xem lịch phát sóng của tất cả các kênh tại thời điểm hiện tại.&lt;br /&gt;
- xem lịch phát sóng của các kênh yêu thích (danh sách kênh yêu thích được tùy chỉnh).&lt;br /&gt;
- xem lịch phát sóng của kênh theo ngày tùy chọn.&lt;br /&gt;
- tìm kiếm lịch phát sóng theo tên chương trình.&lt;br /&gt;
- xem chương trình theo các thể loại tùy chọn: tin tức, âm nhạc, công nghệ, thể thao, phim truyện...&lt;br /&gt;
- chức năng chia sẻ chương trình thông qua các ứng dụng khác: facebook, twitter, google+, email, skype... và tin nhắn&lt;br /&gt;
- chức năng đặt lịch báo nhắc nhở&lt;br /&gt;
- chức năng xem truyển hình trực tuyến (live tivi)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ưu điểm:&lt;/b&gt;&lt;br /&gt;
- số lượng kênh phong phú, bao gồm nhiều thể loại.&lt;br /&gt;
- thông tin đầy đủ, chính xác.&lt;br /&gt;
- xem truyền hình trực tuyến (live tivi) với số lượng nhiều (29 kênh).&lt;br /&gt;
- đa dạng tiện ích hỗ trợ đi kèm: chia sẻ, đặt lịch nhắc nhở, tìm kiếm, xem kênh yêu thích, xem lịch theo ngày...&lt;br /&gt;
- giao diện đơn giản, dễ sử dụng.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Thông tin về nhà phát triển:&lt;/b&gt;&lt;br /&gt;
- Công Ty Cổ Phần Phát Triển Dự Án Công Nghệ&lt;br /&gt;
- Địa chỉ: 316 Lê Văn Sỹ, Quận Tân Bình, Tp. Hồ Chí Minh&lt;br /&gt;
- Điện thoại: +84 (8) 3811 7771&lt;br /&gt;
- Email: tvonhand@techpropulsionlabs.com&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Thông tin về ứng dụng:&lt;/b&gt;&lt;br /&gt;
- &lt;a data-mce-href=&quot;https://itunes.apple.com/vn/app/tvonhand/id589702644?mt=8&amp;amp;ls=1&quot; href=&quot;https://itunes.apple.com/vn/app/tvonhand/id589702644?mt=8&amp;amp;ls=1&quot;&gt;iTunes (iOS)&lt;/a&gt;&lt;br /&gt;
- &lt;a data-mce-href=&quot;https://play.google.com/store/apps/details?id=com.tpl.xmltv.guide&amp;amp;hl=vi&quot; href=&quot;https://play.google.com/store/apps/details?id=com.tpl.xmltv.guide&amp;amp;hl=vi&quot;&gt;Google play (Android)&lt;/a&gt;&lt;br /&gt;
- Barcode cho iOS:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://si0.twimg.com/profile_images/1418483653/icon.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://si0.twimg.com/profile_images/1418483653/icon.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Các chức năng cơ bản:&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Danh mục các chức năng&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyW0k2Ln4Y5jNraUaMp7cU2xdGhVmzdfqiHXhG8-dyyP38fq7N2otvrrKFMoBp26uDfLMyaas9HupeE7xSyh1LQU6eO9O0YJrVHpv6BIUJKH1X6qKmuLlc97GfsQ6axqFhnP3FGJ-pONE/s1600/Screen+Shot+2013-01-03+at+5.47.50+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyW0k2Ln4Y5jNraUaMp7cU2xdGhVmzdfqiHXhG8-dyyP38fq7N2otvrrKFMoBp26uDfLMyaas9HupeE7xSyh1LQU6eO9O0YJrVHpv6BIUJKH1X6qKmuLlc97GfsQ6axqFhnP3FGJ-pONE/s640/Screen+Shot+2013-01-03+at+5.47.50+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
Xem lịch chiếu tất cả các kênh&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidtuncgyy4uOsY1eVANrdAcZOaHZpnwrPEiH0R0C8w53912OD9uoatWXyJVzYctoFgXzZrHIau3-FWtjqkKxHePgBso0ygQ2FXEZOhBDD8r5ETvvbjhRnWQGASi_UaxXQzqfbiNHSdYJU/s1600/Screen+Shot+2013-01-03+at+5.47.15+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidtuncgyy4uOsY1eVANrdAcZOaHZpnwrPEiH0R0C8w53912OD9uoatWXyJVzYctoFgXzZrHIau3-FWtjqkKxHePgBso0ygQ2FXEZOhBDD8r5ETvvbjhRnWQGASi_UaxXQzqfbiNHSdYJU/s640/Screen+Shot+2013-01-03+at+5.47.15+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;Xem lịch chiếu các kênh yêu thích&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaP5ya6-59dhRE-Bw_jyYl2J7mpF1LQXS1l61nF_TkEM_i7Q0zm6Ptm4eDBsZAly9qxgX86zTEEgKmh3PM4NQgg1voUyASIR80c7auBgRgKzLMRSAjkUHYz8Qh3XxyI5iKT38tSoAIK3M/s1600/Screen+Shot+2013-01-03+at+5.47.46+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaP5ya6-59dhRE-Bw_jyYl2J7mpF1LQXS1l61nF_TkEM_i7Q0zm6Ptm4eDBsZAly9qxgX86zTEEgKmh3PM4NQgg1voUyASIR80c7auBgRgKzLMRSAjkUHYz8Qh3XxyI5iKT38tSoAIK3M/s640/Screen+Shot+2013-01-03+at+5.47.46+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;Xem lịch phát sóng trong ngày&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA9QlpE9Vvs7l2-McKtG7tZYNmuDf5OhVTfICjqkSLtrZDPDd56Ec0lVmt5FAnjX4fb6aNhoDVjTeMQ3kHzyFjLfvmzR0NBgrQ01cCNYxo-1WqM_pqgVOX8ti_F7Ja6hviY-0rH1Tnw6k/s1600/Screen+Shot+2013-01-03+at+5.48.11+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA9QlpE9Vvs7l2-McKtG7tZYNmuDf5OhVTfICjqkSLtrZDPDd56Ec0lVmt5FAnjX4fb6aNhoDVjTeMQ3kHzyFjLfvmzR0NBgrQ01cCNYxo-1WqM_pqgVOX8ti_F7Ja6hviY-0rH1Tnw6k/s640/Screen+Shot+2013-01-03+at+5.48.11+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;Chọn ngày để xem lịch phát sóng&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXglX0j1mxNQT3z0puyZZ0yzr-5T7rNLuTpG3Aj7JAd5y3hNxz-bcibkraZhm56Oa2TXKTLmjrToAoBA_cp69XpIgKv5jrQTopu6jGbdcpMKSCNrVFhc5ofrJp50NnMcU-H9elDufx4DI/s1600/Screen+Shot+2013-01-03+at+5.48.15+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXglX0j1mxNQT3z0puyZZ0yzr-5T7rNLuTpG3Aj7JAd5y3hNxz-bcibkraZhm56Oa2TXKTLmjrToAoBA_cp69XpIgKv5jrQTopu6jGbdcpMKSCNrVFhc5ofrJp50NnMcU-H9elDufx4DI/s640/Screen+Shot+2013-01-03+at+5.48.15+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;Chọn chương trình theo thể loại&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRr3lJWbnh8yc18NRMEigcjYcias0XIXpqZv9HbB0bevUAkiSEpn9bzEb_XP9qDJIlGzqCL0qCEK41sa3mGpsYbRojOXAEfFDCGK2QTJkTEn1XgvcSVPT5aHH8tf0o1KP9nEauzgRDWuI/s1600/Screen+Shot+2013-01-03+at+5.48.20+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRr3lJWbnh8yc18NRMEigcjYcias0XIXpqZv9HbB0bevUAkiSEpn9bzEb_XP9qDJIlGzqCL0qCEK41sa3mGpsYbRojOXAEfFDCGK2QTJkTEn1XgvcSVPT5aHH8tf0o1KP9nEauzgRDWuI/s640/Screen+Shot+2013-01-03+at+5.48.20+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;Xem truyền hình trực tuyến&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn2LbICZV_vA6eQk3bQEnVTPYIAy4Swnh_8_g02GQwp6n8JSZR4nxXNrgZdVVonOWiWHu_6KbGHKDWW4RXtj9ZBWd8ME2JHQteoKsFlQiJ1W6gLYiRXeVcjhOk6lPFgqTNutBj5eaV62o/s1600/Screen+Shot+2013-01-03+at+5.48.37+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn2LbICZV_vA6eQk3bQEnVTPYIAy4Swnh_8_g02GQwp6n8JSZR4nxXNrgZdVVonOWiWHu_6KbGHKDWW4RXtj9ZBWd8ME2JHQteoKsFlQiJ1W6gLYiRXeVcjhOk6lPFgqTNutBj5eaV62o/s640/Screen+Shot+2013-01-03+at+5.48.37+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;text-align: center;&quot;&gt;Cài đặt tài khoản khi chia sẻ&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUsdb5yNl2m1AL1lOUrcnKXz3i52JuU_s43rQ9cC3LZiPPfr76WGCVuqTIDYeI1xaxgfUPZ52rOqtrz_REtOPuHMpmEPNEUW39uN7C-VCk-B-7e2ZG_mkKK44cT5f3LVczcWEkbgffnr0/s1600/Screen+Shot+2013-01-03+at+5.49.00+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUsdb5yNl2m1AL1lOUrcnKXz3i52JuU_s43rQ9cC3LZiPPfr76WGCVuqTIDYeI1xaxgfUPZ52rOqtrz_REtOPuHMpmEPNEUW39uN7C-VCk-B-7e2ZG_mkKK44cT5f3LVczcWEkbgffnr0/s640/Screen+Shot+2013-01-03+at+5.49.00+PM.png&quot; width=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div data-mce-style=&quot;text-align: center;&quot; style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a data-mce-href=&quot;https://play.google.com/store/apps/details?id=com.tpl.xmltv.guide&amp;amp;hl=vi&quot; href=&quot;https://play.google.com/store/apps/details?id=com.tpl.xmltv.guide&amp;amp;hl=vi&quot;&gt;&lt;br /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/7432381718968340555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2013/01/tvonahnd-ung-dung-xem-lich-phat-song-va.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7432381718968340555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7432381718968340555'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2013/01/tvonahnd-ung-dung-xem-lich-phat-song-va.html' title='tvonhand - Ứng dụng miễn phí xem lịch phát sóng và TV online của 69 kênh phổ biến nhất Việt Nam'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyW0k2Ln4Y5jNraUaMp7cU2xdGhVmzdfqiHXhG8-dyyP38fq7N2otvrrKFMoBp26uDfLMyaas9HupeE7xSyh1LQU6eO9O0YJrVHpv6BIUJKH1X6qKmuLlc97GfsQ6axqFhnP3FGJ-pONE/s72-c/Screen+Shot+2013-01-03+at+5.47.50+PM.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-4426708081689281652</id><published>2012-12-27T16:45:00.001+07:00</published><updated>2013-04-25T20:13:59.653+07:00</updated><title type='text'>Truyện Audio - Ứng dụng nghe và download truyện audio trên iPhone</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://static.appota.com/uploads/icon/122012/thumbs/icon_200.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://static.appota.com/uploads/icon/122012/thumbs/icon_200.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; color: #141414; font-family: verdana, tahoma, arial; font-size: 13px; line-height: 18px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;font-family: verdana, tahoma, arial;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;- Truyện Audio là ứng dụng nghe hàng trăm truyện audio hay và đặc sắc qua các giọng đọc hết sức dễ thương và truyền cảm lôi cuốn người nghe.&lt;br /&gt;&lt;br /&gt;- Kho truyện hết sức phong phú và được cập nhật liên tục hằng ngày với nhiều thể loại như: (Kiếm hiệp, Ngôn tình, Sách kỹ năng, Tiểu thuyết, Trinh thám, Cổ tích, Truyện ma, Truyện người lớn (18+), truyện ngắn, tình cảm lãng mạng,...)&lt;br /&gt;&lt;br /&gt;Các chức năng chính:&lt;br /&gt;&lt;br /&gt;- Bạn có thể nghe truyện online hoặc download về máy để nghe offline&lt;br /&gt;&lt;br /&gt;- Chức năng tìm kiếm theo tên truyện hoặc tên tác giả một cách nhanh chóng&lt;br /&gt;&lt;br /&gt;- Chức năng lọc theo thể loại truyện&lt;br /&gt;&lt;br /&gt;- Chức năng quản lý danh sách các truyện yêu thích.&lt;br /&gt;&lt;br /&gt;- Chức năng tự động chuyển qua chương tiếp theo khi bạn nghe hết chương&lt;br /&gt;&lt;br /&gt;- Nghe radio online với các kênh VOV Giao thông, VOV1, VOV2, ...&lt;br /&gt;&lt;br /&gt;- Chức năng đánh dấu chương bạn vừa nghe&lt;br /&gt;&lt;br /&gt;- Chức năng hẹn giờ khi nghe truyện trước khi đi ngủ&lt;br /&gt;- Chúc các bạn có những giây phút thư giản với ứng dụng&lt;/span&gt;&lt;span style=&quot;-webkit-text-size-adjust: none; -webkit-text-stroke-width: 0px; background-color: #ebebeb; color: #333333; display: inline !important; float: none; font-family: HelveticaNeue, &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Download ứng dụng tại:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;font-family: verdana, tahoma, arial;&quot;&gt;Appstore.vn: &lt;/span&gt;&lt;a href=&quot;http://appstore.vn/i/home/app/17705&quot;&gt;&lt;span style=&quot;font-family: verdana, tahoma, arial;&quot;&gt;http://appstore.vn/i/home/app/17705&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;color: #141414;&quot;&gt;&lt;span style=&quot;font-family: verdana, tahoma, arial;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;iTunes: &lt;a href=&quot;https://itunes.apple.com/us/app/truyen-audio/id614565383?ls=1&amp;amp;mt=8&quot;&gt;https://itunes.apple.com/us/app/truyen-audio/id614565383?ls=1&amp;amp;mt=8&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgluYGfNlvDB3Rp5A6jawaxSxNEL-e1xa2xNkStQagmtq8rKiGQ6k5QO1wBWcazS9FggIlAPQ72TR3BRCXu0f7gLBpyw_ohPuc4BkTwJyCy1FQ1GD_a3AL3YI87ci6qeoep82qlXagUx8A/s1600/Screen+Shot+2012-12-27+at+2.20.57+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgluYGfNlvDB3Rp5A6jawaxSxNEL-e1xa2xNkStQagmtq8rKiGQ6k5QO1wBWcazS9FggIlAPQ72TR3BRCXu0f7gLBpyw_ohPuc4BkTwJyCy1FQ1GD_a3AL3YI87ci6qeoep82qlXagUx8A/s320/Screen+Shot+2012-12-27+at+2.20.57+PM.png&quot; width=&quot;170&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZULArXxLMEKQ8AzbTYTFwbf86powwEm-J0bOTcNvgfir9zqt0lphCemWNWEwpvOhh9q-8Mk6-v64-fSLTBYveyt22PyG9kuYzUE8NwhMNOHS90YbZM8RlVnz4SELl7kOoJRK8bEszFzI/s1600/Screen+Shot+2012-12-27+at+2.21.07+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZULArXxLMEKQ8AzbTYTFwbf86powwEm-J0bOTcNvgfir9zqt0lphCemWNWEwpvOhh9q-8Mk6-v64-fSLTBYveyt22PyG9kuYzUE8NwhMNOHS90YbZM8RlVnz4SELl7kOoJRK8bEszFzI/s320/Screen+Shot+2012-12-27+at+2.21.07+PM.png&quot; width=&quot;170&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-1s__-V3bwM1BrVXvbX7O2HEtpKMFZn4z34irjC3w_FrpIgI5YAa-Eo4ytC_2WfWcSS9luh1j1QWZTTnDeKfDNBBCM5YVeSZhIkeJrdu7aymgVr6lxh4W_WGCjcL3KUijG3g_bK8jY98/s1600/Screen+Shot+2012-12-27+at+2.21.43+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-1s__-V3bwM1BrVXvbX7O2HEtpKMFZn4z34irjC3w_FrpIgI5YAa-Eo4ytC_2WfWcSS9luh1j1QWZTTnDeKfDNBBCM5YVeSZhIkeJrdu7aymgVr6lxh4W_WGCjcL3KUijG3g_bK8jY98/s320/Screen+Shot+2012-12-27+at+2.21.43+PM.png&quot; width=&quot;170&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYrobVVPFJPzS71onoWQK5uZjg01tevuKq8oznARQJtEwJ3ysfi9G02K91YCfptTnLd7EGOLjN27UB8iOvdJjyfs7XncX_Vqjnm1VrHOE242WUAbvGhkFWca33K8mvDSA5ZuhyphenhyphenuLpLt78/s1600/Screen+Shot+2012-12-27+at+2.22.20+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYrobVVPFJPzS71onoWQK5uZjg01tevuKq8oznARQJtEwJ3ysfi9G02K91YCfptTnLd7EGOLjN27UB8iOvdJjyfs7XncX_Vqjnm1VrHOE242WUAbvGhkFWca33K8mvDSA5ZuhyphenhyphenuLpLt78/s320/Screen+Shot+2012-12-27+at+2.22.20+PM.png&quot; width=&quot;170&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1n1IckOdU5EMKedPbrLPAEL5nXl4BwI-aNGS5IsqpJnwirqzbzgk42huxysDuYBrkSjfJHHQjX8-Wbets95PpgZ8tt3HcXRBBvPoXTFmRyRBN1urntKLjGEi-CWZoPV4FKp-g_x8gWhY/s1600/Screen+Shot+2012-12-27+at+2.22.31+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1n1IckOdU5EMKedPbrLPAEL5nXl4BwI-aNGS5IsqpJnwirqzbzgk42huxysDuYBrkSjfJHHQjX8-Wbets95PpgZ8tt3HcXRBBvPoXTFmRyRBN1urntKLjGEi-CWZoPV4FKp-g_x8gWhY/s320/Screen+Shot+2012-12-27+at+2.22.31+PM.png&quot; width=&quot;170&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEFO1gM1B82te6saIn9R-gi5E2EXpWGW8H_rI174hPOPRAvXTyFOAU76OncI1LK6cUimBZMp8ccgde2az3i903ABSV2GTeD5AVDI_v2vgurr_tmyymgpRdwxfb4ksMv6neKCNJXEOthVA/s1600/Screen+Shot+2012-12-27+at+2.23.59+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEFO1gM1B82te6saIn9R-gi5E2EXpWGW8H_rI174hPOPRAvXTyFOAU76OncI1LK6cUimBZMp8ccgde2az3i903ABSV2GTeD5AVDI_v2vgurr_tmyymgpRdwxfb4ksMv6neKCNJXEOthVA/s320/Screen+Shot+2012-12-27+at+2.23.59+PM.png&quot; width=&quot;170&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; color: #141414; font-family: &#39;Lucida Grande&#39;; font-size: 13px; line-height: 18px; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #898989;&quot;&gt;&lt;span style=&quot;font-family: &#39;Lucida Grande&#39;;&quot;&gt;* Ban nào muốn nhận code dùng thử vui lòng LIKE facebook và post message lên wall để nhận code nhé: &lt;a href=&quot;http://www.facebook.com/phoneStoreVN&quot; target=&quot;_blank&quot;&gt;iPhoneStore&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/4426708081689281652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2012/12/truyen-audio-ung-dung-nghe-va-download.html#comment-form' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4426708081689281652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4426708081689281652'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2012/12/truyen-audio-ung-dung-nghe-va-download.html' title='Truyện Audio - Ứng dụng nghe và download truyện audio trên iPhone'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgluYGfNlvDB3Rp5A6jawaxSxNEL-e1xa2xNkStQagmtq8rKiGQ6k5QO1wBWcazS9FggIlAPQ72TR3BRCXu0f7gLBpyw_ohPuc4BkTwJyCy1FQ1GD_a3AL3YI87ci6qeoep82qlXagUx8A/s72-c/Screen+Shot+2012-12-27+at+2.20.57+PM.png" height="72" width="72"/><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-4952807429180517169</id><published>2012-12-10T13:59:00.001+07:00</published><updated>2012-12-10T14:01:05.793+07:00</updated><title type='text'>Giải Trí Việt - Ứng dụng xem và download những video yêu thích của làng giải trí Việt Nam trên iPhone</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://static.appota.com/uploads/icon/102012/thumbs/AppIcon-2003.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://static.appota.com/uploads/icon/102012/thumbs/AppIcon-2003.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDiRuSJw51SH83Glr4MLsRkvoawavGtH5mLBQ9GZRq03o488uS0cagPrco5waijvVQg8HJ7UQqaCmRmx5Gbvgxg1iY9VH-aO_XcLxbRQFnmmxXJoULRGpe5p_iPOv9C3ElK_5lkjFRrF8/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.29+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDiRuSJw51SH83Glr4MLsRkvoawavGtH5mLBQ9GZRq03o488uS0cagPrco5waijvVQg8HJ7UQqaCmRmx5Gbvgxg1iY9VH-aO_XcLxbRQFnmmxXJoULRGpe5p_iPOv9C3ElK_5lkjFRrF8/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.29+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGTOBFKEIbKdrvSfW6x3ueelnOkj_JWc-UDqejm2pffQa5dVpJ1AtupSL97GegaioUAPfigusaoHZdcIYj1xyANHdqxMd2mSCEpsQmSQ6ux77PR33V0ACEnrfPHp7XXgF3lOSg8AOWO9I/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.33+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGTOBFKEIbKdrvSfW6x3ueelnOkj_JWc-UDqejm2pffQa5dVpJ1AtupSL97GegaioUAPfigusaoHZdcIYj1xyANHdqxMd2mSCEpsQmSQ6ux77PR33V0ACEnrfPHp7XXgF3lOSg8AOWO9I/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.33+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZNv6McJ7tDLd_wvWVnmb8HFRZd8AruoxpxYs9Xp5YidTDwTu2gRKC9r9e8S8ilUvMdHaSG94P7-69Cdcct-lXsUS80wxz7G1LQxQ2YoE2f3oiGk7LBjsw2MQpctMdjHI3HkvTfonaHzs/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.43+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZNv6McJ7tDLd_wvWVnmb8HFRZd8AruoxpxYs9Xp5YidTDwTu2gRKC9r9e8S8ilUvMdHaSG94P7-69Cdcct-lXsUS80wxz7G1LQxQ2YoE2f3oiGk7LBjsw2MQpctMdjHI3HkvTfonaHzs/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.43+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4JoVlfqXSZ5lLNFBw4_snEcDIo29Y0sdy_vZeEhbIP_Kmw0wK0Mzgy7qmT2nwIcmS6OZ2dc-Bkjpb9Dz51Od8SHKD245p5G4qTXWLdgYt5OaGBw-gFxdjq3SJHYSjj5kuitatKBPLiNk/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.55+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4JoVlfqXSZ5lLNFBw4_snEcDIo29Y0sdy_vZeEhbIP_Kmw0wK0Mzgy7qmT2nwIcmS6OZ2dc-Bkjpb9Dz51Od8SHKD245p5G4qTXWLdgYt5OaGBw-gFxdjq3SJHYSjj5kuitatKBPLiNk/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.55+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhWJaJYY6IBmubk-5-oO-N2KSB53JvLNvKN-BScGVYQbs8507Xcu6CaKyudh5-2YJvRyXmruA2tGksEmxYhFM_TOosl-spKmpezpV__6nJi-mLcro-vh9u6J6sjZGxxf_cr3WBk4sP5nQ/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.02+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhWJaJYY6IBmubk-5-oO-N2KSB53JvLNvKN-BScGVYQbs8507Xcu6CaKyudh5-2YJvRyXmruA2tGksEmxYhFM_TOosl-spKmpezpV__6nJi-mLcro-vh9u6J6sjZGxxf_cr3WBk4sP5nQ/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.02+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin23C2Nalb8CVKJd5b3mtyyYYsIsOqQerIS_ShHfiB2Fk4qnl_WubbymTl-pdrtHkNcW_DwxaAEJnTczocPHnpYi2DJ2dB-ajLNHeS-Zbm8ufYUbYlFzlFfoTFuO42uJyITbeijbtw7vo/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.12+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin23C2Nalb8CVKJd5b3mtyyYYsIsOqQerIS_ShHfiB2Fk4qnl_WubbymTl-pdrtHkNcW_DwxaAEJnTczocPHnpYi2DJ2dB-ajLNHeS-Zbm8ufYUbYlFzlFfoTFuO42uJyITbeijbtw7vo/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.12+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTFi_1bb8SoTUgU8CfS2lGt2rI5838yXW85vZe9PM7TO_vYoWsDb9lyQWawfPi4a6PDzU-vlwdg7OmH8cAeueuZYpIb9OKjhgUyrTftLX7QCfW9BGxE7nxUhYecxgJiVxyivG_D_A0BQ/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.21+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTFi_1bb8SoTUgU8CfS2lGt2rI5838yXW85vZe9PM7TO_vYoWsDb9lyQWawfPi4a6PDzU-vlwdg7OmH8cAeueuZYpIb9OKjhgUyrTftLX7QCfW9BGxE7nxUhYecxgJiVxyivG_D_A0BQ/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.21+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNp89ma-zilUfFJSZrubt6OgFUwOBsFmfoO0XT_sB7bzLFvTrU4wlE9qdV4Z7hpFUGkSbrb-Z_Bb_fEkWjGIEenbj7cqt3K5FfoiVy4dVqNo8Xp5Oj_q2FkiJBtdg-7jfPjUd6BCdJqJQ/s1600/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.38+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNp89ma-zilUfFJSZrubt6OgFUwOBsFmfoO0XT_sB7bzLFvTrU4wlE9qdV4Z7hpFUGkSbrb-Z_Bb_fEkWjGIEenbj7cqt3K5FfoiVy4dVqNo8Xp5Oj_q2FkiJBtdg-7jfPjUd6BCdJqJQ/s320/iOS+Simulator+Screen+shot+Dec+10,+2012+9.59.38+AM.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
* Ứng dụng được thiết kế hổ trợ iPhone, iPad, iPhone 5&lt;br /&gt;
&lt;br /&gt;
* Cập nhật chức năng download video. Ban có thể xem lại nhưng video yêu thích mà không cần kết nốii internet&lt;br /&gt;
&lt;br /&gt;
- Ứng dụng Giải Trí Việt là tuyển tập nhiều thể loại như phim, phóng&amp;nbsp; sự, hài kịch, game show, ... &lt;br /&gt;
&lt;br /&gt;
- Ứng dụng tập hợp các video từ những bộ phim truyền hình kinh điển của Việt Nam, những bộ phim chiếu rạp, phìm hài tổng hợp, cho đển những game show truyền hình như doremi, giọng hát việt, Buoc nhay hoan vu, tài tiếu tuyệt, vua hài đật&amp;nbsp; viêt, giong hat viet,...&lt;br /&gt;
&lt;br /&gt;
- Video được cập nhật liên tục&lt;br /&gt;
&lt;br /&gt;
- Ứng dụng dành cho các bạn yêu thích phim Việt và làng giải trí của Việt Nam. Hy vọng ứng dụng sẽ đáp ứng nhu cầu giải trí&amp;nbsp; của các bạn&lt;br /&gt;
&lt;br /&gt;
- Ứng dụng tự động cập nhật khi có video mới từ server&lt;br /&gt;
&lt;br /&gt;
- Có chức năng report error khi video ko xem dc&lt;br /&gt;
&lt;br /&gt;
- Download ứng dụng &lt;a href=&quot;http://appstore.vn/i/home/app/16878&quot;&gt;tại đây&lt;/a&gt;: &lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/4952807429180517169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2012/12/giai-tri-viet-ung-dung-xem-va-download.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4952807429180517169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4952807429180517169'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2012/12/giai-tri-viet-ung-dung-xem-va-download.html' title='Giải Trí Việt - Ứng dụng xem và download những video yêu thích của làng giải trí Việt Nam trên iPhone'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDiRuSJw51SH83Glr4MLsRkvoawavGtH5mLBQ9GZRq03o488uS0cagPrco5waijvVQg8HJ7UQqaCmRmx5Gbvgxg1iY9VH-aO_XcLxbRQFnmmxXJoULRGpe5p_iPOv9C3ElK_5lkjFRrF8/s72-c/iOS+Simulator+Screen+shot+Dec+10,+2012+9.58.29+AM.png" height="72" width="72"/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-1847314013658402258</id><published>2012-10-29T11:55:00.001+07:00</published><updated>2012-10-29T11:55:14.878+07:00</updated><title type='text'>Hướng dẫn download ứng dụng từ Appstore.vn</title><content type='html'>Hướng dẫn này chỉ áp dụng cho các app miễn phí và máy bạn phải jaibreak.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVtNmnV1s1mQQnxWjiNL28L7eDU_Er7-hwuIvkS4Ab_Qqy7kwvosJSWQCaqh4ZTLpJatBUvnHRrD2hNyeJF8P4buc0Y6RCG938qoH7-kGjUBu8UlZlkVi87DYauBXsjsrx9VG7itkbMg/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Mở trình duyệt safari và gõ vào: appstore.vn&lt;/li&gt;
&lt;li&gt;Tìm hoặc chọn ứng dụng cần download&lt;/li&gt;
&lt;li&gt;Nhấn vào icon của ứng dụng như hình bên dưới &lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwLUgqnWjThiX4qx7BPuLgQnOqvx8yDaan2ZdnwRg8WEx37bZsWnPp2-EoikX_-y1BEd54fl4xUXsVDyjO83J7lwiGgUzK0ecGu9RQbDZ3tjsqvZeasXZ24bLipXp3x7Z0ADk0ihYe5pQ/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwLUgqnWjThiX4qx7BPuLgQnOqvx8yDaan2ZdnwRg8WEx37bZsWnPp2-EoikX_-y1BEd54fl4xUXsVDyjO83J7lwiGgUzK0ecGu9RQbDZ3tjsqvZeasXZ24bLipXp3x7Z0ADk0ihYe5pQ/s320/1.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt;Nhân vào tìm link tải  như hình bên dưới&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVtNmnV1s1mQQnxWjiNL28L7eDU_Er7-hwuIvkS4Ab_Qqy7kwvosJSWQCaqh4ZTLpJatBUvnHRrD2hNyeJF8P4buc0Y6RCG938qoH7-kGjUBu8UlZlkVi87DYauBXsjsrx9VG7itkbMg/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjVtNmnV1s1mQQnxWjiNL28L7eDU_Er7-hwuIvkS4Ab_Qqy7kwvosJSWQCaqh4ZTLpJatBUvnHRrD2hNyeJF8P4buc0Y6RCG938qoH7-kGjUBu8UlZlkVi87DYauBXsjsrx9VG7itkbMg/s320/2.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt;Sau đó sẽ hiện thị thông báo&amp;nbsp; như hình bên dưới, bạn nhấn vào OK&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ7FuX05m5DW-6AenBkcxyO6lVF-jFR6THDjhYuX7ODi3DAxrECDAGTgaaIf2Y0rteLBpey6apAtbG6PTilNBeT-IYGKrmp_MJVF94Ra27JkjaAx5QPCHa8BeE5L8MW7ZGHpnMy0vj7kA/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ7FuX05m5DW-6AenBkcxyO6lVF-jFR6THDjhYuX7ODi3DAxrECDAGTgaaIf2Y0rteLBpey6apAtbG6PTilNBeT-IYGKrmp_MJVF94Ra27JkjaAx5QPCHa8BeE5L8MW7ZGHpnMy0vj7kA/s320/3.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt;Tiếp theo bạn nhấn vào chữ&amp;nbsp; Free ở phía dưới bện phải (xem hình bên dưới)&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggDK1YMWYKLUWQ2d_xQAwGUDYby6CLPeNLB8d2XJ_TN0TAA-ejAGg6KvMzUMKebvz1tuPnPQE4zsALqM-OyA8dA7F1E-KLNwJq9soyoRypYZRg6EQqLrG5eZrgMe73JYszJJVBF63ZcDY/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggDK1YMWYKLUWQ2d_xQAwGUDYby6CLPeNLB8d2XJ_TN0TAA-ejAGg6KvMzUMKebvz1tuPnPQE4zsALqM-OyA8dA7F1E-KLNwJq9soyoRypYZRg6EQqLrG5eZrgMe73JYszJJVBF63ZcDY/s320/4.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt; Tiếp theo nhấn vào biểu tường xanh bên phải&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPctPVUC2KqwisFs0VkxBfQyDQPFp7S-AkKSXg3S-mwyBEnHvM3wjZAJOZmP-imaAOgjGW0BfoKYCKnU609NC9YiLVb_cp0r0ZkiO3sEByXCXqxEzbwM0vrmmzClHjt3himLpK6LohgMk/s1600/5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPctPVUC2KqwisFs0VkxBfQyDQPFp7S-AkKSXg3S-mwyBEnHvM3wjZAJOZmP-imaAOgjGW0BfoKYCKnU609NC9YiLVb_cp0r0ZkiO3sEByXCXqxEzbwM0vrmmzClHjt3himLpK6LohgMk/s320/5.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt;Sau đó hiên lên thông báo, bạn nhấn vào chữ Install để cài đặt&lt;/li&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjYqNQU-_C0B2_M99ZBZn3x2yQ9PMz4B1m912avD_fdsiZElYUHW_8p32M8i_g2VzxK04yy8rZLH63gEPB26Dumpm-z-SX2AsjEk37rEO_SNjGXSD0t9AVfrK5cIn0q1LPBvfX4JoMAbM/s1600/6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjYqNQU-_C0B2_M99ZBZn3x2yQ9PMz4B1m912avD_fdsiZElYUHW_8p32M8i_g2VzxK04yy8rZLH63gEPB26Dumpm-z-SX2AsjEk37rEO_SNjGXSD0t9AVfrK5cIn0q1LPBvfX4JoMAbM/s320/6.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt;Sau đó cho ứng dụng tải về và cài lên máy la xong&lt;/li&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/1847314013658402258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2012/10/huong-dan-download-ung-dung-tu.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/1847314013658402258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/1847314013658402258'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2012/10/huong-dan-download-ung-dung-tu.html' title='Hướng dẫn download ứng dụng từ Appstore.vn'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwLUgqnWjThiX4qx7BPuLgQnOqvx8yDaan2ZdnwRg8WEx37bZsWnPp2-EoikX_-y1BEd54fl4xUXsVDyjO83J7lwiGgUzK0ecGu9RQbDZ3tjsqvZeasXZ24bLipXp3x7Z0ADk0ihYe5pQ/s72-c/1.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-6271974419395502828</id><published>2012-09-05T11:34:00.002+07:00</published><updated>2013-04-25T20:21:56.074+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><title type='text'>Karaoke Lyrics - Ứng dụng tìm kiếm và hát karaoke trên điện thoại</title><content type='html'>- Karaoke Lyrics là ứng dụng cho phép bạn tìm kiếm bài hát karaoke theo tên bài hát, mã số bài hát, lời bài hát.&lt;br /&gt;
-  Đặc biệt ứng dụng còn cho phép bạn xem đầy đủ lời của bài hát. Vì vậy  bạn có thể hát ở bất cứ nơi đâu và bất cứ nơi nào. Hãy để Karaoke Lyrics  làm số tay âm nhạc của riêng bạn. Giúp bạn tự tin hơn trong những lần  họp nhóm cùng bạn bè.&lt;br /&gt;
&lt;br /&gt;
- Download ứng dụng cho iPhone:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Appstore.vn: &lt;a href=&quot;http://appstore.vn/ios/home/app/15216&quot; rel=&quot;nofollow nofollow&quot; target=&quot;_blank&quot;&gt;http://appstore.vn/ios/home/app/15216&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;iTunes: &lt;a href=&quot;https://itunes.apple.com/us/app/karaoke-lyrics/id590210958?ls=1&amp;amp;mt=8&quot;&gt;https://itunes.apple.com/us/app/karaoke-lyrics/id590210958?ls=1&amp;amp;mt=8&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
- Download ứng dụng cho Android:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Appstore.vn: &lt;a href=&quot;http://appstore.vn/android/home/app/15092&quot;&gt;http://appstore.vn/android/home/app/15092&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GoolgePlay: &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.tpl.karaoke#?t=W251bGwsMSwxLDIxMiwiY29tLnRwbC5rYXJhb2tlIl0&quot;&gt;https://play.google.com/store/apps/details?id=com.tpl.karaoke#?t=W251bGwsMSwxLDIxMiwiY29tLnRwbC5rYXJhb2tlIl0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;- Like facebook để cập nhật những thông tin mới nhất về&amp;nbsp; ứng dụng: &lt;a href=&quot;http://www.facebook.com/karaokelyricsvn&quot;&gt;http://www.facebook.com/karaokelyricsvn&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkrY8B7R8eNNX7F_nVjF-W4CxCep2MUZt693q6O3O-084TbimhBxmaFvOBydjtCiIzbGzot64b5dgiifLFm64K0WM6W8TydK9LjkqTZp2GZ9yOCekk-oZdpu_Et4N5UsstL7ufYZ_F2qE/s1600/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.53.46+PM.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5784548037976253874&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkrY8B7R8eNNX7F_nVjF-W4CxCep2MUZt693q6O3O-084TbimhBxmaFvOBydjtCiIzbGzot64b5dgiifLFm64K0WM6W8TydK9LjkqTZp2GZ9yOCekk-oZdpu_Et4N5UsstL7ufYZ_F2qE/s400/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.53.46+PM.png&quot; style=&quot;cursor: hand; cursor: pointer; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 267px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEien_JUyJV7c-MxHr0s8zeQnm-oT2LRMXmPHcUqrwwmlNj9Y5O6lWmPpwf6K7At5Qgv-WRhDq6bH_EaX1e1xbxJ-9tJD-dlAK09FgR1iBKrS6dEDkveVerZq2iodlqVT1XSS-Kyg40iUYs/s1600/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.55.38+PM.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5784548024279196210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEien_JUyJV7c-MxHr0s8zeQnm-oT2LRMXmPHcUqrwwmlNj9Y5O6lWmPpwf6K7At5Qgv-WRhDq6bH_EaX1e1xbxJ-9tJD-dlAK09FgR1iBKrS6dEDkveVerZq2iodlqVT1XSS-Kyg40iUYs/s400/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.55.38+PM.png&quot; style=&quot;cursor: hand; cursor: pointer; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 267px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_VypliEg7qT7RldZlrQ6YZxXRDC78YuqQhf5WnzHa5QXmmLtWiNI0q6sFGl-U8GQgw7JkV9btQl-ARcK_B2xRUQe7L1Vko8Nd3FgpV5EhEMQDiQABIVx1Dv-6ORl4celtCFNt4mWYamo/s1600/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.57.01+PM.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5784548013977282050&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_VypliEg7qT7RldZlrQ6YZxXRDC78YuqQhf5WnzHa5QXmmLtWiNI0q6sFGl-U8GQgw7JkV9btQl-ARcK_B2xRUQe7L1Vko8Nd3FgpV5EhEMQDiQABIVx1Dv-6ORl4celtCFNt4mWYamo/s400/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.57.01+PM.png&quot; style=&quot;cursor: hand; cursor: pointer; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 267px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoQFlyC9UUK058nDo5-8WnhuK6vqLkdtwcCG_5aguLLWW_AIU1k4K3MpQrRzxpapbSHXEoWebb7Ofy1w68ObB17KGtG9eQyHImoRu5I_1Y6nfwFu58p1nUek8_keYeoiczjUt4zSGKgSM/s1600/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.52.13+PM.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5784548004632584530&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoQFlyC9UUK058nDo5-8WnhuK6vqLkdtwcCG_5aguLLWW_AIU1k4K3MpQrRzxpapbSHXEoWebb7Ofy1w68ObB17KGtG9eQyHImoRu5I_1Y6nfwFu58p1nUek8_keYeoiczjUt4zSGKgSM/s400/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.52.13+PM.png&quot; style=&quot;cursor: hand; cursor: pointer; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 267px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrhyphenhyphenOktGPw6Spt4V6pzFQ85MJGsOiqbha8fBv5Eu9-lx5JLuV4zZmvjhMF9_VHxPtSIiLdZQrqK7vQZTM0wdOsF8Y6SmlG9w559tRzAaJFmmDynEwcew5mhNisj1lSCuyDu_7D2uwGDrA/s1600/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.57.56+PM.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5784548045596152690&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrhyphenhyphenOktGPw6Spt4V6pzFQ85MJGsOiqbha8fBv5Eu9-lx5JLuV4zZmvjhMF9_VHxPtSIiLdZQrqK7vQZTM0wdOsF8Y6SmlG9w559tRzAaJFmmDynEwcew5mhNisj1lSCuyDu_7D2uwGDrA/s400/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.57.56+PM.png&quot; style=&quot;cursor: hand; cursor: pointer; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 267px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/6271974419395502828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2012/09/karaoke-lyrics-ung-dung-tim-kiem-va-xem.html#comment-form' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/6271974419395502828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/6271974419395502828'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2012/09/karaoke-lyrics-ung-dung-tim-kiem-va-xem.html' title='Karaoke Lyrics - Ứng dụng tìm kiếm và hát karaoke trên điện thoại'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkrY8B7R8eNNX7F_nVjF-W4CxCep2MUZt693q6O3O-084TbimhBxmaFvOBydjtCiIzbGzot64b5dgiifLFm64K0WM6W8TydK9LjkqTZp2GZ9yOCekk-oZdpu_Et4N5UsstL7ufYZ_F2qE/s72-c/iOS+Simulator+Screen+shot+Sep+2%252C+2012+3.53.46+PM.png" height="72" width="72"/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-5364838532146024500</id><published>2012-03-08T21:02:00.002+07:00</published><updated>2012-03-08T21:05:32.276+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>iPhone SDK: Connect to Twitter with OAuth</title><content type='html'>&lt;p&gt;This tutorial will show you how to quickly integrate the Twitter API with the iPhone SDK using &lt;strong&gt;Twitter-OAuth-iPhone&lt;/strong&gt;,  a plug-and-play Twitter library for the iPhone composed of multiple  open-source projects combined and synthesized for ease of implementation  by Ben Gottlieb.&lt;br /&gt;&lt;span id=&quot;more-2829&quot;&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;color:red;&quot;&gt;&lt;em&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; With the release  of iOS 5, this article is now outdated. Moving forward, you should  seriously consider using the Twitter Framework that ships with the iOS 5  SDK. Only consider implementing the solution demonstrated here if you  must support users on older versions of iOS. A tutorial demonstrating  the use of the Twitter Framework will be released on Mobiletuts+ in the  coming weeks.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;Project Setup&lt;/h3&gt; &lt;p&gt;This tutorial will use a simple application called “TwitterRush” to demonstrate Twitter OAuth integration for the iPhone. By &lt;a href=&quot;http://d339vfjsz5zott.cloudfront.net/75_twitter-api-iphone/TwitterRushProjectCode.zip&quot;&gt;downloading the TwitterRush application&lt;/a&gt;,  you will be able to precisely follow all steps in this tutorial.  However, if you already have an iPhone project that you would like to  connect with the Twitter API, you should still be able to follow along  in your own code with only slight modifications.&lt;/p&gt; &lt;p&gt;In addition to TwitterRush or your own project, you will also need to &lt;a href=&quot;http://github.com/bengottlieb/Twitter-OAuth-iPhone&quot;&gt;download Ben Gottlieb’s Twitter-OAuth-iPhone&lt;/a&gt; project available on GitHub. &lt;/p&gt; &lt;h3&gt;&lt;span&gt;Step 1:&lt;/span&gt; Copy the Twitter+OAuth Folder&lt;/h3&gt; &lt;p&gt;After downloading and unarchiving the Twitter-OAuth-iPhone library,  drag the folder entitled “Twitter+OAuth” into the “Other Sources” folder  in the Xcode 4 navigator area. Be sure to check the “Copy items into  destination group’s folder (if needed)” option and click “Finish.” &lt;/p&gt; &lt;div class=&quot;tutorial_image&quot;&gt;     &lt;img style=&quot;display: inline;&quot; src=&quot;https://d339vfjsz5zott.cloudfront.net/75_twitter-api-iphone/twitter-api-iphone_05.jpg&quot; alt=&quot;Twitter API Guide 1&quot; /&gt; &lt;/div&gt; &lt;p&gt;Trying to compile and run your application now will result in A LOT  of errors (90 at the time of this writing with iOS SDK 4). Not to worry:  we will easily fix all of them in Step 2. &lt;/p&gt; &lt;h3&gt;&lt;span&gt;Step 2:&lt;/span&gt; Add the libxml2 Library&lt;/h3&gt; &lt;p&gt;In the navigator area of Xcode 4, select the project name (in this  case “TwitterRush”). Next, select the current target (“TwitterRush” here  again), and then select the “Build Phases” tab. Expand the “Link Binary  With Libraries” option, and then click the “+” button to add a new  framework. Type “libxml2″ into the search box, and select the &lt;strong&gt;libxml2.dylib&lt;/strong&gt; library that appears in the list. Click “Add” to include this library in the linking phase of your project. &lt;/p&gt; &lt;p&gt;After completing these steps, your screen should look something like this: &lt;/p&gt; &lt;div class=&quot;tutorial_image&quot;&gt;     &lt;img style=&quot;display: inline;&quot; src=&quot;https://d339vfjsz5zott.cloudfront.net/75_twitter-api-iphone/twitter-api-iphone_06.jpg&quot; alt=&quot;Adding the libxml2 library to an Xcode 4 project&quot; /&gt; &lt;/div&gt; &lt;p&gt;After adding the library to your project, you will need to modify the  “header search paths” setting in your project’s build settings. To do  this, deselect the target and select the actual TwitterRush Project.  Open the “Build Settings” tab and search for the “Header Search Paths”  entry. Double click this setting and then click the “+” button in the  bottom left of the pop-up dialogue to add a new search path. Click the  “recursive” check box, double click the “Path” field,  and enter the  following dynamic path: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;ol class=&quot;dp-xml&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;$(SDKROOT)/usr/include/libxml2  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;After clicking “Done”, your screen should look similar to this: &lt;/p&gt; &lt;div class=&quot;tutorial_image&quot;&gt;     &lt;img style=&quot;display: inline;&quot; src=&quot;https://d339vfjsz5zott.cloudfront.net/75_twitter-api-iphone/twitter-api-iphone_07.jpg&quot; alt=&quot;Twitter API Guide 4&quot; /&gt; &lt;/div&gt; &lt;p&gt;If you run the application from the Xcode menubar, you should now be able to build the application without any compile errors! &lt;/p&gt; &lt;h3&gt;&lt;span&gt;Step 3:&lt;/span&gt; Declare the NSXMLParserDelegate Protocol&lt;/h3&gt; &lt;p&gt;While you are now able to compile and run the application without any  errors, there are a number of warnings related to changes in the iOS4  SDK and the NSXMLParserDelegate protocol. You will need to explicitly  declare that &lt;strong&gt;MGTwitterStatusesParser.h&lt;/strong&gt; and &lt;strong&gt;MGTwitterXMLParser.h&lt;/strong&gt; conform to this protocol in order to prevent these warnings from occurring.&lt;/p&gt; &lt;p&gt;To do so, open the &lt;strong&gt;MGTwitterStatusesParser.h&lt;/strong&gt; file and modify the &lt;code&gt;@interface&lt;/code&gt; declaration by declaring the &lt;code&gt;NSXMLParserDelegate&lt;/code&gt; protocol like so: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;@interface MGTwitterStatusesParser : MGTwitterXMLParser &lt;nsxmlparserdelegate&gt; {  &lt;/nsxmlparserdelegate&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;Now do the same for &lt;strong&gt;MGTwitterXMLParser.h&lt;/strong&gt;, modifying the &lt;code&gt;@interface&lt;/code&gt; declaration to read: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;@interface MGTwitterXMLParser : NSObject &lt;nsxmlparserdelegate&gt; {  &lt;/nsxmlparserdelegate&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;You should now be able to smoothly compile the application without  generating any errors or warnings! We’re now ready to begin integrating  the Twitter-OAuth-iPhone library with our code. &lt;/p&gt; &lt;h3&gt;&lt;span&gt;Step 4:&lt;/span&gt; Import SA_OAuthTwitterController.h &amp;amp; Declare SA_OAuthTwitterEngine&lt;/h3&gt; &lt;p&gt;We now need to begin importing the library classes that we will use to connect with the Twitter API. Open &lt;strong&gt;TwitterRushViewController.h&lt;/strong&gt; and modify the code to read as follows: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#import &lt;uikit h=&quot;&quot;&gt;&lt;/uikit&gt;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#import &quot;SA_OAuthTwitterController.h&quot;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;@&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt; SA_OAuthTwitterEngine;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;@interface TwitterRushViewController : UIViewController &lt;uitextfielddelegate, sa_oauthtwittercontrollerdelegate=&quot;&quot;&gt;  &lt;/uitextfielddelegate,&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;{  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    IBOutlet UITextField     *tweetTextField;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    SA_OAuthTwitterEngine    *_engine;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;@property(nonatomic, retain) IBOutlet UITextField *tweetTextField;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;-(IBAction)updateTwitter:(id)sender;   &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;@end  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;On line 2, we import the &lt;code&gt;SA_OAuthTwitterController&lt;/code&gt; class for use within our view controller. On line 4, we forward declare the &lt;code&gt;SA_OAuthTwitterEngine&lt;/code&gt; class so we can declare an instance of that class in the &lt;code&gt;@interface&lt;/code&gt; without actually importing the header file. On line 6 we declare the &lt;code&gt;SA_OAuthTwitterControllerDelegate&lt;/code&gt; protocol -this will allow us to easily respond to Twitter API events later. Finally, on line 10 we declare the &lt;code&gt;_engine&lt;/code&gt; object as an instance of the &lt;code&gt;SA_OAuthTwitterEngine&lt;/code&gt; class. &lt;/p&gt; &lt;p&gt;Now switch to the &lt;strong&gt;TwitterRushViewController.m&lt;/strong&gt; file. Import the &lt;code&gt;SA_OAuthTwitterEngine&lt;/code&gt; class that we just forward declared in the class interface: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#import &quot;SA_OAuthTwitterEngine.h&quot;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;Because the &lt;code&gt;SA_OAuthTwitterControllerDelegate&lt;/code&gt; only  contains optional method declarations, at this point you should again be  able to compile and run your application without any errors or  warnings. &lt;/p&gt; &lt;h3&gt;&lt;span&gt;Step 5:&lt;/span&gt; Define Your Twitter API OAuth Credentials&lt;/h3&gt; &lt;p&gt;In order to gain OAuth access to the Twitter API, you will need to  first create a Consumer Key and a Secret Key for Twitter to be able to  identify and authenticate your application. You can do this from the  Twitter web site by logging into your account and navigating to the &lt;a href=&quot;http://twitter.com/apps/new&quot;&gt;app registration form&lt;/a&gt;.  When going through the registration process, be sure to specify  “client” as the application type, check the “Yes, use Twitter for login”  box, and select “Read &amp;amp; Write” as the default access type to enable  your iPhone app to post tweets on behalf of your users. &lt;/p&gt; &lt;p&gt;After you have registered your application and Twitter has generated your application credentials, add the following to &lt;strong&gt;TwitterRushViewController.m&lt;/strong&gt; above the class &lt;code&gt;@implementation&lt;/code&gt;:&lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#define kOAuthConsumerKey        @&quot;Your consumer key here&quot;         //REPLACE With Twitter App OAuth Key&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#define kOAuthConsumerSecret    @&quot;Your consumer secret here&quot;     //REPLACE With Twitter App OAuth Secret&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;We will use these constants momentarily when we instantiate our &lt;code&gt;_engine&lt;/code&gt; object. &lt;/p&gt; &lt;h3&gt;&lt;span&gt;Step 6:&lt;/span&gt; Launch the Twitter Login Screen&lt;/h3&gt; &lt;p&gt;For our use-case, we want to initialize the &lt;code&gt;_engine&lt;/code&gt;  object when our ViewController is created and then display the Twitter  OAuth login screen as soon as the view controller finishes loading. To  initialize the &lt;code&gt;_engine&lt;/code&gt; object, modify the &lt;code&gt;viewDidAppear&lt;/code&gt; method to read as follows:&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;- (&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;)viewDidAppear: (&lt;/span&gt;&lt;span class=&quot;datatypes&quot;&gt;BOOL&lt;/span&gt;&lt;span&gt;)animated {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(!_engine){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;        _engine.consumerKey    = kOAuthConsumerKey;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        _engine.consumerSecret = kOAuthConsumerSecret;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;Now go ahead and release the &lt;code&gt;_engine&lt;/code&gt; object in our view controller’s dealloc method: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;- (&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;)dealloc {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    [_engine release];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    [tweetTextField release];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    [super dealloc];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;After our view finishes loading, we want to immediately launch the  Twitter login screen. To do so, you will need to again modify the &lt;code&gt;viewDidAppear&lt;/code&gt; method like so:&lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;- (&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;)viewDidAppear: (&lt;/span&gt;&lt;span class=&quot;datatypes&quot;&gt;BOOL&lt;/span&gt;&lt;span&gt;)animated {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(!_engine){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;        _engine.consumerKey    = kOAuthConsumerKey;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        _engine.consumerSecret = kOAuthConsumerSecret;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt; (controller){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        [self presentModalViewController: controller animated: YES];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;If you run the application now, you’ll see that we are successfully  presenting the Twitter login screen whenever our custom view is  displayed. However, there is one major problem with this setup: the  login screen will always be displayed when the view appears, even if the  user has already logged in. We need to add a conditional that will only  display this control if the user has not yet been connected via OAuth. &lt;/p&gt; &lt;p&gt;To do this, add the following conditional before displaying the view: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(![_engine isAuthorized]){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt; (controller){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;        [self presentModalViewController: controller animated: YES];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;The &lt;code&gt;isAuthorized&lt;/code&gt; method will return a boolean value of  TRUE if we have an OAuth authentication token. So, this conditional  simply tests whether we &lt;strong&gt;do not&lt;/strong&gt; have authorization, and then displays the Twitter login when needed. &lt;/p&gt; &lt;p&gt;For the &lt;code&gt;isAuthorized&lt;/code&gt; method to work, we also need to add the following &lt;code&gt;SA_OAuthTwitterEngineDelegate&lt;/code&gt; protocol methods responsible for storing our OAuth authentication token after the first login: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;//=============================================================================================================================&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#pragma mark SA_OAuthTwitterEngineDelegate&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;) storeCachedTwitterOAuthData: (NSString *) data forUsername: (NSString *) username {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    NSUserDefaults          *defaults = [NSUserDefaults standardUserDefaults];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    [defaults setObject: data forKey: @&lt;span class=&quot;string&quot;&gt;&quot;authData&quot;&lt;/span&gt;&lt;span&gt;];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    [defaults synchronize];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;- (NSString *) cachedTwitterOAuthDataForUsername: (NSString *) username {  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt; [[NSUserDefaults standardUserDefaults] objectForKey: @&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;authData&quot;&lt;/span&gt;&lt;span&gt;];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;h3&gt;&lt;span&gt;Step 7:&lt;/span&gt; Post Updates to Twitter&lt;/h3&gt; &lt;p&gt;In what is perhaps the simplest step of the entire process, add the following single line of code to &lt;code&gt;updateTwitter&lt;/code&gt;, our custom IBAction method, to actually post an update to Twitter: &lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;[_engine sendUpdate:tweetTextField.text];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;Voila! You should now be posting updates to your Twitter feed.  However, we aren’t quite finished yet. What happens if our application  fails to post the update? What if we wanted to present a confirmation  view if the tweet is posted successfully? Thankfully, the &lt;code&gt;TwitterEngineDelegate&lt;/code&gt; protocol has two methods defined for just this purpose. &lt;/p&gt; &lt;p&gt;Add the following code to &lt;code&gt;TwitterRushViewController.m&lt;/code&gt;:&lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;//=============================================================================================================================&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#pragma mark TwitterEngineDelegate&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;) requestSucceeded: (NSString *) requestIdentifier {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    NSLog(@&lt;span class=&quot;string&quot;&gt;&quot;Request %@ succeeded&quot;&lt;/span&gt;&lt;span&gt;, requestIdentifier);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;) requestFailed: (NSString *) requestIdentifier withError: (NSError *) error {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    NSLog(@&lt;span class=&quot;string&quot;&gt;&quot;Request %@ failed with error: %@&quot;&lt;/span&gt;&lt;span&gt;, requestIdentifier, error);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;You can see that the application will now log success and failure  messages to the console depending on what happens after we click the  “Tweet” button. This behavior can be easily modified to match the needs  of your own apps. &lt;/p&gt; &lt;h3&gt;Conclusion&lt;/h3&gt; &lt;p&gt;If you have followed the step-by-step instructions above, you should  now be able to post status updates to Twitter on behalf of your users!&lt;/p&gt; &lt;p&gt;The full &lt;strong&gt;&lt;code&gt;TwitterRushViewController.h&lt;/code&gt;&lt;/strong&gt; file should now look like this:&lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#import &lt;uikit h=&quot;&quot;&gt;&lt;/uikit&gt;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#import &quot;SA_OAuthTwitterController.h&quot;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;@&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span&gt; SA_OAuthTwitterEngine;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;@interface TwitterRushViewController : UIViewController &lt;uitextfielddelegate, sa_oauthtwittercontrollerdelegate=&quot;&quot;&gt;  &lt;/uitextfielddelegate,&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;{   &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    IBOutlet UITextField *tweetTextField;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    SA_OAuthTwitterEngine *_engine;   &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;@property(nonatomic, retain) IBOutlet UITextField *tweetTextField;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;-(IBAction)updateTwitter:(id)sender;   &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;@end  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;The full &lt;strong&gt;&lt;code&gt;TwitterRushViewController.m&lt;/code&gt;&lt;/strong&gt; file should read:&lt;/p&gt; &lt;div class=&quot;dp-highlighter&quot;&gt;&lt;div class=&quot;bar&quot;&gt;&lt;div class=&quot;tools&quot;&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;view plain&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;copy to clipboard&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;print&lt;/a&gt;&lt;a href=&quot;http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/#&quot;&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class=&quot;dp-cpp&quot; start=&quot;1&quot;&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#import &quot;TwitterRushViewController.h&quot;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#import &quot;SA_OAuthTwitterEngine.h&quot;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;/* Define the constants below with the Twitter&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;   Key and Secret for your application. Create&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;   Twitter OAuth credentials by registering your&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;   application as an OAuth Client here: http://twitter.com/apps/new&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt; */&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#define kOAuthConsumerKey               @&quot;Your Key Here&quot;        //REPLACE With Twitter App OAuth Key&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#define kOAuthConsumerSecret            @&quot;Your Secret Here&quot;    //REPLACE With Twitter App OAuth Secret&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;@implementation TwitterRushViewController  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;@synthesize tweetTextField;   &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#pragma mark Custom Methods&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;-(IBAction)updateTwitter:(id)sender  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;{  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    &lt;span class=&quot;comment&quot;&gt;//Dismiss Keyboard&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    [tweetTextField resignFirstResponder];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    &lt;span class=&quot;comment&quot;&gt;//Twitter Integration Code Goes Here&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    [_engine sendUpdate:tweetTextField.text];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#pragma mark ViewController Lifecycle&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;)viewDidAppear: (&lt;/span&gt;&lt;span class=&quot;datatypes&quot;&gt;BOOL&lt;/span&gt;&lt;span&gt;)animated {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    &lt;span class=&quot;comment&quot;&gt;// Twitter Initialization / Login Code Goes Here&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(!_engine){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;        _engine.consumerKey    = kOAuthConsumerKey;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        _engine.consumerSecret = kOAuthConsumerSecret;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt;(![_engine isAuthorized]){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;&lt;span&gt; (controller){  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;            [self presentModalViewController: controller animated: YES];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;        }  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    }     &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;)viewDidUnload {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    [tweetTextField release];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    tweetTextField = nil;  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;)didReceiveMemoryWarning {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    [super didReceiveMemoryWarning];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;)dealloc {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    [_engine release];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    [tweetTextField release];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    [super dealloc];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;//=============================================================================================================================&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#pragma mark SA_OAuthTwitterEngineDelegate&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;) storeCachedTwitterOAuthData: (NSString *) data forUsername: (NSString *) username {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    NSUserDefaults          *defaults = [NSUserDefaults standardUserDefaults];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;    [defaults setObject: data forKey: @&lt;span class=&quot;string&quot;&gt;&quot;authData&quot;&lt;/span&gt;&lt;span&gt;];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    [defaults synchronize];  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;- (NSString *) cachedTwitterOAuthDataForUsername: (NSString *) username {  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt;&lt;span&gt; [[NSUserDefaults standardUserDefaults] objectForKey: @&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&quot;authData&quot;&lt;/span&gt;&lt;span&gt;];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span class=&quot;comment&quot;&gt;//=============================================================================================================================&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;&lt;span class=&quot;preprocessor&quot;&gt;#pragma mark TwitterEngineDelegate&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;) requestSucceeded: (NSString *) requestIdentifier {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    NSLog(@&lt;span class=&quot;string&quot;&gt;&quot;Request %@ succeeded&quot;&lt;/span&gt;&lt;span&gt;, requestIdentifier);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;- (&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt;&lt;span&gt;) requestFailed: (NSString *) requestIdentifier withError: (NSError *) error {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;    NSLog(@&lt;span class=&quot;string&quot;&gt;&quot;Request %@ failed with error: %@&quot;&lt;/span&gt;&lt;span&gt;, requestIdentifier, error);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;&quot;&gt;&lt;span&gt;@end  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt; &lt;p&gt;Thanks for reading this tutorial on the Twitter-OAuth-iPhone library,  and a very special thanks to Ben Gottlieb, Matt Gemmell, Jon Crosby,  Chris Kimpton, and Isaiah Carew. Without their hard work, implementing  the Twitter API with the iPhone SDK would take many, many more steps to  achieve. &lt;/p&gt; &lt;p&gt;Source: http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/5364838532146024500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2012/03/iphone-sdk-connect-to-twitter-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/5364838532146024500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/5364838532146024500'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2012/03/iphone-sdk-connect-to-twitter-with.html' title='iPhone SDK: Connect to Twitter with OAuth'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-3436369799107106749</id><published>2012-02-24T16:13:00.000+07:00</published><updated>2012-02-24T16:14:10.503+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>How to Handle Device Rotation for UIViews in iOS</title><content type='html'>&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Choosing to support orientation changes in a&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIViewController&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;is a simple process in iOS. Apple has already provided the methods to attach to. Supporting orientation changes in a&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIView&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;is easy, though it is less robust. When listening for orientation changes, the view can respond visually to the rotation of the device. These notifications will also notify when the device is screen-side down or screen-side up.&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;&lt;img src=&quot;http://the.ichibod.com/img/kiji/iphone-orientation.png&quot; alt=&quot;Illustration of an iPhone rotating in space to show device orientation with a green arrow and a crazy photo of me in the February 2011 Chicago blizzard as the wallpaper&quot; style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; &quot; height=&quot;253&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;&lt;h3 style=&quot;margin-top: 0px; color: rgb(51, 51, 51); font-size: 1.25em; font-style: normal; font-weight: normal; margin-left: 30px; margin-right: 140px; font-family: &#39;Hoefler Text&#39;, Cambria, &#39;Times New Roman&#39;; font-variant: normal; line-height: 25px; margin-bottom: 0.5em; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Requesting Notifications for Orientation Changes&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Code to support orientation changes can be added at any time throughout the life of a view. The code to start listening for notifications of orientation changes is:&lt;/p&gt;&lt;div class=&quot;objc&quot; style=&quot;margin-left: 30px; margin-right: 16px; color: rgb(51, 51, 51); font-size: 0.875em; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; &quot;&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;UIDevice currentDevice&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;beginGeneratingDeviceOrientationNotifications&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;;&lt;br /&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;&lt;a href=&quot;http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/&quot; style=&quot;text-decoration: none; color: rgb(125, 155, 172); &quot;&gt;&lt;span class=&quot;kw5&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;NSNotificationCenter&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;defaultCenter&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;addObserver&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;self selector&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw1&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;@selector&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;deviceOrientationDidChange&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;UIDeviceOrientationDidChangeNotification object&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw2&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;;&lt;br /&gt; &lt;/code&gt;&lt;/div&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIDevice&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;according to the Apple documentation is “a singleton instance representing the current device.” Calling the class method&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;http://the.ichibod.com/kiji/how-to-handle-device-rotation-for-uiviews-in-ios/#fn:1&quot; rel=&quot;footnote&quot; style=&quot;text-decoration: none; color: rgb(125, 155, 172); &quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;beginGeneratingDeviceOrientationNotifications&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;tells the device to fire up the accelerometer to start sending out orientation change notifications. However that one line alone will not respond to the notifications. The second line will and adds the view (&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;self&lt;/code&gt;) as an observer to the main notification center. It will then start receiving notifications of type&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIDeviceOrientationDidChangeNotification&lt;/code&gt;. Each time the orientation changes the method, via&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;@selector&lt;/code&gt;, will call our custom method&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;deviceOrientationDidChange:&lt;/code&gt;. The colon representing a parameter will be a variable of type&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;NSNotification&lt;/code&gt;.&lt;/p&gt;&lt;h3 style=&quot;margin-top: 0px; color: rgb(51, 51, 51); font-size: 1.25em; font-style: normal; font-weight: normal; margin-left: 30px; margin-right: 140px; font-family: &#39;Hoefler Text&#39;, Cambria, &#39;Times New Roman&#39;; font-variant: normal; line-height: 25px; margin-bottom: 0.5em; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Responding to Device Rotation&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Using the code above, the view is ready to respond with the following method.&lt;/p&gt;&lt;div class=&quot;objc&quot; style=&quot;margin-left: 30px; margin-right: 16px; color: rgb(51, 51, 51); font-size: 0.875em; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; &quot;&gt;UIDeviceOrientation currentOrientation;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kw4&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;void&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;deviceOrientationDidChange&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;&lt;a href=&quot;http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNotification_Class/&quot; style=&quot;text-decoration: none; color: rgb(125, 155, 172); &quot;&gt;&lt;span class=&quot;kw5&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;NSNotification&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;notification&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;co2&quot; style=&quot;color: rgb(8, 135, 6); &quot;&gt;//Obtaining the current device orientation&lt;/span&gt;&lt;br /&gt;  UIDeviceOrientation orientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;UIDevice currentDevice&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;orientation&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;co2&quot; style=&quot;color: rgb(8, 135, 6); &quot;&gt;//Ignoring specific orientations&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw1&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;if&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;orientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;UIDeviceOrientationFaceUp || orientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;UIDeviceOrientationFaceDown || orientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;UIDeviceOrientationUnknown || currentOrientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;orientation&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw1&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;return&lt;/span&gt;;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;&lt;a href=&quot;http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/&quot; style=&quot;text-decoration: none; color: rgb(125, 155, 172); &quot;&gt;&lt;span class=&quot;kw5&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;NSObject&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;cancelPreviousPerformRequestsWithTarget&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;self selector&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw1&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;@selector&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;relayoutLayers&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;object&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw2&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;co2&quot; style=&quot;color: rgb(8, 135, 6); &quot;&gt;//Responding only to changes in landscape or portrait&lt;/span&gt;&lt;br /&gt;  currentOrientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;orientation;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;co2&quot; style=&quot;color: rgb(8, 135, 6); &quot;&gt;//&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;[&lt;/span&gt;self performSelector&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw1&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;@selector&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;orientationChangedMethod&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;withObject&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw2&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;afterDelay&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot; style=&quot;color: rgb(10, 10, 165); &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;]&lt;/span&gt;;&lt;br /&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;}&lt;/span&gt;&lt;br /&gt; &lt;/code&gt;&lt;/div&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;The first line sets up&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;currentOrientation&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;to hold the last orientation. A lot of data comes through and the slightest movement can trigger another notification. So to prevent unnecessary reaction, the last orientation is stored.&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;The method is the one mentioned above and takes the parameter of the type&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;NSNotification&lt;/code&gt;. Then the current device orientation is stored in a local variable.&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Using&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;orientation&lt;/code&gt;, specific orientations are ignored. I only want the app to respond to rotation changes from portrait to landscape. So we check to make sure the orientation is not changing to face up or face down. The device can have issues determining the orientation. This is why it will also ignore the unknown (&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIDeviceOrientationUnknown&lt;/code&gt;) notification. Finally, if the last orientation was the same (to avoid unnecessary rotation code execution); ignored.&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Now that the orientation is not face up, face down, unknown, or the same as the last event, the&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;currentOrientation&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;variable is set. The last line of the method performs a&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;@selector&lt;/code&gt;. This will call another method with optional parameters after a specified amount of time. This is necessary because any changes based on the bounds of the view (&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;self&lt;/code&gt;) will not be updated by the time this method has been called.&lt;/p&gt;&lt;h3 style=&quot;margin-top: 0px; color: rgb(51, 51, 51); font-size: 1.25em; font-style: normal; font-weight: normal; margin-left: 30px; margin-right: 140px; font-family: &#39;Hoefler Text&#39;, Cambria, &#39;Times New Roman&#39;; font-variant: normal; line-height: 25px; margin-bottom: 0.5em; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;Extra Orientation Notes&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;After implementing the code above in my own view, there were times when the device rotated 180 degrees so the orientation change was handled by the parent&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIViewController&lt;/code&gt;. Therefore the updates I was doing in my&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;orientationChangedMethod&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;were unnecessary. The following code was added to check for similar orientations and&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;return&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;if no change was needed.&lt;/p&gt;&lt;div class=&quot;objc&quot; style=&quot;margin-left: 30px; margin-right: 16px; color: rgb(51, 51, 51); font-size: 0.875em; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; &quot;&gt;&lt;span class=&quot;kw1&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;if&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;UIDeviceOrientationIsPortrait&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;currentOrientation&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;UIDeviceOrientationIsPortrait&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;orientation&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;||&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;UIDeviceOrientationIsLandscape&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;currentOrientation&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;UIDeviceOrientationIsLandscape&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;(&lt;/span&gt;orientation&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;)&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;co2&quot; style=&quot;color: rgb(8, 135, 6); &quot;&gt;//still saving the current orientation&lt;/span&gt;&lt;br /&gt;  currentOrientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;orientation;&lt;br /&gt; &lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kw1&quot; style=&quot;color: rgb(166, 19, 144); &quot;&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;span class=&quot;br0&quot; style=&quot;color: rgb(65, 17, 128); &quot;&gt;}&lt;/span&gt;&lt;br /&gt; &lt;/code&gt;&lt;/div&gt;&lt;p style=&quot;margin: 0px 140px 1.3125em 30px; font-size: 0.8125em; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;,&#39;Lucida Sans Unicode&#39;,&#39;Lucida Sans Regular&#39;,Verdana,Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(247, 247, 247);&quot;&gt;If the view implementing this code requires actions based on an orientation, it is recommended to base it on the default orientation&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIDeviceOrientationPortrait&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;or&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIDeviceOrientationLandscape&lt;/code&gt;, based on the need for your app. Otherwise the default value for&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;[[UIDevice currentDevice] orientation]&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;is&lt;code style=&quot;font-family: InconsolataMedium, &#39;Courier New&#39;, Courier, mono; background-color: rgb(229, 231, 236); &quot;&gt;UIDeviceOrientationUnknown&lt;/code&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt; &lt;/span&gt;and can lead to unexpected results if code depends on this orientation being correct.&lt;/p&gt;&lt;p style=&quot;margin: 0px 140px 1.3125em 30px; font-size: 0.8125em; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;,&#39;Lucida Sans Unicode&#39;,&#39;Lucida Sans Regular&#39;,Verdana,Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; font-size: 0.8125em; margin-right: 140px; margin-bottom: 1.3125em; margin-left: 30px; color: rgb(69, 69, 69); font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans Regular&#39;, Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(247, 247, 247); &quot;&gt;source from http://the.ichibod.com/kiji/how-to-handle-device-rotation-for-uiviews-in-ios/&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/3436369799107106749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2012/02/how-to-handle-device-rotation-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3436369799107106749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3436369799107106749'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2012/02/how-to-handle-device-rotation-for.html' title='How to Handle Device Rotation for UIViews in iOS'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-7724504484671636365</id><published>2011-06-28T14:05:00.004+07:00</published><updated>2011-10-15T09:53:43.208+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Phần mềm xem lịch phát sóng các kênh truyền hình Việt Nam  trên Android</title><content type='html'>&lt;b&gt;Thông tin từ nhà phát triển:&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;bbcode_container&quot;&gt; &lt;div class=&quot;bbcode_quote&quot;&gt; &lt;div class=&quot;quote_container&quot;&gt;  &lt;b&gt;tvonhand &lt;/b&gt;là  một ứng dụng miễn phí cho Android OS. Với tvonhand, bạn sẽ có lịch phát  sóng của hầu hết các đài truyền hình ở Việt Nam, bao gồm các đài thông  dụng cũng như truyền hình cáp (SCTV cáp, HTVC cáp, Hà Nội cáp…).  tvonhand là một trong những lịch phát sóng điện tử tốt nhất hiện nay  trên android.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tvonhand &lt;/b&gt;hổ trợ 2 ngôn ngữ là tiếng Anh và  tiếng Việt (mặc định) với giao diện người dùng thân thiện. Người sử  dụng có thể xem danh sách các chương trình &lt;i&gt;đang&lt;/i&gt; &lt;i&gt;phát sóng&lt;/i&gt; ở tất cả các kênh, hay có thể xem chương trình của từng kênh trong một ngày.&lt;br /&gt;&lt;br /&gt;Chức năng hẹn giờ cho phép hẹn giờ cho bất cứ chương trình nào bạn thích và ứng dụng sẽ thông báo khi đến giờ phát sóng.&lt;br /&gt;&lt;br /&gt;Ngoài ra bạn cũng có thể chia sẽ chương trình yêu thích cho bạn bè, gia  đình thông qua facebook, twitter, mail hay bất cứ mạng xã hội nào có  cài trên chiếc phone android của bạn.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tvonhand &lt;/b&gt;hoạt động tốt trên android phiên bản 1.6 trở lên.&lt;br /&gt;&lt;br /&gt;Sau đây là danh sách gần 50 kênh hiện tại đang có trên &lt;b&gt;tvonhand&lt;/b&gt;.  Chúng tôi vẫn đang phát triển thêm nhiều kênh nữa. Khi có kênh mới thì  ứng dụng tự động cập nhật mà không cần tới bất cứ thao tác update nào  của bạn.&lt;br /&gt;&lt;br /&gt;VTV 1, VTV 2, VTV 3, VTV 4, VTV 6, VTV 9, THVL 1, THVL 2, HTVC CANHAC,  HTVC GIADINH, PHUNU, DULICH, HTVC PHIM, THUAN VIET, FASHION TV, MTV, HTV  7, HTV 9, SCTV 1, SCTV 7, SCTV 9, SCTV 14, SCTV 15, SCTV 16, SCTV 17,  MAX, VCTV 1, VCTV 2, VCTV 3, VCTV 4, VCTV 6, VCTV 7, VCTV 8, Cinemax,  HBO, ESPN, Channel, Star Movies, Star Sports, The thao TV, Discovery,  Bong Da TV, Cartoon, Astro Cam Xuc, Invest TV, O2 TV, Style TV….&lt;br /&gt;&lt;br /&gt;Ứng dụng vẫn đang được phát triển thêm với nhiều tính năng thú vị. Bất cứ thay đổi nào bạn sẽ là người được thông báo sớm nhất.&lt;br /&gt;&lt;br /&gt;* Hiện tại chương trình này đang được chuyển sang iphone, và windowphone. Huy vọng sẽ sớm ra mắt trong thời gian sắp tới.&lt;br /&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/hinh-anh-en-US/SC20110817-155759.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;                         &lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110816-171058.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-142250.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;                        &lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-142257.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-142304.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;                         &lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-154700.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-154736.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;                         &lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-154755.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-154820.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;                         &lt;img src=&quot;http://tvonhand.techpropulsionlabs.com/info/Media/Default/Page/vi-home/SC20110817-154829.png&quot; alt=&quot;&quot; height=&quot;427&quot; width=&quot;250&quot; /&gt;&lt;span class=&quot;st&quot;&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;Download:&lt;/b&gt;&lt;br /&gt;- Máy bạn nào có market thì vào market và search &quot;tvonhand&quot; là ra ngay.&lt;br /&gt;- Máy bạn nào không có market thì download &lt;a href=&quot;http://download771.mediafire.com/vpccl4gs12kg/beh7oosud4fbmvm/tvonhand.apk&quot;&gt;tại đây&lt;/a&gt;&lt;br /&gt;- Thông tin chi tiết về chương trình các bạn xem tại đây: &lt;a href=&quot;http://tvonhand.techpropulsionlabs.com&quot;&gt;http://tvonhand.techpropulsionlabs.com&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/7724504484671636365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2011/06/phan-mem-xem-lich-phat-song-cac-kenh.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7724504484671636365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7724504484671636365'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2011/06/phan-mem-xem-lich-phat-song-cac-kenh.html' title='Phần mềm xem lịch phát sóng các kênh truyền hình Việt Nam  trên Android'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-3006695849619438561</id><published>2011-06-23T20:54:00.000+07:00</published><updated>2011-06-23T20:55:37.175+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>How to save java object in database</title><content type='html'>&lt;p&gt;Java object can be saved in any database after serialization of objects. To serialization of object you need to implement, serializable interface java.io.Serializable in class.Object first need to convert into binary stream and after this, binary stream can store in database with blob data type. &lt;/p&gt; &lt;p&gt;Blob data type in database save data as binary content. This content can be fetched and again typecast into original class object.&lt;/p&gt; &lt;p&gt;We are using MySql database to store java object. In JDBC, we are using setObject function to insert object in database. setObject is function of preparedstatement.&lt;/p&gt; &lt;p&gt;Database table&lt;/p&gt; &lt;div class=&quot;cde&quot;&gt; &lt;pre style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;TABLE&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;javaobject&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119);&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 140, 0);&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(7, 71, 38);&quot;&gt;unsigned&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;NOT&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;NULL&lt;/span&gt; &lt;span style=&quot;color: rgb(7, 71, 38);&quot;&gt;AUTO_INCREMENT&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;,&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;javaObject&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119);&quot;&gt;longblob&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;,&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;PRIMARY&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;KEY&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;Where from we call and set object&lt;/p&gt; &lt;div class=&quot;cde&quot;&gt; &lt;pre style=&quot;color: rgb(0, 0, 0);&quot;&gt;MyClass mc=new MyClass()&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;mc.setSName(&quot;This is setting object&quot;)&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SaveObject so=new SaveObject()&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;try&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;so&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;setJavaObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;mc&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;so&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;saveObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;catch(Exception e)&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;   e&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;printStackTrace&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;MyClass.java&lt;/strong&gt;&lt;/p&gt; &lt;div class=&quot;cde&quot;&gt; &lt;pre style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;io&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;Serializable&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;class&lt;/span&gt; MyClass &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;implements&lt;/span&gt; Serializable&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;String&lt;/span&gt; sName&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;String&lt;/span&gt; getSName&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;return&lt;/span&gt; sName&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119);&quot;&gt;void&lt;/span&gt; setSName&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;String&lt;/span&gt; name&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;       sName &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt; name&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p&gt;Saving object in database&lt;/p&gt; &lt;p&gt;&lt;strong&gt;SaveObject.java&lt;/strong&gt;&lt;/p&gt; &lt;div class=&quot;cde&quot;&gt; &lt;pre style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;io&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;ByteArrayInputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;io&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;ByteArrayOutputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;io&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;ObjectInputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;io&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;ObjectOutputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;sql&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;Connection&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;sql&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;PreparedStatement&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt; java&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;sql&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 74, 67);&quot;&gt;ResultSet&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;class&lt;/span&gt; SaveObject &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Object&lt;/span&gt; javaObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Object&lt;/span&gt; getJavaObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;return&lt;/span&gt; javaObject&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119);&quot;&gt;void&lt;/span&gt; setJavaObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Object&lt;/span&gt; javaObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;javaObject &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt; javaObject&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt;  &lt;span style=&quot;color: rgb(187, 121, 119);&quot;&gt;void&lt;/span&gt; saveObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Exception&lt;/span&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Connection&lt;/span&gt; conn&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(105, 105, 105);&quot;&gt;/// get connection string;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;PreparedStatement&lt;/span&gt; ps&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;String&lt;/span&gt; sql&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ByteArrayOutputStream&lt;/span&gt; bos &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ByteArrayOutputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ObjectOutputStream&lt;/span&gt; oos &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ObjectOutputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;bos&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       oos&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;writeObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;javaObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       oos&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;flush&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       oos&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;close&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       bos&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;close&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119);&quot;&gt;byte&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;]&lt;/span&gt; data &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt; bos&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;toByteArray&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       sql&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 230);&quot;&gt;&quot;insert into javaobject (javaObject) values(?)&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       ps&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;conn&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;prepareStatement&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;sql&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       ps&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;setObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 140, 0);&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;,&lt;/span&gt; data&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       ps&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;executeUpdate&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Exception&lt;/span&gt; e&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;           e&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;printStackTrace&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Object&lt;/span&gt; getObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Exception&lt;/span&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Object&lt;/span&gt; rmObj&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Connection&lt;/span&gt; conn&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(105, 105, 105);&quot;&gt;/// get connection string;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;PreparedStatement&lt;/span&gt; ps&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ResultSet&lt;/span&gt; rs&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;String&lt;/span&gt; sql&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       sql&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 230);&quot;&gt;&quot;select * from javaobject where id=1&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       ps&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;conn&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;prepareStatement&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;sql&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       rs&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;ps&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;executeQuery&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;rs&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;next&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;           &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ByteArrayInputStream&lt;/span&gt; bais&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ObjectInputStream&lt;/span&gt; ins&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;try&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           bais &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ByteArrayInputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;rs&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;getBytes&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 230);&quot;&gt;&quot;javaObject&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           ins &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;ObjectInputStream&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;bais&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           MyClass mc &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;MyClass&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;ins&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;readObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;out&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;println&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 230);&quot;&gt;&quot;Object in value ::&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;+&lt;/span&gt;mc&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;getSName&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;           ins&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;close&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;           &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;catch&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(187, 121, 119); font-weight: bold;&quot;&gt;Exception&lt;/span&gt; e&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           e&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;printStackTrace&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;           &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;return&lt;/span&gt; rmObj&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt; &lt;/div&gt; &lt;p style=&quot;font-weight: bold;&quot;&gt;get Object from database&lt;/p&gt; &lt;div class=&quot;cde&quot;&gt; &lt;pre style=&quot;color: rgb(0, 0, 0);&quot;&gt;try&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;   SaveObject so&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 0); font-weight: bold;&quot;&gt;new&lt;/span&gt; SaveObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;   so&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;getObject&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;catch(Exception e)&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  e&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;.&lt;/span&gt;printStackTrace&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 128, 48);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(128, 0, 128);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/3006695849619438561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2011/06/how-to-save-java-object-in-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3006695849619438561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3006695849619438561'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2011/06/how-to-save-java-object-in-database.html' title='How to save java object in database'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-3350745359739683170</id><published>2011-05-24T11:08:00.000+07:00</published><updated>2011-05-24T11:09:05.108+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>How to export plain text to UTF-8</title><content type='html'>I explain about how to determine text file encoding:&lt;br /&gt;File contains data: Hello&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;48 65 6C 6C 6F&lt;/code&gt;   &lt;/dt&gt;&lt;dd&gt;     &lt;p&gt;This is the traditional ANSI encoding.&lt;/p&gt;   &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;48 00 65 00 6C 00 6C 00 6F 00&lt;/code&gt;   &lt;/dt&gt;&lt;dd&gt;     &lt;p&gt;This is the Unicode (little-endian) encoding with no BOM.&lt;/p&gt;   &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;&lt;span style=&quot;color:blue;&quot;&gt;FF FE&lt;/span&gt; 48 00 65 00 6C 00 6C 00 6F 00&lt;/code&gt;   &lt;/dt&gt;&lt;dd&gt;     &lt;p&gt;This is the Unicode (little-endian) encoding with BOM. The BOM (FF FE) serves two purposes: First, it tags the file as a Unicode document, and second, the order in which the two bytes appear indicate that the file is little-endian.&lt;/p&gt;   &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;00 48 00 65 00 6C 00 6C 00 6F&lt;/code&gt;   &lt;/dt&gt;&lt;dd&gt;     &lt;p&gt;This is the Unicode (big-endian) encoding with no BOM. Notepad does not support this encoding.&lt;/p&gt;   &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;&lt;span style=&quot;color:blue;&quot;&gt;FE FF&lt;/span&gt; 00 48 00 65 00 6C 00 6C 00 6F&lt;/code&gt;   &lt;/dt&gt;&lt;dd&gt;     &lt;p&gt;This is the Unicode (big-endian) encoding with BOM. Notice that this BOM is in the opposite order from the little-endian BOM.&lt;/p&gt;   &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;&lt;span style=&quot;color:blue;&quot;&gt;EF BB BF&lt;/span&gt; 48 65 6C 6C 6F&lt;/code&gt;   &lt;/dt&gt;&lt;dd&gt;     &lt;p&gt;This is UTF-8 encoding. The first three bytes are the UTF-8 encoding of the BOM.&lt;/p&gt;   &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;&lt;span style=&quot;color:blue;&quot;&gt;2B 2F 76 38 2D&lt;/span&gt; 48 65 6C 6C 6F&lt;/code&gt;   &lt;/dt&gt;&lt;dd&gt;     &lt;p&gt;This is UTF-7 encoding&lt;/p&gt;   &lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;br /&gt;Here is a test example code:&lt;br /&gt;---------------------&lt;br /&gt;FileInputStream fileStream = new FileInputStream( &quot;d:\\4.txt&quot; );&lt;br /&gt;            byte[] arr = new byte[]{1,2,3};&lt;br /&gt;            fileStream.read(arr);&lt;br /&gt;            System.out.println(arr[0]);&lt;br /&gt;            System.out.println(arr[1]);&lt;br /&gt;            System.out.println(arr[2]);&lt;br /&gt;           &lt;br /&gt;            System.out.println(&quot;...................&quot;);&lt;br /&gt;            System.out.println(&quot;utf-8:&quot; + (byte)0xEF + &quot; - &quot; + (byte)0xBB + &quot; - &quot; + (byte)0xBF);//EF BB BF&lt;br /&gt;            System.out.println(&quot;big-endian: &quot; + (byte)0xFE + &quot; - &quot; + (byte)0xFF);//FE FF&lt;br /&gt;            System.out.println(&quot;little-endian: &quot; + (byte)0xFF + &quot; - &quot; + (byte)0xFE); //FF FE</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/3350745359739683170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2011/05/how-to-export-plain-text-to-utf-8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3350745359739683170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/3350745359739683170'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2011/05/how-to-export-plain-text-to-utf-8.html' title='How to export plain text to UTF-8'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-2310867047763401566</id><published>2011-05-02T19:36:00.000+07:00</published><updated>2011-05-02T19:45:19.547+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Heo con đi chơi Củ Mì</title><content type='html'>Ngày 1/5 heo con đi chơi củ &quot;Mì&quot; dzui ơi là dzui Hihi!&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaiI_48QijvRkc42Z4pIimjiW3dQs_s3AHCsaGJEoJzGGc_xLPEXp6R2d7k9OfKt75YAzbOG35gn9FAzsKa8L4b1wQY8m8y8xNFWaMXJPVAFVi5zRG_mxNLLs0xwuws25-k4CahD8TqN0/s1600/SDC13206.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaiI_48QijvRkc42Z4pIimjiW3dQs_s3AHCsaGJEoJzGGc_xLPEXp6R2d7k9OfKt75YAzbOG35gn9FAzsKa8L4b1wQY8m8y8xNFWaMXJPVAFVi5zRG_mxNLLs0xwuws25-k4CahD8TqN0/s400/SDC13206.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098482132925986&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXCumx6VsSJr3DaxK0Pke7x8Blp2tO1BYpr-w9QoSV_wX32X8cw_IYUiefZVvebfG3k9ttRuFfqD4NyyCCQ2eXkptZn9kw64aQT_wWC8SypwyVmi9tAfr5ANy1YhFn4krCpHhYP9MKM2o/s1600/SDC13205.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXCumx6VsSJr3DaxK0Pke7x8Blp2tO1BYpr-w9QoSV_wX32X8cw_IYUiefZVvebfG3k9ttRuFfqD4NyyCCQ2eXkptZn9kw64aQT_wWC8SypwyVmi9tAfr5ANy1YhFn4krCpHhYP9MKM2o/s400/SDC13205.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098479415905090&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf9iS2ruKJGDlu4NuGVdJQ4Vxb2_pcrGLvOExpJk7fX4vJNkhmi7o8fu-DQalKFe-fcXMKj5NUDl0NyWic7L1-JxqsOaetRFERgPYNV6e5WxxdDqcYimOUJqXqGyX3Zxnr6n3Q4lZAqLQ/s1600/SDC13204.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf9iS2ruKJGDlu4NuGVdJQ4Vxb2_pcrGLvOExpJk7fX4vJNkhmi7o8fu-DQalKFe-fcXMKj5NUDl0NyWic7L1-JxqsOaetRFERgPYNV6e5WxxdDqcYimOUJqXqGyX3Zxnr6n3Q4lZAqLQ/s400/SDC13204.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098475198534354&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5O6O5V_aTqfDahut9g7WE0fENxKKii5jOD4O5jMj5bS5xhYl26qRfxyBOIl1Qs8oioyKv-WOBUMIurqNMlin6rWEmRNdBscK3lclmzkWQ8yYyqmyUhUrQ5a6vfy4P4kO2zbP28PNUQg8/s1600/SDC13203.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5O6O5V_aTqfDahut9g7WE0fENxKKii5jOD4O5jMj5bS5xhYl26qRfxyBOIl1Qs8oioyKv-WOBUMIurqNMlin6rWEmRNdBscK3lclmzkWQ8yYyqmyUhUrQ5a6vfy4P4kO2zbP28PNUQg8/s400/SDC13203.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098468692714194&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFRE_j9stff4-NU6WgB-6a4eZ495c-Qxp_fNr_Lsa1BvTR6ubQW5Q3yVqBlivpW-U30VuweyabVtUp05XKKp2c3IXX4pgajWrIQVAPoZCUzYYD10yYFiKvxfCmzPKIJma-hALHGwGTqTY/s1600/SDC13202.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFRE_j9stff4-NU6WgB-6a4eZ495c-Qxp_fNr_Lsa1BvTR6ubQW5Q3yVqBlivpW-U30VuweyabVtUp05XKKp2c3IXX4pgajWrIQVAPoZCUzYYD10yYFiKvxfCmzPKIJma-hALHGwGTqTY/s400/SDC13202.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098339497413298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ_ULuY0PVTrkids8rOKKedPQNT2P2FShzAcJlS4nKxisMxSaRASklfcsCy38U9T72bkVFtE8LY95LJBl4jbH5k9Ta1DOmYMvF2RO1CLjqxaNV84xiDc3vUrGmzqYJhz5S6mVT7kL1C9o/s1600/SDC13201.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ_ULuY0PVTrkids8rOKKedPQNT2P2FShzAcJlS4nKxisMxSaRASklfcsCy38U9T72bkVFtE8LY95LJBl4jbH5k9Ta1DOmYMvF2RO1CLjqxaNV84xiDc3vUrGmzqYJhz5S6mVT7kL1C9o/s400/SDC13201.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098334688997378&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcz7swkU2zt3C2iXcyp3SIIrk-v_LPmF6JZ4_uGUVhmQEwaKMznHqcwFqxCsjsr3FaOdatSU7lAZQvm5dsSrb18IwW2AflnAhEYm52XJ60bqWC2zzq1ImGOG6olifv8cjCkRAvs4WLZ4w/s1600/SDC13200.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcz7swkU2zt3C2iXcyp3SIIrk-v_LPmF6JZ4_uGUVhmQEwaKMznHqcwFqxCsjsr3FaOdatSU7lAZQvm5dsSrb18IwW2AflnAhEYm52XJ60bqWC2zzq1ImGOG6olifv8cjCkRAvs4WLZ4w/s400/SDC13200.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098332924924306&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyuIOiFIo42_2wA64jK73xRogVbZC4jRQmLAuJad3v_vlenORV-N7amodSK4sgVe6SmJMXJREzzTJ1pcUUbCZnl27fXfbkkHPFpSDUs6S98QHBFsdv9vUQptR3N818Z9KXNq0NwKf4e2A/s1600/SDC13199.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyuIOiFIo42_2wA64jK73xRogVbZC4jRQmLAuJad3v_vlenORV-N7amodSK4sgVe6SmJMXJREzzTJ1pcUUbCZnl27fXfbkkHPFpSDUs6S98QHBFsdv9vUQptR3N818Z9KXNq0NwKf4e2A/s400/SDC13199.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098333886480690&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW31AIW1ZbSiveGCGcE5bjQ7biS4eD2Nwm5l0ul1sO_HhpwgnP6-GKXL3pp7Q9c5Vk5q66qQwj4jVpMUipq-oZ2-pNTMIif2740YIszmcqmpEA7s2f85ktxyXmM1G2t8NojiuNft6VONo/s1600/SDC13198.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW31AIW1ZbSiveGCGcE5bjQ7biS4eD2Nwm5l0ul1sO_HhpwgnP6-GKXL3pp7Q9c5Vk5q66qQwj4jVpMUipq-oZ2-pNTMIif2740YIszmcqmpEA7s2f85ktxyXmM1G2t8NojiuNft6VONo/s400/SDC13198.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098327602460610&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp6gcvNl9lEN1dPFTQVRC7D2pKIlin0dPHkxSt7xyY3y-S70mpUR32UxVd3K0UtBAZu3AKZIfH8t72msc_lWwngMb4psaFDQXNg8oJASpnOzeuIreA5GH2I5wG0pixYareGr9J2pn-9Xg/s1600/SDC13197.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp6gcvNl9lEN1dPFTQVRC7D2pKIlin0dPHkxSt7xyY3y-S70mpUR32UxVd3K0UtBAZu3AKZIfH8t72msc_lWwngMb4psaFDQXNg8oJASpnOzeuIreA5GH2I5wG0pixYareGr9J2pn-9Xg/s400/SDC13197.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098182082865058&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyrAApEQ4NNrAitAbKz8sHUnMbqyILKsN-OJ759_2RZVQ1-lR-PeshM1pwEngWJIw2N_fNOcZrKYmObOx1AUU1iAgZLa3vJbMtcM3UMOCvT1kxQLWzDkdTrge0zTlftMN6v7prGzzUPE0/s1600/SDC13196.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyrAApEQ4NNrAitAbKz8sHUnMbqyILKsN-OJ759_2RZVQ1-lR-PeshM1pwEngWJIw2N_fNOcZrKYmObOx1AUU1iAgZLa3vJbMtcM3UMOCvT1kxQLWzDkdTrge0zTlftMN6v7prGzzUPE0/s400/SDC13196.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098171537930530&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA5ZWMvWpT3oDENCTmEMSTlZ4gV0gI5M4NwEQkMkloqiJFRVrpur-ogzvcVXjNUWUIK5ScVVHyj7hTXawd3JiD0Hi0gs24qTQt7l41NmRSYFmtIPFwrwN-uGftvJu07WSe2uQLdqRrFzw/s1600/SDC13195.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA5ZWMvWpT3oDENCTmEMSTlZ4gV0gI5M4NwEQkMkloqiJFRVrpur-ogzvcVXjNUWUIK5ScVVHyj7hTXawd3JiD0Hi0gs24qTQt7l41NmRSYFmtIPFwrwN-uGftvJu07WSe2uQLdqRrFzw/s400/SDC13195.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098174690204162&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglgoBfU26JU_Ikds1jkuZNVEVZtujODXPwx5j6VI4fUbqklPxFX0SH5qWxjiXcQWHCtgJ5rliyeMj09IxTIiiDRyYcTRNTWMgCwTUZONk2nHMph4Iu3lqwQoB0U9SWJGt9wpnoAPV5OyA/s1600/SDC13194.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglgoBfU26JU_Ikds1jkuZNVEVZtujODXPwx5j6VI4fUbqklPxFX0SH5qWxjiXcQWHCtgJ5rliyeMj09IxTIiiDRyYcTRNTWMgCwTUZONk2nHMph4Iu3lqwQoB0U9SWJGt9wpnoAPV5OyA/s400/SDC13194.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098168179488418&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0xiQp6DGbVPwVhyZltJ6GGuXgM8LGGakICnHt8HdeVorz6onATLssGIlJZxxXYsE5aWLi3H_enYQ6NMOjQKr1XTTRcLJ33KtzAD1gSpZGsu2k-mLikyOFcfn0ZX5evmMGR5x0c3DTbOc/s1600/SDC13193.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0xiQp6DGbVPwVhyZltJ6GGuXgM8LGGakICnHt8HdeVorz6onATLssGIlJZxxXYsE5aWLi3H_enYQ6NMOjQKr1XTTRcLJ33KtzAD1gSpZGsu2k-mLikyOFcfn0ZX5evmMGR5x0c3DTbOc/s400/SDC13193.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602098164907754722&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1d9ldXQZ94ssSaClWbKuNAkyhUTqAls2f_EC4-bf6893MB76iFf8Op2QSjrQFKvd5y_ZC27L76yMPYSm1lx7TJ8a0G8mxCDq56tgmzbyxs1DKwRSsFJyOxIe_XA2CoQElWVZ2buCbpyU/s1600/SDC13192.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1d9ldXQZ94ssSaClWbKuNAkyhUTqAls2f_EC4-bf6893MB76iFf8Op2QSjrQFKvd5y_ZC27L76yMPYSm1lx7TJ8a0G8mxCDq56tgmzbyxs1DKwRSsFJyOxIe_XA2CoQElWVZ2buCbpyU/s400/SDC13192.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097984766603186&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUw8rC1gKfDi0RiORvS_JbbxNTGCu7mwYdtU4l29U39UnR7QM9SKYwbPlUBf1SFDyQ15W2nMi7jOeyGHIgRYnvJBoxNAplU1VKfhBIld-kOl3w0lgZE_dKnBEFFI6eI54RflH5p1o0YfA/s1600/SDC13191.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUw8rC1gKfDi0RiORvS_JbbxNTGCu7mwYdtU4l29U39UnR7QM9SKYwbPlUBf1SFDyQ15W2nMi7jOeyGHIgRYnvJBoxNAplU1VKfhBIld-kOl3w0lgZE_dKnBEFFI6eI54RflH5p1o0YfA/s400/SDC13191.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097979216190530&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-mtrRvd9phLR2t5-jxqUB2o7_17smKHvHWGWwek52oc-bU-xEIBHxGuBAIx3E3H_esZu_LUrV6-6dFqbAjaD5sWPGF-UdDdXlEJLhcJVYVyHPSZUF2O-l2wP9zzmfI4bj-Vy2dnexTfs/s1600/SDC13190.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-mtrRvd9phLR2t5-jxqUB2o7_17smKHvHWGWwek52oc-bU-xEIBHxGuBAIx3E3H_esZu_LUrV6-6dFqbAjaD5sWPGF-UdDdXlEJLhcJVYVyHPSZUF2O-l2wP9zzmfI4bj-Vy2dnexTfs/s400/SDC13190.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097976256663346&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5JzYA_hhchKUYOpHcy585eDekkOiBxL3M2WsDHsLkGQz331L8AONCg63jFKYVddC_Gba186pubbJV_ql6EG27_zOXsswEHhQuU_R4uBtjaUpQ9OTzf2DqPpDO3Y_Hr2mAj4X1iwwH9Es/s1600/SDC13189.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5JzYA_hhchKUYOpHcy585eDekkOiBxL3M2WsDHsLkGQz331L8AONCg63jFKYVddC_Gba186pubbJV_ql6EG27_zOXsswEHhQuU_R4uBtjaUpQ9OTzf2DqPpDO3Y_Hr2mAj4X1iwwH9Es/s400/SDC13189.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097970782739298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdJmBPBoM_M8LWTSZRunhx3iQZPKRH9H9MCRAntWS67YbBeqTimJOhxHc7GiiwP20fPIk7rESXt9el4NhKaGpmWyGWCvKf-7ntwz5kDZNWNgpH3R5H0ywWegf6NeYms7nkedZPBKe5NRc/s1600/SDC13188.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdJmBPBoM_M8LWTSZRunhx3iQZPKRH9H9MCRAntWS67YbBeqTimJOhxHc7GiiwP20fPIk7rESXt9el4NhKaGpmWyGWCvKf-7ntwz5kDZNWNgpH3R5H0ywWegf6NeYms7nkedZPBKe5NRc/s400/SDC13188.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097968707735410&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNSJNdcnqskTOG9UOcxdzOUoUXrmXNGszS7LKLzafSLw5qal5Rwl5HHlVk6aRoUn2USiNWwSVtHWCdkDc8CT8bdg6Da-tnkf_0YuHbkMvFCZ5TuiyaIzR6de3YgLt9bxyZjWN8dGESx98/s1600/SDC13187.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNSJNdcnqskTOG9UOcxdzOUoUXrmXNGszS7LKLzafSLw5qal5Rwl5HHlVk6aRoUn2USiNWwSVtHWCdkDc8CT8bdg6Da-tnkf_0YuHbkMvFCZ5TuiyaIzR6de3YgLt9bxyZjWN8dGESx98/s400/SDC13187.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097773755260386&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjANJjohAKKSTEpVNJkm0Z_IlGmG9f61bp-JyZwezxGa-sUdFGq-MIqK_xG-DxkO1IW4ec0kCkJdW6FVtROk_hyphenhyphengiB8kFBLOGnJBrq2P5dSaoYidr9lxapsbUiaq9E1QpMYmkl8vWtHgA4/s1600/SDC13186.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjANJjohAKKSTEpVNJkm0Z_IlGmG9f61bp-JyZwezxGa-sUdFGq-MIqK_xG-DxkO1IW4ec0kCkJdW6FVtROk_hyphenhyphengiB8kFBLOGnJBrq2P5dSaoYidr9lxapsbUiaq9E1QpMYmkl8vWtHgA4/s400/SDC13186.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097770175685202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk8XC8uoHh8MFwT3XK2pfdtc_siCY7PRJQE9rb_yAAlLUpqVPAIPqB70mC2kefKz5Q38PPDIaqjIToLH1I-eyNUTggIJeb3F3Xop9FGbBR3s3Tg7uYXtE84rfZJiVqyxyktdw6PnnJdG0/s1600/SDC13185.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk8XC8uoHh8MFwT3XK2pfdtc_siCY7PRJQE9rb_yAAlLUpqVPAIPqB70mC2kefKz5Q38PPDIaqjIToLH1I-eyNUTggIJeb3F3Xop9FGbBR3s3Tg7uYXtE84rfZJiVqyxyktdw6PnnJdG0/s400/SDC13185.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097761424752770&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy_Tbq7EkatdsNzic4aOlhtnAWnee25D3T2AzCU4JbMe7FF7ob3_HbQ_9Zc3x34bfaDc_ZjtcmJNkHUOZHR6wYCXlnctzsx4mdnqecpMgNMx6QaytVhwdKWD8ZQskmoP8BNcYn1VtM3AU/s1600/SDC13184.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy_Tbq7EkatdsNzic4aOlhtnAWnee25D3T2AzCU4JbMe7FF7ob3_HbQ_9Zc3x34bfaDc_ZjtcmJNkHUOZHR6wYCXlnctzsx4mdnqecpMgNMx6QaytVhwdKWD8ZQskmoP8BNcYn1VtM3AU/s400/SDC13184.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097758954397090&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStfckpDbUlpFl4JLVk_nDO2o515jTD0i6MF-sy4LM9KIRTvGZx1CtcFSBq6fbhcLuvw9bKyhtIRPCc9vqtwKdLZjqAiYdRI7PMQNXZCA1GXR5COfT-MuTsH5xsMS48uc2PW1QvIrqkok/s1600/SDC13183.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStfckpDbUlpFl4JLVk_nDO2o515jTD0i6MF-sy4LM9KIRTvGZx1CtcFSBq6fbhcLuvw9bKyhtIRPCc9vqtwKdLZjqAiYdRI7PMQNXZCA1GXR5COfT-MuTsH5xsMS48uc2PW1QvIrqkok/s400/SDC13183.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097757173581266&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3jAxcBhtaBjM-7Ty75XkRsA6fynBUfoCO5DxYT9_o0K2VUkQylSHAopPO95_qRsAvzds3N3yA1FYK_sZ0NxjzJypUMPvxUbuQgmbsLNTWrKNHu84RwboCp6VjV_GWajYQYMcXKuLmDwk/s1600/SDC13182.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3jAxcBhtaBjM-7Ty75XkRsA6fynBUfoCO5DxYT9_o0K2VUkQylSHAopPO95_qRsAvzds3N3yA1FYK_sZ0NxjzJypUMPvxUbuQgmbsLNTWrKNHu84RwboCp6VjV_GWajYQYMcXKuLmDwk/s400/SDC13182.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097598896452850&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSAekPkcABBE1eEIhE1DQooCj-cWDg8vrxAZY-F7O6VVWa9hQe8zNruakgAy6GKp8XsPaFpSj_GOyidVJbQI4iMpev5awr61HSSHP7C_VMzvnSSBRbPa_tp8HSB_3rL8zQMZpXQwRqO2I/s1600/SDC13181.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSAekPkcABBE1eEIhE1DQooCj-cWDg8vrxAZY-F7O6VVWa9hQe8zNruakgAy6GKp8XsPaFpSj_GOyidVJbQI4iMpev5awr61HSSHP7C_VMzvnSSBRbPa_tp8HSB_3rL8zQMZpXQwRqO2I/s400/SDC13181.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097597955563602&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2KhMSirLDR2dqmQzKMp0_VKN-IhY2Ish5UWySAeVz4LiB3B6e1Mm2HgdYBEFnVsnwMdIIyOY8CBTCynXsh6siLOItoc5ZzPPf_eGBSCImr6x3INTfFdeBwsjK00W_stwf-52CdzZLMWo/s1600/SDC13180.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2KhMSirLDR2dqmQzKMp0_VKN-IhY2Ish5UWySAeVz4LiB3B6e1Mm2HgdYBEFnVsnwMdIIyOY8CBTCynXsh6siLOItoc5ZzPPf_eGBSCImr6x3INTfFdeBwsjK00W_stwf-52CdzZLMWo/s400/SDC13180.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097593978311154&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0duRZrRR5niESThARiletExpp0U1nxuyjhuuVOOE9mL8eym6Oic3qUrEj-WHtFPGaAWJNaID1JhqH6ucsVpm4MMFnwXwkkFaWVEOyL6poEH0nQsjsw2QglvOhXp-OYtDK5hbENO8EDPM/s1600/SDC13179.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0duRZrRR5niESThARiletExpp0U1nxuyjhuuVOOE9mL8eym6Oic3qUrEj-WHtFPGaAWJNaID1JhqH6ucsVpm4MMFnwXwkkFaWVEOyL6poEH0nQsjsw2QglvOhXp-OYtDK5hbENO8EDPM/s400/SDC13179.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097590537605170&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidZJYx9iSUVWEVzOWyJM40jK-_MN5FDDckDVDcFeXhFvRFLVEzkPBokwJtQhAAvZCwAg7oon6w5M4WKg6CBiykYuukHmeFi17FJmhb4cd9wetnOd2ZczxET2PuEqcmn9BSgeiLfLS9D6U/s1600/SDC13178.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidZJYx9iSUVWEVzOWyJM40jK-_MN5FDDckDVDcFeXhFvRFLVEzkPBokwJtQhAAvZCwAg7oon6w5M4WKg6CBiykYuukHmeFi17FJmhb4cd9wetnOd2ZczxET2PuEqcmn9BSgeiLfLS9D6U/s400/SDC13178.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097584501679298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOAvO0YmqMLs5YxEpo87620eO4-ut09dacSRnYssqeZeEykPEzU3DohgGjc7lG6NYemg_eriuEsuzVUdWkIZfS1S2GdlqPfKH8_FugoFosFFtokn_I2KTIFvoP9HF1oA-Q3h8NTFhuZkU/s1600/SDC13177.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOAvO0YmqMLs5YxEpo87620eO4-ut09dacSRnYssqeZeEykPEzU3DohgGjc7lG6NYemg_eriuEsuzVUdWkIZfS1S2GdlqPfKH8_FugoFosFFtokn_I2KTIFvoP9HF1oA-Q3h8NTFhuZkU/s400/SDC13177.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097373271592418&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhngitZ3exiW5X7j5q-PUcexstE-1AxlamkFky9iC4KfmLNx1UQJZdFtfp2c2D71jMg0pGmPnP-_tX_55bGWxZOBzql8PLFcNPmCU9FjmN0xgFrRNhYy2G3E4dPiQdwfN1Ycmhi4PQV_UY/s1600/SDC13176.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhngitZ3exiW5X7j5q-PUcexstE-1AxlamkFky9iC4KfmLNx1UQJZdFtfp2c2D71jMg0pGmPnP-_tX_55bGWxZOBzql8PLFcNPmCU9FjmN0xgFrRNhYy2G3E4dPiQdwfN1Ycmhi4PQV_UY/s400/SDC13176.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097371863835266&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM0UqD-wTJ7s7639gFKnaX4jMglsG5e8e4FOuKt13rL61qNv0MT6Co8IbhbXHRSwHlK7nZ_rLQI6i-8kmDu1R71OAhvqbBdSTriey9GFKcDoQnxzXQIxaRI7L0rj6UR9XGDDz6pp-UwvQ/s1600/SDC13174.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM0UqD-wTJ7s7639gFKnaX4jMglsG5e8e4FOuKt13rL61qNv0MT6Co8IbhbXHRSwHlK7nZ_rLQI6i-8kmDu1R71OAhvqbBdSTriey9GFKcDoQnxzXQIxaRI7L0rj6UR9XGDDz6pp-UwvQ/s400/SDC13174.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097367830008482&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3M2Et0uoaVrn1q9SAf_B6zmuN_EKpynPd_EcrW1iJXtlrxoT418-ZqkXBQOnlPfNDIkS2C4oBbngzk2ZUn1l1j-oYu8Op3bQgq-nc1mFSu_m1mImR_t89FLtVBJZfWNvB82J_mRRpCgM/s1600/SDC13172.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3M2Et0uoaVrn1q9SAf_B6zmuN_EKpynPd_EcrW1iJXtlrxoT418-ZqkXBQOnlPfNDIkS2C4oBbngzk2ZUn1l1j-oYu8Op3bQgq-nc1mFSu_m1mImR_t89FLtVBJZfWNvB82J_mRRpCgM/s400/SDC13172.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097363016427282&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYC5-iNsOhkBU0e3pI6Kmm8ww8ZbMi5UnX2sx9By9t_yj-LL9-7yh-Ap4fJtb8FgA5EOQx8a0wDfjjACRA6102w2Na9XFKJW_UgdruK25yqjDq5apsjuWcljxh9ydsUkiNArWaNXhj3z8/s1600/SDC13170.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYC5-iNsOhkBU0e3pI6Kmm8ww8ZbMi5UnX2sx9By9t_yj-LL9-7yh-Ap4fJtb8FgA5EOQx8a0wDfjjACRA6102w2Na9XFKJW_UgdruK25yqjDq5apsjuWcljxh9ydsUkiNArWaNXhj3z8/s400/SDC13170.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097355359354338&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLXDGRRbDH1hyphenhyphen4KSrKI-ICnl5q2vBGIgJmbGf9DXZf_q-GLn2RWWWFA6q6eqJk_9nhAYTKh774QeGwA3Vd-7uWt-xdiS0S2ZWyrAjyf63qFyC4Fehw6-IxsGRiFmp8DDfX6xYZi9XNezg/s1600/SDC13169.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLXDGRRbDH1hyphenhyphen4KSrKI-ICnl5q2vBGIgJmbGf9DXZf_q-GLn2RWWWFA6q6eqJk_9nhAYTKh774QeGwA3Vd-7uWt-xdiS0S2ZWyrAjyf63qFyC4Fehw6-IxsGRiFmp8DDfX6xYZi9XNezg/s400/SDC13169.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097178385472210&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4vh19jr7S4B7zvMPpNtTLdi9msSQn2Cv5PWtyyyE81qUUU6k-H93cSWsOMflN084eX4daA3k0TG6BAwJjkh-Pov2oEq7jk1sHFXYcomeUCQy2ENNyiPjGdes9WXx_OUq0ivDGwG7x0YU/s1600/SDC13167.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4vh19jr7S4B7zvMPpNtTLdi9msSQn2Cv5PWtyyyE81qUUU6k-H93cSWsOMflN084eX4daA3k0TG6BAwJjkh-Pov2oEq7jk1sHFXYcomeUCQy2ENNyiPjGdes9WXx_OUq0ivDGwG7x0YU/s400/SDC13167.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097173078015330&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjBL2yFsEcuhSBwQi9WajyoItpP7P486dlBHRqAl-Gx3gTKOuNfLeHdhvMRR5hKuYGp44VA1UYIZRUZiDvTGoG_Q9KChNRYNbpzZY995SkPJ_I21rvWn9hYrKn8sS6Hw0-vRW3K2CQjHM/s1600/SDC13159.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjBL2yFsEcuhSBwQi9WajyoItpP7P486dlBHRqAl-Gx3gTKOuNfLeHdhvMRR5hKuYGp44VA1UYIZRUZiDvTGoG_Q9KChNRYNbpzZY995SkPJ_I21rvWn9hYrKn8sS6Hw0-vRW3K2CQjHM/s400/SDC13159.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097169668740498&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKCh_ErrzU7wlcGx5FI-V9UCXgdLp56DgZEs1v9zl0AGLjjqOyGIYhpdVC8K7vxo7vk00lff9gQWdgZNnm7vSkNvCKv9KGux9ZZIHrpF_FPLnV4uxVZ6KrNfUhds7JKYVlf2-KS5WUEeg/s1600/SDC13158.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKCh_ErrzU7wlcGx5FI-V9UCXgdLp56DgZEs1v9zl0AGLjjqOyGIYhpdVC8K7vxo7vk00lff9gQWdgZNnm7vSkNvCKv9KGux9ZZIHrpF_FPLnV4uxVZ6KrNfUhds7JKYVlf2-KS5WUEeg/s400/SDC13158.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097160104286722&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKRZsMGiH-Ves4qn-edm1K126zZzi4URVolS8RfrSdMkORJHhgzubhSNNeruaJNYWacRiKdhGE-nSP75QDuSryEVN7msSGy201pQJjMmyvVZlcHlPeq0h7yAJm5U6VyjrCCEOgHbn0wEE/s1600/SDC13157.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKRZsMGiH-Ves4qn-edm1K126zZzi4URVolS8RfrSdMkORJHhgzubhSNNeruaJNYWacRiKdhGE-nSP75QDuSryEVN7msSGy201pQJjMmyvVZlcHlPeq0h7yAJm5U6VyjrCCEOgHbn0wEE/s400/SDC13157.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5602097156526893298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/2310867047763401566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2011/05/heo-con-i-choi-cu-mi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/2310867047763401566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/2310867047763401566'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2011/05/heo-con-i-choi-cu-mi.html' title='Heo con đi chơi Củ Mì'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaiI_48QijvRkc42Z4pIimjiW3dQs_s3AHCsaGJEoJzGGc_xLPEXp6R2d7k9OfKt75YAzbOG35gn9FAzsKa8L4b1wQY8m8y8xNFWaMXJPVAFVi5zRG_mxNLLs0xwuws25-k4CahD8TqN0/s72-c/SDC13206.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-6727510037301839684</id><published>2011-04-09T10:40:00.003+07:00</published><updated>2011-04-26T09:32:38.520+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><title type='text'>Phần mềm luyện thi lý thuyết giấy phép lái xe hạng A1, A2</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_vISUfKek_x52hg2DOauKGjSb6j5ea-_XgNiWMvJxZPJ1bwjSDtwMN1R_H-wVCznocIbF8MSXk7m4x5n7JkhFbOmahpCqlO8o68bW5m1RcEHlcgVAvD3zOrip9TRFZrulIiSGe8Dv-WtA/s1600/gplx.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_vISUfKek_x52hg2DOauKGjSb6j5ea-_XgNiWMvJxZPJ1bwjSDtwMN1R_H-wVCznocIbF8MSXk7m4x5n7JkhFbOmahpCqlO8o68bW5m1RcEHlcgVAvD3zOrip9TRFZrulIiSGe8Dv-WtA/s400/gplx.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5593423322570130018&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Để  giúp các bạn thi tốt phần thi lý thuyết sát hạch lái xe và tập làm quen  với chương trình thi trên máy vi tính, mình đã xây dựng phần mềm TestGPLX giúp  các bạn thi tốt hơn.&lt;br /&gt;Chương trình gồm 120 câu hỏi mới nhất dành cho hạng A1 và A2. Các bạn &lt;a href=&quot;http://www.fileden.com/files/2009/5/17/2445593/TestGPLX.zip&quot;&gt;click here&lt;/a&gt; để download chương trình.&lt;br /&gt;Sau khi download chương trình về máy các bạn giải nén và đọc file Readme.txt để xem cách hướng dẫn sử dụng.</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/6727510037301839684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2011/04/phan-mem-luyen-thi-ly-thuyet-giay-phep.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/6727510037301839684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/6727510037301839684'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2011/04/phan-mem-luyen-thi-ly-thuyet-giay-phep.html' title='Phần mềm luyện thi lý thuyết giấy phép lái xe hạng A1, A2'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_vISUfKek_x52hg2DOauKGjSb6j5ea-_XgNiWMvJxZPJ1bwjSDtwMN1R_H-wVCznocIbF8MSXk7m4x5n7JkhFbOmahpCqlO8o68bW5m1RcEHlcgVAvD3zOrip9TRFZrulIiSGe8Dv-WtA/s72-c/gplx.jpg" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-7718067681069216568</id><published>2011-02-24T17:04:00.001+07:00</published><updated>2011-02-24T17:07:32.737+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Copy image to clipboard in java</title><content type='html'>&lt;pre&gt;Here is code example:&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;javadoc_default&quot;&gt;/**&lt;br /&gt;  * Transferable used to communicate with the system clipboard.&lt;br /&gt;  */&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;java_keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;java_keyword&quot;&gt;class&lt;/span&gt; ImageTransferable &lt;span class=&quot;java_keyword&quot;&gt;implements&lt;/span&gt; Transferable, ClipboardOwner&lt;br /&gt; &lt;span class=&quot;java_separator&quot;&gt;{&lt;/span&gt;&lt;br /&gt;   Image image;&lt;br /&gt;   &lt;span class=&quot;java_methodCall&quot;&gt;ImageTransferable&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;(&lt;/span&gt;Image img&lt;span class=&quot;java_separator&quot;&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;{&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;java_keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;.&lt;/span&gt;image &lt;span class=&quot;java_operator&quot;&gt;=&lt;/span&gt; img;&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;java_keyword&quot;&gt;public&lt;/span&gt; DataFlavor&lt;span class=&quot;java_separator&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;java_methodCall&quot;&gt;getTransferDataFlavors&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;{&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;java_keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;java_keyword&quot;&gt;new&lt;/span&gt; DataFlavor&lt;span class=&quot;java_separator&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;{&lt;/span&gt;DataFlavor&lt;span class=&quot;java_separator&quot;&gt;.&lt;/span&gt;imageFlavor&lt;span class=&quot;java_separator&quot;&gt;}&lt;/span&gt;;&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;java_keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;java_keyword&quot;&gt;boolean&lt;/span&gt; &lt;span class=&quot;java_methodCall&quot;&gt;isDataFlavorSupported&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;(&lt;/span&gt;DataFlavor flavor&lt;span class=&quot;java_separator&quot;&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;{&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;java_keyword&quot;&gt;return&lt;/span&gt; DataFlavor&lt;span class=&quot;java_separator&quot;&gt;.&lt;/span&gt;imageFlavor&lt;span class=&quot;java_separator&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;java_methodCall&quot;&gt;equals&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;(&lt;/span&gt;flavor&lt;span class=&quot;java_separator&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;java_keyword&quot;&gt;public&lt;/span&gt; Object &lt;span class=&quot;java_methodCall&quot;&gt;getTransferData&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;(&lt;/span&gt;DataFlavor flavor&lt;span class=&quot;java_separator&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;java_keyword&quot;&gt;throws&lt;/span&gt; UnsupportedFlavorException, IOException&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;{&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;java_keyword&quot;&gt;return&lt;/span&gt; image;&lt;br /&gt;   &lt;span class=&quot;java_separator&quot;&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;java_lineComment&quot;&gt;//empty ClipBoardOwner implementation&lt;br /&gt;&lt;/span&gt;    &lt;span class=&quot;java_keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;java_keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;java_methodCall&quot;&gt;lostOwnership&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;(&lt;/span&gt;Clipboard clipboard, Transferable contents&lt;span class=&quot;java_separator&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;java_separator&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;java_separator&quot;&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;java_separator&quot;&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;//=====================================================&lt;br /&gt;public void copyImageToClipboard(BufferedImage image){&lt;br /&gt; ImageTransferable it = new ImageTransferable(image);&lt;br /&gt; Clipboard clip=Toolkit.getDefaultToolkit().getSystemClipboard();&lt;br /&gt; clip.setContents(it,it);&lt;br /&gt;}&lt;span class=&quot;java_separator&quot;&gt;&lt;/span&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/7718067681069216568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2011/02/copy-image-to-clipboard-in-java.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7718067681069216568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7718067681069216568'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2011/02/copy-image-to-clipboard-in-java.html' title='Copy image to clipboard in java'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-7366701004569095236</id><published>2011-02-21T20:28:00.003+07:00</published><updated>2011-02-21T20:33:27.789+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Hình Xuân 2011</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:180%;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 255);font-family:arial;&quot; &gt;Mừng xuân Tân Mão 2011&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilYLGKsvCUOEd1vWis7YmQ0OVLcaVXivMs__Jc5Vw8sNkgDmrNwOk72rP9RootcTSkQkaig0Bpzd2uWS_9vTE_LuhLw5JX5dGgAYSg1rdBV98KY7FMd2TW76jtUgMg5lZhaw_R5g0l2xY/s1600/SDC13111.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilYLGKsvCUOEd1vWis7YmQ0OVLcaVXivMs__Jc5Vw8sNkgDmrNwOk72rP9RootcTSkQkaig0Bpzd2uWS_9vTE_LuhLw5JX5dGgAYSg1rdBV98KY7FMd2TW76jtUgMg5lZhaw_R5g0l2xY/s400/SDC13111.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576135285721864802&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh-_wv7Kh5rrnB6JtImt4RpKjw7hw4Zx8aWnkqQo8-4GmH3G04_E2lhAQnCCpjynK3iimjGhdsrj9pXp3jRahFs9VOSG9vOgOrlqULl-U3FaNiVp0TWvCbplrU7Lw-8aw_BhAVF8w1vEw/s1600/SDC13107.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh-_wv7Kh5rrnB6JtImt4RpKjw7hw4Zx8aWnkqQo8-4GmH3G04_E2lhAQnCCpjynK3iimjGhdsrj9pXp3jRahFs9VOSG9vOgOrlqULl-U3FaNiVp0TWvCbplrU7Lw-8aw_BhAVF8w1vEw/s400/SDC13107.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134799515748546&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh1rCAPvp7RyGI50uXPy9pNO7oHXs4_ubCJoBbVk58Blva3sKmXLJib2xQWw_ajBveuTdRKmYycHy6xZNGSuAhpHyWfunlj5heNERM9jnT1ltjxEjA1kpSm6pG3qdh_d4v2XkySAiV1iA/s1600/SDC13106.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh1rCAPvp7RyGI50uXPy9pNO7oHXs4_ubCJoBbVk58Blva3sKmXLJib2xQWw_ajBveuTdRKmYycHy6xZNGSuAhpHyWfunlj5heNERM9jnT1ltjxEjA1kpSm6pG3qdh_d4v2XkySAiV1iA/s400/SDC13106.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134795337614274&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPlGLTbupPSHPSRZCcawmKhR75eQsBzLxyr5msyzj3V2G1KxO1NKvnV1FqU_rXDLQObCwzWIsZ_KxVUb0AXFBPoN71a_kfpy6Kow8aEoo5J5I5K7SfAPIFuVy6CkIuKqsflqaBMX3wDgQ/s1600/SDC13103.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPlGLTbupPSHPSRZCcawmKhR75eQsBzLxyr5msyzj3V2G1KxO1NKvnV1FqU_rXDLQObCwzWIsZ_KxVUb0AXFBPoN71a_kfpy6Kow8aEoo5J5I5K7SfAPIFuVy6CkIuKqsflqaBMX3wDgQ/s400/SDC13103.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134790433509506&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuYUks2NUibiIUJJkyx_cQLEieVOV-D9Xb_goWz4-eGtDhXY6nqwEbFh0BsYwCMLrm3qhbG41NuoytgvwZ8X087BviK7wFjnh8n2m9bgva4xUHObYNtc51m2i2psZOqq1zW4wQ7rmfp2g/s1600/SDC13098.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuYUks2NUibiIUJJkyx_cQLEieVOV-D9Xb_goWz4-eGtDhXY6nqwEbFh0BsYwCMLrm3qhbG41NuoytgvwZ8X087BviK7wFjnh8n2m9bgva4xUHObYNtc51m2i2psZOqq1zW4wQ7rmfp2g/s400/SDC13098.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134785026928914&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFZ-8vkVIRGlf6tQADERRi3E6H5vTmczNH_fLYCD05N9q2zY6mpHyn0j4QOqOsPgEBCQGcvc8_GJn9VLhX0fgkhkVWxjSkgMg9cQrifQl6MvPIT0nk-0S7Ydv-l4YPSTa96gACWWQVkZE/s1600/SDC13091.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFZ-8vkVIRGlf6tQADERRi3E6H5vTmczNH_fLYCD05N9q2zY6mpHyn0j4QOqOsPgEBCQGcvc8_GJn9VLhX0fgkhkVWxjSkgMg9cQrifQl6MvPIT0nk-0S7Ydv-l4YPSTa96gACWWQVkZE/s400/SDC13091.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134564100743234&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0iqx9my4PpgBqYCAMtaA6TBB5dparQLeLsOCAGGck7V_JFEs-NNwNZfycLkC5DAQsz5vjdtkXDFfVG-nnGRilMaUyPxLN9RUD0wF5foruLOi6qxzGKjyLhZ7pnat0A94px90qaHx5az0/s1600/SDC13087.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0iqx9my4PpgBqYCAMtaA6TBB5dparQLeLsOCAGGck7V_JFEs-NNwNZfycLkC5DAQsz5vjdtkXDFfVG-nnGRilMaUyPxLN9RUD0wF5foruLOi6qxzGKjyLhZ7pnat0A94px90qaHx5az0/s400/SDC13087.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134560793372434&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZbJi5MKU4lL-w3akW5Qjq_OIeOvMmlM1cbOrn04A07cuEXF-rNNPuC1E4AM1495XWniHpP6s0VlnwQQ-jQBy0qlyuWXwpzdVwy-BxsZddt5BCpPtCZqx3hHC6JrKexcB2T6pbJdFENyY/s1600/SDC13016.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZbJi5MKU4lL-w3akW5Qjq_OIeOvMmlM1cbOrn04A07cuEXF-rNNPuC1E4AM1495XWniHpP6s0VlnwQQ-jQBy0qlyuWXwpzdVwy-BxsZddt5BCpPtCZqx3hHC6JrKexcB2T6pbJdFENyY/s400/SDC13016.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134559915969618&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPa6ZEIc_-oMq58bam_Bu0YHskJmrLodbmTixZxUuD288EyJf1DzuCquTWSeWRuptKTYkWPXGHSg4PTqJt7mzvM6Jlvdv_69f_pgy5TthAOeyRC7yvMoigGlqniIWMXZggKNyUZH2Y0HY/s1600/SDC13007.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPa6ZEIc_-oMq58bam_Bu0YHskJmrLodbmTixZxUuD288EyJf1DzuCquTWSeWRuptKTYkWPXGHSg4PTqJt7mzvM6Jlvdv_69f_pgy5TthAOeyRC7yvMoigGlqniIWMXZggKNyUZH2Y0HY/s400/SDC13007.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134556707823346&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmA0SJeL3rmgFBalxqJVny8HRqwZ8vg-IZ5qLBJUqytdu4awl2JDBVmlG0saAN194EGVnf3lIAi-uK4-HA200aXghD_gYN3TEiaTL1qAj331rcBkYblA0sVMKzujPRsHFIH-o9xn0TlBc/s1600/SDC13015.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmA0SJeL3rmgFBalxqJVny8HRqwZ8vg-IZ5qLBJUqytdu4awl2JDBVmlG0saAN194EGVnf3lIAi-uK4-HA200aXghD_gYN3TEiaTL1qAj331rcBkYblA0sVMKzujPRsHFIH-o9xn0TlBc/s400/SDC13015.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576134548686838786&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/7366701004569095236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2011/02/hinh-xuan-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7366701004569095236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7366701004569095236'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2011/02/hinh-xuan-2011.html' title='Hình Xuân 2011'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilYLGKsvCUOEd1vWis7YmQ0OVLcaVXivMs__Jc5Vw8sNkgDmrNwOk72rP9RootcTSkQkaig0Bpzd2uWS_9vTE_LuhLw5JX5dGgAYSg1rdBV98KY7FMd2TW76jtUgMg5lZhaw_R5g0l2xY/s72-c/SDC13111.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-8798481400745686860</id><published>2010-09-24T16:47:00.004+07:00</published><updated>2010-09-24T16:57:02.409+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Nguyễn Đình Lâm 12A4 Weding - 25/07/2010</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8BSQzApuF9_hsxofllXqsZByO59F2isB5emoy5Pj0_B0SCIgH62hnFpfbizBcagEv-a2Wdcmd419srriufjJsVU_2r_b4QuYFB7CnQYpFIqWhT-jCq0nparmjay1rSjDWpldX2MxEVkA/s1600/P1013412.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8BSQzApuF9_hsxofllXqsZByO59F2isB5emoy5Pj0_B0SCIgH62hnFpfbizBcagEv-a2Wdcmd419srriufjJsVU_2r_b4QuYFB7CnQYpFIqWhT-jCq0nparmjay1rSjDWpldX2MxEVkA/s400/P1013412.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520416322847291314&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5tva-PcJFS6Az5ihMP-pki6M0t4J4tI4El9ZXwRJOxPSLbcgAutg1INSnagWp901Pn0XKJZjbEU3EO7TDEywgAf6WgM1R_UdJineNgMJJsECRsMjsFZjmJkKpN7o7c1gNqTnrmUHKc1Y/s1600/P1013411.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5tva-PcJFS6Az5ihMP-pki6M0t4J4tI4El9ZXwRJOxPSLbcgAutg1INSnagWp901Pn0XKJZjbEU3EO7TDEywgAf6WgM1R_UdJineNgMJJsECRsMjsFZjmJkKpN7o7c1gNqTnrmUHKc1Y/s400/P1013411.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520416314498849618&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2rSjQNnyjih6bwom0Lwizn6l16IXmM3c39w4LYTazyIrG7Xi34DL6VVsOMN0sv8jG1XmkvdiFUs2-CobLi5KibXMfZfIq_D4QpNzaPGqnzb1NUnuJWsTAEOLlcUr84FdCzkj1yKMM8po/s1600/P1013384.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2rSjQNnyjih6bwom0Lwizn6l16IXmM3c39w4LYTazyIrG7Xi34DL6VVsOMN0sv8jG1XmkvdiFUs2-CobLi5KibXMfZfIq_D4QpNzaPGqnzb1NUnuJWsTAEOLlcUr84FdCzkj1yKMM8po/s400/P1013384.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520416305905570754&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqPHi5ao7WcUrVwF_CtIfaN5NOAZoX37Wwl4mqQsM22yNJ3riNAOjDDb7AoZqm6WlRGQ622dWYZBhXOEqwaV9zAKlCSHKUTLOSLZglLHTiZUZOh7aFzpXiF_gVceH_UVJPaAHq2t0-CFw/s1600/P1013357.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqPHi5ao7WcUrVwF_CtIfaN5NOAZoX37Wwl4mqQsM22yNJ3riNAOjDDb7AoZqm6WlRGQ622dWYZBhXOEqwaV9zAKlCSHKUTLOSLZglLHTiZUZOh7aFzpXiF_gVceH_UVJPaAHq2t0-CFw/s400/P1013357.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520416297251181570&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgREwdUat47Szz6jSmqDzYJYYQADzYsCLtIjyqFDy21U0cD09y35ZmFgTo46p9T65o5HoIhc1UM4_eCbkP_gyzx02OwjwiGDgrFyDDbPPIiDbE5eUFC14Rh2CBSqEvBWU8u_CpTTun4VU8/s1600/P1013341.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgREwdUat47Szz6jSmqDzYJYYQADzYsCLtIjyqFDy21U0cD09y35ZmFgTo46p9T65o5HoIhc1UM4_eCbkP_gyzx02OwjwiGDgrFyDDbPPIiDbE5eUFC14Rh2CBSqEvBWU8u_CpTTun4VU8/s400/P1013341.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520415462975188434&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyjp0FBPFCatd8rgJExpAyLrQsRQIMAOyvskV_XX9o5UMqq1GEjjmlNI47fWbKzbFruYyVUdc39_LSWlsMp-wDUoqdyRtZ5oJ1rNCN9HLvi36fsWaSyFhaMvp2Oh6eBCdFHMgWNyhpY_k/s1600/P1013340.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyjp0FBPFCatd8rgJExpAyLrQsRQIMAOyvskV_XX9o5UMqq1GEjjmlNI47fWbKzbFruYyVUdc39_LSWlsMp-wDUoqdyRtZ5oJ1rNCN9HLvi36fsWaSyFhaMvp2Oh6eBCdFHMgWNyhpY_k/s400/P1013340.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520415459684804770&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhejC3DbUFShXuDezuORF0Bgn4ZyTYx_zRDMbseIibAEvG_wb_vZiMMqujVwAY0elf2QEKmC4SJb57erPCjGsBhOw-kAW9ppYWBiVLGAO0jruE2F5lAJ6vpC5fdrM4xTTRSzy4y56q8Y/s1600/P1013335.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAhejC3DbUFShXuDezuORF0Bgn4ZyTYx_zRDMbseIibAEvG_wb_vZiMMqujVwAY0elf2QEKmC4SJb57erPCjGsBhOw-kAW9ppYWBiVLGAO0jruE2F5lAJ6vpC5fdrM4xTTRSzy4y56q8Y/s400/P1013335.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520415454050419666&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8BQTANYi_kxwoi-kCpeqWOjfjHLxPeFuWYazWd0FUYi9eTdxQ1Ax13KrF_I0DbJh9wHBbzgB8tmqTVwvWl1DsgMrNm1blYa8iNZnpU3rczTCAq_qQq_W7VbTI2w_Bi5JjailCXSAbsF0/s1600/P1013334.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8BQTANYi_kxwoi-kCpeqWOjfjHLxPeFuWYazWd0FUYi9eTdxQ1Ax13KrF_I0DbJh9wHBbzgB8tmqTVwvWl1DsgMrNm1blYa8iNZnpU3rczTCAq_qQq_W7VbTI2w_Bi5JjailCXSAbsF0/s400/P1013334.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520415451427402866&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEismZsZSRiT2PRa5MGXGiUmARcrFpiyEhfp-0i5GgNkjc5rT7RXoxPABU9HbvnoGkyzSD5wuYG-YfD1hWhwC3zvzny2hlz6ZyZtsNw00pRcjgXf-nYjWYqfHyca6RHEbpkSWK1U8dXSv_A/s1600/P1013304.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 282px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEismZsZSRiT2PRa5MGXGiUmARcrFpiyEhfp-0i5GgNkjc5rT7RXoxPABU9HbvnoGkyzSD5wuYG-YfD1hWhwC3zvzny2hlz6ZyZtsNw00pRcjgXf-nYjWYqfHyca6RHEbpkSWK1U8dXSv_A/s400/P1013304.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520415443791094578&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgskmr53_kh3dcs3Xgi5EiWHWTMgEj-cpIpvMFwci7K5Vkbckm_ux18hATq67HMQqVchcw9YhigI3iIt8_9ZSyLmoz7WrKKK2gPI4yk0RQJ4mNlgpClxe6VLHRogAH2XQ8ldnz6OzN7k0/s1600/P1013303.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 282px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgskmr53_kh3dcs3Xgi5EiWHWTMgEj-cpIpvMFwci7K5Vkbckm_ux18hATq67HMQqVchcw9YhigI3iIt8_9ZSyLmoz7WrKKK2gPI4yk0RQJ4mNlgpClxe6VLHRogAH2XQ8ldnz6OzN7k0/s400/P1013303.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5520414798124929954&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;display: block;&quot; id=&quot;formatbar_Buttons&quot;&gt;&lt;span class=&quot; on&quot; style=&quot;display: block;&quot; id=&quot;formatbar_Add_Video&quot; title=&quot;Add Video&quot;&gt;&lt;img src=&quot;http://www.blogger.com/img/blank.gif&quot; alt=&quot;Add Video&quot; class=&quot;gl_video&quot; border=&quot;0&quot; /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/8798481400745686860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/09/nguyen-inh-lam-12a4-weding-25072010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/8798481400745686860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/8798481400745686860'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/09/nguyen-inh-lam-12a4-weding-25072010.html' title='Nguyễn Đình Lâm 12A4 Weding - 25/07/2010'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8BSQzApuF9_hsxofllXqsZByO59F2isB5emoy5Pj0_B0SCIgH62hnFpfbizBcagEv-a2Wdcmd419srriufjJsVU_2r_b4QuYFB7CnQYpFIqWhT-jCq0nparmjay1rSjDWpldX2MxEVkA/s72-c/P1013412.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-7359781434912141534</id><published>2010-08-21T09:51:00.001+07:00</published><updated>2010-08-21T09:53:32.067+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Get keyboard hook and mouse hook in C#</title><content type='html'>Code demo:&lt;br /&gt;using System;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.Runtime.InteropServices;&lt;br /&gt;&lt;br /&gt;namespace TestHook&lt;br /&gt;{&lt;br /&gt;    class KeyboardAndMouseHook&lt;br /&gt;    {&lt;br /&gt;        private const int WH_KEYBOARD_LL = 13;&lt;br /&gt;        private const int WM_KEYDOWN = 0x0100;&lt;br /&gt;        private static LowLevelMouseProc _procMouse = HookCallbackMouse;&lt;br /&gt;        private static LowLevelKeyboardProc _procKey = HookCallbackKey;&lt;br /&gt;        private static IntPtr _hookIDMouse = IntPtr.Zero;&lt;br /&gt;        private static IntPtr _hookIDKey = IntPtr.Zero;&lt;br /&gt;&lt;br /&gt;        public static void Main()&lt;br /&gt;        {&lt;br /&gt;            _hookIDMouse = SetHook(_procMouse);&lt;br /&gt;            _hookIDKey = SetHook(_procKey);&lt;br /&gt;&lt;br /&gt;            Application.Run();&lt;br /&gt;&lt;br /&gt;            UnhookWindowsHookEx(_hookIDMouse);&lt;br /&gt;            UnhookWindowsHookEx(_hookIDKey);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        //===============================================================================================================&lt;br /&gt;        //Import library&lt;br /&gt;&lt;br /&gt;        [DllImport(&quot;user32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]&lt;br /&gt;        [return: MarshalAs(UnmanagedType.Bool)]&lt;br /&gt;        private static extern bool UnhookWindowsHookEx(IntPtr hhk);&lt;br /&gt;&lt;br /&gt;        [DllImport(&quot;user32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]&lt;br /&gt;        private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,&lt;br /&gt;            IntPtr wParam, IntPtr lParam);&lt;br /&gt;&lt;br /&gt;        [DllImport(&quot;kernel32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]&lt;br /&gt;        private static extern IntPtr GetModuleHandle(string lpModuleName);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        //taluan&lt;br /&gt;        //================================================================================================================&lt;br /&gt;        //keyboard hook&lt;br /&gt;&lt;br /&gt;        private static IntPtr SetHook(LowLevelKeyboardProc proc)&lt;br /&gt;        {&lt;br /&gt;            using (Process curProcess = Process.GetCurrentProcess())&lt;br /&gt;            using (ProcessModule curModule = curProcess.MainModule)&lt;br /&gt;            {&lt;br /&gt;                return SetWindowsHookEx(WH_KEYBOARD_LL, proc,&lt;br /&gt;                    GetModuleHandle(curModule.ModuleName), 0);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private delegate IntPtr LowLevelKeyboardProc(&lt;br /&gt;            int nCode, IntPtr wParam, IntPtr lParam);&lt;br /&gt;&lt;br /&gt;        private static IntPtr HookCallbackKey(&lt;br /&gt;            int nCode, IntPtr wParam, IntPtr lParam)&lt;br /&gt;        {&lt;br /&gt;            if (nCode &gt;= 0 &amp;amp;&amp;amp; wParam == (IntPtr)WM_KEYDOWN)&lt;br /&gt;            {&lt;br /&gt;                int vkCode = Marshal.ReadInt32(lParam);&lt;br /&gt;                Console.WriteLine(&quot;key: &quot; + (Keys)vkCode);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            return CallNextHookEx(_hookIDKey, nCode, wParam, lParam);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        [DllImport(&quot;user32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]&lt;br /&gt;        private static extern IntPtr SetWindowsHookEx(int idHook,&lt;br /&gt;            LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;        //taluan&lt;br /&gt;        //================================================================================================================&lt;br /&gt;        //Mouse hook&lt;br /&gt;&lt;br /&gt;        private static IntPtr SetHook(LowLevelMouseProc proc)&lt;br /&gt;        {&lt;br /&gt;            using (Process curProcess = Process.GetCurrentProcess())&lt;br /&gt;            using (ProcessModule curModule = curProcess.MainModule)&lt;br /&gt;            {&lt;br /&gt;                return SetWindowsHookEx(WH_MOUSE_LL, proc,&lt;br /&gt;                    GetModuleHandle(curModule.ModuleName), 0);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private delegate IntPtr LowLevelMouseProc(int nCode, IntPtr wParam, IntPtr lParam);&lt;br /&gt;&lt;br /&gt;        private static IntPtr HookCallbackMouse(int nCode, IntPtr wParam, IntPtr lParam)&lt;br /&gt;        {&lt;br /&gt;            if (nCode &gt;= 0 &amp;amp;&amp;amp; MouseMessages.WM_LBUTTONDOWN == (MouseMessages)wParam)&lt;br /&gt;            {&lt;br /&gt;                MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));&lt;br /&gt;                Console.WriteLine(&quot;mouse: &quot; + hookStruct.pt.x + &quot;, &quot; + hookStruct.pt.y);&lt;br /&gt;            }&lt;br /&gt;            return CallNextHookEx(_hookIDMouse, nCode, wParam, lParam);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        private const int WH_MOUSE_LL = 14;&lt;br /&gt;&lt;br /&gt;        private enum MouseMessages&lt;br /&gt;        {&lt;br /&gt;            WM_LBUTTONDOWN = 0x0201,&lt;br /&gt;            WM_LBUTTONUP = 0x0202,&lt;br /&gt;            WM_MOUSEMOVE = 0x0200,&lt;br /&gt;            WM_MOUSEWHEEL = 0x020A,&lt;br /&gt;            WM_RBUTTONDOWN = 0x0204,&lt;br /&gt;            WM_RBUTTONUP = 0x0205&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        [StructLayout(LayoutKind.Sequential)]&lt;br /&gt;        private struct POINT&lt;br /&gt;        {&lt;br /&gt;            public int x;&lt;br /&gt;            public int y;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        [StructLayout(LayoutKind.Sequential)]&lt;br /&gt;        private struct MSLLHOOKSTRUCT&lt;br /&gt;        {&lt;br /&gt;            public POINT pt;&lt;br /&gt;            public uint mouseData;&lt;br /&gt;            public uint flags;&lt;br /&gt;            public uint time;&lt;br /&gt;            public IntPtr dwExtraInfo;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        [DllImport(&quot;user32.dll&quot;, CharSet = CharSet.Auto, SetLastError = true)]&lt;br /&gt;        private static extern IntPtr SetWindowsHookEx(int idHook,&lt;br /&gt;            LowLevelMouseProc lpfn, IntPtr hMod, uint dwThreadId);&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/7359781434912141534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/08/get-keyboard-hook-and-mouse-hook-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7359781434912141534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7359781434912141534'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/08/get-keyboard-hook-and-mouse-hook-in-c.html' title='Get keyboard hook and mouse hook in C#'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-8486540906991894017</id><published>2010-08-03T08:03:00.001+07:00</published><updated>2010-08-03T08:06:12.342+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>Laptop phát sóng wifi bằng phần mềm miễn phí</title><content type='html'>(24h) - Nếu bạn chỉ có một kết nối internet qua cổng Ethernet và một  chiếc laptop có card Wiriless thì bạn có thể dễ dàng biến chiếc laptop  thành một wifi hotspot để chia sẻ kết nối internet với các thiết bị có  hỗ trợ wifi như điện thoại di động, laptop, máy nghe nhạc iPod…&lt;br /&gt;&lt;img src=&quot;http://img24.24h.com.vn/upload/3-2010/images/2010-08-02/1280742909_vi-tinh-Connectify-3-tde.jpg&quot; id=&quot;thumb-new-noidung&quot; alt=&quot;Laptop phát sóng wifi bằng phần mềm miễn phí&quot; width=&quot;200&quot; height=&quot;200&quot; /&gt;            &lt;div class=&quot;chu-thich-anh&quot;&gt;Laptop phát sóng wifi bằng phần mềm miễn phí&lt;br /&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Tất nhiên, để làm được điều này, bạn cần  phải sử dụng tiện ích Connectify 2.0. Đây là một tiện ích hoàn toàn  miễn phí, nó sẽ giúp bạn dễ dàng biến chiếc laptop thành một wifi  hotspot chỉ với vài cú bấm chuột, bạn có thể tải Connectify về từ địa  chỉ:&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.connectify.me/download/index.html&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;http://www.connectify.me/download/index.html &lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;news-image&quot; onclick=&quot;return openNewImage(this, &#39;&#39;)&quot; src=&quot;http://img24.24h.com.vn/upload/3-2010/images/2010-08-02/1280742497-vi-tinh-Connectify-1.jpg&quot; alt=&quot;Laptop phát sóng wifi bằng phần mềm miễn phí, Vi tính - Internet, laptop, song wi-fi, laptop wifi, may tinh xach tay, mang internet&quot; /&gt;&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Sau khi tải về và cài đặt thành công,  Connectify sẽ tự khởi động và tạo ra một biểu tượng trong system tray,  bạn chỉ cần bấm chuột phải vào biểu tượng này rồi chọn Show Connectify  để làm xuất hiện giao diện làm việc của Connectify. Từ giao diện chính  của chương trình, bạn hãy tiến hành tạo ra một wifi hotspot bằng cách  nhập vào các thông tin sau :&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Wifi Name : đặt tên cho wifi hotspot, tên này sẽ xuất hiện khi các thiết bị kết nối dò tìm ra sóng wifi của hotspot.&lt;/p&gt; &lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;news-image&quot; onclick=&quot;return openNewImage(this, &#39;&#39;)&quot; src=&quot;http://img24.24h.com.vn/upload/3-2010/images/2010-08-02/1280742497-vi-tinh-Connectify-2.jpg&quot; alt=&quot;Laptop phát sóng wifi bằng phần mềm miễn phí, Vi tính - Internet, laptop, song wi-fi, laptop wifi, may tinh xach tay, mang internet&quot; /&gt;&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Password : đặt password để bảo vệ wifi  hotspot và hạn chế các truy cập không mong muốn từ các thiết bị lạ.  Password tối thiểu là 8 ký tự.&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Internet : chọn nguồn internet mà laptop làm wifi hotspot đang sử dụng, trong trường hợp này là Local Area Connection.&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Sau khi đã nhập xong các thông tin, bạn  nhấn chuột vào nút Start Hotspot để bắt đầu biến chiếc laptop thành một  wifi hotspot. Để ngưng sử dụng Connectify, bạn chỉ cần nhấn chuột vào  nút Stop Hotspot để tắt wifi hotspot.&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/8486540906991894017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/08/laptop-phat-song-wifi-bang-phan-mem.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/8486540906991894017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/8486540906991894017'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/08/laptop-phat-song-wifi-bang-phan-mem.html' title='Laptop phát sóng wifi bằng phần mềm miễn phí'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-4241408149920882507</id><published>2010-07-28T09:54:00.000+07:00</published><updated>2010-07-28T09:55:34.747+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Music"/><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><title type='text'>Hơn 3.000 bài hát Anh, Việt để trổ tài karaoke</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;strong&gt;Karafun từ lâu đã được xem là một dàn karaoke  khá hiện đại trên máy tính. Với phiên bản đặc biệt này, bạn sẽ có đến  hơn 3.000 bài hát Anh, Việt được tích hợp sẵn, đủ để bạn trải nghiệm  giọng hát của mình một cách thoải mái.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;strong&gt;&gt; &lt;a rel=&quot;nofollow&quot;&gt;KaraList: Tra cứu mã số 22.000 bài Karaoke&lt;/a&gt;&lt;br /&gt;&gt; &lt;a rel=&quot;nofollow&quot;&gt;VietNam Karaoke 2009: ’Cần bài nào, có bài đó’&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;strong&gt;Tương thích:&lt;/strong&gt; Windows XP/Vista/7.&lt;br /&gt;&lt;strong&gt;Dung lượng:&lt;/strong&gt; 45,76MB.&lt;br /&gt;&lt;strong&gt;Tải tại:&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://webtinhoc.vn/&quot;&gt;http://webtinhoc.vn&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Sau khi tải về và cài đặt, bạn khởi động chương trình.  Tại khung Karaoke Library, bạn nhấn nút Add và tìm đến các tập có định  dạng .KAR. Riêng trong phiên bản này, bạn  tìm đến các file trong thư  mục: 2000 Karaoke songs, 450 Songs, Songs để mở các bài hát tiếng Anh,  và 232 Karaoke songs Viet Nam để mở các bài hát tiếng Việt.&lt;/span&gt; &lt;/p&gt; &lt;table class=&quot;image center&quot; width=&quot;400&quot; align=&quot;center&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://media.tinmoi.vn/2010/07/28/images2005038_karafun1.jpg&quot;&gt;&lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005038_karafun1.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;280&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;image_desc&quot; align=&quot;middle&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Giao diện KaraFun&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Ngoài việc hát, bạn cũng có thể “thâu” lại các bài hát  này để phát cho nhiều người cùng nghe. Sau khi thêm file thành công,  bạn sẽ thấy danh sách các bài hát xuất hiện bên dưới.&lt;/span&gt; &lt;/p&gt; &lt;table class=&quot;image center&quot; width=&quot;400&quot; align=&quot;center&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://media.tinmoi.vn/2010/07/28/images2005039_karafun2.jpg&quot;&gt;&lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005039_karafun2.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;281&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;image_desc&quot; align=&quot;middle&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Danh sách các bài hát hiển thị trong cửa sổ Karaoke Library&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;strong&gt;1. Cài đặt jack cắm Microphone:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Bạn cần kiểm tra lại jack cắm microphone (thường có  màu hồng) kết nối với máy tính, bằng cách mở Volume Control dưới khay  đồng hồ hệ thống. Sau đó vào mục Options &gt; Properties, chọn thiết bị  đầu vào là Input, đánh dấu kiểm vào mục Recording và chọn thiết bị là  Microphone (với XP) hoặc vào menu Start &gt; Control Panel &gt; Sound,  chuyển qua thẻ Recording, chọn thiết bị Microphone và nhấn nút Set as  default device bên dưới. Khi thấy bên cạnh Microphone xuất hiện biểu  tượng &lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005043_1.jpg&quot; alt=&quot;&quot; /&gt; là đã kết nối thành công (bạn có thể tham khảo cách thiết lập Microphone trong Windows 7 tại địa chỉ: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://tinyurl.com/ygyod3q&quot;&gt;http://tinyurl.com/ygyod3q&lt;/a&gt;).  Để kiểm tra lại việc cấu hình mic, bạn chỉ việc nói vào microphone, nếu  thấy cột màu xanh bên phải di chuyển là bạn đã có thể bắt đầu hát  karaoke với Karafun (Lưu ý: để có thể thu âm bài hát, bạn hãy sử dụng  tính năng Stereo Mix thay cho Microphone với cách thiết lập thiết bị  tương tự).&lt;/span&gt; &lt;/p&gt; &lt;table class=&quot;image center&quot; width=&quot;359&quot; align=&quot;center&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://media.tinmoi.vn/2010/07/28/images2005040_karafun3.jpg&quot;&gt;&lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005040_karafun3.jpg&quot; alt=&quot;&quot; width=&quot;359&quot; height=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;image_desc&quot; align=&quot;middle&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Cài đặt cho Microphone&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Để bắt đầu hát, bạn nhấn biểu tượng &lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005048_2.jpg&quot; alt=&quot;&quot; /&gt; phía trên. Nếu muốn ghi âm lại ca khúc, bạn nhấn tiếp biểu tượng &lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005051_3.jpg&quot; alt=&quot;&quot; /&gt; và cửa sổ hát Karaoke xuất hiện để bạn… “trổ tài”. Trường hợp cần điều chỉnh lại âm thanh cho microphone, bạn nhấn nút &lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005054_4.jpg&quot; alt=&quot;&quot; /&gt; và tùy chỉnh tại cột có hình chiếc micro.&lt;/span&gt; &lt;/p&gt; &lt;table class=&quot;image center&quot; width=&quot;400&quot; align=&quot;center&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005037_karafun.jpg&quot; alt=&quot;KaraFun Special Edition&quot; width=&quot;400&quot; height=&quot;312&quot; /&gt;&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;image_desc&quot; align=&quot;middle&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Màn hình hát karaoke&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;strong&gt;2. Thiết lập font hiển thị cho Karafun:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Để chương trình hiển thị tốt lời Việt, bạn phải sử  dụng font VI ThienLy được đính kèm trong file tải về và chép vào thư mục  C:\Windows\Fonts trên hệ thống. Sau đó, bạn nhấn Ctrl+P và chuyển qua  thẻ Training mode, đánh dấu chọn vào dòng Start the karaoke playback in  training mode và chọn font VI Thien Ly trong trình đơn Font selection.  Xong, nhấn OK để xác nhận.&lt;/span&gt; &lt;/p&gt; &lt;table class=&quot;image center&quot; width=&quot;400&quot; align=&quot;center&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://media.tinmoi.vn/2010/07/28/images2005041_karafun4.jpg&quot;&gt;&lt;img src=&quot;http://media.tinmoi.vn/2010/07/28/images2005041_karafun4.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;354&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td class=&quot;image_desc&quot; align=&quot;middle&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Thiết lập font hiển thị cho KaraFun&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Nếu bạn muốn đem các bài karaoke trong đĩa VCD ra để  hát ngay với Karafun bạn chỉ cần copy các file .DAT trong đĩa và đổi  phần DAT thành MPEG và sau đó “add” trực tiếp vào chương trình là có thể  hát được.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;em&gt;(Theo e-CHÍP)&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/4241408149920882507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/07/hon-3000-bai-hat-anh-viet-e-tro-tai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4241408149920882507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4241408149920882507'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/07/hon-3000-bai-hat-anh-viet-e-tro-tai.html' title='Hơn 3.000 bài hát Anh, Việt để trổ tài karaoke'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-8545709280343789090</id><published>2010-05-31T15:27:00.003+07:00</published><updated>2010-05-31T15:29:14.447+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>Loại bỏ thành phần khởi động boot menu trong Windows 7</title><content type='html'>&lt;div id=&quot;divContent&quot;&gt;                                                                                          &lt;div align=&quot;justify&quot;&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color:#333333;&quot;&gt;&lt;em&gt;Quản Trị Mạng&lt;/em&gt; -  Nếu bạn sử dụng hệ thống dual boot - đa hệ điều hành, và khi gỡ bỏ 1 hệ  điều hành nào đó thì thành phần còn lại vẫn hiển thị trên menu boot của  Windows 7. Bài viết sau sẽ hướng dẫn các bạn cách loại bỏ bớt những  thành phần đó và tăng tốc độ khởi động&lt;/span&gt;&lt;/strong&gt;.&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__02.jpg&quot; align=&quot;absMiddle&quot; /&gt;&lt;/p&gt; &lt;p&gt;Để chỉnh sửa menu khởi động, chúng ta cần sử dụng 1 chương trình gọi  là &lt;strong&gt;bcdedit&lt;/strong&gt; trong Windows 7. Bên cạnh đó, cũng có 1 số  ứng dụng third-party có giao diện đồ họa dễ nhìn để làm việc này, nhưng  nên sử dụng chương trình có sẵn là tốt và tiện lợi nhất.&lt;/p&gt; &lt;p&gt;Trước tiên, mở cmd bằng quyền Administrator:&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__03.jpg&quot; align=&quot;absMiddle&quot; /&gt;&lt;/p&gt; &lt;p&gt;Tại cửa sổ dòng lệnh Dos, gõ lệnh &lt;strong&gt;bcdedit&lt;/strong&gt; và Enter,  danh sách boot menu sẽ xuất hiện:&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__04.jpg&quot; width=&quot;540&quot; align=&quot;absMiddle&quot; height=&quot;501&quot; /&gt;&lt;/p&gt; &lt;p&gt;Tìm đúng mục hoặc thành phần mà bạn cần xóa bỏ, tại bài viết này là &lt;em&gt;Ubuntu&lt;/em&gt;  cuối danh sách. Chúng ta cần để ý đến chuỗi ký tự lộn xộn được gán với  tên identifier, cách thủ công là gõ ra notepad hoặc copy và paste. Kích  chuột phải vào bất cứ chỗ nào trên cửa sổ và chọn &lt;strong&gt;Mark&lt;/strong&gt;:&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__05.jpg&quot; align=&quot;absMiddle&quot; /&gt;&lt;/p&gt; &lt;p&gt;Sau đó, kích chuột trái vào chuỗi ký tự của mục cần xóa, từ đầu đến  cuối, bao gồm cả 2 dấu đóng mở ngoặc:&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__06.jpg&quot; align=&quot;absMiddle&quot; /&gt;&lt;/p&gt; &lt;p&gt;Nhấn Enter, đoạn ký tự trên sẽ được lưu trữ vào clipboard. Tại dòng  lệnh phía dưới, gõ &lt;strong&gt;bcdedit /delete&lt;/strong&gt; (nhớ để dấu cách ở  phía cuối), kích chuột phải vào bất cứ chỗ nào tại cửa sổ cmd, chọn  paste&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__07.jpg&quot; align=&quot;absMiddle&quot; /&gt;&lt;/p&gt; &lt;p&gt;Nhấn Enter để hoàn thành câu lệnh, và thông tin boot của Ubuntu sẽ bị  xóa khỏi danh sách. Gõ lệnh &lt;strong&gt;bcdedit&lt;/strong&gt; thêm 1 lần nữa để  kiểm tra boot menu:&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__08.jpg&quot; align=&quot;absMiddle&quot; /&gt;&lt;/p&gt; &lt;p&gt;Khởi động lại máy tính, và bạn sẽ thấy sự khác biệt. Nếu có 2 hệ điều  hành trước khi thực hiện câu lệnh, màn hình boot của Windows 7 sẽ chạy  thẳng vào hệ thống, trừ khi bạn có nhiều hơn 2 hệ điều hành khởi động  thì menu khởi động sẽ hiện ra tùy thuộc vào việc bạn xóa bỏ bao nhiêu  mục bằng bcdedit:&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.quantrimang.com.vn/photos/Image/052010/26/bootmenu__09.jpg&quot; align=&quot;absMiddle&quot; /&gt;&lt;/p&gt; &lt;p&gt;Để tìm hiểu thêm về chức năng của bcdedit, các bạn có thể sử dụng câu  lệnh sau:&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;bcdedit /help &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Chúc các bạn thành công!&lt;/p&gt; &lt;/div&gt;                                                                                       &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/8545709280343789090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/05/loai-bo-thanh-phan-khoi-ong-boot-menu_9686.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/8545709280343789090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/8545709280343789090'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/05/loai-bo-thanh-phan-khoi-ong-boot-menu_9686.html' title='Loại bỏ thành phần khởi động boot menu trong Windows 7'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-4570602212700208093</id><published>2010-05-29T10:45:00.003+07:00</published><updated>2010-05-29T10:55:34.257+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Read file with multiple encoding</title><content type='html'>This code read file with encoding (Utf-8, Utf-16 and ANSI)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;BufferedReader br = null;&lt;br /&gt;try {&lt;br /&gt;           FileInputStream fileStream = new FileInputStream(path);&lt;br /&gt;           byte[] arr = new byte[]{1,2,3};&lt;br /&gt;           fileStream.read(arr);&lt;br /&gt;           if(arr[0]==-1){&lt;br /&gt;               br = new BufferedReader(&lt;br /&gt;   new InputStreamReader(&lt;br /&gt;    new FileInputStream(path, &quot;UTF-16&quot;));&lt;br /&gt;            }else if(arr[0]==-17){&lt;br /&gt;               br = new BufferedReader(&lt;br /&gt;   new InputStreamReader(&lt;br /&gt;    new FileInputStream(path, &quot;UTF-8&quot;));&lt;br /&gt;            }else{&lt;br /&gt;               br = new BufferedReader(&lt;br /&gt;   new InputStreamReader(&lt;br /&gt;    new FileInputStream(path));&lt;br /&gt;            }&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/4570602212700208093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/05/read-file-with-multiple-encoding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4570602212700208093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/4570602212700208093'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/05/read-file-with-multiple-encoding.html' title='Read file with multiple encoding'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-1064885612571180442</id><published>2010-05-29T08:13:00.000+07:00</published><updated>2010-05-29T08:14:26.479+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>Thủ thuật biến &quot;word&quot; sang &quot;pdf&quot; ngay trong Word</title><content type='html'>&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign=&quot;middle&quot; width=&quot;236&quot; align=&quot;center&quot; height=&quot;224&quot;&gt;&lt;img src=&quot;http://img10.24h.com.vn/upload/2-2010/images/2010-05-28/1275026326_world-pdftdeeeeeeee.jpg&quot; id=&quot;thumb-new-noidung&quot; alt=&quot;Thủ thuật biến &amp;quot;word&amp;quot; sang  &amp;quot;pdf&amp;quot; ngay trong Word&quot; width=&quot;200&quot; height=&quot;200&quot; /&gt;                              &lt;div style=&quot;color: rgb(51, 51, 51); font-size: 11px; padding-top: 5px; padding-bottom: 5px; width: 200px;&quot;&gt;                                 Convert từ word sang pdf ngay trong Word                             &lt;/div&gt;                        &lt;/td&gt;                          &lt;td valign=&quot;top&quot; width=&quot;57%&quot;&gt;                                                           &lt;div class=&quot;head-noidung&quot;&gt;                                 (24h) - Có lẽ các bạn không ngờ rằng  ngay trong Microsoft Word lại có thể convert từ file word sang pdf cực  kì đơn giản. Chúng tôi xin giới thiệu đến các bạn chương trình chuyển  đổi hấp dẫn này.                            &lt;/div&gt;                         &lt;/td&gt;                     &lt;/tr&gt;                      &lt;tr&gt;                         &lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt;                              &lt;div class=&quot;content-noidung&quot;&gt; &lt;script type=&quot;text/javascript&quot;&gt;window.onload = function () {resizeNewsImage(&quot;news-image&quot;, 500);}&lt;/script&gt;  &lt;p style=&quot;text-align: justify;&quot;&gt;Đầu tiên các bạn download chương trình &lt;a href=&quot;http://www.ware8.com/Application/3262.htm&quot;&gt;doPdf&lt;/a&gt; (chương  trình hoàn toàn miễn phí) về cài đặt.&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img class=&quot;news-image&quot; onclick=&quot;return  openNewImage(this, &#39;&#39;)&quot; alt=&quot;Thủ thuật biến &amp;quot;word&amp;quot; sang  &amp;quot;pdf&amp;quot; ngay trong Word, Vi tính-Internet, Convert, word, pdf,  trong Word, chuyển đổi&quot; src=&quot;http://img10.24h.com.vn/upload/2-2010/images/2010-05-28/1275026044-world-pdfnd.jpg&quot; /&gt;&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Sau khi cài đặt thành công, các bạn chỉ  cần mở tài liệu word bằng Microsoft Word lên, sau đó chọn menu Print,  tại ô Name bạn chọn Printer là doPdf.&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img class=&quot;news-image&quot; onclick=&quot;return  openNewImage(this, &#39;&#39;)&quot; alt=&quot;Thủ thuật biến &amp;quot;word&amp;quot; sang  &amp;quot;pdf&amp;quot; ngay trong Word, Vi tính-Internet, Convert, word, pdf,  trong Word, chuyển đổi&quot; src=&quot;http://img10.24h.com.vn/upload/2-2010/images/2010-05-28/1275025987-untitled-1.jpg&quot; /&gt;&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Sau đó các bạn chỉ việc bấm nút ok là đã  hoàn thành xong chương trình chuyển đổi.&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;Chúc các bạn thành công!&lt;/p&gt;                             &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/1064885612571180442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/05/thu-thuat-bien-word-sang-pdf-ngay-trong.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/1064885612571180442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/1064885612571180442'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/05/thu-thuat-bien-word-sang-pdf-ngay-trong.html' title='Thủ thuật biến &quot;word&quot; sang &quot;pdf&quot; ngay trong Word'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-5744087218501354017</id><published>2010-05-07T10:55:00.001+07:00</published><updated>2010-05-07T10:56:28.993+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Send email in java</title><content type='html'>&lt;p&gt;Với gói javamail của sun, việc gửi mail của bạn trở nên cực kỳ dễ  dàng. Sau đây là 1 chương trình gửi mail hoàn chỉnh với tài khoản gmail  và được validate ngon lành. Bạn copy đoạn code sau đó dùng notepad tạo  file SendMailOK.java, paste đoạn code vào, lưu lại&lt;/p&gt; &lt;p&gt;Bạn phải download gói java mail của sun, cài đặt và thiết lập  classpath đến file mail.jar trước khi thực thi ứng dụng.&lt;br /&gt;&lt;a href=&quot;http://java.sun.com/products/javamail/downloads/index.html&quot;&gt;http://java.sun.com/products/javamail/downloads/index.html&lt;/a&gt;&lt;br /&gt;Ngoài ra, bạn còn phải thiết lập classpath đến 2 gói activation.jar và  javaee.jar &lt;i&gt;(2 gói này nằm trong glassfish\lib folder nếu dùng  Glassfish)&lt;/i&gt;&lt;/p&gt; &lt;p&gt;Để thực thi, chạy command line, gõ java SendMailOK.java để biên dịch,  sau đó gõ javac SendMailOK để chạy.&lt;/p&gt;&lt;p&gt;package src.com.digitexx.email;&lt;br /&gt;&lt;br /&gt;import java.util.Date;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;&lt;br /&gt;import javax.mail.Authenticator;&lt;br /&gt;import javax.mail.Message;&lt;br /&gt;import javax.mail.PasswordAuthentication;&lt;br /&gt;import javax.mail.Session;&lt;br /&gt;import javax.mail.Transport;&lt;br /&gt;import javax.mail.internet.InternetAddress;&lt;br /&gt;import javax.mail.internet.MimeMessage;&lt;br /&gt;&lt;br /&gt;public class SendGmail {&lt;br /&gt;&lt;br /&gt;    public static void send(String smtpServer, String to, String from,&lt;br /&gt;            String psw, String subject, String body) throws Exception {&lt;br /&gt;        // java.security.Security.addProvider(new&lt;br /&gt;        // com.sun.net.ssl.internal.ssl.Provider());&lt;br /&gt;        Properties props = System.getProperties();&lt;br /&gt;        // –&lt;br /&gt;        props.put(&quot;mail.smtp.host&quot;, smtpServer);&lt;br /&gt;        props.put(&quot;mail.smtp.port&quot;, 587);&lt;br /&gt;        props.put(&quot;mail.smtp.starttls.enable&quot;, &quot;true&quot;);&lt;br /&gt;        final String login = from;// &quot;nth001@gmail.com&quot;;//usermail&lt;br /&gt;        final String pwd = psw;// &quot;password cua ban o day&quot;;&lt;br /&gt;        Authenticator pa = null; // default: no authentication&lt;br /&gt;        if (login != null &amp;amp;&amp;amp; pwd != null) { // authentication required?&lt;br /&gt;            props.put(&quot;mail.smtp.auth&quot;, &quot;true&quot;);&lt;br /&gt;            pa = new Authenticator() {&lt;br /&gt;                public PasswordAuthentication getPasswordAuthentication() {&lt;br /&gt;                    return new PasswordAuthentication(login, pwd);&lt;br /&gt;                }&lt;br /&gt;            };&lt;br /&gt;        }// else: no authentication&lt;br /&gt;        Session session = Session.getInstance(props, pa);&lt;br /&gt;        // — Create a new message –&lt;br /&gt;        Message msg = new MimeMessage(session);&lt;br /&gt;        // — Set the FROM and TO fields –&lt;br /&gt;        msg.setFrom(new InternetAddress(from));&lt;br /&gt;        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));&lt;br /&gt;&lt;br /&gt;        // — Set the subject and body text –&lt;br /&gt;        msg.setSubject(subject);&lt;br /&gt;        msg.setText(body);&lt;br /&gt;        // — Set some other header information –&lt;br /&gt;        msg.setHeader(&quot;X-Mailer&quot;, &quot;LOTONtechEmail&quot;);&lt;br /&gt;        msg.setSentDate(new Date());&lt;br /&gt;        msg.saveChanges();&lt;br /&gt;        // — Send the message –&lt;br /&gt;        Transport.send(msg);&lt;br /&gt;        System.out.println(&quot;Message sent OK.&quot;);&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Main method to send a message given on the command line.&lt;br /&gt;     */&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        {&lt;br /&gt;            try {&lt;br /&gt;                String smtpServer = &quot;smtp.gmail.com&quot;;&lt;br /&gt;//                String smtpServer = &quot;digi-texx.com.vn&quot;;&lt;br /&gt;                String from = &quot;anhchangsitinh19862001@gmail.com&quot;;&lt;br /&gt;                String to = &quot;taluan@digi-texx.com.vn&quot;;&lt;br /&gt;                String subject = &quot;Hello from Java&quot;;&lt;br /&gt;                String body = &quot;Test using java to send mail.&quot;;&lt;br /&gt;                String password = &quot;password&quot;;&lt;br /&gt;                send(smtpServer, to, from, password, subject, body);&lt;br /&gt;                System.out.println(&quot;Finish!&quot;);&lt;br /&gt;            } catch (Exception ex) {&lt;br /&gt;                System.out.println(&quot;Usage: &quot; + ex.getMessage());&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /**&lt;br /&gt;         * &quot;send&quot; method to send the message.&lt;br /&gt;         */&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/5744087218501354017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/05/send-email-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/5744087218501354017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/5744087218501354017'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/05/send-email-in-java.html' title='Send email in java'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-2023372080398027417</id><published>2010-05-06T14:10:00.003+07:00</published><updated>2010-05-06T14:14:15.972+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Write file encode UTF-8 in java</title><content type='html'>Here is example code:&lt;br /&gt;&lt;br /&gt;FileOutputStream fileOutputStream = new FileOutputStream( &quot;filename.csv&quot;);&lt;br /&gt;                    byte[] bom = new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF };&lt;br /&gt;                    fileOutputStream.write(bom);&lt;br /&gt;                   PrintWriter  out = new PrintWriter(new OutputStreamWriter(fileOutputStream, &quot;UTF-8&quot;));&lt;br /&gt;           &lt;br /&gt;                        out.write(&quot;text&quot;);&lt;br /&gt;               &lt;br /&gt;                   &lt;br /&gt;                     if(out != null){&lt;br /&gt;                         out.flush();&lt;br /&gt;                         out.close();&lt;br /&gt;                     }</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/2023372080398027417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2010/05/write-file-encode-utf-8-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/2023372080398027417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/2023372080398027417'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2010/05/write-file-encode-utf-8-in-java.html' title='Write file encode UTF-8 in java'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5479852451851621911.post-7948300513464630682</id><published>2009-11-08T22:42:00.003+07:00</published><updated>2009-11-08T22:47:56.992+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Write file MS Word (.doc) in  java</title><content type='html'>Source code:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Document document = new Document();&lt;br /&gt;      try {&lt;br /&gt;&lt;br /&gt;          RtfWriter2.getInstance(document,&lt;br /&gt;                          new FileOutputStream(System.getProperty(&quot;user.dir&quot;) +&lt;br /&gt;                                  &quot;\\testword.doc&quot;));&lt;br /&gt;          document.open();&lt;br /&gt;&lt;br /&gt;          Chunk chunk = new Chunk(&quot;test wirte file word \n&quot;);&lt;br /&gt;          document.add(chunk);&lt;br /&gt;&lt;br /&gt;      } catch (Exception e) {&lt;br /&gt;          e.printStackTrace();&lt;br /&gt;      }finally{&lt;br /&gt;          //close the document&lt;br /&gt;          document.close();&lt;br /&gt;      }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;http://www.fileden.com/files/2009/5/17/2445593/itext-1.4.6.jar&quot; target = &quot;_Blank&quot;&gt;Click here&lt;/a&gt; download library.&lt;br /&gt;&lt;a href=&quot;http://www.fileden.com/files/2009/5/17/2445593/WriteFileWord.rar&quot; target = &quot;_Blank&quot;&gt;Click here&lt;/a&gt; download source code demo.</content><link rel='replies' type='application/atom+xml' href='http://trananhluan.blogspot.com/feeds/7948300513464630682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://trananhluan.blogspot.com/2009/11/write-file-ms-word-doc-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7948300513464630682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5479852451851621911/posts/default/7948300513464630682'/><link rel='alternate' type='text/html' href='http://trananhluan.blogspot.com/2009/11/write-file-ms-word-doc-in-java.html' title='Write file MS Word (.doc) in  java'/><author><name>Trần Anh Luân</name><uri>http://www.blogger.com/profile/14493951073884607596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim7j8B_DCAZTJx-xSC_mZgEkCdFwRboQvu6dkYnaZ1g9U3D8qgrnsDVsRfnh1QRcE0HyacvjJ-azAslNKCFND6X4DsYwKVYgs5jbRVdz1Old1ZcvDrXVaxm1ohCfQvBnc/s220/luan2.jpg'/></author><thr:total>0</thr:total></entry></feed>