ข้ามไปที่เนื้อหาหลัก

EJB development ด้วย Glassfish Server -- Part 2 ( Create a project )

สร้าง project สำหรับ EJB module

สร้าง EJB project ชื่อว่า titan-ejb เลือก Target Runtime : Glassfish


คลิกขวาที่ Project

ติ๊ก JPA facet, และ configure JPA facet ให้ใช้ connection profile ที่สร้างไว้แล้ว


>>>>>>>>>>>>>>>>>>> วิธีสร้าง JPA Entity:

- คลิกขวาที่ Project Explorer
- New->Class ชื่อ com.titan.domain.Cabin
implement java.io.Serializable
[ Serializable คือ สามารถ convert class to String แล้วส่งไปที่ network ได้ ]

วิธีสร้าง implement class บน eclipse


มันก็จะสร้างฟังก์ชั่นโบ๋ๆ มาให้
package com.titan.domain;

import java.io.Serializable;

public class Cabin implements Serializable {

}


- Add the fields
static final long serialVersionUID = 1L;

private int id;
private String name;
private int deckLevel;
private int shipId;
private int bedCount;


- สร้าง getters and setters สำหรับ id, name, deckLevel, shipId, and bedCount.
[ ใน eclipse ง่ายมาก ไปที่ Source > Generate setters and getters ( หรือ คลิกขวาตรงที่เขียนโค้ด Source > Generate setters and getters ได้เหมือนกัน ) แล้วติ๊กเอาเลย ]

ใส่ @Entity annotation ที่ class และ @Id annotation ที่ id ( ไม่ต้องใส่ @GeneratedValue ที่นี่ )
[ มันก็จะ Error อ่ะนะ ก็คลิกขวา แล้ว ก็ import javax.persistence.Entity กับ javax.persistence.Id ซะ ( หรือ คลิกขวาที่เขียนโค้ด Source > Organize Import ก็ได้ ) ]

NOTE :
- Entity ต้องมี constructor ที่ไม่ส่ง parameter เสมอ ไม่งั้น deploy ไม่ผ่าน
- ถ้า attribute เรา ไม่ใช่ primitive type ต้องใส่ @Temporal เช่น

@Temporal(TemporalType.TIME)
private Date deliveryDate;

- ตัวอย่าง enum
 public enum BidStatus {
PENDING, ACCEPTED, REJECTED
}

@Enumerated
private BidStatus status;


เวลาใช้ก็ bid.setStatus(Bid.BidStatus.ACCEPTED);
ดูเพิ่มเติมได้ที่นี่


- สร้าง persistence.xml สำหรับ data source ไว้ใน META-INF
นี่บอกว่า ให้ drop table ทุกครั้งที่ redeploy

NOTE : name="titan" นี้จะต้องไปตรงกับ @PersistenceContext(unitName="titan") ใน TravelAgentRemote.java
<persistence-unit name="titan">
<jta-data-source>jdbc/__localDS</jta-data-source>
<properties>
<!-- Remove if you want to save the DB between redeploys -->
<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
</properties>
</persistence-unit>

แล้วก็บอกให้มัน "Discover annotated classes automatically" มันจะได้หา class ที่เป็นโดเมนให้อัตโนมัติ

>>>>>>>>>>>>>>>>>>> วิธีสร้าง stateless "session bean" :
[ จริงๆ สร้างเป็น new > interface มาอันนึง แล้ว new > class มาอันนึงก็ได้ ]

ถ้ากด Next > มันจะใส่ MappedName ได้

มันจะสร้าง package com.titan.travelagent
ในนั้นจะมี
- Remote interface, Java interface class ชื่อ TravelAgentRemote.java

@Remote
public interface TravelAgentRemote {
public void createCabin( Cabin cabin ); //
public Cabin findCabin( int id ); //
}


- implementation, Java class ธรรมดา ชื่อ TravelAgent.java

NOTE : ejb/TravelAgentJNDI ต้องไปตรงกับ ใน client
@Stateless( mappedName="ejb/TravelAgentJNDI" )
public class TravelAgent implements TravelAgentRemote {
@PersistenceContext(unitName="titan") //
private EntityManager manager; //
public void createCabin( Cabin cabin ) { //
manager.persist( cabin ); //
} //
public Cabin findCabin( int pKey ) { //
return manager.find( Cabin.class, pKey );//
}//
}


