wasu-dev

วันอาทิตย์ที่ 10 กันยายน พ.ศ. 2560

SQL Union Vs Union All ต่างกันยังไง?

กันยายน 10, 2560
SQL Union Vs Union All ต่างกันยังไง?



          ก่อนอื่นเลยต้องมาทำความรู้จักกันก่อนว่ามันใช้ทำอะไร union ถ้าแปลกันตรงๆเนี่ยจะแปลว่าการรวมกัน ใช้เพื่อการรวม Table เข้าด้วยกัน แต่มันก็มีเงื่อนไขที่ว่าชื่อ Column ของทั้งสอง Table ก็ต้องเหมือนกันเดะๆ!หรือ Select เฉพาะ Column ที่เหมือนกันถึงจะ union กันได้นะ
          แล้วตกลงมันต่างกันยังไงล่ะ?
          Union มันจะลบตัวที่ซ้ำให้ทั้งหมด
          Union All จะเอามาทั้งหมดไม่ลบตัวซ้ำ

ถ้ายังงงๆอยู่มาดูตัวอย่างกันครับ!

Union :


SELECT 'banana' AS fruit UNION SELECT 'banana' AS fruit


ผลลัพท์ :

+--------+
| fruit  |
+--------+
| banana |
+--------+


Union ALL :


SELECT 'banana' AS fruit UNION ALL SELECT 'banana' AS fruit


ผลลัพท์ :

+--------+
| fruit  |
+--------+
| banana |
+--------+
| banana |
+--------+

สรุป : ทั้งสองอย่างมันก็ต่างกันตรงที่เราอยากให้ข้อมูลซ้ำหรือไม่ซ้ำนั้นเอง ลองนำไปประยุกต์ใช้กันดูครับผม :D
          

วันเสาร์ที่ 2 กันยายน พ.ศ. 2560

คีย์ลัด shortcut key สำหรับ IntelliJ IDEA

กันยายน 02, 2560

คีย์ลัด shortcut key สำหรับ IntelliJ IDEA


 ที่มาของภาพ : jetbrains.com/idea

            สวัสดีครับวันนี้มาทำความรู้จักกับคีย์ลัดต่างๆ IDE ที่ชื่อว่า Intellij หรือ IDE อื่นที่ใช้ eclipse base อาจจะใช้ได้เหมือนกัน Intellij คงเป็นที่คุ้นหูกันดีอยู่แล้วสำหรับโปรแกรมตัวนี้ ด้วยการใช้งานที่ง่ายและเร็ว และจะเร็วมากขึ้นไปอีกหากผู้ใช้ เลือกที่จะเรียนรู้คีย์ลัดของมันเพื่อย่นเวลาการทำงานไปได้อีกเยอะ เอาล่ะ! มาดูกันเลยว่าจะมีอะไรบ้าง


ctrl+h  โชว์ type hierarchy

ctrl+คลิ๊กซ้าย  ใช้หาว่ามีการใช้ที่ไหนบ้าง

shift+F6 เปลี่ยนชื่อ

ctrl+shift+N หาชื่อไฟล์ทั้งหมดใน project

shift+F10 run

shift+F19 debug

ctrl+alt+o ลบ import ที่เราไม่ได้ใช้ทั้งหมด

ctrl+F12 โชว์ method และ ตัวแปร ทั้งหมดของหน้านั้น

ctrj+j แสดงคำสั่งย่อให้เลือกใช้ เช่น sout ก็จะได้ System.out.println(); โดยไม่ต้องพิมพ์ยาวๆ

ctrl + shift + up/down ย้ายตำแหน่งของ code บรรทัดนั้น

ctrl + y ลบ code บรรทัดนั้น

ctrl + shift + f หาคำใน project ทั้งหมด

ctrl + shift + enter ใส่ semi-colon ให้ที่ท้ายประโยค

alt + insert สร้าง getters / setters

ctrl + alt + l จัด format code ให้อย่างสวยงาม

ctrl + shift + z
undo

ctrl + / คอมเม้นท์ code เช่น //test

ctrl + shift + / คอมเม้นท์ code เช่น /*test*/

ctrl + g ไปยังบรรทัดนั้นๆ

alt + enter ช่วยแก้ปัญหา code error ได้




                                 มีคีย์ลัดอื่นๆที่นอกเหนือจากนี้อย่าลืมมาแชร์กันนะครับ!


วันอังคารที่ 28 มีนาคม พ.ศ. 2560

