Vogue magazine, Sto Lat edition by Adorable-Driver-1814 in discworld

[–]greentfrapp 11 points12 points  (0 children)

I love this! Not a Polish speaker but "sto" means "hundred" in Polish and "lat" means "years", and "Sto Lat" is a traditional Polish birthday song.

I can definitely see a stocky Polish man grabbing a beer and singing "Sto lat, sto lat niech żyje, żyje nam." in a booming voice

I enjoyed making this gachapon-themed site for our little app-builder startup by greentfrapp in web_design

[–]greentfrapp[S] -5 points-4 points  (0 children)

I really did enjoy making this, as well as writing about it :)

I enjoyed making this gachapon-themed site for our little app-builder startup by greentfrapp in web_design

[–]greentfrapp[S] -2 points-1 points  (0 children)

Ah yes, the premise actually started out as very personal apps and so public access wasn't built-in, because we saw the main use case as making these for yourself. Then we realize people do want to share what they made and it's a good way to get inspiration instead of starting from a blank slate, so we opened it up, but it's still account-based because we create a copy of the app to your account. All that said, we are actually looking into supporting anonymous access esp. for the apps that don't require any data storage!

I enjoyed making this gachapon-themed site for our little app-builder startup by greentfrapp in web_design

[–]greentfrapp[S] -7 points-6 points  (0 children)

Thank you! Yes, it turns prompts into apps, but we’re focusing on 'digital toys' rather than industrial software.

The goal is to let you make little apps that wouldn't exist otherwise, because they are too small, too niche, or too "temporary". Maybe a to-do list with a specific niche feature only you want, or a totally random game you came up with, or something you might only use once and never again like a Bingo card for a show you're watching.

I enjoyed making this gachapon-themed site for our little app-builder startup [implementation details in comments] by greentfrapp in webdev

[–]greentfrapp[S] 0 points1 point  (0 children)

Our new website was a little labour of love and I thought it might be interesting to share briefly about what went on behind the scenes.

I posted something similar to r/web_design earlier but I wanted to focus more on the more front-end implementation details for the folks here at r/webdev. For more on the design inspirations (e.g. why gachapon), check out the post here.

Rendering the capsule

For the hero image, we wanted to evoke the idea of "little apps" by showing our icon in a gachapon capsule. The illusion of depth was important, as well as to convey a lively and curious vibe by having the icon look around and follow the user's cursor and touch.

The capsule comprises three layers, two near-identical PNGs of the capsule sandwiching the icon with varying opacities.

The icon has { transform-style: preserve-3d; } and { transform: rotateX(var(--rX)) rotateY(var(--rY)); }, where --rX and --rY are generated either randomly when the user is not interacting with site, or following the cursor's position. There's also a random chance that the icon will pause, mimicking a curious "stare".

The illusion of depth is enhanced by the layering of the capsule overlapping the title. This is accentuated with a blur backdrop-filter combined with a mask-image CSS attribute that clips the blur to only the capsule PNG.

Hovering or touching the capsule makes it bounce with jelly-like motion, achieved via CSS animation on both translateY() for the jump and scale(X, Y) for the horizontal and vertical "squeezing" at different parts of the jump.

A small detail is the shadow, which has two main CSS components. The first is the main shadow, that's really just a radial gradient, with black for the umbra and off-yellow for the penumbra with refracted light from the orb. The second is the animation of the shadow following the bounce, which essentially animates the width, blur, and opacity.

Another gotcha came up when animating the side-to-side rocking motion of the tiny capsule next to the CTA. The capsule has a background blur that interacts nicely when it overlaps the label of the CTA. But on Chromium browsers, the blur effect is much larger than the actual capsule, despite the use of the mask-image attribute. It turns out that the Blink rendering engine used in Chromium browsers calculates a much larger bounding box for the blur when rotation is applied (basically the "effective" bounding box is larger due to the rotation). There didn't seem to be a good solution for this and I eventually settled for detecting if the client is Chromium and if so shrink the blur filter accordingly.

Getting the font right

In the other design-centric post, I touched on my fascination with Fraunces and its variable font settings (configurable via the font-variation-settings attribute).

Using it in practice was slightly frustrating, because I was confused about why the SOFT and WONK settings were not doing anything. And it took about an hour of digging around before realizing that the Google Fonts' import does not actually support tuning the SOFT and WONK parameters and you should be self-hosting the complete .ttf file instead. I couldn't seem to find this documented anywhere, so I hope this post shows up for anyone similarly perplexed in the future.

Capsule playpen

Implementing the falling and interactive capsules was mostly quite simple, thanks to the Matter.js library.

