Sunday, October 29, 2023

magic 8ball redux

 I made an interactive Halloween costume this year - The Magic 8-Ball!

I had a friend who makes drummer and equipment gear construct a wearable iPad harness, and then using P5.js I wrote a fullscreen webpage to pick one of the classic 20 answers and display it in the classic triangle:

It was fun to iterate on from a usability and "surprise and delight" standpoint:

1. I didn't really want to "shake for new answer", so I did a simple tap that made the new answer fade in and rotate into place. I then added some logic to have the cursor or finger shove the blanked + dimmed triangle around until released (just for a little showmanship as the person was thinking of their question)

2. I made variants to rotate everything 90 degrees so by locking the screen rotation, the straps could obscure the status bar.

3. At the party, I thought of one great feature: a cheat mode. Now, tapping inside the circle gives you a fair answer, but if you click outside the circle, the top half of the screen gives you one of the 10 positive answers, and the lower half gives you one of the 5 negative responses. So based on the question someone asks, you can covertly trigger a yes or no answer based on whatever is funniest.

So, classic example of the importance of testing and iterating!

(I am still on a jobhunt, so if your team might use a UI Engineer who can do the bread and butter React/Node/Typescript as well as throw in a Canvas curveball like this, hit me up!)

Thursday, October 26, 2023

parcel 101

I do like and parcel, but I always forget that it presumes that it's at the root of the server (especially vexing since one of the charms of a lightweight thing like this relative to create-react-app is making a small little thing you can deploy anywhere)

The fix is easy, add a --public-url argument in package.json:

"build-prod": "parcel build src/index.html --public-url ./",

devops from the days of cheap money

15 Years of near 0% interest rates has done weird stuff to our economy, and our sector.

