As that time of year approaches…

…my choir app supports in-app YouTube video player for learning new songs

Intrigued by these modal socks. So they just pop up on my feet ready to go and I click cancel to take them off?

From the St. Mark’s Place Wiki. Like superglue for fragmented identities. Wow. Just wow.

20 minutes start to finish.

Scan 4 songs and edit OCR, switch to development version of app and copy from iCloud Notes into add-track form and thence into json. Copy from json into JS hardcoded songs array which means the app will work offline in airplane mode.

Do a production build and upload. Test in device. 20 minutes. Not at all shabby for an update workflow if I say so myself.

One version of the app, using state management, is already completed in development. That will mean when all the popular songs are in the json the user will be able to search and compile their own set list. Just not much point switching this feature on when there are so few songs encoded thus far.

As an academic exercise for my training work I will be doing another version of the searchable app using state management with . When I started this I was less enthusiastic about adding Redux to the project so soon. Yesterday it only took one level of prop drilling - passing a different click handler function down to the table in the search component - to make me considerably more enthusiastic about the Redux option.

It's an exercise, for me, myself, I alone, to see which I prefer among state management architecture patterns - lifting state up or plumbing in . With the help of some nifty conditional rendering here, my home page component either displays hardcoded songs (this was a requirement so the app could run during Mass with choristers' devices switched to airplane mode), or custom songs chosen from the search form component. But to make this work, re-using the same (dumb) table component, I have had to do a bit of prop drilling. And that's with only TWO state "little trees" - songs and custom songs. Much as I deplore the extra complexity of Redux, even with , in a training context, I have commented in the search component that :
// when prop drilling is a solution, redux becomes an option...

Life really is getting more by the day. Thinking of that one where Miley Cyrus downloads her consciousness into a plastic toy.

They missed a slam dunk there, by not calling the app The CAI…

{song.words.substr(0, song.words.indexOf(‘<‘).substr(0, 30).concat("...")}

nifty string manipulation cuts off after the first line, truncates to max 30 chars, adds ellipsis

It detects the beginning of a line break tag in the React render (rendered using dangerouslySetInnerHTML)

And it’s a great big sláinte mhaith from me as I’ve done the first upload of my choir app ready for tomorrow night’s Mass. Made in React and Vite, with a dash of Tailwind, it does away with the need for endless on-mic rustling of photocopies. Welcome to the 21st century church!

EMOJIS! Straight in to your code!
Fairly late to the table here but I just realised what the little globe on the function button means.

Full disclosure: I’ve been looking up the Unicode table or copying from iMessage.
🤦🏻‍♂️

Aw c’mon lads this is awesome!!
Just look at those wholesome ingredients!
Rich Dark Cherry

Can you see what's happening here? I go to import BookService mistakenly as it has no default export. VSC finds the named export, books, and swaps it in with the correct path. Awesome!

Show thread

Hey VSCode just upped its game with autocomplete imports!

Need to play catch-up on the congressional hearings on whistleblowers. Sounds like they’re summing up today. Thoughts, anyone at all?

Cujo being told that it’s Python today and not JavaScript. The amount of code lectures that dog has heard - he must be better than an AI by now.

Show more
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.