May 25, 2015

ลองใช้ Lamy ครั้งแรก

ชีวิตนี้ไม่เคยคิดว่าจะใช้ปากกาด้ามแพงเกินร้อยบาทครับ แต่ก็ได้ Lamy มาฟรีด้ามนึงเป็นของขวัญวันรับปริญญา

ดองไว้เป็นปีแล้วเพราะไม่รู้ว่าใช้ยังไง จนกระทั่งไม่กี่วันก่อนที่ปากกาทุกด้ามจงใจหมึกตัน เลยได้ฤกษ์เอาออกมาลองใช้ซะเลย

ด้ามที่ได้มานี้หัวเป็นขนาด M ครับ โดยรวมแล้วเอาไปเขียนลื่นสนุกดี แม้มีสะดุดบางจังหวะ

แต่ตอนเอามาวาดรูปนี่รู้สึกควบคุมน้ำหนักเส้นไม่ได้เลย (ไม่เหมือนหัวลูกลื่นที่สามารถฝนบางๆ น้อยกว่าขนาดที่บอกไว้ได้) ...





สรุปแล้วไม่ค่อยชอบเท่าไหร่แฮะ นี่ผมแปลกไปเองหรือเปล่าเนี่ย?

May 22, 2015

Voronoi จากภาพ

วันก่อนไปเจอคำถามใน Code Golf มา เค้าให้สร้าง Voronoi เพื่อเลียนแบบภาพต้นฉบับครับ

อ่านแล้วสนุกดี ผลงานของคนอื่นที่ได้ๆ ก็ดูเหมือนงานศิลป์พวก Divisionism/Pointillism ด้วย เลยลองกลับมาเขียนเองแบบมั่วๆ บ้าง 555

import random
from PIL import Image
from PIL.ImageFilter import FIND_EDGES, GaussianBlur, SHARPEN

def coordinate(width, height):
    yield from ((x, y) for y in range(height) for x in range(width))

def normalized(choices):
    lower = min(weight for _, weight in choices)
    upper = max(weight for _, weight in choices)
    norm = lambda weight: (weight-lower) + (upper-lower)//4
    return [((x, y), norm(weight)) for (x, y), weight in choices]

def random_by_weight(choices):
    rand_val = random.uniform(0, sum(weight for _, weight in choices))
    index = 0
    count = 0
    while count < rand_val:
        count += choices[index][1]
        index += 1
    return choices.pop(index-1)[0]

def init_centroids(image, cells):
    width, height = image.size
    edge_img = image.filter(FIND_EDGES).filter(GaussianBlur).filter(SHARPEN)
    weight = lambda x, y: 256 - max(edge_img.getpixel((x, y)))
    choices = [((x, y), weight(x, y)) for x, y in coordinate(width, height)]
    return [random_by_weight(normalized(choices)) for _ in range(cells)]

def init_rgbs(image, centroids):
    rgb_im = image.convert('RGB')
    return [rgb_im.getpixel((x, y)) for x, y in centroids]

def simulate_voronoi(image_path, cells=25, scale=None):
    image = Image.open(image_path)
    if scale is not None:
        image.thumbnail((scale, scale), Image.ANTIALIAS)
    centroids = init_centroids(image, cells)
    rgbs = init_rgbs(image, centroids)
    return image.size, list(zip(centroids, rgbs))
ผลลัพธ์ที่ออกมาก็ประมาณนี้ครับ (ที่ 500 เซลล์ Voronoi)

เอาไปสู้เขาไม่ได้หรอก เพราะเขียนไปมั่วแบบคนไม่มีพื้นฐาน image processing อะไรเลย แต่ก็สนุกดีได้ลองใช้ PIL เป็นครั้งแรกด้วย

May 14, 2015

Sexy Love



ช่วงนี้ทำงานแรงงานครับ ไม่ค่อยได้ใช้สมองเท่าไหร่ เลยต้องเปิดเพลงวนไปเรื่อยๆ ให้มันรู้สึกสดชื่นตลอดเวลา

แล้ว YouTube ก็วนเพลง Sexy Love มาให้

รู้ตัวอีกที 2 ชั่วโมงถัดมา ก็ยังกดเล่นซ้ำ ฟังเพลงนี้ซ้ำๆ อยู่ครับ

ท่าเต้นโรบอทนี่มันแจ่มจริงๆ ให้ดิ้นตายสิ :3

May 7, 2015

Entertainment



เพลงนี้เป็นเพลงประกอบเครดิตหนัง Now You See Me (2013) ครับ คือทั้งเรื่องไม่ได้ใช้เพลงนี้มาประกอบเลยนั่นแหละ ถ้าไม่นั่งดูเครดิตหนังก็ไม่รู้ว่ามี

ฟังแล้วสนุกดี ได้กลิ่นหนังจีนสมัยก่อนลอยมาแต่ไกลเลย (ทั้งๆ ที่เป็นวงจากฝรั่งเศส) สงสัยเพราะว่าเมโลดี้อยู่ในกุญแจไดอาโทนิคด้วย แต่มันก็ไม่ได้ออกบลูแจ๊สแม้แต่น้อย กลับเป็นร๊อคมันส์ๆ ให้โยกหัวตามได้