I've been around long enough to hear tales of the first dot com boom, and the following bust - there was a total "land grab" / don't worry about profits mentality then - Amazon was one of the most notable examples of that. (I remember thinking it was weird when they first went to "dilute" their brand from being THE place for books online to other random products... which shows you why I'm a UI/UX Engineer and not a business guy.) So hearing how we had dot com boom (and bust) part two thanks to cheap money makes a sad kind of sense, and many of us our suffering from the industry hangover now.

This video focuses on the implication for DevOps, anything for scale and costs be damned. One former employer of mine really went nuts when they pivoted to AWS Cloud -  just set up services willy nilly for dev or qa or prod or just for the hell of it really, burnt through so much cash. Everyone got some stern "talking to"s and policy was locked down. My following employer was notably more cautious, and ran their own server farm in a datacenter. They were pretty stodgy about it (and were blurring some of the traditional boundaries by having dev engineers overseeing pushes) But maybe some of the benefit you have with that approach had to be weighed against being out of step with the industry, and so generally relying too much on homegrown approaches, and I believe they are doing PoCs for cloud stuff now.

And It's still a challenge for my side project work. For my critical sites, I still depend on old school monolithic deployments - and apply a lot of basic static rendering and pushing stuff to the client for the stuff the traffic that I know will be particularly spiky. In part to avoid cost pitfalls and setting up new business relationships, and also because it seems like you could burn a lot of cycles figuring out what to learn in Jr DevOps land...

(And just to add, I am still on the hunt for a Boston-area or remote UI/UX Engineering Role. I have deep and wide experience on household name websites and small fiesty startups, so if you think you might know a fit let me know!)

Tuesday, October 24, 2023

checking mail deliverability

m@ailgenius seems like a neat way of seeing if your outgoing email is likely to end up in spam folders...

Sunday, October 22, 2023

boston weekend rain

For grins I wanted to see if everyone's intuition that "dang, it's mostly raining on the weekends!" was correct. (I know there are some theories related to auto traffic that try and explain it a bit - it's probably not JUST Murphy's Law...)

I handscraped some data from Wunderground, got ChatGPT to help me massage it into JSON, and used P5.js to come up with the attached chart, where darker bars mark the weekend. 

Conclusions: Indeed, 15 out of 20 weekends going back to June had rain. 

Eyeballing the chart you can see that the blue rain bars do seem a bit likely to line up with the gray.  (rainfall averages and days with any rain listed below)

(Just a plug, I am on a job hunt for a UI Developer role. So if you know a company that might need someone who likes making data approachable and can throw together a static or interactive piece in P5.js to go along with the bread and butter React/TypeScript/Next.js, maybe I'm the one for them!)

Weekends: 15 out of 20
Su 0.258 (10 out of 20) 
Mo 0.169 (10 out of 20) 
Tu 0.209 (11 out of 20) 
We 0.194 (7 out of 20) 
Th 0.043 (4 out of 21) 
Fr 0.062 (6 out of 21) 
Sa 0.245 (9 out of 21) 

Friday, October 20, 2023

the cost of free

Just paying Figma $15/month because nothing else f***ing works - very long piece about open source and trying to keep parity with commercial options. (Along with some bits that bring to mind the old trope "Linux is only free if your time has no value", along with the general improbability of learning the guts of a piece of OSS well enough to make customizations you want.)

Specifically the focus is on Figma, and the punchline is the headline - that sometimes it's better just to give up and use the commercial options. But I was also struck by a tension between precision and responsive design: It's funny because Figma can create friction in web work because it is still is very not HTML native. That flow from its multi-platform nature (like Android or iOS have different layout paradigms, and of course print wants absolute control of everything in a way HTML doesn't) but still, if like 90%+ of what you do in Figma is for web and mobile web,  it's not clear the balance is optimal (Figma updates this summer start to get working a bit more responsive-design-erly, but still.) But interestingly, for the article's author, Figma's competitor Penpot's actually-do-things-in-the-CSS-model is a bug not a feature, because of him wanting more precision. (The article links to this piece by one of Figma's inventors that points out where it innovated.)

But the article is less about that and more about the pain of installing server-based OSS stuff - and reminds me of some other domains where, as reviled as the language is, PHP-based systems have a far lower bar to deployment and modification (specifically I'm thinking of Convention scheduling tool Zambia vs its Ruby on Rails competitor Planorama) I've been retooling to do more of my side project full stack work on more Enterprise-smelling platforms, but sometimes I question if it's a good tradeoff - as always the questions are of scaling for performance and managing complexity over time, but I think the legacy stuff I still sometimes turn to can be better on those fronts than many people assume.

Tuesday, October 17, 2023

one of the ugliest of php's quirks

 I do think that A. "web scripting" is a decent approach to many projects, B. PHP is one of the more seasoned ways of doing web scripting but I ran into one quirk that is horrible:

In short, you can't have a POST variable with a key containing period, space, or open square bracket. This harkens back to the (now safely deprecated) bad old dumb days of automagically exposing POST values as global variables... a horrible practice for sure, but now even though everyone reads values from $_POST and those keys could be anything, keys in that array will those characters converted to underscore...

Saturday, October 14, 2023

i do declare

 I think declarative has been lost to marketing and basically now just means "good"
--Jamison Dance

Friday, October 13, 2023

it was the worst of times, it was the worst of times

Wired reports Finding a Tech Job Is Still a NightmareTech companies have laid off more than 400,000 people in the past two years. Competition for the jobs that remain is getting more and more desperate. 

Welp, that's not great!

I guess I'm lucky because I'm not in financially dire straits, and can look to retool and suspect that "this too shall pass".  My rosiest retirement plans have fallen by the wayside, but still.

Like you can never shake the suspicion that you could be hustling more (but- you'll never be sure how much that would have helped, along with the fear of taking a truly dire desperation role)

So a faint silver lining to this period is that an employment gap in this time probably won't look godawful, and to the extent you can enjoy the time, you should.

And the industry is still bigger than it was in 2019... but because the industry's eyes got bigger than its stomach during the quarantine-field boom, the indigestion right now is truly horrible.