ปล. บรรทัดที่ comment ไว้ก็พิมพ์เพิ่มเข้าไปนะ แล้วก็ import โน่นนี่ให้ครบด้วย อย่าให้มัน error

สร้าง new project สำหรับ client ======================================
สำหรับ test new stateless session bean:

- สร้าง "Java project" ชื่อ titan-client
- เพิ่ม class Client ไว้ใน package com.titan.clients และใส่ client code ตามนี้:

public class Client {
public static void main(String[] args) {
try {
Context jndiContext = new InitialContext();
System.out.println( "Looking up ejb/TravelAgentJNDI" );
Object object = jndiContext.lookup( "ejb/TravelAgentJNDI" );
TravelAgentRemote travelAgent = (TravelAgentRemote)object;

Cabin cabin_1 = new Cabin( );
cabin_1.setId(1);
cabin_1.setName("Master Suite");
cabin_1.setDeckLevel(1);
cabin_1.setShipId(1);
cabin_1.setBedCount(3);
travelAgent.createCabin(cabin_1);

Cabin cabin_2 = travelAgent.findCabin(1);
System.out.println(cabin_2.getName( ));
System.out.println(cabin_2.getDeckLevel( ));
System.out.println(cabin_2.getShipId( ));
System.out.println(cabin_2.getBedCount( ));
} catch (javax.naming.NamingException ne){
ne.printStackTrace( );
}
}
}


ยัง error อยู่ ช่างมัน

- เพิ่ม project titan-ejb เป็น required project บน build path
มันจะทำให้ import จาก titan-ejb ได้

ทำตามนี้
Project -> properties


- เพิ่ม ~/glassfish/lib/appserv-rt.jar และ ~/glassfish/lib/javaee.jar เป็น External JARs

( บอก Java ว่าแม้รันใน standalone mode ต้องใช้ Java EE functionality (mainly JNDI)
, set up necessary deployment descriptors (mainly jndi.properties) ทำให้เราคุยกับ server JNDI ถูกตัวเพื่อ reference ไปยัง TravelAgent object )



Deployment ==================================================

คลิกขวาที่ EJB project เลือก Export > EJB JAR file

destination : [your home]/glassfish/domains/domain1/autodeploy/titan.jar และติ๊ก "overwrite existing file"


NOTE : เลือก GlassFish v2 ด้วย ( รูปผิดๆ )


Error ของ Deployment จะอยู่ที่แท็บ Glassfish Log Viewer นะ ( ไม่ใช่ Console )

ถ้าได้อะไรประมาณ " This pool is not registered with the runtime environment "

กลับไปดู persistence.xml ว่า ไอ้เนี่ย


jdbc/__localDS
<jta-data-source>jdbc/__localDS</jta-data-source>

ที่มันชี้ไปที่ derby connection pool น่ะ มันชื่อตรงกันหรือเปล่า



Client execution
คลิกขวาที่ Client class ใน Project Explorer

Run As -> Java Application


TIPS : วิธี debug JNDI

เข้าไป browse JNDI ดู โดย Application Server > JNDI Browsing

จะต้องมีอะไรทำนองนี้อยู่ ejb/TravelAgentJNDI

จัดการ database

วิธีแรก ใช้ Database Development perspective ของ Eclipse

คลิกขวา เลือก Edit ที่ table

เราสามารถ CRUD ได้


วิธีสอง command-line SQL

ใช้ ij Client ที่มากับ Derby


$ export DERBY_HOME="/home/mdailey/glassfish/javadb"
$ sh ~/glassfish/javadb/bin/ij
ij version 10.4
ij> connect 'jdbc:derby://localhost:1527/localDB';
ij> show tables;
...
APP |CABIN |
...
ij> select * from cabin;
...

Association ==================================================


จำไว้ว่า unidirectional ต้องใส่ (cascade={CascadeType.ALL}) เสมอ

ลองเพิ่ม class Phone ลงไปดิ๊
package com.titan.domain;