ก็ถือว่าเป็นการผสมผสานที่น่าสนใจดี นั่งฟังได้ทั้งวัน

May 6, 2015

Noah


ไม่กี่วันก่อนช่อง HBO เอาเรื่องนี้มาฉายครับ ดูจบแล้วคำพูดนี้พุ่งเข้ามาในหัวเลย

God is dead
-- Friedrich Nietzsche

เกริ่นก่อนสำหรับใครที่ไม่คุ้นเคยกับศาสนาคริสต์ เรื่องนี้เล่าถึงช่วงแรกที่พระเจ้าสร้างโลกครับ หลังจากสร้างโลกและสรรพสัตว์ทั้งหลายเสร็จ ก็สร้างมนุษย์คู่แรก (อดัม-อีฟ) ขึ้นมาไว้ในสวนเอเดน โดยให้อิสระทุกอย่างยกเว้นอย่างเดียวคือห้ามกินผลไม้ที่อยู่กลางสวน (ตีความกันว่าคือผลแอปเปิล) ช่วงแรกอดัมกับอีฟก็เชื่อฟังพระเจ้าดีอยู่ แต่ก็โดนงูหลอกให้กินผลไม้นั้น พอพระเจ้าจับได้จึงไล่อดัมและอีฟ (และงู) ออกจากสวนเอเดนไป

เวลาผ่านไปหลายชั่วอายุคน พระเจ้าเห็นว่าโลกเสื่อมโทรมลงมาก จึงต้องการชำระล้างโลกด้วยพลังแห่งน้ำ ก่อนลงมือก็ไปกระซิบบอกโนอาห์ (โคตรเหลนของอดัม-อีฟ) ให้เตรียมตัวรับมือก่อน โดยอย่าลืมพาพวกสรรพสัตว์ไปด้วย โนอาห์เลยต่อเรือยักษ์ตามที่พระเจ้าว่า

จุดแตกต่างจากไบเบิลที่เด่นชัดจุดแรกในเวอร์ชันหนัง คือพระเจ้าไม่ได้พูดตรงๆ กับโนอาห์แต่ใช้วิธีฉายภาพภัยพิบัติที่จะเกิดขึ้นให้ดูในฝันแทน (ถ้าเคยดู Prince of Egypt ปี 1998 จะเห็นว่าพระเจ้าอวตารร่างลงมาเป็นลูกไฟเพื่อพูดคุยกับโมเสสตรงๆ เลย) อันที่จริง หนังเรื่องนี้ทั้งเรื่องไม่ได้แสดงตัวตนหรือคำพูดของพระเจ้าเลย

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

การสร้างหนังจากเรื่องราวที่รายละเอียดต้นทางน้อยแบบนี้ (เรื่องของโนอาห์มีไม่ถึงครึ่งของครึ่งในหนังสือปฐมกาล ถ้าเทียบกับโมเสสที่ได้หนังสืออพยพไปทั้งเล่ม) มันต้องมีการตีความแต่งเติมปรับแต่งเนื้อเรื่องไปมาก ตรงนี้เข้าใจและยอมรับได้นะ และหนังที่สร้างออกมาจากการตีความนี้ก็สนุกพอตัวเลยหละ

แต่ดูแล้วก็อดไม่ได้ที่จะคิดไปว่า พระเจ้าในหนังเรื่องนี้ ไม่ได้มีพลังอำนาจอะไรเลย

การที่พระเจ้าไม่เคยปรากฎตัวขึ้นมาแม้แต่ครั้งเดียว เราอาจตีความได้ว่าโนอาห์ดันฝันเห็นแฟนตาซีที่น่ากลัวมากๆ แล้วหมกมุ่นกับมันจนต้องสร้างเรือขึ้นมา ไม่จำเป็นต้องมีพระเจ้ามาเกี่ยวข้องเลย (ใครไม่เคยฝันแฟนตาซีน่าตื่นเต้นแบบนี้บ้าง?) พอฝนตกหนักน้ำท่วมก็โป๊ะเชะกับที่โนอาห์กลัวพอดี

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

The choice was put in your hands because he put it there.
-- Ila, Noah (2014)

ยิ่งแสดงให้เห็นว่ามนุษย์ไม่จำเป็นต้องพึ่งพาพระเจ้าก็ได้ หรือพูดอีกนัยหนึ่งว่ามนุษย์ไม่จำเป็นต้องพิสูจน์ทราบให้ได้ว่าพระเจ้ามีตัวตนจริงหรือไม่ เนื่องจากผลลัพธ์ที่ได้จากการพิสูจน์นี้ ไม่ได้ก่อให้เกิดความแตกต่างต่อสิ่งที่จะเกิดตามมาเลย (ทำนองเดียวกับที่ไอนสไตน์บอกว่าอีเทอร์ไม่จำเป็นนั่นแหละ)

พระเจ้าที่ไร้อำนาจเช่นนี้ ก็คงไม่ต่างจากพระเจ้าที่ตายแล้วอย่างที่นิทเช่บอกไว้