Facebook Places

  เป็นบริการ location-based service (LBS) คือผู้ใข้ สามารถเช็คอิน ว่าอยู่ตำแหน่งไหน และคุณสามารถดูว่าตอนนี้เพื่อนของคุณไปที่ไหนได้ ซึ่งบริการนี้จะเหมือนกับของ Foursquare และ Gowalla

Posted in Uncategorized | Leave a comment

C# Null Coalescing

   เราสามารถตรวจสอบว่า object เป็น null หรือไม่โดยใช้

string stringInput = null;
string val;
if (stringInput == null)
{
      val = "Default value";
}
else
{
        val = stringInput;
}

วิธีที่ 2 ทำได้โดย

string val =(stringInput == null)?"Default value":stringInput;

     ซึ่งเหมือนกับ code แรก คือ ถ้า stringInput == null เป็นจริง ก็จะคืนค่า Default value ให้ val แต่ถ้าไม่ใช้ null ก็จะคืนค่า stringInput ให้ val

    เนื่องจากการตรวจสอบค่า null ใช้บ่อย C# ซึ่งสร้างตัวดำเนินการ(operation) Coalescing เพื่อรวมคำสั่งการตรวจสอบ null ดังนี้

  string val = stringInput ?? "Default value";
Posted in C# | Leave a comment

AppUp Center

   AppUp Center เป็นที่ขายโปรแกรมของ Intel ซึ่งสามารถขายได้ทุก platform ทั้ง PC, mobile คล้ายกับ App Store(ของ Apple), Android Market(ของ google) จริงๆ Sun ก็ทำเหมือนกัน Java Store ไง แต่ตอนนี้ไม่มีแม้เงา

Posted in Uncategorized | Leave a comment

C# Indexer

  Indexer ของ C# เป็นการยอมให้ instance ของ class สามารถเข้าถึงได้เป็น index คือเหมือนกับ array

class TempRecord
{
     private string[] data = new string[10];

     public string this[int i]
     {
         get { return data[i]; }
         set { data[i] = value; }
      }
}

static void Main(string[] args)
{
      TempRecord t = new TempRecord();
      t[0] = "t0";
      t[1] = "t1";
}

จาก code เห็นได้ว่า object t เป็น instance ของ TempRecord ซึ่งสามารถใช้ t[0], t[1] ได้เหมือน array

Posted in Uncategorized | Leave a comment

puzzler Java #2

คำถาม

public static void main(String[] args) {
    check(2, 2);
    check(2000, 2000);
}
public static void check(Integer a, Integer b){
    System.out.print((a==b)+" ");
}

A) true true
B) false false
C) false true
D) true false

คำตอบที่ถูก D)
      อันนี้เคยเจอตอนแรกก็งง เหตุผลคือถ้า autoboxing ไม่เกิน 1 byte (-128 และ 127) หลังจาก autoboxing แล้ว object จะเป็น object เดียวกัน
      ดังนั้นการเปรียบเทียบ object ใช้ equals จะดีทีสุด

Posted in java | Leave a comment

ไม่ประทับใจ NoSQL

      เป็นปกติของวงการคอมพิวเตอร์ ที่จะมีคนออกมาแสดงความคิดไม่เห็นด้วย(หรือด่านั้นเอง) โดนมาทุกอัน เช่น Cloud, rails, microsoft คราวนี้เป็นทีของ NoSQL
      ซึ่งพอดีไปเจอบทความที่บอกว่า NoSQL ไม่ดีจึงมำว่าฝาก(สามารถอ่านได้ที่นี้) เขาบอกว่าแปลกใจที่ web ใหญ่อย่าง