@Entity
public class Phone implements java.io.Serializable {
static final long serialVersionUID = 1L;
@Id @GeneratedValue
private int id;
private String number;
...

แล้วก็ Class Customer


package com.titan.domain;

@Entity
public class Customer implements java.io.Serializable {
static final long serialVersionUID = 1L;
@Id @GeneratedValue
private int id;
private String lastName;
private String firstName;
@OneToMany(cascade={CascadeType.ALL})
private Collection<Phone&ht; phoneNumbers = new ArrayList<Phone>();

นี่คือ one-to-many unidirectional relationship ( Phone class doesn't know about the Customer class )


ต่อไปให้ Add the getters and setters สำหรับ entities
แล้ว couple method ลง stateless session bean ของคุณซะ:


...
public int createCustomer();
public Collection <Phone> phoneNumbersForCust( int id );

และ implementations ใน bean class


...
public int createCustomer(Customer customer) {
manager.persist( customer );
return customer.getId();
}
public Collection<Phone> phoneNumbersForCust(int id) {
Customer customer = manager.find( Customer.class, id );
Collection<Phone> phoneList = customer.getPhoneNumbers();
// Ensure that the lazy-initialized collection is fetched
phoneList.size();
return phoneList;
}

ตอนนี้ client ของเรา, ให้สร้าง a detached Customer instance, add a Phone instance to it, make it persistent using createCustomer(), then fetch the phone numbers using phoneNumbersForCust()


ถ้ามัน error ประมาณว่า
Could not load class oracle.toplink.essentials.indirection.IndirectList
ให้ add toplink-essentials-agent.jar เข้าไปที่ client

ref : mdailey

ความคิดเห็น

ติดตามบล็อกบนเฟซบุ๊คเพจ

โพสต์ยอดนิยมจากบล็อกนี้

อยู่เหงาๆ เลาไปเที่ยว - เที่ยวเชียงรายด้วยตนเอง โดยไม่มีรถ เช่ารถก็ไม่ได้เช่าน้ะจ้ะ นั่งรถสาธารณะล้วนๆแจร้ ตอนที่หก

ดึกแล้ว


ตลาดชา ที่หลัก กิโลเมตร ที่ 0 ดอยแม่สลอง
ขากลับโรงแรม เขาขับรถพาแวะ ตรงตลาดชา ตรงหลัก กม ที่ 0 เพิ่งเห็นว่าสุสานนายพลต้วน ซีเหวิน กองพล 93 ก็อยู่แถวๆนั้น แต่ป้ายบอกว่า 500 เมตรจากตลาดชา ประกอบกับมองไปเป็นทางขึ้นเขา แล้วก้อค่อนข้างมืดด้วยเลยไม่ได้ไป


หลักกิโลเมตรที่ 0 ดอยแม่สลอง

ตอนอยู่บนรถหลังจากกลับจากตลาดชา ลูกเจ้าของรีสอร์ต ยังถามว่าจะแวะเซเว่นเอาอะไรไหม

แล้วตอนเช้าพรุ่งนี้จะพาไปตลาดเช้า ที่ชาวเขาเอาของมาขาย
ประมาณ 7.00 ก่อนกินข้าวเช้าเวลา 08.30 ใจดีจริงๆ

plan เดิมคือ 7.00 เดินไปไร่ชา 101 จากที่ก่อนมาได้โทรไปถามไร่ชาว่าเปิดเจ็ดโมง
แต่มีแนะนำโดยคนในพื้นที่ให้ไปตลาดเช้า
ยัง LINE ไปบอกเพื่อนที่กทม ว่า อาจจะไม่ได้ไปไร่ชาแล้ว
( แต่หลังจากนี้ก้อมีเรื่องจับพลัดจับผลูให้ได้ไปไร่ชาที่ใหญ่กว่า ไร่ชา101 นั่นก้อคือ ไร่ชาฉุยฟง อดใจไว้เด๋วเล่าให้ฟัง )

บรรยากาศยามเย็นที่ตลาดชาที่ดอยแม่สลอง จังหวัดเชียงราย
พอกลับที่พัก คุณเจ้าของรีสอร์ตถามว่าทานมื้อเย็นมายัง
บังเอิญว่าเลาทานมาแล้ว เลาเลยอุดหนุนโกโก้เย็น 60 THB แทน
มีหนุ่มสาวคู่นึงที่ไปด้วยกัน เขายังไม่ทานมา เขาก้อทานที่โรงแรมนั่นแหละ
หนุ่มนี่ม…

เทคนิคคิดเลขเร็วโดยใช้ วิธีคิด แบบ เวทคณิต ( Vedic Mathematics example )

จากที่สงสัยเรื่อง ลูกคิด ของ จินตคณิต ที่ลองไปค้นดู
ปรากฎว่า เจอ เวทคณิต ซึ่งเขาบอกว่า อยู่ในคัมภีร์พระเวท

ลองอ่านดูแล้ว รู้สึกว่าฝึกสมอง ก็ทำให้คิดเลขเร็วดี
เลยสรุปมาให้ ตามนี้

Tutorial 1

การลบเลข
ALL FROM 9 AND THE LAST FROM 10
ทุกตัวลบจาก 9 และตัวสุดท้ายลบจาก 10

เช่น 1000 - 357 = 643
10,000 - 1,049 = 8951

ถ้า 1,000 - 83 ให้มองว่ามี 0 อยู่ข้างหน้า
เป็น
1,000 - 083 = 917

ฝึกบ่อยๆ ก็คล่อง แล้วก็ไม่ต้องใช้เครื่องคิดเลขด้วย
ลองทำดูสิ
1) 1000 - 777 =
2) 1000 - 283 =
3) 1000 - 505 =
4) 10,000 - 2345 =
5) 10,000 - 9876 =
6) 10,000 - 1011 =
7) 100 - 57 =
8) 1000 - 57 =
9) 10,000 - 321 =
10) 10,000 - 38 =

