ความคลั่งไคล้ – ดอกชวนชม

รู้ตัวอีกทีก็มีรูปดอกชวนชมอยู่เต็มไปหมด …

สวนที่ระยอง

ถ่ายที่บ้านที่ระยอง ขณะฝกตก …

สวนที่ระยอง

สวนที่ระยอง

สวนที่ระยอง

4 ภาพนี้ถ้าจำไม่ผิดกางร่มออกไปถ่าย

ชวนชม (สี shocking pink มั้ง)

ดอกชวนชม

ดอกชวนชม

ชวนชมแถวคณะวิทยาศาสตร์

ดอกชวนชม

ชวนชม

ดอกชวนชม

Adenium obesum Balf.

flower

p1130022.jpg

อีกหลายๆ รูปจากเกษตรฯ บางเขน บ้าง จากระยองบ้างปะปนกันไป.

My first wsgi middleware

import logging
log = logging.getLogger(__name__)
class foomid(object):
    def __init__(self, app, app_conf):
        self.app = app

    def __call__(self, environ, start_response):
        a = [str(e) for e in environ]
        a.sort()
        log.info("\n".join(a))
        response = self.app(environ, start_response)
        return response

I just want to see how to make middleware and I want to observe environ.

ซื้อสบู่มาใหม่

จำได้ว่ายี่ห้อนี้รุ่นนี้ยายชอบใช้ก็เลยซื้อมาใช้บ้าง รู้สึกว่าใช้ดีจริงนะ ไม่เหมือนบางยี่ห้อใช้ๆ ไปสักพักสบู่ยังเหลือแต่ฟองหมด. สบู่เหลวที่เคยใช้ก็เหลืออยู่แต่ดูว่ามันไม่เหมาะกับฤดูนี้เลย. ผมใช้แบบล้างออกแล้วผิวไม่แห้งเหมือนล้างออกไม่หมดตลอด … แต่สำหรับตอนนี้แบบนั้นก็คงไม่เหมาะ.

My brand new soap

My brand new soap

My brand new soap

google appengine + inline svg + xhtml

ผมอยากใช้ inline svg เพราะว่าอยากแสดง gantt chart หน้าเดียวกับ form แต่ว่าพอเอา inline svg ไปใส่ใน html แล้วใช้ไม่ได้ (ก็น่าจะเป็นแบบนั้นอยู่แล้วมั้ง) ก็เลยเปลี่ยนมาใช้ xhtml แทน. แต่ว่าก็พึ่งเคยทำใน gae (google appengine) ก็เลยบันทึกไว้สักหน่อย เวลาใช้ xhtml ก็ต้องเปลี่ยน Content-Type ใน header ของ response หน่อย แบบนี้

...
class MainHandler(webapp.RequestHandler):
    def get(self):
        self.response.headers['Content-type'] = 'application/xhtml+xml'
        ...

แค่นี้ผมก็นึกว่าจะเนียนแล้ว แต่พอจะส่ง url ออกไป logout พบว่ามี & ติดอยู่โดยไม่ได้ escape และ Firefox ก็ไม่ยอมแสดงผล (ซึ่งก็น่าจะเป็นแบบนั้นอีกตามเคย) ผมก็เลยเขียนแก้ไปแบบ อาจจะสกปรกหน่อย เพราะนึกอะไรไม่ออก

...
class MainHandler(webapp.RequestHandler):
    def get(self):
        ...
        path = os.path.join(os.path.dirname(__file__), 'index.html');
        val = {'logout_url': users.create_logout_url(self.request.uri).replace("&", "&"),
               ... }
        self.response.out.write(template.render(path, val))

ก็คือ replace & ด้วย & ไปตรง แต่ก็ไม่รู้ว่าแบบนี้จะใช้ได้ทุกกรณีหรือเปล่า

<div id="result">
    
        {{ svg }}
    
</div>

ใน template ผมก็เอา svg ไปใส่ได้เลย … ดูตัวอย่างได้จาก vtimeline revision 13

vtimeline: specs can be saved