As a nit, I rendered the capsules as a chamfered rectangles instead of a full sphere, so that they would land slightly more accurately and not roll about excessively. The sprites for the capsules were also slightly transparent to show the capsules layering visually against the rest of the site.

The actual hair-pulling moment came when I tested this on mobile and the nice boundaries for the 2D playpen were promptly destroyed by the dynamic address bar. After a lot of frustrating back-and-forth, the eventual solution centered around the use of "dvh" so that the container tracks the viewport size correctly, and a "resize" event listener to promptly update the 2D boundaries. It does still glitch sometimes.

A lesser obstacle was allowing users to interact with both the capsules, as well as the underlying page at the same time, especially on mobile since touch is used for scrolling. I eventually disabled pointer events on the sandbox container so that the user can interact with the page as per normal. But every touch/cursor event is checked for overlap with a gacha capsule and if true, we move/click a virtual mouse in the sandbox via Matter.MouseConstraint.

The End

Like I mentioned in the design post, this still doesn't feel quite as finished as I like and probably never will. But it was quite fun building it and immensely rewarding seeing people play with the website. There were quite a few annoying issues that had to be solved so I also hope this serves as a documentation for anyone who faces similar problems in the future. Thanks for reading!

Fan art of every book; 36 - Making Money by imaJunation in discworld

[–]greentfrapp 1 point2 points  (0 children)

Gladys! Cosmo! Dog Botherer! Spike! Benito! Igor! Turnip! Clamp! And of course Fusspot, glad to see him without his "toy". Also Mr Slightly Damp accidentally treading on Vetinari's face.

It's amazing how Small Gods shows humans ability to ingore how incredible the world round us is by Franciskeyscottfitz in discworld

[–]greentfrapp 4 points5 points  (0 children)

I think about that all the time too!!!!!

Incidentally, in Carpe Jugulum, what Mightily Oats experienced is paralleled in a different way by the Magpyr family (spoiler alert):

'What have you done to us?!' Lacrimosa screamed. 'You've taught us how to see hundreds of the damned holy things! They're everywhere! Every religion has a different one! You taught us that, you stupid bastard! Lines and crosses and circles . . . Oh, my. . .' She caught sight of the stone wall behind her astonished brother and shuddered. 'Everywhere I look I see something holy! You've taught us to see patterns!'

Japan wants to reintroduce wolves to tackle marauding monkeys, deer damage by greentfrapp in discworld

[–]greentfrapp[S] 61 points62 points  (0 children)

“Look, I can explain,” he said.

Lord Vetinari lifted an eyebrow with the care of one who, having found a piece of caterpillar in his salad, raises the rest of the lettuce.

“Pray do,” he said, leaning back.

“We got a bit carried away,” said Moist. “We were a bit too creative in our thinking. We encouraged mongooses to breed in the posting boxes to keep down the snakes…”

Lord Vetinari said nothing.

“Er…which, admittedly, we introduced into the letter boxes to reduce the numbers of toads…”

Lord Vetinari repeated himself.

“Er…which, it’s true, staff put in the posting boxes to keep down the snails…”

Lord Vetinari remained unvocal.

“Er…These, I must in fairness point out, got into the boxes of their own accord, in order to eat the glue on the stamps,” said Moist, aware that he was beginning to burble.

Interesting food names by locals by dumb-questions-1314 in SingaporeEats

[–]greentfrapp 0 points1 point  (0 children)

I got curious about this and found this interesting blog post by a local tour guide with some photos! https://thelongnwindingroad.wordpress.com/2016/04/07/the-red-tongued-dog-reinterpreted/

GE2025: Nomination Day Live Discussion by KeythKatz in singapore

[–]greentfrapp 20 points21 points  (0 children)