3,000 - 467 ก็ทำเหมือนกัน โดยลบตัวแรกสุดของ 3,000 ไป 1
จากนั้นก็ทำเหมือนเดิม จะได้ว่า 3,000 - 467 = 2,533

Tutorial 2
VERTICALLY AND CROSSWISE สำหรับตัวเลขที่น้อยกว่าฐานนิดหน่อย

ลอง 88x98

88 น้อยกว่า 100 อยู่ 12
98 น้อยกว่า 100 อยู่ 2
12x2 = 24
88-2 หรือ 98-12 ได้ 86
ดังนั้นตอบ 8,624

ดูอีกตัวอย่าง
หรือ

ลองทำนี่ดู
1) 87 x 98 =
2) 88 x 97 =
3) 77 x 98 =
4) 93 x 96 =
5) 94 x 9…

อยู่เหงาๆ เลาไปเที่ยว - ร้านเลิศรส บ้านไม้หอมรีสอร์ต ตลาดเท่งเถิดเทิง พ ฟาร์ม เมล่อน จังหวัดนครนายก

ปิ้งปัง ครีมชีส โฮมเมด ชีสสีรุ้งยืดในตลาดเท่ง แม่ค้า นั่ลลั้ก มากจย้า สนนราคา ชิ้นละ 65 บาท มีอีกร้านคือ ร้านขายน้ำแตงโมปั่นที่เสริฟมากับลูกแตงโมเลย แต่อันนั้นไม่ได้ถ่ายมา เสียดาย ><~
เพื่อนที่ทำงานจัดงานแต่งงานที่จังหวัดนครนายก เลาเลยได้โอกาสไป เขาจัดที่บ้านฝ่ายผู้หญิงเลย เป็นโต๊ะจีน จอดรถในสวน
เป็นครั้งแรกที่ข้าพเจ้าได้ไปร่วมงานแต่งงานที่ต่างจังหวัด หลังจากเคยไปร่วมงานบวชเพื่อนที่จังหวัดศรีสะเกษ เมื่อนานมาแล้ว 
หนึ่งในความฝันลมๆแล้งๆ ของข้าพเจ้า คือ การจัดงานแต่งงาน ที่บ้าน จะได้เพิ่มความเป็นของเลาไปได้นิดหน่อย จากที่มีคนเคยบอกว่า งานแต่งงานนี่ไม่ใช่ของเลาเลยซักอย่าง ชุดแต่งงานก้อไม่ใช่ของเลา ที่จัดงานก้อไม่ใช่ของเลา รูป prewedding ก้อไปถ่ายในที่ที่ไม่ใช่ของเลาซักอย่าง
มานี่เลยรู้ว่า ตลาดโรงเกลือ มีหลายจังหวัด ที่จังหวัดนครนายกเป็นอีกที่ที่มีตลาดโรงเกลือ
ร้านเลิศรส น่าจะร้านดังของพื้นที่ด้วย ขนาดไปสองโมงแล้ว คนยังกินเยอะอยู่เลย
อ่อส่วน หอยทอด ผัดไท ปลาลวกจิ้ม หมูกรอบ เจ้าดัง แนะนำโดย wongnai 
บ้านไม้หอมรีสอร์ต 

