games

Thực ra viết con game để chơi là phụ, chính yếu vẫn là muốn thử nghiệm các kỹ thuật khác nhau với “lambda function – anonymous function – hàm không tên”!

ự viết con game Solitaire này mấy năm trước, nhưng lười, không bỏ lên AppStore. Game mà tôi tự viết để tự chơi thì cũng kha khá nhiều, viết vì kiếm không được game tương tự đúng ý mình, cái thì quảng cáo quá nhiều, cái thì đồ hoạ quá xấu, cái thì nặng nề, tốc độ quá chậm, chạy không mượt, mà tôi chơi Solitaire, mấy ngón tay bấm liên hồi như đánh piano vậy! Trò Solitaire chuẩn chơi trên máy Windows tối đa chỉ 24K điểm, nhưng cầm cái iPad mà chơi thì trên 30K điểm là chuyện thường! 🙂 Game này viết 1 source code, chạy trên tất cả các nền Apple (Mac, iPhone, iPad…), làm cái engine sẵn, đọc game rules từ file lên, hiện tại hỗ trợ đến 99 biến thể (variant) Solitaire khác nhau!

Nhớ lại đợt Sài Gòn giãn cách XH vì Covid-19, suốt ngày chỉ có chơi game giải trí, hoặc làm mộc, cưa bào, đục đẽo để vận động tay chân! Nói về chơi game, căn bản đó không phải là chuyện gì xấu, nhưng tôi thường chỉ chơi game logic đơn giản, mỗi ngày chơi 15 ~ 30 phút tối đa, không chơi các game có kịch bản hay những game mất quá nhiều thời gian! Tác hại của game đối với giới trẻ không cần phải nói, nhưng lỗi không nằm ở game, lỗi ở xã hội và giáo dục, tạo ra cho chúng nó một môi trường nghèo nàn, một tâm hồn trống rỗng, như cái lỗ đen sâu hoắm, nên ngoài những thứ vớ vẩn, nhảm nhí ra, chúng nó không còn biết điều gì khác, riết rồi thành thần kinh, bệnh hoạn và tệ nạn! 😢

lidar

ừ 2 năm trước đã quan tâm đến phần cứng LIDAR trên iPhone, và phản ứng đầu tiên là nghĩ đến… thuyền & biển! LIDAR là 1 dạng RADAR, công cụ đo xa (khoảng cách đến vật thể) bằng tia laser, tương tự như các ống nhòm đo xa quân sự, nhưng đơn giản hơn, có thể được dùng để thiết lập mô hình 3D của không gian, vật thể xung quanh.

Vậy LIDAR có liên quan gì đến… thuyền và biển!? Như chúng ta biết dân “seafarer” thường hay bốc phét với nhau kiểu: tôi đã đi qua những con sóng cao 6m, 8m, 10m… nói một lúc thì thành “con rắn hình vuông” luôn! 😀 Nếu có cái mô hình 3D đơn giản, chụp bằng iPhone 12 chẳng hạn, là có thể tính ra chính xác chiều cao, kích cỡ của con sóng!

panorama

ồi đó, không nhớ là năm nào, xài cái iPhone 4S (dạng cũng rất hiện đại lúc đó) chụp ảnh panorama, thấy chất lượng tệ, không bằng lòng nên đi mua cái Sony NEX5R, chiếc máy ảnh không gương lật đầu tiên, chụp panorama khá tốt. Hôm nay thử dùng chỉ 1 cái iPhone 7 cũ rích chụp pano thử xem, cho ra 1 cái ảnh 15000 x 4000 pixel (chờ ảnh load hơi lâu), má ơi, đúng là mình lạc hậu về công nghệ thật rồi! Haiza, đúng là thời thế, công nghệ đi quá nhanh, đẹp hơn hẳn máy ảnh chuyên nghiệp ngày xưa…

P/S: làm nghề lập trình, nói có vẻ ngược đời, nhưng từ xưa giờ vẫn quan niệm rằng: tôi chẳng cần phải biết cái éo gì về công nghệ (technologies) cả! Tôi chỉ biết về kỹ thuật (techniques) thôi! Vâng, nói rõ ràng như vậy! Tôi chỉ biết những mánh mẹo, kỹ xảo lập trình xa xưa, những thủ pháp cấu trúc dữ liệu, tối ưu hoá li ti, thời của “programming pearls” – những viên ngọc lập trình ấy! Coder giờ toàn ở “trên trời”, công nghệ này kia, AI, Machine learning, Big data, nói như vẹt, chỉ có điều mấy cái “rất căn bản” lại không biết! 😢

Ảnh lớn, cuộn theo phương ngang để xem.

lés travailleurs de la mer

Nơi nghĩa trang chật hẹp, tiếng vọng âm vang,
Chẳng một nhánh liễu xanh mùa thu trút lá,
Không một khúc hát ngây thơ buồn bã,
Góc cầu xưa người hành khất thường ca.

ritten with a Pencil stylus on an iPad using our own home – brew inking technology. Excerpt from the famous novel Lés travailleurs de la mer (Toilers of the Sea), Victor Hugo, and my literal, clumsy English translation: Navigation, it is education, sea is the brave school… The voyageur Ulysse had done lots more deeds then the Achille combatant. The sea quenches man, if soldiers are made of iron, then the mariners must have been made of steel. Look at them, in the ports, those tranquil martyrs, the silent winners, man figures with a religious look in their eyes as they’ve come out of the abyss…

the man of wisdom delights in water…

仁者樂山
智者樂水

