<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TechMaster</title>
	<atom:link href="http://techmaster.vn/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://techmaster.vn</link>
	<description>Know you, Know IT</description>
	<lastBuildDate>Thu, 20 Jun 2013 04:07:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Tuyển giảng viên Python, PHP, C++ và Android</title>
		<link>http://techmaster.vn/?p=3239</link>
		<comments>http://techmaster.vn/?p=3239#comments</comments>
		<pubDate>Fri, 14 Jun 2013 14:33:29 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[TechMaster]]></category>
		<category><![CDATA[Tuyển dụng]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3239</guid>
		<description><![CDATA[Để đáp ứng nhu cầu nhân lực phát triển phần mềm đa dạng, Techmaster cần tuyển giảng viên dạy các ngôn ngữ lập trình Python, PHP, C++ và lập trình di động Android. Thù lao từ 800,000 đến 1,000,000 VND<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3239">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>Để đáp ứng nhu cầu nhân lực phát triển phần mềm đa dạng, Techmaster cần tuyển giảng viên dạy các ngôn ngữ lập trình Python, PHP, C++ và lập trình di động Android. <strong>Thù lao từ 800,000 đến 1,000,000 VND / 1 buổi dạy 3 tiếng</strong> gồm 45 phút lý thuyết, còn lại là thực hành demo lập trình tại lớp cho học viên.</p>
<p><strong>Yêu cầu cụ thể:</strong></p>
<ul>
<li>Đang làm lập trình viên có tối thiểu 6 năm kinh nghiệm, làm lập trình ngôn ngữ mình sẽ dạy tối thiểu 4 năm với các dự án thực tế.</li>
<li>Tự soạn bài giảng và lập trình ví dụ mẫu</li>
<li>Khả năng thuyết trình mạch lạc, càng dễ hiểu càng tốt</li>
<li>Viết blog chia sẽ công nghệ đều đặn</li>
</ul>
<p>Anh em nào quan tâm nghiêm túc, không cần gửi CV, hãy gọi điện trực tiếp cho tôi (0902209011), sau đó đến Techmaster trình bày thử một buổi khoảng 40 phút.</p>
<p>Anh em nào chưa biết nhiều về TechMaster có thể tham khảo bài viết này &#8220;<a href="http://techmaster.vn/?p=2104">Nhân ngày 20/11 nghĩ về việc đào tạo CNTT tại VN</a>&#8220;</p>
<p><strong>Làm việc tại trung tâm TechMaster, số 14, ngõ 4, Nguyễn Đình Chiểu, quận Hai Bà Trưng, Hà nội<br />
Thời gian dạy từ 6:30 đến 9:30 tối. Có thể có lớp ban ngày nhưng không thường xuyên.</strong><br />
<a href="http://techmaster.vn/wp-content/uploads/2013/05/Duong_Luu.jpg"><img class="alignnone size-full wp-image-3123" alt="tuyển giảng viên" src="http://techmaster.vn/wp-content/uploads/2013/05/Duong_Luu.jpg" width="800" height="600" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3239</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make better Techmaster</title>
		<link>http://techmaster.vn/?p=3226</link>
		<comments>http://techmaster.vn/?p=3226#comments</comments>
		<pubDate>Fri, 14 Jun 2013 13:29:57 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[TechMaster]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3226</guid>
		<description><![CDATA[Tại Techmaster, chúng tôi (giảng viên và học viên thực tập) có một câu nói đơn giản &#8220;Make Better TechMaster&#8221;. Việc làm cũng đơn giản và cụ thể. Máy tính trục trặc là lập tức sửa ngay Dây cáp mạng<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3226">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>Tại Techmaster, chúng tôi (giảng viên và học viên thực tập) có một câu nói đơn giản &#8220;Make Better TechMaster&#8221;. Việc làm cũng đơn giản và cụ thể.</p>
<ul>
<li>Máy tính trục trặc là lập tức sửa ngay</li>
<li>Dây cáp mạng hỏng là học viên lấy kìm ra bấm đấu lại dây luôn</li>
<li>Đèn cháy thì thay đèn, nước hỏng dễ thì tự sửa khó thì gọi thợ. Cáp HDMI hỏng là thay.</li>
<li>Apple ra mắt hệ điều hành ổn định lúc nào, là vài hôm sau Techmaster cũng nâng cấp.</li>
<li>Thiết bị di động nào mới cool ra mắt, cần cho công việc là chỉ 1-2 tuần sau, Techmaster sẽ tìm mua để anh em trải nghiệm</li>
<li>Internet chậm là lập tức kêu nhà cung cấp dịch vụ đến ngay, gọi 1 lần không được thì gọi cho đến khi nào họ xuất hiện.</li>
<li>Toilet được cọ mỗi ngày.  Cốc chén được rửa hàng ngày. Bàn phím được vệ sinh 2 tuần 1 lần.</li>
</ul>
<div class="su-pullquote su-pullquote-style-1 su-pullquote-align-left"><a href="http://techmaster.vn/?p=3239">Tuyển giảng viên Python, PHP, C++ và Android</a></div>
<p>Mọi thứ phải làm luôn, không chờ đợi (NO procastination). Vì chờ đợi chả làm mọi thứ tốt lên hoặc đang hỏng bỗng chạy lại. Thấy ý tưởng hay nào là làm luôn, nếu phải thải thiết bị cũ, đầu tư mua thiết bị mới, anh em dùng sướng hơn, hiệu quả hơn cũng làm. Lúc nào tôi cũng cố gắng làm ngay, và hối thúc toàn bộ nhân viên, học viên, kỹ thuật viên làm ngay.</p>
<p>Nếu bạn là học viên hoặc sẽ là học viên Techmaster thì hãy làm theo thói quen này. Bạn sẽ hiểu tốt, tự tin hơn nếu bạn lập trình bài tập ngay sau mỗi buổi học. Nếu không hiểu hãy hỏi luôn, chứ đừng gật gù. Cuối cùng Techmaster sẽ tốt hơn (Better Techmaster) vì có những học viên từng trải hơn trong thời gian ngắn hơn, ra làm được việc sớm hơn tất cả những nơi khác.</p>
<div id="attachment_3231" class="wp-caption alignnone" style="width: 586px"><a href="http://techmaster.vn/wp-content/uploads/2013/06/DoiThoNe.jpg"><img class=" wp-image-3231 " alt="Make better Techmaster" src="http://techmaster.vn/wp-content/uploads/2013/06/DoiThoNe.jpg" width="576" height="432" /></a>
<p class="wp-caption-text">Phòng học số 2 giai đoạn cải tạo ngày 2/9/2012</p>
</div>
<div id="attachment_3232" class="wp-caption alignnone" style="width: 586px"><a href="http://techmaster.vn/wp-content/uploads/2013/06/PhongHocMoi.jpg"><img class=" wp-image-3232  " alt="Techmaster" src="http://techmaster.vn/wp-content/uploads/2013/06/PhongHocMoi.jpg" width="576" height="432" /></a>
<p class="wp-caption-text">Phòng lab thực hành số 2 đã đi vào hoạt động hết công suất tháng 6/2013</p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3226</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tôi học Java</title>
		<link>http://techmaster.vn/?p=3212</link>
		<comments>http://techmaster.vn/?p=3212#comments</comments>
		<pubDate>Wed, 12 Jun 2013 03:23:04 +0000</pubDate>
		<dc:creator>Nhu Thuan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutor]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3212</guid>
		<description><![CDATA[Rất nhiều người tìm đến với Java là do yêu cầu của dự án, chẳng hạn cần 1 website viết bằng JSP + Oracle, nghiên cứu uPortal hoặc những sinh viên muốn viết game cho mobile. Họ bắt đầu học<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3212">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>Rất nhiều người tìm đến với Java là do yêu cầu của dự án, chẳng hạn cần 1 website viết bằng JSP + Oracle, nghiên cứu uPortal hoặc những sinh viên muốn viết game cho mobile. Họ bắt đầu học Java như thế đấy.</p>
<p>Java đúng là mênh mông thật, rất nhiều, rất nhiều công nghệ, rất nhiều giải pháp, rất nhiều những sản phẩm nguồn mở. Vì lẽ đó, nhiều coder bắt tay vào học Java thường bị choáng ngợp bởi có quá nhiều thứ để học hỏi ở Java. Vậy thì bắt đầu từ đâu nhỉ ?</p>
<p>Vào java.sun.com download bản JDK mới nhất và dùng một text editor để học nó. Dĩ nhiên tôi không dùng Nodepad rồi vì nó quá sơ sài. Với những người thành thạo Linux có lẽ nên dùng Vi là thứ tốt nhất, còn Windows, bản thân tôi dùng TextPad, sau khi cài đặt (JDK và TextPad) hãy mở TextPad ra gõ vào chương trình nổi tiếng và thông dụng nhất System.out “Hello World !”, nhấn crtl-1 để dịch, nhấn ctrl-2 để chạy. Thế là bạn đã bắt đầu học Java. Nên download thêm từ Java.sun.com gói java doc để có được API Specification trong quá trình học và làm việc với Java.</p>
<p>Một kẻ mù mờ như tôi thì điều đầu tiên là phải thành thạo ngữ pháp, do đó, tôi thường kiếm những bài nho nhỏ để viết thử cho đến khi thuần thục cú pháp Java, chẳng hạn các bài toán sắp xếp, tìm kiếm số nguyên, các bài toán quản lý điểm chẳng hạn. Mục đích duy nhất khi viết chúng là để làm quen dần với cú pháp của một chương trình Java.</p>
<p>Tôi không thể tìm hiểu ngay bản chất của Java là gì ? Chẳng hạn, như làm thế nào để Virtual Machine chạy một class, tại sao lại là máy ảo, bản chất của Object, điều tôi quan tâm đầu tiên là làm sao biến mình thành một cái máy gõ code Java. Tôi học như một cái máy gõ chữ vậy.</p>
<p><img class="alignleft" alt="cách học Java, học Java" src="http://rlv.zcache.com/java_programmer_shirt-r5b53b3f8ed2c4c8ebe02f917f931d96a_804gl_512.jpg" width="410" height="410" />Sau khi đã thuần thục ngữ pháp Java, tôi bắt đầu đi tìm hiểu sơ đẳng những đặc điểm của một chương trình Java, chẳng hạn class, package là gì, thừa kế, interface đóng vai trò như thế nào, viết như vậy là một chương trình cấu trúc hay một hướng đối tượng. Dĩ nhiên tôi không thể hiểu rành mạch ngay được mà chỉ hiểu một chút ít. Sau khi tìm hiểu sơ sơ những vấn đề đó, tôi bắt tay vào tìm hiểu những thư viện trong Java.</p>
<p>Viết một cửa số bằng AWT, điều này làm tôi sung sướng vì bằng Java tôi có thể nhìn thấy kết quả của mình là một ứng dụng đồ họa nho nhỏ, tôi tìm hiểu về AWT để viết những bài tập bé bé, chẳng hạn một cửa sổ giao diện quản lý, cài đặt các action. Tuy nhiên, không nên mất nhiều thời gian vào AWT, tôi quay sang học java.lang và java.util.</p>
<p>Với java.lang đây là gói bao gồm rất nhiều những lớp cơ bản, String chẳng hạn, dĩ nhiên là phải làm thuần thục với string rồi ( cắt 1 string, thay thế từ, tìm vị trí từ,&#8230;) những bài tập rất nhỏ. Tiếp theo đó là StringBuffer, và ở Java 5 có một người anh em của nó là StringBuilder. Tôi hiểu sơ sơ về StringBuffer, nghĩa là chúng làm việc nhanh hơn khi nối string. Trong java.lang còn một lớp nữa là lớp Math, cũng cần tìm hiểu các hàm mà lớp này cung cấp để viết các bài tập nhỏ. Vậy là ok, tôi đã biết một số lớp cơ bản trong java.lang.</p>
<p>Java.util là gói tiếp theo tôi cần tìm hiểu, thử viết một bài toán về Vector, thêm bớt, xóa các thành phần, cái này giống “mảng động” quá. Sau Vector, tôi thử tìm hiểu lớp Date, in ngày tháng hiện tại, giờ giấc xem sao, tôi viết thử một chiếc đồng hồ bằng AWT có sử dụng lớp Calendar và lớp Date. Java.util còn một lớp tôi cần phải học đó là Hashtable, viết một ví dụ cho phép đặt cặp giá trị key – value vào đối tượng của lớp Hashtable. Như vậy là tôi đã xong Java.util.</p>
<p>Bây giờ đến một gói thứ 3, java.io. Lớp đầu tiên cần phải học trong java.io đó là File. Tạo và xóa một file, đo độ dài một file. Tất cả các hàm đều được cung cấp trong File.class và tôi chỉ cần tạo một object rồi System.out giá trị để kiểm nghiệm lại trong Java. Hai lớp tiếp theo tôi cần tìm hiểu trong java.io là FileReader và FileWriter, tôi dùng hai lớp này để đọc và ghi dữ liệu vào một file text đơn giản.</p>
<p>Sau khi làm việc được với java.util, tôi trở lại gói java lang để tìm hiểu một lớp nữa, đó là java thread. Dĩ nhiên tôi không thể viết một ví dụ cỏn con về thread được, thế là google, tôi muốn tìm một ví dụ đơn giản nhất của thread. Tôi gõ vào cụm từ import java.io + public void run() và thế là google trả về cả triệu kết quả cho tôi, trong một mớ hỗn độn, tôi cần tìm ra một ví dụ đơn giản về thread, okies, tôi tìm được rồi, copy và TextPad, ctrl-1 -&gt; ctrl-2 và tôi chạy nó. Từ ví dụ này tôi viết thử các ví dụ khác về thread, và tôi bắt đầu hiểu về thread. Sau khi đã nắm tương đối về thread tôi bắt đầu thử từ khóa synchronized, tôi viết một lớp có 2 thread, trong 2 thread cùng đọc một file và phương thức đọc file có synchronized. Bây giờ tôi quay lại gói java.util để cài thử một ví dụ về ArrayList và tìm hiểu vì sao ArrayList cũng làm việc như Vector nhưng người ta lại cài những 2 lớp này. Tôi viết một ví dụ nhỏ có 2 thread cùng add dữ liệu vào 1 ArrayList và làm tương tự với Vector. Ở 2 ví dụ tôi có đo thời gian chạy, tôi dùng 1 vòng lặp while chạy 1000 lần, rồi 10000. Tôi thử rất nhiều lần như vậy thì đều thấy ArrayList add dữ liệu nhanh hơn. Bây giờ tôi tìm hiểu từ khóa try catch, tôi lại dùng Google để tìm một ví dụ về try catch, sau khi hiểu sơ sơ tôi quay sang cài đặt các ví dụ có throws Exception. Hay quá, nếu có try catch, tôi có thể thông báo những lỗi xảy ra ở chương trình của tôi và chương trình vẫn tiếp tục làm việc, nếu không dùng try catch tôi thấy chương trình gặp lỗi và đơ luôn.</p>
<p>Qua hàng loạt những ví dụ, tôi bắt đầu hiểu sơ sơ về lập trình hướng đối tượng, tôi tìm muốn sách lý thuyết để đọc về chúng, okies tôi đã bắt đầu hiểu java và tiếp tục tìm hiểu những thứ cần thiết cho công việc của tôi.</p>
<p>Java không đơn thuần là một ngôn ngữ, nó là cả một nền tảng lập trình, một cộng đồng hay một văn hóa. Với quan niệm của tôi, ai đó có thể thuần thục cú pháp trong Java nhưng hiểu hết những tư tưởng tồn tại trong Java thì có lẽ cũng phải mất từ 3-6 tháng với một người thông minh và được đào tạo rất bài bản. Khi tìm hiểu Java, người ta thường không tìm hiểu kỹ những thành phần cơ bản của Java mà học vào một framework cụ thể với tư tưởng MVC. Đối với tôi, muốn giỏi lập trình java thì hai gói đầu tiên bạn phải thuần thục là java.lang và java.util. Tôi từng được một thạc sĩ CNTT hỏi trong có Queue và Stack không,&#8230;nếu không có thì chị sẽ tự cài lấy một cái, còn nếu có thì chị dùng ngay cho nó tiện. Tôi không coi đó làm điều ngạc nhiên hoặc cũng không dám chê chị dốt hay có những ý nghĩ khác không hay bởi chị rất giỏi nên việc cài đặt những thứ đó với chị quá đơn giản, nhưng điều đó giống như việc phát minh bánh xe và rất lãng phí. Do vậy khi học Java, tôi luôn tâm niệm rằng tôi đang học cả một nền tảng chứ không phải là đang học một ngôn ngữ lập trình.</p>
<p>Java.util là gói tôi thích nhất, bởi từ Java.util, tôi kiểm nghiệm lại những lý thuyết về cấu trúc dữ liệu và giải thuật. Dĩ nhiên framework này không bao giờ đề cập hết được tất cả các thuật toán cũng như cấu trúc dữ liệu, nhưng tôi có thể tìm hiểu những vấn đề cơ bản ở đây rồi từ đó dùng google search thêm những đoạn code khác. Có khá nhiều những thư viện ngoài cài đặt collections framework, Apache, Trove hay FastUtil chẳng hạn. Mục đích của những thư viện này là cải thiện tốc độ của collections framework và không phải là họ không thu được kết quả gì. Điều đặc biệt hơn nữa là rất nhiều trường đại học trên thế giới cung cấp những cài đặt về cấu trúc dữ liệu và giải thuật , cũng có cái hay, cũng có cái dở. Tôi bắt đầu trả lời được một thắc mắc của mình là tại sao Java dùng merge-sort chứ không dùng quick-sort, và tại sao ở những phiên bản đầu java chậm, càng những phiên bản về sau thì càng nhanh hơn.</p>
<p>Gói tôi thích thứ 2 là gói java.util.concurrent , tôi tìm hiểu để thỏa mãn từ khóa synchronized và hiểu được vì sao java từng lạm dụng từ khóa này một cách quá đáng; tìm hiều các vấn đề về pooling. Tôi cố gắng thuần thục java.io với hàng loạt lớp Reader và Writer rồi mở rộng khả năng hiểu biết của bản thân với java.nio. Tôi tìm hiểu về java.net rồi kiếm sách vở về networking đọc thêm, sau đó tự cài đặt các ví dụ, chương trình đầu tiên trong cuộc đời lập trình của tôi là C2 – chat và chơi cờ qua mạng là cách để tôi tìm hiểu về java.net. Cứ như vậy, tôi học java mãi cho đến tận bây giờ.</p>
<div class="su-pullquote su-pullquote-style-1 su-pullquote-align-left"><a href="http://techmaster.vn/?page_id=2137">Khóa học lập trình Java từ căn bản đến nâng cao</a></div>
<p>Theo quan điểm cá nhân tôi, nếu muốn lập trình tốt java bạn cần phải thuần thục những gói sau (bao gồm cả các gói con của nó) là : java.lang (java.math, java.lang.ref<br />
java.lang.reflect ), java.util(java.util.concurrent , java.util.logging, java.util.prefs, java.util.regex, java.util.zip ), java.io (java.nio), java.net. Một khi đã vững những vấn đề và thư viện trong đó, bạn có thể học tiếp những framework như jdbc, swing, servlet+jsp, struts, jsf, hibernate,&#8230; để phục phụ trực tiếp vào công việc. Khi học java, tốt nhất đừng dùng các IDE như JBuilder, Eclipse hay Netbean, hãy dùng một TextEditor cố gắng gõ code nhiều nhất. Cũng đừng bao giờ cố gắng hiểu cặn kẽ những tư tưởng mà người ta đã cài đặt, hãy code và chạy, lúc đó bạn sẽ chiêm nghiệm được và khi đó, cầm lại cuốn sách đọc là hiểu rành mạch nhất.</p>
<p>Tôi thường vào những cộng đồng trên mạng để cập nhật những vấn đề cũng như tham khảo các bài viết của họ, tôi ít khi vào java.sun.com bởi các bài viết ở đó cũng không có nhiều bài hay. Nhiều người chọn theserverside.com để cập nhật công nghệ cho mình còn tôi, tôi chọn 2 trang chủ chốt là java.net và jroller.com. Trên java.net, tôi bắt gặp rất nhiều vấn đề bao trùm cả 3 lĩnh vực j2se, j2ee và j2me, nhiều nhất vẫn là j2se. Ở đây có những bài viết rất tuyệt từ những người đang trực tiếp phát triển java hàng ngày. Còn jroller.com, một cộng đồng blogger từ nhiều nơi trên thế giới đề cập tất cả các chủ đề, khía cạnh và liên tục cập nhật. Javalobby là một diễn đàn cũng tương đối thú vị, ở đó có những tranh luận tạo nhiều góc cạnh trong cái nhìn tổng thể về một chủ đề, còn article quý báu thì lại nằm rất nhiều trên javaworld.com. Tôi có một thói quen tệ, viết code chúa ghét là chèn những dòng comment rối tung rối mù lên, khi đọc, tôi khoái đọc code hơn là đọc chứ, bởi bản thân chúng gần như toát lên hết những vấn đề đã được đề cập.Ước gì có thể dùng photoshop vẽ ra được phần mềm chứ không cần phải code.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3212</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple cho phép nhượng app từ tài khoản developer này sang developer khác</title>
		<link>http://techmaster.vn/?p=3209</link>
		<comments>http://techmaster.vn/?p=3209#comments</comments>
		<pubDate>Tue, 11 Jun 2013 04:21:33 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3209</guid>
		<description><![CDATA[Apple vừa chính thức thông báo cho phép các developer có thể bán, sang tên, nhượng quyền phát hành thu phí ứng dụng. Đây là một động thái kích thích hoạt động phát hành app trên AppStore. Các Developer có<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3209">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>Apple vừa chính thức thông báo cho phép các developer có thể bán, sang tên, nhượng quyền phát hành thu phí ứng dụng. Đây là một động thái kích thích hoạt động phát hành app trên AppStore. Các Developer có tiềm lực tài chính để quảng cáo hoặc có nhiều app có uy tín có thể thâu tóm lại những app tiềm năng của developer khác.</p>
<p>&#8212;&#8212;&#8212;&#8212;-</p>
<p>Apps can now be transferred from one developer to another within iTunes Connect, for example after an acquisition or when a distribution deal expires. Transferring the ownership of an app does not affect the app’s availability on the App Store. All ratings and reviews will be transferred and your customers will continue to have access to all available app updates.</p>
<p>To transfer an app, go to the app’s App Summary page in the Manage Your Applications module on iTunes Connect and click Transfer App. Make sure that:</p>
<ul>
<li><span style="font-size: 13px; line-height: 19px;">Your account is active</span></li>
<li><span style="font-size: 13px; line-height: 19px;">You have accepted the most current version of your contracts</span></li>
<li><span style="font-size: 13px; line-height: 19px;">Your app has at least one approved version</span></li>
<li><span style="font-size: 13px; line-height: 19px;">Your app is in the Ready for Sale, Invalid Binary, Rejected, Developer Rejected, or Developer Removed from Sale state</span></li>
<li><span style="font-size: 13px; line-height: 19px;">Any associated In-App Purchases are in the Ready to Submit, Ready for Sale, Rejected, Developer Removed from Sale, or Approved state</span></li>
</ul>
<p>You know the Apple ID of the recipient’s Team Agent and their Team ID.<br />
For more information on app transfer, see the <a href="https://itunesconnect.apple.com/downloads/Documentation/AppTransferTutorial.mov?itcKey=1370630448_fc97cf6acd61ef8a87ee5e5087c18a7b">video tutorial on iTunes Connect</a>. To find answers to common questions about app transfer, see the FAQ on iTunes Connect.</p>
<div class="wp-caption alignnone" style="width: 610px"><img alt="nhượng app" src="http://4.bp.blogspot.com/-TCbEhT0xMS0/UAlJPEf4HoI/AAAAAAAAJOQ/pY9IwPqhbGk/s1600/FishEatFish.jpg" width="600" height="284" />
<p class="wp-caption-text">Nhượng app có thể dẫn đến tình trạng cá lớn nuốt cá bé?</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3209</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Techmaster mở khóa học lập trình iOS 7 đầu tiên tại Việt nam</title>
		<link>http://techmaster.vn/?p=3195</link>
		<comments>http://techmaster.vn/?p=3195#comments</comments>
		<pubDate>Mon, 10 Jun 2013 18:47:45 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[TechMaster]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3195</guid>
		<description><![CDATA[Ngày 10/6/2013, Apple ra mắt hệ điều hành iOS 7.0. Do đáp ứng nhu cầu cập nhật công nghệ và yêu cầu nâng cấp từ khách hàng thuê gia công ứng dụng hiện có, Techmaster sẽ nâng cấp, bổ sung<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3195">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>Ngày 10/6/2013, Apple ra mắt hệ điều hành iOS 7.0. Do đáp ứng nhu cầu cập nhật công nghệ và yêu cầu nâng cấp từ khách hàng thuê gia công ứng dụng hiện có, Techmaster sẽ nâng cấp, bổ sung toàn bộ giáo trình lên iOS7. Các API mới sẽ được các kỹ sư phần mềm iOS tại Techmaster cập nhật và thông báo trực tiếp trong <strong><a href="http://techmaster.vn/?page_id=97">khóa học Lập trình Apple iOS căn bản đến nâng cao</a></strong> liên tục trong 3 tuần tới. Các ví dụ mẫu sẽ được chạy kiểm thử và nâng cấp lên iOS 7. Toàn bộ thiết bị thực hành sẽ được cài đặt lên Mountain Lion 10.9 và iOS 7 khi có bản chạy ổn định.</p>
<p>Một số điểm mới trong iOS 7:</p>
<ul>
<li>Giao diện phẳng, đơn giản</li>
<li>Đa nhiệm trong cách sử dụng giữa ứng dụng (khác với đa nhiệm trong lập trình các tác vụ hiện đã có từ lâu trong iOS)</li>
<li>Chức năng lọc ảnh có sẵn trong Camera, sắp xếp ảnh theo địa điểm chụp</li>
<li>AppStore tự động cập nhật ứng dụng thay vì hiện số app mới ở Badge number góc icon</li>
<li>iTunes Radio có đầy đủ các kênh phát thanh trên internet</li>
<li>Lock iPhone để ngăn kẻ trộm có thể xóa và cài lại iOS</li>
<li>Quay phim ở tốc độ 60fps</li>
<li>500 API mới</li>
</ul>
<p>Tiếp tục cập nhật danh sách dài ở đây.</p>
<p><strong>Học phí vẫn giữ nguyên, công nghệ cập nhật nhất, đáp ứng nhu cầu mới tốt hơn. </strong><br />
<strong>Passion to Hack &#8211; Passion to Share</strong></p>
<div class="wp-caption alignnone" style="width: 621px"><img class=" " alt="ios7" src="http://cdn.osxdaily.com/wp-content/uploads/2013/05/ios-7-logo.png" width="611" height="290" />
<p class="wp-caption-text">ios7</p>
</div>
<div class="wp-caption alignnone" style="width: 410px"><img alt="ios7" src="http://iphone-developers.com/images/uploads/ios-icons-flat_1x.png" width="400" height="300" />
<p class="wp-caption-text">giao diện iOS 7</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3195</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Khác biệt giữa Delegate và Block &#8211; phần 1</title>
		<link>http://techmaster.vn/?p=3169</link>
		<comments>http://techmaster.vn/?p=3169#comments</comments>
		<pubDate>Mon, 10 Jun 2013 17:12:44 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3169</guid>
		<description><![CDATA[Delegate và Block khác nhau ở điểm nào và dùng cái gì khi nào? Ở phần 1 tôi sẽ tập trung giới thiệu và phân tích Delegate. Sang phần 2 tôi sẽ so sánh Block với Delegate và cách chuyển<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3169">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p><strong>Delegate và Block khác nhau ở điểm nào và dùng cái gì khi nào? Ở phần 1 tôi sẽ tập trung giới thiệu và phân tích Delegate. Sang phần 2 tôi sẽ so sánh Block với Delegate và cách chuyển từ Delegate sang Block trong một số trường hợp nên chuyển.</strong></p>
<p>Delegate trong Objective-C là một pattern để đối tượng A ủy nhiệm đối tượng B làm hộ việc gì thông qua protocol mà đối tượng B phải tuân thủ (adopt protocol).<br />
Ví dụ điển hình đó là class UITableView có 2 protocol UITableViewDelegate (chuyên hứng các sự kiện người dùng tương tác lên table view) và UITableViewDataSource (chuẩn bị dữ liệu cho table view). UITableView sẽ ủy nhiệm cho UIViewController hoặc UITableViewController thực hiện các hàm đề xuất trong 2 protocol UITableViewDelegate và UITableViewDataSource<br />
<img alt="delegate block" src="http://techmaster.vn/wp-content/uploads/2013/06/TableViewDelegate.jpg" /></p>
<p><strong>Lợi điểm của Delegate</strong><br />
1- Dev thay vì phải subclass các View để hứng sự kiện, điền dữ liệu thì nay có thể ủy nhiệm để ViewController thực hiện việc này. Mô hình MVC trở nên rõ ràng hơn.<br />
<pre class="crayon-plain-tag">@interface ViewController: UIViewController &lt;UITableViewDataSource, UITableViewDelegate&gt;</pre></p>
<p>2- Delegate được sử dụng như call back function khi lập trình asynchronous trong networking, ví dụ như UIViewController tuân thủ NSURLConnectionDataDelegate để hứng sự kiện dữ liệu từ Internet trả về. Đường truyền Internet không thể đảm bảo dữ liệu trả về ngay lập tức, do đó sử dụng delegate giúp ứng dụng không phải dừng ở main thread để đợi dữ liệu. Xem ví dụ này <a href="https://github.com/HaifaCarina/Preloader">https://github.com/HaifaCarina/Preloader</a></p>
<p></p><pre class="crayon-plain-tag">@protocol NSURLConnectionDataDelegate &lt;NSURLConnectionDelegate&gt;
@optional
...
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
...
@end</pre><p> </p>
<p>3- Delegate và Protocol còn dùng để giảm tối đa sự liên kết quá cứng nhắc không cần thiết giữa các lớp. Lớp A có con trỏ đến lớp B, C, D, E. Rồi có thể B lại chứa con trỏ đến A, C, D, E. Để làm việc này, các class phải import các header lẫn nhau, tạo ràng buộc cứng, khiến chương trình khó nâng cấp, thay đổi tính năng.<br />
Thay vào đó, A không cần biết B hay C mà chỉ cần giữ một con trỏ id delegate. Nếu B, C, &#8230; tuân thủ ProtocolX, id có thể trỏ tới B, C. Khi cần thiết A sẽ gọi [delegate doSomeThing] mà không gọi [objB doSomething], [objC doSomething].</p>
<div class="su-quote su-quote-style-1">
<div class="su-quote-shell">Đây là một nguyên tắc quan trọng khi lập trình mà người ta vẫn gọi là Loosely Coupling. Dev VN mình thường không quan tâm đến việc này nên thường dành 20% thời gian để lập trình tính năng có ích, còn lại 80% để sửa lỗi, vá víu, nâng cấp.</div>
</div>
<p><strong>Bất cập của Delegate</strong><br />
Cho đến bản iOS 5.x, Apple vẫn cấm việc lập trình viên để một đối tượng tự chọn delegate vào chính nó<br />
<pre class="crayon-plain-tag">self.delegate = self</pre><br />
Cách này khiến cho ứng dụng bị treo cứng đơ. Chỉ đến iOS 6.x Apple mới sửa lỗi và cho phép <pre class="crayon-plain-tag">self.delegate = self</pre><br />
Trong bài &#8220;<a href="http://techmaster.vn/?p=2380">Xử lý lỗi crash khi tạo custom UITextView và đặt delegate bằng chính nó</a>&#8221; tôi đã đề xuất cách sửa lỗi khi chạy trên iOS 5.x</p>
<p><strong>Trong một số trường hợp, delegate không phải là lựa chọn tốt</strong>, ví dụ như trường hợp UIAlertViewDelegate. Khi một UIViewController tuân thủ UIAlertViewDelegate nhưng mở nhiều loại UIAlertView khác nhau, lúc này các phương thức thể hiện UIAlertViewDelegate sẽ phải bổ xung lệnh if then else hoặc switch để kiểm tra sự kiện nào do đối tượng UIAlertView nào gây ra. Code tại các phương thức này sẽ cồng kềnh khó bảo trì</p><pre class="crayon-plain-tag">@protocol UIAlertViewDelegate &lt;NSObject&gt;
@optional
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
...
@end</pre><p> </p>
<p>Nhiều lập trình viên đã đề xuất sử dụng block để thay thế delegate. Việc này diễn ra ở rất nhiều API khác nhau của Apple iOS. Bản thân Apple không thể sớm chiều loại bỏ delegate trong một số API vì số lượng code sử dụng API có thể đã rất lớn và khó thay đổi.<br />
<a href="https://github.com/jivadevoe/UIAlertView-Blocks">Tham khảo mã nguồn một ví dụ chuyển từ UIAlertViewDelegate sang UIAlertView+Block</a></p>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3169</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BTree &#8211; Vài dòng code</title>
		<link>http://techmaster.vn/?p=3160</link>
		<comments>http://techmaster.vn/?p=3160#comments</comments>
		<pubDate>Tue, 04 Jun 2013 02:03:07 +0000</pubDate>
		<dc:creator>Nhu Thuan</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutor]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3160</guid>
		<description><![CDATA[Cài đặt BTree ở mức đơn giản, nhanh. Nó hỗ trợ 3 phương thức cơ bản insert (add or update), contains (kiểm tra có hay không), delete (xóa dữ liệu). [crayon-51c2a599eadcc/] và code sử dụng: [crayon-51c2a599eb1b6/] &#160; &#160; &#160;]]></description>
				<content:encoded><![CDATA[<p>Cài đặt BTree ở mức đơn giản, nhanh. Nó hỗ trợ 3 phương thức cơ bản insert (add or update), contains (kiểm tra có hay không), delete (xóa dữ liệu).</p><pre class="crayon-plain-tag">import java.util.Comparator;

/** 
 * Author : Nhu Dinh Thuan
 *          nhudinhthuan@yahoo.com
 * Nov 7, 2007  
 */
public class BTree&lt;T&gt; {

  private Node root;

  private Comparator&lt;T&gt; comparator;

  public BTree(Comparator&lt;T&gt; comparator) {
    this.comparator = comparator;
  }

  public void insert(T value) {
    insert(value, root, null, false);
  }

  private void insert(T value, Node node, Node parent, boolean right) {
    if (node == null) {
      if (parent == null) {
        root = node = new Node(value, parent);
      } else if (right) {
        parent.right = node = new Node(value, parent);
      } else {
        parent.left = node = new Node(value, parent);
      }
      return;
    } 

    int compare = comparator.compare(value, node.value);
    if (compare == 0) {
      node.value = value;
    } else if( compare &gt; 0) { 
      insert(value, node.right, node, true);
    } else {
      insert(value, node.left, node, false);
    }
  }

  public boolean contains(T value) { return contains(value, root); }

  private boolean contains(T value, Node node) {
    if (node == null) return false;
    int compare = comparator.compare(value, node.value);
    if (compare == 0) return true;
    if (compare &gt; 0 ) return contains(value, node.right);
    return contains(value, node.left);
  }

  public void delete(T value) { delete(value, root); }

  private void delete(T value, Node node) {
    if (node == null) return ;
    int compare = comparator.compare(value, node.value);
    if(compare == 0) {
      deleteNode(node);
    } else if (compare &gt; 0) {
      delete(value, node.right);
    } else {
      delete(value, node.left);
    }
  }

  private void deleteNode(Node node) {
    Node eNode, tempNode;

    if (node.left == null &amp;&amp; node.right == null) {
      if (node.parent == null) {
        root = null;
      } else if (node.parent.right == node) {
        node.parent.right = null;
      } else if (node.parent.left == node) {
        node.parent.left = null;
      }
      return ;
    }

    if (node.left != null) {
      tempNode = node.left;
      for (eNode = node.left; eNode != null; eNode = eNode.right) {
        tempNode = eNode;
      }
      node.value = tempNode.value;

      if (node.left.right != null) {
        tempNode.parent.right = tempNode.left;
      } else {
        tempNode.parent.left = tempNode.left;
      }

      if (tempNode.left != null) tempNode.left.parent = tempNode.parent;

      return;
    }

    if (node.right == null) return;

    tempNode = node.right;

    node.value = tempNode.value;

    node.right = tempNode.right;
    if (node.right != null) node.right.parent = node;

    node.left = tempNode.left;
    if (node.left != null) node.left.parent = node;
  }

  class Node {

    T value;

    Node parent;

    Node left;

    Node right;

    Node(T value, Node parent) {
      this.value = value;
      this.parent = parent;
    }

  }

}</pre><p>và code sử dụng:</p><pre class="crayon-plain-tag">Comparator&lt;Integer&gt; comparator = new Comparator&lt;Integer&gt;() {
      public int compare(Integer value1, Integer value2) {
        return value1 - value2;
      }
    };

    BTree&lt;Integer&gt; tree = new BTree&lt;Integer&gt;(comparator);
    tree.insert(2);
    tree.insert(4);
    tree.insert(1);
    tree.insert(-5);
    tree.insert(3);
    tree.insert(7);
    tree.insert(10);
    tree.insert(6);
    tree.insert(-2);
    tree.insert(8);

    System.out.println("contains 8: "+tree.contains(8));
    System.out.println("contains 2: "+tree.contains(2));

    System.out.println( "contains 3: "+tree.contains(3));
    tree.delete(3);
    System.out.println( "contains 3:" +tree.contains(3));</pre><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3160</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Techmaster đào tạo lập trình viên ngắn hạn</title>
		<link>http://techmaster.vn/?p=3153</link>
		<comments>http://techmaster.vn/?p=3153#comments</comments>
		<pubDate>Sun, 02 Jun 2013 05:34:11 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[TechMaster]]></category>
		<category><![CDATA[Tuyển dụng]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3153</guid>
		<description><![CDATA[Thành lập năm 2011 với mục tiêu đào tạo lập trình viên di động Apple iOS, Android, Windows Phone và tổ chức khóa đào tạo chuyên biệt công nghệ Microsoft đến nay Techmaster đã đào tạo thành công kỹ năng<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3153">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>Thành lập năm 2011 với mục tiêu đào tạo lập trình viên di động Apple iOS, Android, Windows Phone và tổ chức khóa đào tạo chuyên biệt công nghệ Microsoft đến nay Techmaster đã đào tạo thành công kỹ năng lập trình cho hơn 150 lập trình viên. Hiện nay nhu cầu tuyển dụng lập trình viên làm được việc ngày một tăng mạnh. Các công ty tuyển dụng không còn quan tâm đến bằng cấp của người xin việc mà chỉ quan tâm kinh nghiệm làm việc, ứng dụng &#8211; dự án mà ứng viên trực tiếp tham gia trong thời gian đủ dài. Đáng tiếc là số lượng sinh viên CNTT ra trường  có bằng cử nhân, thạc sỹ ngày một nhiều, nhưng lại không lập trình tốt theo yêu cầu nhà tuyển dụng.</span></h1>
<p>Khắc phục tình trạng này, Techmaster đào tạo lập trình viên ngắn hạn trong vòng 12 tháng &#8211; 18 tháng cho đối tượng là sinh viên CNTT năm đầu, các ngành kỹ thuật khác CNTT, học sinh tốt nghiệp cấp 3 có năng khiếu Toán, Lý, Hóa để trở thành lập trình viên chuyên nghiệp. Chúng tôi định nghĩa lập trình viên chuyên nghiệp là người viết phần mềm toàn thời gian và tạo sản phẩm phần mềm &#8211; dịch vụ phần mềm thực sự, kiếm sống  tốt ổn định từ nghề này chứ không phải là người chỉ có bằng cấp CNTT. Techmaster vẫn đánh giá cao những sinh viên CNTT  bảo vệ dự án thành công xuất sắc tại các trường đại học, Aptech, NIIT&#8230;.</p>
<p><strong>Nội dung chương trình đào tạo sẽ bao gồm:</strong></p>
<ol>
<li><span style="line-height: 12.997159004211426px;">Lập trình Java căn bản đến nâng cao (26 buổi)</span></li>
<li>Lập trình PHP-MySQL căn bản đến nâng cao (20 buổi)</li>
<li>Lập trình Apple iOS căn bản đến nâng cao (30 buổi)</li>
<li>Thực tập làm dự án thật kết hợp di động và web  trong 3 tháng</li>
</ol>
<p>Kỹ năng mềm như làm việc nhóm, thuyết trình, thiết kế sản phẩm, quản lý dự án được đào tạo xen kẽ trực tiếp vào trong các dự án giữa môn học, dự án tốt nghiệp.</p>
<p><strong>Điểm khác biệt trong đào tạo của Techmaster:</strong></p>
<ol>
<li>Giảng viên giỏi, ít nhất 5 năm kinh nghiệm và vẫn đang lập trình dự án phần mềm để kiến thức liên tục cập nhật. Trợ giảng, hướng dẫn thực tập là các trưởng nhóm lập trình tại Techmaster.</li>
<li>Thực hành nhiều và trực tiếp làm việc trên dự án  thật hoặc có tính thực tế cao. Trung tâm miễn phí thời gian thực hành từ thứ 2 đến thứ 6, 9:00 đến 12:00 sáng, 2:15 đến 6:00 chiều.</li>
<li>Đảm bảo việc làm hoặc giới thiệu việc làm ngay cho học viên tốt nghiệp thành công hoặc ngay khi khóa học chưa kết thúc nếu học viên đủ năng lực</li>
<li>Đạo đức, kỷ luật làm việc chuyên nghiệp được thực hiện nghiêm túc ngay trong từng buổi học: làm bài tập đầy đủ, làm việc nhóm và tôn trọng bản quyền chất xám của tập thể</li>
<li>Đào tạo kỹ năng lập trình sâu và chủ yếu, kết hợp thêm đào tạo kỹ năng thiết kế đồ họa, giao diện, trải nghiệm, kiểm thử phần mềm</li>
<li>Tổ chức code camp 5 ngày &#8211; 30 ngày để học viên hình thành nhóm tập giải quyết một vấn đề kỹ thuật thực sự khó</li>
<li>Miễn phí thư viện sách ebook cập nhật nhất để học viên chủ động đọc và tìm hiểu thêm</li>
<li>Thiết bị thực hành luôn nâng cấp mới nhất, hiện đại nhất (máy chủ 16GRAM, thiết bị di động Apple iPad3, iPod 2013, iPhone 5,  Nexus7, Windows Phone 8 Lumia, hệ thống mạng Gigabit)</li>
<li>Không thi lý thuyết chỉ thi đua sản phẩm là bài tập lập trình từng buổi học</li>
<li>Được học lại chỉ phải đóng 1 triệu đồng thay vì phải đóng toàn bộ học phí như ở các trường khác</li>
</ol>
<p><strong>Phương châm: </strong><strong>Đào tạo để học viên tạo ra sản phẩm tốt chứ không cấp phát bằng tràn lan.</strong></p>
<div class="wp-caption alignnone" style="width: 410px"><img alt="" src="http://techmaster.vn/wp-content/uploads/2012/12/TechMasterClass.jpg" width="400" height="239" />
<p class="wp-caption-text">Khóa học nào tại Techmaster cũng luôn thu hút vì học thật &#8211; làm thật</p>
</div>
<div class="wp-caption alignnone" style="width: 470px"><img alt="" src="http://techmaster.vn/wp-content/uploads/2013/05/ThiFTP.jpg" width="460" height="317" />
<p class="wp-caption-text">Code camp thi lập trình nâng cấp thư viện FTP</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3153</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thi lập trình Apple iOS lần 2: porting thư viện D3.js sang thư viện Objective-C</title>
		<link>http://techmaster.vn/?p=3133</link>
		<comments>http://techmaster.vn/?p=3133#comments</comments>
		<pubDate>Thu, 30 May 2013 14:45:24 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[TechMaster]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3133</guid>
		<description><![CDATA[Tiếp nối thành công của cuộc thi lập trình iOS Objective-C số 1, Techmaster tiếp tục mở cuộc thi lập trình thứ 2. Chủ đề của cuộc thi số 2 là &#8220;Porting thư viện D3.js sang thư viện Objective-C và<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3133">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>Tiếp nối thành công của <a href="http://techmaster.vn/?p=3032">cuộc thi lập trình iOS Objective-C số 1</a>, Techmaster tiếp tục mở cuộc thi lập trình thứ 2.</p>
<p>Chủ đề của cuộc thi số 2 là &#8220;Porting thư viện D3.js sang thư viện Objective-C và CoreGraphics&#8221;. Thư viện <a href="http://d3js.org/">D3.js</a> là một thư viện đồ họa nổi tiếng mã nguồn mở JavaScript chuyên dùng để hiện thị động biều đồ, đồ thị, hoạt hình tương tác. Nhiều trang web đã sử dụng D3.js để minh họa dữ liệu thông kế. Tuy nhiên việc hiển thị biểu đồ D3.js trong iOS rất chậm vì phải thông qua trình duyệt Safari nhúng trong UIWebView.</p>
<div class="su-pullquote su-pullquote-style-1 su-pullquote-align-left">Kết thúc cuộc thi lập trình iOS số 1, đã có 2 đội viết thêm được chức năng Folder Copy cho thư viện FTP. Đặc biệt đội giải nhất đã đề xuất phương án copy đa luồng, tăng tốc độ copy, đồng bộ thư mục lên nhiều lần.</div>
<p>Để tăng tốc độ hiển thị, chúng ta cần phải viết lại thư viện D3.js sử dụng Objective-C và CoreGraphics. Điểm khó là ngôn ngữ JavaScript hỗ trợ DOM, DOM selection, sửa động thuộc tính DOM rất mạnh mẽ, ngược lại Objective-C  mới hỗ trợ KVO (Key Value Observing- để quan sát giá trị của thuộc tính) còn việc cập nhật lên màn hình thì lập trình viên phải tự lo.</p>
<p>Việc porting yêu cầu lập trình phải hiểu sâu cả thư viện JavaScript và tận dụng hết khả năng vẽ đồ họa 2D trên iOS.</p>
<p><strong>Thời gian cuộc thi từ ngày 30/5/2013 đến 4/7/2013. Giá trị giải thưởng 5,000,000 VND (năm triệu đồng Việt nam). Đối tượng: mọi học viên của tất cả các khóa học Apple iOS tại Techmaster đều có thể tham dự dạng cá nhân hoặc nhóm tối đa 4 người.</strong></p>
<p>Một số hình ảnh đồ thị sử dụng D3.js<br />
<img class="alignleft" alt="Thi lập trình Apple iOS" src="http://trends.truliablog.com/vis/metro-movers/blog-img-big.png" width="610" height="406" /><img class="alignleft" alt="" src="http://d3js.org/ex/flight-calendar.png" width="220" height="180" /><img class="alignnone" alt="" src="http://d3js.org/ex/hn.png" width="226" height="180" /><img class="alignleft" alt="" src="http://d3js.org/ex/bubble.png" width="220" height="180" /><img class="alignleft" alt="" src="http://d3js.org/ex/force.png" width="226" height="180" /></p>
<div id="attachment_3137" class="wp-caption alignnone" style="width: 470px"><a href="http://techmaster.vn/wp-content/uploads/2013/05/ThiFTP.jpg"><img src="http://techmaster.vn/wp-content/uploads/2013/05/ThiFTP.jpg" alt="Các thí sinh đang kiểm thử tốc độ ứng dụng của mình" width="460" height="317" class="size-full wp-image-3137" /></a>
<p class="wp-caption-text">Các thí sinh đang kiểm thử tốc độ ứng dụng của mình</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3133</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FSoft HCM tuyển 100 Senior Java Developer</title>
		<link>http://techmaster.vn/?p=3130</link>
		<comments>http://techmaster.vn/?p=3130#comments</comments>
		<pubDate>Thu, 30 May 2013 05:17:37 +0000</pubDate>
		<dc:creator>minhcuong</dc:creator>
				<category><![CDATA[Tuyển dụng]]></category>

		<guid isPermaLink="false">http://techmaster.vn/?p=3130</guid>
		<description><![CDATA[FSoft HCM tuyển 100 Senior Java Developer http://fpt-software.com/About%20Us/Company%20Overview/default.aspx Summary of Position (if any) A big chance for those who want to challenge in projects with US Customer &#38; experience an onsite-trip in the US. Please refer to the below request<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://techmaster.vn/?p=3130">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>FSoft HCM tuyển 100 Senior Java Developer</p>
<p><a href="http://fpt-software.com/About%20Us/Company%20Overview/default.aspx">http://fpt-software.com/About%20Us/Company%20Overview/default.aspx</a><br />
Summary of Position (if any)</p>
<p><img class="alignleft" alt="tuyển Java Developer" src="http://fpt-software.com/cache/images/galvq9ifghwg0skocs00www0coos0so/Logo1.jpg" width="144" height="42" />A big chance for those who want to challenge in projects with US Customer &amp; experience an onsite-trip in the US. Please refer to the below request for more information:<br />
<strong>Job descriptions</strong><br />
- Study customer’s requirement and frameworks<br />
- Estimate &amp; plan detail tasks base upon the requirement from customer.<br />
- Code and unit test the core functions of applications, Coding review.<br />
- Support developers to solve technical issues &amp; problems.<br />
- Be ready for working in US at least 3 months.</p>
<div class="su-pullquote su-pullquote-style-1 su-pullquote-align-left"><a href="http://techmaster.vn/?page_id=2137">Khóa đào tạo lập trình viên Java từ nhập môn đến nâng cao</a></div>
<p><strong>Job qualifications</strong><br />
- At least one years (03) working with web application development using Java/J2EE,<br />
- Experienced Strut/Spring/Hebernate frameworks,<br />
- Experienced in OOP design, UML<br />
- Good in studying and understanding the existing system architecture,<br />
- Good at writing, reading &amp; speaking in English,<br />
- Bachelor degree in IT.<br />
<strong>Benefits</strong><br />
- Successful candidates will be offered a friendly, motivated working environment,<br />
- Negotiable salary,<br />
- All benefit based on Labor Law &amp; FPT Software.</p>
<p><strong>Contact Person</strong><br />
Interested candidates should submit a completed Curriculum Viate/ Résume and Cover Letter (if any) to:<br />
Resource Assurance Incubation Center,<br />
FPT Software Hochiminh Co.Ltd<br />
Contact Person : Ms. Đặng Trần Khánh Chi_0909502305<br />
Phone Number : (+84 8) 3 7362323 – 54051<br />
Email for applications : <a href="mailto:chidtk@fsoft.com.vn">chidtk@fsoft.com.vn</a></p>
<p>FPT Software – Where talent meets</p>
]]></content:encoded>
			<wfw:commentRss>http://techmaster.vn/?feed=rss2&#038;p=3130</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