บ้านไม้หอมรีสอร์ต จังหวัดนครนายก บ้านสีสันสวยงามมาก  หน้าที่พักมีเซเว่น ใ…

วิธีใช้ ย่อๆ เกี่ยวกับ Matrix กับ Vector ( มาจาก CASIO-991MS manual )

Matrix

เปลี่ยน mode เป็น Matrix
กด mode ไปเรื่อยๆ จนเจอ MAT

วิธีใส่ Matrix เข้าไป
จิ้ม MAT ( ตรงเลข 4 )
DIM -- สร้าง Matrix ใหม่ - เราจะสร้าง Matrix เก็บไว้ในตัวแปรได้สามตัว คือ A, B, C ( Trick : ตอนใส่ค่า a11, a12, .. ถ้าอยากข้ามไปให้กดลูกศร ขึ้น ลง ซ้าย ขวา ได้เลย )
รุ่นนี้ มันใส่ได้มากสุด 3x3 นะ ถ้าใส่ 4 ไป มันจะ dimension error
EDIT -- แก้ไข Matrix ที่สร้างไว้แล้ว
MAT -- เอา Matrix ออกมาใช้งาน

Add : MatA + MatB
Subtract : MatA - MatB
Multiply with scalar : MatA x 3 หรือ 3 x MatA
Multiply : MatA x MatB
Det : Det MatA
Transpost : Trn MatA
Inverse :MatA -1
Absolute Value of Each Element : Abs MatA

ผลลัพธ์มันจะได้เป็น
MatAns11
ซึ่งเราสามารถกด ซ้าย ขวา ขึ้นลงได้เหมือนเลื่อนดู Element จาก Matrix เลย

Vector
เปลี่ยน mode เป็น Vector
กด mode ไปเรื่อยๆ จนเจอ VCT

วิธีใส่ Vector เข้าไป
จิ้ม VCT ( ตรงเลข 5 )
DIM -- สร้าง Vector ใหม่ - เราจะสร้าง Vector เก็บไว้ในตัวแปรได้สามตัว คือ A, B, C ( Trick : ตอนใส่ค่า a1, a2, .. ถ้าอยากข้ามไปให้กดลูกศร ซ้าย ขวา ได้เลย )
EDIT -- แก้ไข Vector ที่สร้างไว้แล้ว
VCT -- เอา Vector ออกม…

อยู่เหงาๆ เราไปเที่ยว - วัดระฆังโฆสิตาราม

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่ ลิงก์นี้ นะครับ



จากที่ คราวก่อน ไปวัดอรุณฯ เขามีให้ล่องเรือไปวัดระฆัง เลยเดาๆ ได้ว่า วัดอยู่ไม่ไกล

ประกอบกับได้ยินเรื่องของ สมเด็จพระพุฒาจารย์ (โต พรหมรังสี) มานาน



วันนี้เลยลองไปสักหน่อย

นั่งเรือธงสีสัม ( 13 บาทตลอดสาย ) ไปลงท่าช้าง

มองจากท่าช้าง ตรงกลาง เป็น สมาคม พุทธศาสนา อะไรซักอย่างทางซ้ายของรูป คือ พระอุโบสถ วัดระฆัง
แล้วนั่งเรือข้ามฟาก ( 3 บาท ) ไปท่าวัดระฆัง

วัดระฆังโฆสิตารามวรมหาวิหาร
นกเยอะมาก ปลาก็เยอะ

แบบว่า เขามีขายอาหารสำหรับเลี้ยงปลา ( แต่แอบได้ยินคนซื้อบ่นว่าขนมปังขึ้นรา - -! )


ปลาเยอะกว่าที่วัดยานนาวาอีก ตัวใหญ่ๆทั้งนั้น
คราวนี้เราไป มันเปิดแค่อุโบสถ วิหาร แล้วก็ หอไตร แหะ ไอตรง กรอบสีส้มเข้มๆ ซ่อมอยู่