ritten with a Bamboo stylus on iPad, using my inking mentioned earlier! A quote from Confucius’ Analects, and its partial, literal equivalence in English on this post’s title… Looks like there’s still lots of space for improvements on creating real, good — looking strokes (for Chinese round brush and other kinds of brushes). Really discontent with my Chinese handwriting ever since, it’s never been good enough for me, it’s been degrading greatly over time without practicing! My handwriting reflects my messy, chronically — undisciplined character! 😢

inking

y proudly – announced achievement for the last 6 working months, now is a registering (pending) patent in the U.S. It’s about create inking effect to handwriting on iPad (ideally with a stylus): you can apply many pen styles: ball pen, fountain pen, calligraphy pen, Chinese round brush, and different levels of ink wetness. You may have seen my handwriting in severalpreviousposts, but this is completely different, a big step forward, much more a realistic look like ink on paper. You need to see it in action to witness how interesting the “beautification effect” it is!

Different pen styles:

Different ink wetness:

Another writing example, a poem in both Vietnamese and Chinese:

And now, a real world application, my new year greeting card, hand – written on iPad, printed on paper, with my signature and personal seal on it. Old vintage things are not to be perished, they just come back in new neoclassical forms, to have “inflated”, “degraded” contemporary values reprimanded! 😀

styli

was playing around with some iPad’s styli lately and here they’re: the Wacom Bamboo stylus, TruGlide, Adonit Jot, Adonit Jot Touch, Jaja, Cregle’s iPen and ByZero. I’ve been loving the smoothness of Bamboo, but TruGlide is really an excellent one! The new Adonit Jot Touch seems to be promissing, and on the second position is Jaja (for pressure sensitive styli).

wwdc 2012

t would start within a week from now, the well – expected event of Apple’s world – wide developers conference of 2012 – WWDC 2012. To welcome the tech fair 😛😛, on the left is a screen capture of what I’ve been working hard on for the whole last month (the video is not really clear since it’s shot with my phone), a photo browser UI like iPad’s Photos app. It takes time to learn insights into Core Graphics, Core Animation, and I’m still learning. For all those years of graphics I’ve been through, Apple UI and its graphics sysem are still sooo… brilliant and amazing to me! (and “our love has just begun”!) Keep heading North!

apps

hẳng bao giờ muốn nói về software engineering, vì với tôi, đó là việc làm hàng ngày, đã làm hàng ngày thì có gì nhiều để mà nói!? Để ý thấy thường ai đó nói thật nhiều về điều gì (tiền bạc, tình yêu, trí thức, đạo đức…) thì tức là người ta thiếu cái đó! Tôi thì chỉ muốn nói nhiều về nhạc, vì âm nhạc với tôi là chưa bao giờ đủ! Tuy vậy hôm nay ngứa miệng nói về software engineering chút, gần đây đọc được một bài viết khá hay, trình bày lại ý chính ở đây: phát triển ứng dụng giống như là một nhà làm phim độc lập.

Phát triển app giống như làm phim: cả hai loại người này, coder và film – maker, đều có cá tính độc lập và xu hướng muốn sáng tạo, tạo nên một sản phẩm gì đó và “quăng ra” cho công chúng, mà đôi khi họ cũng không để ý đến việc quảng cáo, promotion cho sản phẩm của mình. Tuy nhiên khác với phim: kịch bản đã được viết sẵn từ đầu, việc làm app đòi hỏi coder đóng cùng một lúc hai vai: diễn viên và đạo diễn, với phần lớn khả năng là không thể biết trước được kịch bản sẽ như thế nào, sản phẩm của mình sẽ đi về đâu.

Đội một chiếc mũ khác lên đầu, ta sẽ nhận thấy apps ngày càng giống các sản phẩm bán lẻ. Nhiều coder có xu hướng “tự kỷ” cho rằng công việc mình làm là một cái gì đó “công nghệ cao” hay “to lớn”, đó là cái ảo tưởng hình thành không biết từ đâu: giáo dục, truyền thông, môi trường làm việc? Thực ra apps đã trở nên rất giống các sản phẩm bán lẻ (sữa tắm, dầu gội, kem đánh răng…), có hằng hà sa số các sản phẩm tương tự cạnh tranh với bạn, thị trường nhiều khi đến mức bão hoà, thế nên các chiến thuật marketing là một yếu tố quan trọng.

Điều này đồng nghĩa với việc coder phải chuẩn bị tinh thần để customize sản phẩm của mình theo nhu cầu của khách hàng, bỏ nhiều công sức, thời gian để cải tiến, đánh bóng các chức năng của phần mềm, đừng vội vàng tung ra một sản phẩm chưa tốt, dù vẫn biết rằng time – to – market là một sức ép hết sức lớn. Có một “thành ngữ” nói rằng: khách hàng không thông minh như ta nghĩ, và họ cũng không ngu như ta nghĩ. Điều này hoàn toàn đúng để nhận xét về chất lượng, tính cạnh tranh của các phần mềm.

Gần chỗ tôi ở có một công viên xinh xinh, cuối tuần nào ra đi dạo cũng thấy người ta mượn không gian để làm phim (đa phần là các loại phim truyền hình rẻ tiền dạng 20 triệu đồng / tập). Dừng lại và chú ý xem diễn xuất, kịch bản thì nhận ra đó toàn là những loại: con chó của tôi bỏ tôi ra đi, còn vợ tôi thì bị xe tải cán chết!, hay tệ hơn nữa là những loại: chống chỉ định với trẻ em mang thai và đàn bà dưới 16 tuổi! (đảo ngược 2 vế lại một chút 😬). Các bạn tôi ơi, khả năng kiên trì và sáng tạo của các bạn còn tốt hơn của các loại lau nhau kia nhiều… hãy vững bước trên con đường của riêng mình!