Google, Facebook ,Amazon และ Twitter (อันนี้แถม เค้าไม่ได้บอก) ใช้ NoSQL ทั้งๆ ที่หมือน กลับไปใช้ file ในการประมวลผล ซึ่งเป็นสิ่งที่เคยทำกันว่าแล้วในปี 2003
     สำหรับผมก็น่าเห็นใจทั้งคู่นะครับ ถ้าในมุมมองของ twitter ก็ข้อมูลเค้าใหญ่ หลาย PB
     ส่วนเราเป็นผู้ใช้ก็ต้องศึกษาทั้ง 2 ด้านจะได้เลือกใช้ได้ถูก

Posted in database | Leave a comment

หน้าตาใหม่ของ eclipse e4

  eclipse เป็น IDE ที่ได้รับความนิยม ปัจจุบันเวอร์ชัน 3.6 ซึ่งในเวอร์ชันตอนไปจะเป็น eclipse e4 ซึ่งตอนนี้ออก Early Adopter Release ให้เรามาลองใช้ก่อน ผมเลยเอามาลอง สิ่งแรกที่เห็น คือหน้าตาใหม่สวยขึ้นมาก
หน้าแรก

ภายในก็ดูดี

Posted in Uncategorized | Leave a comment

NoSQL

    NoSQL เป็น database ที่ไม่ใช้ relation database เนื่องจากช้า webใหญ่ที่เรารู้จักกันดีคือ facebook, twitter หันมาใช้ NoSQL database เนื่องจาก มีขนาดข้อมูลมาก ทำให้ใช้เกิดปัญหาหากใช้ relation database
    google เองก็ออกบริการ BigTable ส่วน Amazon ก็ออกบริการ Amazon SimpleDB ที่เป็นบริการสำหรับใช้ NoSQL
    ส่วน software NoSQL ที่น่าสนใจก็จะมี Cassandra (ทั้ง facebook และ twitter)

Posted in database | Leave a comment

JAX-RS เพื่อทำ RESTful web service ของ Java

  RESTful web service ในทางทฤษฎีนั้นจะยุ่งยาก แต่จริงๆก็คือใช้ URI(Uniform Resource Identifier) ในการสั่งงานนั้นเอง ข้อดีที่ผมเห็นคือ ไม่ต้องมี WSDL ทำให้รับส่งข้อมูลกันได้ง่ายขึ้น แต่ข้อเสียคือยากต่อการแก้ไข
   แต่วันนี้เราไม่เน้นหนักทฤษฎีมากนัก จึงขอพูดถึง JAX-RS เป็นเครื่องมือที่ใช้พัฒนา RESTful web service โดยมี Jersey เป็นตัวที่ Sun พัฒนา
   สำหรับการพัฒนา RESTful web service ด้วย jersey นั้นทำได้โดย download lib จาก web ของ jersey

สร้าง class Hello ดังนี้

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/hello")
public class Hello {

    @GET
    public String sayHello(){
       return "Hello World";
    } 

}

โดย class Hello จะมี method sayHello ซึ่งจะ return คำว่า Hello World

สามารถ run โดยเรียกไปที่ http://localhost:8080/server/rest/hello 

จะได้ผลลัพธ์ดังนี้

 

Posted in java | Leave a comment

Named Parameters & Default Parameters

Visual Studio 2010 ออกมานานแล้วตอนนี้ถึงเวลา review โดยเริ่มจาก C#4.0 มี feature ใหม่ คือ Named Parameter

public static string TestMethod(int id, string name="default")
{
    return string.Format("id: {0}, name: {1}",id,name);
}

static void Main(string[] args)
{
    string data = TestMethod(name: "test", id: 2);
   Console.WriteLine(data);
}

   เห็นได้ว่า TestMethod มี parameter 2 ตัวคือ id และ name ซึ่งเราสามารถเรียก TestMethod ได้ โดยระบุชื่อ parameter เช่น TestMethod(name: “test”, id : 2)
   นอกจากนั้นยังสามารถกำหนด default value ให้ parameter ได้ด้วย
   หลังจาก run program นี้จะแสดงข้อความ id: 2, name: test

Posted in Uncategorized | Leave a comment