แผนที่วัดระฆังท่าวัดระฆัง ( แม่น้ำเจ้าพระยา ) อยู่ด้านล่าง
คลิกที่ภาพเพื่อดูภาพขยาย
หรือ ดูต้นฉบับที่ เวปไซท์วัดระฆัง
ไปถึงก็เดินดูรอบๆ พระอุโบสถ คนเยอะเหมือนกันนะ

พระเจดีย์
พระเจดีย์ อีก 2 องค์
couple ?
พระปรางค์
สถาปัตยกรรมรัตนโกสินทร์ยุคต้น ยึดถือเป็นแบบฉบับของพระปรางค์ที่สร้างในยุคต่อมา
แล้ว…

วิธี ยื่น ภาษีเงินได้ บุคคลธรรมดา ภงด 91 ทางเวปไซท์ ( จ่าย ภงด 91 ออนไลน์ )

ใครที่เสียภาษีบ้าง

คนโสดเงินเดือน 16,585 บาท จึงเริ่ม เสียภาษีเงินได้บุคคลธรรมดา
( เงินเดือนอัตรานี้หมายถึง พนักงานที่ไม่มีรายการ ลดหย่อน ใด ๆ นอกเหนือจากประกันสังคม )

ใครที่ต้อง ยื่น ภาษี บ้าง

ถ้าเงินเดือนไม่ถึงเกณฑ์ที่ต้องเสียภาษีเงินได้ แต่ก็มีหน้าที่ต้องยื่นแบบ หากเข้าตามเกณฑ์ดังต่อไปนี้
- คนโสดมีเงินได้ทั้งปีเกิน 50,000 บาท
- มีคู่สมรส มีเงินได้ทั้งปีไม่ว่าฝ่ายเดียวหรือทั้งสองฝ่ายรวมกันเกิน 100,000 บาท

ระยะเวลาในการยื่นภาษี

1 มกราคม ถึง 31 มีนาคม ของทุกปี

การ ชำระ ภาษี ผ่าน ทาง อินเตอร์เน็ต

1. เข้าไปที่ http://rdserver.rd.go.th




ถ้าได้เงินเดือนจากบริษัท อย่างเดียว ให้ยื่นแบบ ภงด.91
แต่ถ้านอกเหนือจากงานประจำ ยังมีรายได้จากทางอื่นอีก ก็จะต้องยื่นแบบ ภงด.90

2. พอกดเข้าไปแล้วจะเจอหน้า login

หมายเลขผู้ใช้ คือ เลขประจำตัวประชาชน
รหัสผ่าน ต้องมีความยาว 8 ตัวอักษร

หน้า login ของการ เสียภาษีเงินได้บุคคลธรรมดา
ลงทะเบียน
ถ้ายังไม่ได้กดลงทะเบียนให้กด ลงทะเบียน มันจะไปยังหน้านี่



หน้าลงทะเบียน เลือก บุคคลธรรมดา สัญชาติไทย น้ะจ้
ทำตามขั้นตอนลงทะเบียนจนจบ
ถ้าเราสัญชาติไทย พอลงทะเบียนเสร็จจะได้ ภาพพิม…

อยู่เหงาๆ เราไปเที่ยว - วัดอรุณราชวราราม ( วัดแจ้ง ) + วัดสระเกศ ( ภูเขาทอง )

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่ ลิงก์นี้ นะครับ

คำเตือน เอ็นทรีนี้รูปเยอะมากกกก ควรปิดบิตก่อนดู

ผ่างๆๆ ท่านสามารถรับชมเอนทรีนี้ผ่าน url http://tinyurl.com/goldenMount ได้ด้วย

วันนี้ตั้งใจไปวัดอรุณฯ

เดินทางทางน้ำเหมือนเดิม

แต่คราวนี้นั่งเรือ ธงสีฟ้า ( คราวก่อน นั่งเรือ ธงสีส้ม )

พอถึงท่าสาทร เขาบอกว่า ให้ลงลำที่จอดอยู่ได้เลย เก็บตังในเรือ

ก็ งงๆ เดินลงไป

เหมือนเดิมครับ

ชูชีพอยู่ใต้ที่นั่งของท่าน
พอเรือออกสักพัก มีไกด์ มาบรรยาย