เฉลย try2hack จาก website fxpredator

มีนาคม 28, 2560
เฉลย try2hack จาก website fxpredator
               ต้องอธิบายก่อนเลยว่าเกมนี้เป็นเกมแนวปริศนา(Puzzle) ซึ่งไม่ต้องมีความรู้ด่าน security มากนักแต่อาจจะต้องมีความรู้เกี่ยวกับการเขียน web มาบ้างพอเป็นพื้นฐาน จะมีทั้งหมด 5 ด่านไปลุยกันเลยครับ จิ้มไปเล่นกันได้ที่



ด่านที่ 1
        

คำใบ้คือ "แต่หารู้ไม่ว่าเขาได้แอบซ่อนรหัสลับไว้แถวๆ นี้" ลองคลิ๊กขวาเพื่อ view page source ดูก็เจอคำตอบแล้วครับ บรรทัดล่างๆหน่อย


ดังนั้นคำตอบ password ก็คือ   A^d,XU



ด่านที่ 2

คำใบ้คือ "มันอยู่ข้างบน ไม่ได้อยู่ข้างล่าง" ลองคลิ๊กขวาเพื่อ view page source ดูจะเจอแต่ยังไม่ใช่คำตอบนะครับ ฮ่าๆ


จากคำใบ้บอกอยู่ข้างบน ดูใน code ก็ไม่มี สงสัยที่ path ก่อนเลยครับ  ปัณหาข้อนี้จะคล้ายๆ path traversal ซึ่งเป็นช่องโหว่ของ path เปลี่ยน path จาก fxpredator.com/try2hack/level2/level2-Hx6ew.php เป็น fxpredator.com/try2hack/level2/ จะเจอ directory เพื่อไปเปิดไฟล์ password ได้ครับ Username:retrospect password:withoutyou และ นำรหัสมากรอกได้เลย


ด่านที่ 3


เป็นการเข้ารหัสข้อมูลโดยให้รหัสที่เข้ารหัสมาให้แล้วคือ 96430 และ ให้เครื่องตัวเครื่องมือการเข้ารหัสมาให้ด้วย ในที่นี้ผมจะใช้วิธี brute force คือลองมันทุกกรณีจนกว่าจะเจอแต่ไม่ทุกกรณีหรอกครับ ลองสุ่มใส่ตัวเลขฐานสองลงไปก็น่าจะจับทางได้แล้ว

Trick: ลองใส่ 11111 คือค่าสูงสุดจะได้ 97531 ซึ่งเกินคำตอบไปพอสมควร ต่อไปลองใส่ 10000 ได้ 86421 ต่ำกว่าคำตอบมากๆ ลอง 00001 ได้ 96420 จะได้ค่าใกล้เคียงกับคำตอบมากต่างกันแค่หลักสิบ ลอง 01001 ปรากฎว่าได้คำตอบเลย


ด่านที่ 4 



เป็นการเข้ารหัสข้อมูลโดยให้รหัสที่เข้ารหัสมาให้แล้วคือ yz{3pnq{v~:p}| และ ให้เครื่องตัวเครื่องมือการเข้ารหัสมาให้ด้วย ในข้อนี้ต้องงเปิดตาราง ASCII เทียบดูครับ ลองแทนค่า

Trick: จากตัวอักษร w รหัส ASCII ที่อยู่ในรูปฐานสิบคือ 119 บวกไป 2 ได้ 121 คือ อักษร y บวก 3 คือ z บวก 4 คือสัญญาลักษณ์ { เป็นต้น จะได้คำตอบคือ "www.jgirls.com"


ด่านที่ 5




ด่านสุดท้ายอาจจะยากซักหน่อย คือให้เราหาคะแนนที่เต็มพอดีเป๊ะๆ วิธีที่ผมใช้คือ  brute force (อีกแล้วฮ่าๆ) แต่แบบมีหลักการนะ สังเกตุได้ว่าพอเราเปลี่ยนค่าที่ส่งไป (value) range หรือ ขอบเขตของมันถ้าอยู่ในกลุ่มเดียวกันจะแสดงข้อความเหมือนๆกัน ทดลองใส่ไปเรื่อยๆจะสังเกตุเห็นได้ว่าต้องใส่เป็นเลขฐาน 16 คำตอบคือ c8 ในฐานสองจะเท่ากับ 200

ค่า value คือค่าที่ส่งไปครับ