Sunday, December 23, 2012

[Google Android SDK]-Tìm hiểu Activity

1. Activity là gì?
Là thành phần tối quan trọng của bất kỳ một ứng dụng Android nào. Thuật ngữ Activity chỉ một việc mà người dùng có thể thực hiện trong một ứng dụng Android. Do gần như mọi activity đều tương tác với người dùng, lớp Activity đảm nhận việc tạo ra một cửa sổ (window) để người lập trình đặt lên đó một giao diện UI với setContentView(View). Một activity có thể mang nhiều dạng khác nhau: Một cửa sổ toàn màn hình (full screen window), một cửa sổ floating (với windowsIsFloating) hay nằm lồng bên trong 1 activity khác (với ActivityGroup).
Để  có  thể  sử  dụng  trong  ứng  dụng,  mọi  activity  đều  phải  được  khai  báo  trong  tệp 
AndroidManifest.xml với một thẻ <activity> như ví dụ sau: 

Tuesday, December 11, 2012

Handling huge data using ZK


Overview

When your database contains a large amount of data you do not want to load all these items into memory. ZK provides many methods for handling large amounts of data including:

  • Live data scrolling
  • Load on demand Trees
  • Paging components

One of the most convenient ways in which to handle a large amount of data is using a paging mechanism.

Introducing huge data with paging

However, normally the paging mechanism will load all the data into the grid via the model. This Small Talk guides you through a method of handling large amounts (in this case 1,000,000 database entries) of data using a small memory footprint.

Monday, December 10, 2012

Dependency Injection với Abstract Factory


Bài viết này, chúng ta cùng tìm hiểu ưu và nhược điểm của Dependency Injection (DI - “tiêm ” phụ thuộc) với một số cách khác nhau dùng Abstract Factory design pattern. Đặt trong ngữ cảnh của một số vấn đề như: Tạo stateful objects với tham số, điều khiển kiểm tra exceptions khi tạo object, và gắn động các objects. Mà các IoC frameworks, như Spring IoC container, PicoContainer và Guice, không đưa ra giải pháp tốt nhất cho các trường hợp này.

Abstract Factory Design Pattern cho Dependency Injection

GoF* Abstract Factory design pattern được tóm gọn theo 2 bước:
Một factory interface thay thế cho một class abstract factory (Optional),
Mọi factory method chịu trách nhiệm tạo một object và tiêm phụ thuộc vào nó.
Xét ví dụ đơn giản sau:

Khám phá Java: biến static trong inner class


Hôm nay tình cờ đọc một bài về một lỗi khó hiểu của Java. Có thể nó sẽ làm bạn đau đầu đây, cùng tôi khám phá nhé.
Click vô hình để phóng to


Ta có thể nhìn thấy 2 biến được khai báo, nhưng khác kiểu. Theo bạn thì ta đang gặp vấn đề gì vậy

Gợi ý nhé:
1.Nó sẽ đúng khi ta khai báo Object là String, nhưng array thì không.
2. Bạn sẽ bị báo lỗi sau khi dùng Eclipse:
The field OBJECT_CONST cannot be declared static; static fields can only be declared in static or top level types

Báo kiểu này chỉ làm ta rối mắt thêm thôi, vì biến integer dùng được mà.

Mặt trái của Frameworks

Từ Framework đã quá thông dụng. Nhờ nó mà số dòng code của chúng ta giảm đi thấy rỏ. Và các ứng dụng ngày nay, còn có thêm một yêu cầu về frameworks dùng. Tuy nhiên, có một điều mà hầu như ai cũng biết: mặt trái của nó.


Portlet và Spring Portlet MVC


Và khi portal ra đời. Không theo chuẩn xây dựng website đang có, nó có thể thấy nhiều ứng dụng chỉ trong một trang portal. Không những thế, portal còn phục vụ cho sở thích, quyền hạn của người dùng. Nghĩa là mỗi người dùng sẽ có một phiên bản khác, được thiết kế cho riêng họ.

Lịch sử hình thành Portlet


“Thinks outsite the box” – Hãy suy nghĩ ra khỏi giới hạn