vtimeline ผมสร้างขึ้นมาทำรายงาน ก่อนหน้านี้มันก็พอจะวาด gantt chart ได้แล้ว แต่ว่าผมขี้เกียจ copy & paste คำอธิบายที่เอาไว้สร้าง chart (specs) ไปมา ระหว่าง text editor กับเว็บ ก็เลยทำให้ vtimeline ตอนนี้ save specs ไว้บน server ได้เลย แต่ว่าต้อง login ก่อน specs ของแต่ละคนจะไม่ปนกัน. ถ้าใช้ไปแล้วมี specs เยอะๆ หน้าจอคงมั่วเหมือนกัน แต่ว่าก็เอาไว้แก้ทีหลังได้ เพราะว่าตอนนี้ยังไม่เยอะ.

และเหมือนเดิมลองเขาไปเล่นได้ที่ http://vtimeline.appspot.com

ดอกไม้ที่มาใหม่

คล้ายว่าจะเป็นต้นไม้ที่มาปลูกใหม่พร้อมกันส่วนหย่อม … มันอาจจะดอกออกมาหลายครั้งแล้ว. แต่ผมก็พึ่งเห็นดอกสีเหลืองชัดๆ เน้นๆ. แต่ก็ไม่รู้ว่าดอกอะไร.

yellow flowers tree with yellow flowers
yellow flowers trees with yellow flowers
yellow flowers yellow flowers

หน้าเบลอ หลังเบลอ

หน้าเบลอ
small pink flowers

หลังเบลอ
small pink flowers

ทำอะไรแบบนี้โดยพึ่งอุปกรณ์มันง่ายมาก เปิดหน้ากล้อง 200(focal length)/5.6 มิลลิเมตร จุดที่ไม่ได้โฟกัสมันก็เบลอง่ายๆ เพียงแต่ปรับ focus หมุนไปหมุนมา … ถ่ายมาแล้วไม่รู้จะเอาแบบไหนดี.

รูปหน้าเบลออาจจะเห็นน้อยกว่ารูปหลังเบลอ น่าจะเป็นเพราะว่าเวลาถ่ายรูปเราไม่ค่อยอยากจะให้อะไรมาบังสิ่งที่จะโฟกัส ข้างหน้าก็เลยโล่ง รูปหน้าเบลอก็เลยน้อยกว่า แต่ว่าพื้นหลังส่วนมากก็จะมีถ้าสิ่งโฟกัสไม่ใหญ่เต็มกรอบ ในตัวอย่างนี้ก็มีพื้นหลังทั้งสอบภาพ.

แปลง mediawiki text เป็น html ด้วย mediacloth (ruby)

ผมเขียน Ruby มานานมากแล้วตั้งแต่พ.ศ. 2544 แล้วก็ไม่ได้เขียนอีกเลย (ล้อเล่นนะ) … จริงๆ ก็ไม่ขนาดนั้นคือเขียนสมัยโน้นแล้วก็เขียนอะไรเล่น เล็กๆ น้อยๆ เลยทำให้ไม่เคยใช้ gem เท่าไหร่ก็ต้องมาอ่านนิดหน่อย

วันนี้สั่ง sudo gem ins -r mediacloth ไป ^_^ ก็ลงได้

แล้วก็มาเขียนโปรแกรมตามตัวอย่างเลย แค่เพิ่ม gem ‘mediacloth’, ‘>= 0.0.3’ เข้าไป

require 'rubygems'
gem 'mediacloth', '&gt;= 0.0.3'
require 'mediacloth'
wiki_text = open('test2.wiki').read()
puts MediaCloth::wiki_to_html(wiki_text)

อยากจะแปลงไฟล์ mediawiki มาเป็น html หรืออะไรอื่น mediacloth มันก็แปลงได้สำหรับตัวอย่างง่ายๆ พอเอาทั้งหน้าไปใส่ ก็เจ๊งตามเคย … กลุ้มใจ.

update: ว่าจะลอง Parser.php จาก Mediawiki เลย แต่ไว้พรุ่งนี้แล้วกัน … หรือคืนนี้ดี?