อ้าว กรำ

ขึ้นผิดเรือรึเปล่า

นี่มันเรือท่องเที่ยว 150 บาท ไม่ใช่เร๊อะ

กะลังอึ้งๆอยู่

แต่พอไกด์พูดไปสักพัก ก็เลยรู้ว่า 150 บาท มันราคาเหมาวัน

แล้วก็ได้ความรู้ของท่าเรือ แล้วก็สองข้างทาง




เรือธงฟ้านี่มันไปสุดที่ท่าพระอาทิตย์เท่านั้นเองนะ แล้วก็กลับ

ตอนไปมีสาวคนนึง ถามว่า จะไปวัดสระเกศ ไปทางไหน

ถ้าฟังไม่ผิด คนเก็บตังบนเรือ บอกว่า ท่ามหาราช

จากนั้นก็คุยอะไรกันไม่รู้ ไม่ได้ยินแล้วล่ะ




เรือธงฟ้า มันใหญ่กว่า น่าหวาดเสียวน้อยกว่า น้ำกระเด็นน้อยกว่า แพงกว่า เรือธงสีส้ม

คราวนี้รู้และ นั่งริมฝั่งธน ได้มาหลายรูปเหมือนกัน แต่วันนี…

อยู่เหงาๆ เลาไปเที่ยว - เที่ยวเชียงรายด้วยตัวเอง โดยไม่มีรถ เช่ารถก็ไม่ได้เช่าน้ะจ้ะ นั่งรถสาธารณะล้วนๆแจร้ ตอนแรก วางแผนเที่ยว

เชียงราย ม่วนใจ๋
ยอมรับเลยว่า หาข้อมูลค่อนข้างยาก
กระทู้รีวิว ใน pantip ที่บอกไม่มีรถไป คือ ไม่มีรถส่วนตัวไป สุดท้ายก้อไปเช่ารถขับกันหมด
สุดท้ายเลาก็ไปผจญภัยมาจนได้ นี่คือตอนแรกซีรี่ส์เชียงรายของเราน้ะจ้ะ 
กล่าวถึงว่า จะไปไหนบ้าง และ วิธีเดินทางในตัวเมืองเชียงราย และ ออกนอกเมืองเชียงรายไปยังที่เที่ยวยังไง


0) ตั๋ว 0 บาท
จริงๆ ทริปนี้จับพัดจับผลู ดันกด ตั๋ว 0 บาท ได้ของ VietJet ซึ่งเขาเพิ่งเปิดเส้นทางใหม่ กรุงเทพฯ-เชียงราย เลยมีโปรโมชั่นนี้ออกมา

จริงๆ บอกว่า 0 บาท แต่มันมีค่าภาษีสนามบิน ค่าอื่นๆ อีก รวมแล้วไปกลับ 508 บาทน้ะจ้ะ
( ภาษีสนามบิน 100 THB, PMT Fee 77 THB, Admin Fee Domestic Thai 77 THB รวมสองขา 508 บาท รวม VAT เป็น 529.56 บาท )
เวลาค่อนข้างโอเคนะ มีคนเคยบอกว่า low cost เวลาไม่ค่อยโอเค แต่เลาว่าเวลานี่โอเคเลย
ขาไป 06.30 สนามบินสุวรรณภูมิ - 07.55 สนามบินแม่ฟ้าหลวงเชียงราย
ขากลับ 15.15 สนามบินแม่ฟ้าหลวงเชียงราย - 16.45 สนามบินสุวรรณภูมิ
ขึ้นที่สนามบินสุวรรณภูมิ (BKK) จย้ะ ไม่ใช่สนามบินดอนเมือง
มีคนบอกว่าให้สังเกตรหัสถ้า BKK คือ สนามบินสุวรรณภูมิ อย่าไปผิดสนามบินเชียว

ขอบคุณ ตั๋ว 0 บาท …

Expectation E(X), Varience Var(X), covariance Covar(X)

ความคาดหมาย ( expected value )
คือ ค่าเฉลี่ยที่เรา "expects" ว่าจะเป็นผลที่ได้ของการสุ่ม