Mặc cho lời khuyên này, chúng ta vẫn thường xuyên “suy nghĩ trong giới hạn”. Hollywood Square, bưu điện, niên giám của các trường đại học, game sodoku là những thứ mà ta có thể thấy được về vấn đề “suy nghĩ trong giới hạn”. Vậy chúng ta mong chờ gì về việc này khi mà chúng ta thường xuyên đối diện với các giới hạn này?

Ứng dụng HelloWorld Spring Portlet MVC Framework


Cách tốt nhất để học một framework mới là viết một ứng dụng HelloWorld dùng nó. Tôi xin bắt đầu theo cách này, viết một HelloWorld portlet dùng Spring Portlet MVC Framework. Để đơn giản, ứng dụng HelloWorld của tôi chỉ có mode View. Bất cứ khi nào người dùng truy cập đến HelloWorld portlet, chúng ta chỉ hiển thị trang View.jsp.

portlet.xml


Hãy bắt đầu với file portlet.xml trong webapp/WEB-INF/ như sau:

Hãy là một good web developer


Bạn là một nhà phát triển web (Web Developer), và bạn muốn có một công việc tốt hơn. 5 điều sau đây đều có thể có thể giúp bạn nhiều khi nói chuyện với nhà tuyển dụng - và dĩ nhiên không cần nhiều kinh nghiệm đâu.

5. Biết và nhận xét về các dịch vụ web
Bạn dùng Flickr để chi sẽ hình ảnh, có một account Facebook và dùng thường xuyên. Và bạn có một chút tham vọng. Không cần viết code nhiều, bạn đã có sẵn một ý tưởng tốt hơn các dịch vụ đã có — nó sẽ như thế nào, một lý do đơn giản mà bạn cho rằng người ta sẽ dùng nó, và kết hợp tất cả.

5 Laptops dành cho Developers


Biết rõ ràng rằng sự lựa chọn của cho lập trình web chắc chắn là một máy desktop 1 hoặc 2 nhân, màn hình độ phân giải cao. Nhưng có thể vì một lý do gì đó mà bạn cần cho mình một chiếc laptop, tại sao không nhỉ? Trong trường hợp này, bạn sẽ phải tậu cho mình một chiếc laptop đúng với yêu cầu về card màn hình. Dĩ nhiên, màn hình cũng phải có độ phân giải thích hợp. Danh sách sau đây là một vài ví dụ về những chiếc laptops phù hợp với công việc này, nó sẽ đem lại hiệu quả cao nhất.

Sony Vaio VGN-AR590E



Sony sở trường trong việc sản xuất ra những chiếc laptops rất đẹp từ những chất liệu tốt, nhưng có giá khá cao. Cái này cũng không ngoại lệ, nhưng có hình dáng nhìn rất ấn tượng. To và khá nặng, nhưng không mấy ngạc nhiên vì nó có màn hình 17-inch với độ phân giải tự nhiên 1920×1200. Card đồ hoạ 8600M GPU của Nvidia thì không chê vào đâu được. Cho dù cần hay không, bạn cũng có một ổ Blu-Ray, góp phần không nhỏ vào cái giá của chiếc máy tính này. Tại Việt Nam, Vaio VGN-AR590E có giá bán $3.050.

Dojo JSON-RPC + Java


Dojo hỗ trợ JSON-RPC, là tính năng mở rộng của JSON dùng để triệu gọi phương thức từ xa. JSON-RPC có thể dùng như một phương tiện cho các ứng dụng cần giao tiếp với servers. Ví dụ sau sẽ chỉ ra cách tương tác với Java trên server và gọi một phương thức Java từ JavaScript dùng Dojo RPC services. Nó cũng cho thấy việc sử dụng JSON-RPC dễ dàng hơn khi dùng Java.

Đầu tiên, ta tạo một servlet và viết phương thức POST sẽ đọc nội dung của request:
public class JsonRPC extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
                throws ServletException, IOException {
         String content = streamToString(req.getInputStream());

Ta dùng json.org’s Java library để phân tích và lấy ra các thuộc tính từ JSON object. Một JSON-RPC object gồm có 3 thuộc tính được định nghĩa để gọi: method, params, và id. Như sau:


Popular Posts