Avatar
veervrrr
45205774f0d238ab6b1e8f80a38a2d554cdf3c87838467bbc871181b674f0c71
Left Localized Lisper

จริง ๆ ผมคิดว่ารอ L2 ของ Tezos แต่ถ้าทุกคนมา Lightning ก็ใข้ Lightning ก็ได้ 😅

#siamstr

นักวิชาการฝ่ายซ้ายท่านหนึ่งตั้งข้อสังเกตว่าการแจกเงินช่วงโควิดโดยรัฐบาลทรัมป์เป็นวิธีแบบคอมมิวนิสต์ทั้ง ๆ ที่รัฐบาลนั้นใครก็ทราบเป็นเสรีนิยมใหม่

หรือผมแปลผิดก็ไม่รู้นะ 🤦🏾

#siamstr

Lightning เอาไปใช้กับรัฐบาลแจกเงินได้เปล่า ? #siamstr

มีความ Lomo

ถ่ายรูปแล้วเงาในกระจกทำอีกท่านึง

https://mastodon.social/@ianfogg/111500625839301542

#siamstr

Inkscape ออกรุ่น 1.3.2 ผมใช้ Inkscape วาดรูปแบบ vector ผมใช้เป็นหลักเลย ส่วนมากเอาไว้วาดประกอบลง blog

https://mastodon.art/@inkscape/111506443470645117

#siamstr

prescheme เป็นภาษา scheme แบบ static type เน้น ๆ และไม่ใช้ garbage collector ตอนนี้มี website แล้ว

https://octodon.social/@cwebber/111505786580444770

ดู iQIYI ต่อไป

Lisp ที่ทำงานบน Linux kernel ตรง ๆ ไม่ต้องใช้กระทั่ง libc 😱

https://mastodon.social/@lisp_discussions/111356721625656479

Netflix 99 บาทดูบนทีวีได้เปล่า หรือเฉพาะ smartphone #siamstr

Replying to Avatar Pong 🟠

วันนี้ผมนอนแทบไม่หลับ นอนไปห้าทุ่ม ตีสองตื่นแล้ว

น่าจะเป็นเพราะทำงานมาตลอด ร่างกายมัน alert จัดๆ

น่าจะเพราะเมื่อวานเด็กๆเร่งรีบมาก เพราะวันนี้เป็นวันสอบแล้ว

เทอมนี้ได้ปิดฉากลงไป ผมได้เรียนรู้อะไรหลายอย่างเลย

และระหว่างการทำงานหนักๆมาตลอด ผมได้ลองคิดแบบกลับหัวกลับหาง

ตามฉบับคนไม่ปกติเค้าพึงทำกัน ก็พบว่า

คนเรามีลูกน้อยลง เพราะวางแผนอนาคตไม่ได้ เนื่องจากเงินมันเสื่อมมูลค่าจริงๆ

โลกมันเสื่อมสลาย สังคมมันพังพินาศ และผมก็เป็นหนึ่งในนั้นที่คิดว่ามันจริง

ในมุมกลับกันที่เราคิดมา ทำไมเงินฝืดถึงถูกกล่าวหาว่าจะทำให้เศรษฐกิจไม่โต

มันต้องโตขึ้นสิ ในอนาคตเราซื้อของได้มากกว่าเดิม

เราย่อมมีเวลามากขึ้น เราย่อมมี wealth ที่ดีขึ้น

และเราวางแผนได้ ว่าลูกเราจะไม่ลำบาก เราจะมีเวลาอยู่กับเค้า

ผู้คนจะมีเวลาสำหรับสร้าง activity ผู้คนจะใช้ชีวิตได้อย่างมีคุณภาพมากขึ้น

และเมื่อนั้น ผู้คนจะอยากมีลูกกันมากขึ้นเอง เพราะทุกอย่างมันดูลงตัว

ไม่ใช่ชีวิตที่ดูวุ่นวาย รีบเร่ง และวกวน

เรื่องนี้เป็นเรื่องที่ผมตกผลึกมาซักพักใหญ่ๆ แต่ไม่มีเวลาจะเขียนโพสเลย

ซึ่งตอนนี้เป็นเวลาที่ดีมากๆที่ผมจะเขียนมันขึ้นมา

และจารึกลงบน nostr ว่าครึ่งหนึ่งมีผู้คนมากมายที่ดิ้นรนจากระบบเฟียต

และพยายามหนีออกมา และผมเชื่อว่าเหล่าผู้คนใน nostr วันนี้

น่าจะพยายามทำแบบนั้นอยู่ และผมยังเชื่ออีกว่า หลายคนหลุดออกมาได้แล้ว

และหลายคนจะหลุดออกมาได้ในอีกไม่ช้า

ส่วนสิ่งสุดท้ายในโน๊ตนี้ผมอยากจะบอกทุกคนว่า

วันนี้ผมจะเสียดายมากๆที่ไม่สามารถไปร่วมงาน meet up ได้