สำหรับตัวแปรสุ่มเต็มหน่วย X ( discrete )
หรือ prob ของฟังก์ชั่น*ฟังก์ชั่น = Expectation
เช่น ค่าความคาดหมายของการโยนลูกเต๋า คือ
E(X) = 1*1/6+2*1/6+3*1/6+4*1/6+5*1/6+6*1/6
รูเล็ทอเมริกันออกได้ 38 แบบ คนแทงเลขเดียวแล้วได้จะได้เงินในอัตรา 35-ต่อ-1 (ถ้าได้จะได้เงิน 35 เท่าของที่พนันและได้เงินที่พนันรวมมา 1$ ดังนั้นจึงได้ 36 เท่าของที่พนัน). รูเล็ทออกได้ทั้งหมด 38 แบบ ค่าความคาดหมายของกำไรที่ได้ คือ
(ได้ −$1 เมื่อคุณเสีย และได้ $35 เมื่อคุณชนะ)
ดังนั้นเสีย 5 cents กว่าๆสำหรับที่แทงไปทุกๆ 1 dollar, และexpected value ของการแทง 1 dollar คือ $0.9473 ( มาจาก 1-0.0526 )

สำหรับตัวแปรสุ่มต่อเนื่อง X ( continuous )
เมื่อ f(x) เป็น probability density function
ถ้าเป็น expected value ของ arbitrary function ของ X, g(X)

สมบัติของ expected valueพิสูจน์
E(aX+b) = ∫ (aX+b)f(x) dx = a ∫ Xf(x) dx + b ∫f(x)dx = aE(X)+b
เพราะ f(x) คือ prob ดังนั้น ∫ จาก -infinity ถึง infinity ของ ∫f(x)dx = 1

expected value ยังเอามาใช้ค…

อยู่เหงาๆ เลาไปเที่ยว - ศูนย์การเรียนรู้ และ พิพิธภัณฑ์ธนาคารแห่งประเทศไทย BOT Learning Center and BOT museum

ศูนย์การเรียนรู้ธนาคารแห่งประเทศไทย มองไปเห็นสะพานพระราม 8 วิวดีมากๆ
เขาบอกว่า ในช่วง 6 เดือนแรกไม่เก็บค่าเข้าชม เลยแวะไปสักหน่อยแจร้
เลาเองสะดวกทางเรือโดยเลานั่งจากท่าเรือสาทร ไปลงท่าเรือเทเวศน์
พร้อมกันนี้ เลาได้ถือโอกาสแวะซื้ออาหารจาก ครัวกุ๊กชม ที่อยู่ตรงท่าเรือเทเวศน์ ตอนขากลับบ้านด้วย อยากลองมานานแล้ว

ห้องสมุดพระองค์เจ้าวิวัฒนไชย

 บันได
พิพิธภัณฑ์ธนาคารแห่งประเทศไทย ประตูเซฟสองชั้นของจริง ต้องใช้กุญแจ 6 ดอก จาก 6 คน  ถึงเปิดเข้าไปได้ เหมือนที่เคยเห็นในหนังญี่ปุ่นเบยแจร้ ภายในมีเครื่องพิมพ์ธนบัตร รวมถึง ธนบัตรที่พิมพ์เสร็จแล้ว 
* ธปท พิมพ์ธนบัตร
กรมธนารักษ์ กระทรวงการคลัง ผลิตเหรียญ

เครื่องพิมพ์ธนบัตรเดิม

เครื่องยนต์กลไก 

ตู้เก็บธนบัตรที่พิมพ์เสร็จแล้ว ใส่กุญแจล็อกไว้อย่างดี กลัวหาย

แม่พิมพ์ธนบัตรสมัยก่อน


ธนบัตรมูลค่าสูงสุดที่ธนาคารแห่งประเทศไทยเคยพิมพ์มา จัดพิมพ์เป็นที่ระลึกวันราชาภิเษกสมรสครบ ๕๐ ปี ของพระบาทสมเด็จพระเจ้าอยู่หัวภูมิพลอดุลยเดช และสมเด็จพระนางเจ้าสิริกิติ์ พระบรมราชินีนาถ คือ ใบละ 5 แสนบาท จำหน่ายใบละ 1 ล้านบาท โดยอีก 5 แสนบาท ถวายให้ในหลวง


ธนบัตรห้าสิบสตางค์

ธนบัตรใบละ หนึ…