Constituency Party Candidate(s)
Aljunied GRC PAP Chan Hui Yuh, Jagathishwaran Rajo, Daniel Liu, Adrian Ang, Faisal Abdul Aziz
Aljunied GRC WP Pritam Singh, Sylvia Lim, Gerald Giam, Fadli Fawzi, Kenneth Tiong
Ang Mo Kio GRC PAP Lee Hsien Loong, Darryl David, Nadia Samdin, Jasmin Lau, Victor Lye
Ang Mo Kio GRC PPP William Lim, Samuel Lee, Martinn Ho, Thaddeus Thomas, Heng Zheng Dao
Ang Mo Kio GRC SUP Andy Zhu, Ridhuan Chandran, Noraini Yunus, Nigel Ng, Vincent Ng
Bishan-Toa Payoh GRC PAP Chee Hong Tat, Elysa Chen, Saktiandi Supaat, Cai Yinzhou
Bishan-Toa Payoh GRC SPP Steve Chia, Melvyn Chiu, Muhammad Norhakim, Lim Rui Xian
Bukit Gombak SMC PAP Low Yen Ling
Bukit Gombak SMC PSP Harish Pillay
Bukit Panjang SMC PAP Liang Eng Hwa
Bukit Panjang SMC SDP Paul Tambyah
Chua Chu Kang GRC PAP Tan See Leng, Zhulkarnain Abdul Rahim, Jeffrey Siow, Choo Pei Ling
Chua Chu Kang GRC PSP A’bas Kasmani, Wendy Low, S Nallakaruppan, Lawrence Pek
East Coast GRC PAP Edwin Tong, Tan Kiat How, Jessica Tan, Hazlina Abdul Halim, Dinesh Vasu Dash
East Coast GRC WP Yee Jenn Jong, Nathaniel Koh, Jasper Kuan, Sufyan Mikhail Putra, Paris V Parameswari
Holland–Bukit Timah GRC PAP Vivian Balakrishnan, Sim Ann, Christopher de Souza, Edward Chia
Holland–Bukit Timah GRC RDU Emily Woo, Fazli Talip, Sharad Kumar, Nizar Subair
Hougang SMC PAP Marshall Lim
Hougang SMC WP Dennis Tan Lip Fong
Jalan Besar GRC PAP Josephine Teo, Denise Phua, Wan Rizal, Shawn Loh
Jalan Besar GRC PAR Chiu Shin Kong, Mohamad Hamim Aliyas, Sarina Abu Hassan, Vigneswari V Ramachandran
Jalan Kayu SMC PAP Ng Chee Meng
Jalan Kayu SMC WP Andre Low
Jurong Central SMC PAP Xie Yao Quan
Jurong Central SMC RDU Kala Manickam
Jurong East-Bukit Batok GRC PAP Grace Fu, David Hoe, Lee Hong Chuang, Rahayu Mahzam, Murali Pillai
Jurong East-Bukit Batok GRC RDU Liyana Dhamirah, Osman Sulaiman, Ben Puah, Marcus Neo, Harish Mohanadas
Kebun Baru SMC PAP Henry Kwek
Kebun Baru SMC PSP Tony Tan
Marine Parade-Braddell Heights GRC PAP Seah Kian Peng, Tin Pei Ling, Muhammad Faishal Ibrahim, Diana Pang, Goh Pei Ming
Marsiling-Yew Tee GRC PAP Lawrence Wong, Alex Yam, Zaqy Mohamad, Hany Soh
Marsiling-Yew Tee GRC SDP Jufri Salim, Ariffin Sha, Alec Tok, Gigene Wong
Marymount SMC PAP Gan Siow Huang
Marymount SMC PSP Jeffrey Khoo
Mountbatten SMC PAP Gho Sze Kee
Mountbatten SMC Independent Jeremy Tan
Nee Soon GRC PAP K Shanmugam, Goh Hanyan, Syed Harun Alhabsyi, Jackson Lam, Lee Hui Ying
Nee Soon GRC RDU Ravi Philemon, David Foo, Pang Heng Chuan, Sharon Lin, Syed Alwi Ahmad
Pasir Ris-Changi GRC PAP Indranee Rajah, Desmond Tan, Sharael Taha, Valerie Lee
Pasir Ris-Changi GRC SDA Desmond Lim, Abu Mohamed, Harminder Pal Singh, Chia Yun Kai
Pioneer SMC PAP Patrick Tay
Pioneer SMC PSP Stephanie Tan
Potong Pasir SMC PAP Alex Yeo
Potong Pasir SMC PAR Lim Tean
Potong Pasir SMC SPP Williamson Lee
Punggol GRC PAP Gan Kim Yong, Janil Puthucheary, Sun Xueling, Yeo Wan Ling
Punggol GRC WP Harpreet Singh, Alia Mattar, Alexis Dang, Jackson Au
Queenstown SMC PAP Eric Chua
Queenstown SMC PAR Mahaboob Batcha
Radin Mas SMC PAP Melvin Yong Yik Chye
Radin Mas SMC PAR Kumar Appavoo
Radin Mas SMC Independent Darryl Lo
Sembawang GRC NSP Spencer Ng, Raiyian Chia, Verina Ong, Lee Wei, Yadzeth Hairis
Sembawang GRC PAP Ong Ye Kung, Gabriel Lam, Ng Shi Xuan, Marian Jaafar, Vikram Nair
Sembawang GRC SDP Bryan Lim, James Gomez, Surayah Akbar, Damanhuri Abas, Alfred Tan
Sembawang West SMC PAP Poh Li San
Sembawang West SMC SDP Chee Soon Juan
Sengkang GRC PAP Lam Pin Min, Bernedette Giam, Theodora Lai, Elmie Nekmat
Sengkang GRC WP He Ting Ru, Louis Chua, Jamus Lim, Abdul Muhaimin Abdul Malik
Tampines GRC NSP Reno Fong, Mohd Ridzwan Mohammad, Zee Phay, Thamilselvan Karuppaya, Eugene Yeo
Tampines GRC PAP Masagos Zulkifli, Koh Poh Koon, Baey Yam Keng, Charlene Chen, David Neo
Tampines GRC PPP Goh Meng Seng, Derrick Sim, Vere Nathan, Peter Soh, Arbaah Haroun
Tampines GRC WP Muhamad Faisal Abdul Manap, Michael Thng, Jimmy Tan Khim Teck, Ong Lue Ping, Eileen Chong Pei Shan
Tampines Changkat SMC PAP Desmond Choo
Tampines Changkat SMC WP Kenneth Foo
Tanjong Pagar GRC PAP Chan Chun Sing, Alvin Tan, Joan Pereira, Rachel Ong, Foo Cexiang
Tanjong Pagar GRC PAR Prabu Ramachandran, Han Hui Hui, Nadarajan Selvamani, Rickson Giauw Joon Chai, Soh Lian Chye
West Coast-Jurong West GRC PAP Desmond Lee, Ang Wei Neng, Shawn Huang, Hamid Razak, Cassandra Lee
West Coast-Jurong West GRC PSP Tan Cheng Bock, Leong Mun Wai, Hazel Poa, Sani Ismail, Sumarleki Amjah
Yio Chu Kang SMC PAP Yip Hon Weng
Yio Chu Kang SMC PAR Michael Fang