เพราะร่างกายไม่ไหวแล้วจริงๆครับ รวนหมดแล้ว คงต้องพักจริงจัง

วันนี้คงพักเยอะๆ และทำงานน้อยๆด้วย

ยังไง meet up ครั้งหน้าจะพยายามไม่พลาดนะครับ

#siamstr

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

sat อ่านว่า .....

#siamstr

ขอบคุณครับ ผมเห็น NSFW แต่ผมไม่เข้าใจเองครับ แบบอยากเตือนรูปอาหาร หรือว่า spoil หนังมันก็ไม่ค่อยเกี่ยวอะไรกับ NSFW แต่ว่าไม่เป็นไร ใช้แทนกันได้

สมมุติว่ามีรูปอาหาร แต่อาหารนี่มัน NSFW เหรอ

Programming language หลายภาษาเขียนไปแล้วรันช้าเพราะ type checking

ไม่นับเรื่องใช้หรือไม่ใช้ garbage collection ไม่นับเรื่อง data structure พื้นฐานที่ไม่เหมือนกัน และไม่ได้เขียนเรื่อง compile หรือ interpret ผมสมมุติว่า compile ให้หมดเลยแล้วกันเพราะว่า mruby ก็ยัง compile ได้เลย ทำไม compile แล้วโปรแกรมไม่รันเร็วเท่าเขียน Go เป็นต้น

เมื่อเห็นโปรแกรมเท่านี้

a * b

หรือจะเขียนแบบ Lisp ก็ตามเหมือนกัน

(* a b)

แปลไปเป็น assembly สำหรับ 8088 + 8087 ก็แปลงไปเป็นคำสั่ง แน่ IMUL หรือ FMUL แต่ว่าไม่รู้ว่า type อะไร มันอาจจะเป็น string ก็ได้ อาจจะเป็น list ก็ได้ ก็ check type ก่อน แล้วก็กระโดดไปทำสิ่งที่ควรทำกับ type นั้น check type และกระโดดนี่มันช้ากว่า FMUL อีก โดยเฉพาะการกระโดด CPU ต้องเดาว่าจะข้ามไปทำคำสั่งต่อไปดีหรือเปล่า ซึ่งก็อาจจะเดาผิด ถ้า compiler รู้แต่แรกเลยว่าเป็น type อะไร โปรแกรมมันเร็วขึ้นเพราะไม่ต้องมา check type ตอนรัน

การที่จะรู้ type ได้ก็มีอยู่ 2 อย่าง คือโปรแกรมเมอร์เขียนบอกเองเลย เช่น

(declare (integer a b))

แบบข้างบน compiler เห็นก็เลือก IMUL ได้เลย เพราะรู้แล้วว่า a และ b เป็น integer หรือไม่ compiler ไปหาเอาซึ่งเรียกว่า type inference เช่น

บรรทัดก่อนหน้าเขียน

(setq a 10)

(setq b 20)

แบบนี้ก็รู้อยู่แล้วว่า 10 และ 20 มันเป็น integer แต่เวลาทำจริง ๆ มันก็จะซับซ้อนกว่านี้อีก

แต่บางทีโปรแกรมเมอร์ไม่ได้ประกาศ type รวมถึง inference เองก็ได้ แต่ละภาษาใช้วิธีไม่เหมือนกัน เช่น Go ก็จะไม่ compile บอกให้โปรแกรมเมอร์ไปใส่ type มาจน compiler พอใจ; Common Lisp ต่างออกไปคือ ถ้าไม่รู้ว่า type อะไรก็ compile อยู่ดีแล้วเดี๋ยวค่อยไป check type ตอนรันก็ได้

ทั้งหมดที่ว่ามายังไม่เกี่ยวกับ JIT compilation เลย แต่ความรู้เกี่ยว JIT compilation ของผมจำกัดมาก เคยอ่านแค่ของ Ruby ผ่าน ลักษณะการทำงานคือรันทีแรกก็ check type ไปก่อน ก็จะรู้ type แล้วตอนรันนั่นล่ะ พอรันซ้ำที่เดิมไป 10 ค่อย generate code แบบที่ไม่ต้อง check type ออกมา ทีนี้รอบต่อไปก็จะรันไวขึ้น ปัจจุบัน Ruby ใช้เทคนิค Basic Block Versioning ใน YJIT ซึ่งผมยังไม่ได้อ่านละเอียด

สำหรับคนที่เขียน Common Lisp อาจจะช่างหัว JIT compiler ไปเลยก็ได้ เพราะรู้อยู่แล้วว่าอยากให้ code ส่วน ไหนรันเร็ว ก็ให้ใส่ type เข้าไปตรงนั้น มันก็จะรันเร็วขึ้น ส่วนที่ไม่ได้อยาก optimize ก็แล้วแต่เหตุปัจจัยอื่น ๆ