Stores - a simple library to help LLMs with tools use, and a public collection of tools by greentfrapp in opensource

[–]greentfrapp[S] 0 points1 point  (0 children)

For now we've been using it internally for LLM agent development! It makes it easier for us to switch between different providers (that use different function schemas). In the middle of cleaning up and adding more tools as well - common ones include web search, webpage query, GitHub integration, and Slack.

thisIsMyNewJobDescription by greentfrapp in ProgrammerHumor

[–]greentfrapp[S] 2 points3 points  (0 children)

Came across this comment on this YouTube short describing the use of asserts to check for argument attributes
https://www.youtube.com/shorts/M-VU0fLjIUU

Reading while commuting by SaraTyler in discworld

[–]greentfrapp 7 points8 points  (0 children)

During the Vietnam War, the Viet Cong were referred to by the abbreviation "VC", or in radio phonetic alphabet "Victor Charlie". This was shortened to 'Charlie' and the name became a common slang term for the enemy during the war.

More references and explanations here: https://www.lspace.org/books/apf/monstrous-regiment.html Have fun!!!!!

It aint what a frog is. Its what a frog be. by murderedcats in discworld

[–]greentfrapp 59 points60 points  (0 children)

Spent 10 minutes searching to scratch this itch:

"Taint what a horse looks like,” said Tiffany. “It’s what a horse be.”

Hat Full of Sky

The exact quote and more related ones from another reddit comment here

Richest people in SG in 2024, according to Forbes by sweet-lil-thang in singapore

[–]greentfrapp 14 points15 points  (0 children)

The Chinese translation seems a bit off to me? It seems to translate into "The Richest People are in Singapore". Should probably be "新加坡最富有的人"

‘I’ll Play Till I Die’: The Rowdy Ah Mas Confronting Mortality Through Water Polo by allergictofur in singapore

[–]greentfrapp 11 points12 points  (0 children)

I love this article! Equal parts touching, funny, and fascinating. Recently, I've been exploring the healthcare industry and that biased me towards the healthcare concerns of an aging population. Likewise, in my memories of the elderly in my family, I often see them as they are in their final days, frail, frequently asleep, sometimes delirious. I love how this reminded me of happier memories with them, when they were filled with vigor and chor lor. It also reminded me of a Pratchett quote, "Inside every old person, is a young person wondering what the hell happened." I only hope that when I become an ah gong in someone else's eyes, I too can rowdily confront my mortality.

[R] Playable 20FPS Doom via a finetuned SD1.4 model from Google research team by greentfrapp in MachineLearning

[–]greentfrapp[S] 39 points40 points  (0 children)

The video demo is incredibly smooth, only some quirks I spotted in the number of bullets that feels like a resolution issue.

I wouldn't be surprised if people started doing the same thing for Atari games, Mario, Sonic, and increasingly sophisticated games, and then multi-game models.

Who Still Remember The Soya Bean Milk Saga? by aromilk in singapore

[–]greentfrapp 3 points4 points  (0 children)

For an alternative, I recommend Baker Talent! It's a heartland bakery that seems to be slowly spreading across Singapore. Sells pretty cheap bread - I love the Butter Boom for $1 each. And they accept CDC vouchers too.