Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Sunday, November 03, 2024

AI podcast version of my entire blog

 I fed all the posts of this blog into NotebookLM and it created this podcast;

https://drive.google.com/file/d/1ugg1GAfUWnY-EltVKIx9OC8lrTx4Pls3/view?usp=sharing

Tools used:

Tuesday, October 08, 2024

Trying out Cursor editor

I'm trying out an editor called Cursor and am quite liking it as a replacement for VS Code + GitHub Copilot Chat. It is more aggressive in autocompleting than Copilot, which is good.

Another cool thing about Cursor is you can ask it questions about a specific PR (set scope to @PR):



Friday, October 04, 2024

A Raycast extension I contributed to

 I contributed a couple of commands to the excellent Raycast app and command launcher (similar to Alfred). The commands are called Transform and Transform Preview and are in the ChatGPT Quick Actions extension (needs a ChatGPT User API key).

Basically you select some text anywhere, do ⌥ Space to bring up Raycast, then select Transform and give it a prompt to act on and replace the selected text, like:
  • beautify JSON
  • do the math
  • count the occurrences of each line
Transform Preview displays the result in a window instead of replacing the selected text.



Things I bought that I wish I knew I could have gotten at Ikea for cheaper

 These are things I bought that I wish i knew Ikea sold so I could have bought them more cheaply:

  • doormats
  • rugs
  • saucepan
  • boot tray
  • cleaning gloves
  • microfibre cloths
  • soap dispensers
  • flat bedsheets
  • food containers
  • garbage cans
  • measuring cup
  • tape measure
  • can opener
  • salt and pepper shakers

Friday, September 27, 2024

Asking ChatGPT for voting advice

 It's elections time in British Columbia, so I asked ChatGPT:

do the bc conservatives or the bc ndp align more with catholic values?

It had a detailed response that ended with:

Conclusion:

BC Conservatives may align more closely with Catholic teachings on pro-life issues, religious freedom, and traditional family values, though these are not always central to their platform.

BC NDP aligns more with the Church’s teachings on social justice, care for the poor and vulnerable, and environmental stewardship, which are key aspects of Catholic social teaching.

A Catholic voter in BC may weigh these different elements depending on which aspects of their faith are most important to them in the political context.

So not a straightforward answer, but gives good food for thought. 

Tuesday, September 24, 2024

Arc Browser

I’m really liking the Arc browser. One cool thing it does is: if you hover over any link and press Shift, it displays a small popup with an AI summary of the web page behind the link.



Another cool thing I learned is you can ask Arc to summarize the current page by pressing Cmd-F, typing "summarize page", the click the Ask button. You can probably ask it other questions about the page as well.

Tuesday, July 30, 2024

Another cool thing about Microsoft edge for GitHub users

Another cool thing about Microsoft Edge (in addition to my post before) is you can select some code on GitHub then choose Ask Copilot, and it will explain whatever you selected on the right:



Saturday, March 30, 2024

What i like about the Microsoft Edge browser

 I'm really liking the Microsoft Edge browser on Mac:

  1. The Read Aloud feature is really good. The voice quality is as good as Speechify
  2. I like the vertical tabs. The only thing I don't like is the vertical tabs snap shut after you click X on one of them, so it's tedious if you want to close a bunch of them.
  3. I like the Split Screen feature. You can right-click a link and choose Open Link In Right Split Screen

Saturday, February 10, 2024

Workaround for AI hallucination: Make them sound less sure

 At work I asked our Confluence (wiki) AI, "What does BADF stand for?" It answered

BAMDF stands for Bidder Advertiser Metadata Framework

But I couldn't find “Bidder Advertiser” anywhere in our wiki.

It turns out this was completely wrong. My coworkers told me it actually stands for "Binary Augmented MDF".

To work around the hallucination problem, maybe AIs should prefix everything they say with “I think that...” or  “It seems to me that…” instead of sounding 100% certain all the time.

Wednesday, January 24, 2024

Myers-Briggs code: ISTJ

 Apparently, my Myers-Briggs code is ISTJ. 9 years ago, I thought I was an INFJ.



Sunday, December 31, 2023

My Holland Code


My Holland code is still CIA, as it was in 2020. In 2004, it was different: IAR.

C = Conventional. I like to work with data and numbers, am detail-oriented, and am good at following instructions.

I = Investigative. I like to learn, figure out how things work, and solve problems.

A = Artistic. I have a bit of an artistic bent, using intuition and imagination. I'm a visual person.

Sunday, December 03, 2023

Favourite Things

Here is a list of some of my favourite things.

  1. Chocolate chip mint ice cream
  2. Trying new technological devices and apps
  3. Audiobooks, like Jane Austen novels
  4. Podcasts, like Called to Communion or The Journey Home
  5. Wrestling with my son
  6. Assisting at Mass
  7. Eating out with my wife
  8. Harrison Hot Springs
  9. Fettuccini Alfredo
  10. Computer programming, especially UI projects or small backend projects
  11. Reading tech news
  12. Producing quick data visualizations
  13. Comparison shopping, researching products, reading reviews
  14. Conversion stories
  15. Tools and books for self-improvement
  16. Being a great dad
  17. Personal finance
  18. Lord of the Rings, Narnia, other imaginative fiction
  19. Watching tech documentaries
  20. Visiting the beach with my family
  21. ChatGPT, GitHub Copilot
  22. Computer programming tools
  23. Smart home devices
  24. Lex Fridman podcast - interviews remarkable people

Sunday, August 14, 2022

One Mouse

One mouse, two mice.

One house, two hice.

One louse, two lice.

One blouse, two blice.


One nouse, two nice.

One rouse, two rice.

One twouse, two twice.

One ouse, two ice.

Thursday, June 23, 2022

"Grug Brained Developer" in a Yoda voice

 A couple of days ago, The Grug Brained Developer was posted to Hacker News. It is a collection of programming wisdom written in a caveman style, like:

Instead grug try to limit damage of big brain developer early in project by giving them thing like UML diagram (not hurt code, probably throw away anyway) or by demanding working demo tomorrow

When I shared the link at work, one of my co-workers said, in her head, she was reading it in a Yoda voice.

Well it turns out I actually do have a speech synthesizer app with a Yoda voice! It's a pricey app called Proloquo4Text and it has a voice called Little Creature which sounds like Yoda.

For your enjoyment, here is the app reading “The Eternal Enemy: Complexity” from The Grug Brained Developer, in a Yoda voice.

 

Thursday, May 13, 2021

Wordblender

Maybe I'm the only one in the world who needs this tool, but I made a webpage called Wordblender. You paste in a bunch of text and it will chunk it up into chunks of 3 consecutive words. It then shuffles the chunks and outputs it.

Use this if you have a long piece of text and you don't want to understand the overall meaning, but you do want to scan it for small runs of local meaning that might be interesting to you.

Like I said, pretty unique use case. Leave a comment if you find this useful for some reason.

http://jonathanaquino.com/wordblender.php

Friday, March 05, 2021

Love static typing

I'm currently working in an all-TypeScript codebase, and have also recently been working in Go, and I must say I'm really loving static typing, especially compared to huge JavaScript and Python codebases. Why? Simply because it adds some checks to make sure that the connections between pieces of my code are still sound when I move code around. It doesn't check that everything is correct, but checking connections is an essential sanity check.

Sunday, January 24, 2021

Don't follow Marie Kondo's advice to give your books away - you'll regret it

 A couple of  years ago, I read Marie Kondo's The Life Changing Magic of Tidying Up and one of its recommendations was to part with a bunch of books you don't use. I dutifully followed it and gave 1 bookshelf of books to Value Village (keeping 1 bookshelf of books for myself).

How I regret that decision.

Years of accumulated books, books I wanted to read someday, books I want to read today – gone, just like that. I warn my fellow bookophiles to not follow Marie Kondo's advice. Do not part with your books. Or if you must part with some, part with the ones you hate. Keep the ones you haven't read yet but plan to read someday, or the ones you plan to re-read someday.

Some books I regret throwing out:

  • My undergraduate physics textbook (Halliday and Resnick). In fact, all of my university textbooks. Engineering Physics was my major and I just threw out everything I'd learned. Fortunately bookfinder.com lists an old edition of Halliday and Resnick for $20 so I will at least recoup that.
  • A great undergraduate biology textbook – I think it was by Mader.
  • Dialogues of St. Catherine of Siena. Never got around to reading much of it, but I'd like to sometime.

Tuesday, December 29, 2020

What to say during 1:1s

My old manager challenged me to do 1:1s with all 22 engineers in my business unit (RollWorks), and out of that came the following three topics that I would enjoy sharing in any 1:1, whether with someone above me or someone below me.

  1. Anything fun done recently or any hobbies. For them and for you. This helps to connect on a personal level, which is always good.
  2. Main worries or priorities (or what is currently being worked on). For them and for you. It's good to know someone's top concerns or what they are working on.
  3. Anything learned recently or new tools. For them and for you. It's fun to share something you learned recently.
I'm going to try this with 1:1s with my manager.

Wednesday, December 23, 2020

Annoying basic things that golang lacks

 Go lacks some basic features that I am going to document here:

  • abs() for integers
  • min() and max() for integers
  • sets

Wednesday, November 18, 2020

Lego City piece count vs price

 It is interesting to look at a chart of Lego piece counts vs. price. The higher the set is, the better the value. Here is a spreadsheet of Lego City piece counts vs. price for November 18, 2020:



Friday, June 05, 2020

Why IntelliJ is better than VSCode

I've been trying to use VSCode as my main text editor for several months, for Python/Java/JavaScript. But there are important things that VSCode can't do that a dedicated IDE can do with ease. For example, I just got this Java exception when running my code in VSCode:



But will VSCode let me click the line to jump to the code? No it won't unfortunately. IntelliJ will. In fact, IntelliJ will even let me set a breakpoint in the code so I can stop and look around.

And I was really hoping that VSCode could serve my editor needs for any language.

Saturday, March 07, 2020

Favourite authors and influences

The following authors and people have had a big influence on my life.


  • Kent Beck
  • Dave Thomas
  • Marshall Rosenberg
  • Stephen Covey
  • Richard Bolles
  • Edward Feser
  • St. Joseph
  • Fr. Jacques Philippe
  • John Gottman
  • Gordon Neufeld
  • Jane Austen
  • St. Francis de Sales
  • Josef Pieper

Monday, February 10, 2020

Contexts vs Witch

I'm evaluating a couple of Mac task-switcher tools: Witch by ManyTricks and Contexts. I think I'm going to go with Contexts for the following reasons:

Advantages of Witch:

  • Can switch to a specific tab in Chrome and some other apps
Advantages of Contexts:
  • Faster than Witch. Sometimes Witch takes a few seconds to open for some reason.
  • Reliably binds to Command+Tab. When Witch is bound to Command+Tab, sometimes the old switcher opens on Command+Tab, for example, when the Google login screen is being shown. Contexts doesn't have this problem.

Sunday, January 19, 2020

My Holland Code

My Holland Code is CIA/CIR. This code is one way of summing up your interests.


My main ones are Conventional and Investigative. Conventional folks are people who like working with data and math and who are detail-oriented. Investigative people love to learn, analyze, and evaluate things. Yes I am detail-oriented and yes I like researching stuff (especially when shopping 🙂).

My secondary ones are Artistic and Realistic. Artistic people like to use their creativity and have artistic abilities. Realistic people like to work with machines and tools. I have a bit of both although they aren't my primary strengths. I am a visual person and I like to show data visually. I also like to use my tools to do minor household repairs.

Great software engineers I love working with

This is a list of some good software engineers I have really enjoyed working with closely. I love how they code and the depth of their knowledge.

  • Andrey Sukhachev - Ning
  • Thomas Dudziak - Ning
  • Jon Hartlaub - Ning
  • Henning Schmiedehausen - Ning
  • David Sklar - Ning
  • Martin Traverso - Ning
  • Miguel Lara Encabo - AdRoll
  • Emmanuel Garcia - AdRoll
  • Piyush Srivastava - AdRoll
  • Kushagra Verma - AdRoll
  • Nathan Clegg - AdRoll/Ning
  • (to be continued)

Thursday, November 29, 2018

Meld: A good diff for OSX

Aside from the very expensive Araxis Merge, I think Meld is the best diff for OSX, at least for me, because:

  • It has the option to start with two blank textareas that you can paste text into.
  • It allows you to edit the textareas.
  • It gets the diff right almost all of the time.
  • It has optional line wrapping. Some other tools do not have this (such as Beyond Compare).
  • It can compare directories.
Check out this example of Sublimerge getting the diff wrong:
It fails to recognize that what is happening is that there were four removals. Meld gets it right:

Beyond Compare I just don't get. I know a lot of people praise it, but it seems buggy to me. For example, when I want to paste in the above example, I paste the code on the left:

And then to paste the code on the right, I click in the middle of the right textarea and press V, and now things are messed up:
So then I press ⌘A, ⌘V, thinking that will fix it, but it's still messed up:
Only when I press ⌘A, ⌘V on the left side are things finally fixed:
I don't know – there is something funny about the way Beyond Compare handles alignment. Like if the right side is blank, why is it letting me paste on different lines present on the left side, instead of pasting on the first line like a normal empty textarea?

I have also noticed that DeltaWalker gets diffs wrong too - I don't have an example at present, but will provide one when I can.





Friday, November 09, 2018

Slack: green z vs gray z

Today I learned the difference between the green z icon and the gray z icon in Slack:


From Slack support: "Green means they are currently online. The "z" indicates they have Do Not Disturb turned on which prevents notifications popping up on their screen."

Saturday, September 22, 2018

Comparison of Surrey BC municipal political parties

This is a comparison of the Surrey BC municipal political parties, drawn from articles in the Surrey Now-Leader newspaper.

LRT (Light Rail Transit) Municipal police force instead of RCMP
Surrey First Go ahead with LRT Hold a referendum
Safe Surrey Coalition SkyTrain instead of LRT Change to municipal police force
Surrey Integrity Now Go ahead with LRT for Guildford-to-Newton. More consultation for Phase 2. Weigh options first. Leaning toward keeping RCMP.
Proudly Surrey Go ahead with LRT + cross-border US bus network
Progressive Sustainable Surrey Interurban over LRT or SkyTrain
People First Surrey SkyTrain instead of LRT

Saturday, February 24, 2018

Comparison of smart water bottles

Hidrate Spark Thermos Smart Lid Ozmo H2OPal
Price 60 CAD 90 CAD 133 CAD
CamelCamelCamel reasonable price 60 CAD 90 CAD 133 CAD
Fakespot grade/adjusted rating F/ B/3 F A/3.5
Pros - alert: app, glow - rechargeable
- alert: app
- easy setup
- rechargeable
- alert: LED, vibration
- easy setup
- alert: app
Cons - paint peels off
- quality issues
- sync issues
- coin battery
- complex setup
- corny notifications
- quality issues
- sync issues
- skips sips
- quality issues
- sync issues
- don't need coffee detection
- quality issues
- coin battery
Other reviews PCMag PCMag

Thursday, February 08, 2018

Handy prioritization categories

I was googling for some tips on prioritizing home-improvement projects, when I came across a great list of prioritized categories for such projects. It occurred to me that the same list of categories could help to prioritize any to-do list, not just home maintenance:

  1. Safety
  2. Urgent damage
  3. Prevent long-term health hazards
  4. Maintenance / Prevent long-term damage
  5. Money-saving upgrades
  6. Low cost, high impact improvements
  7. Big nuisance factor
  8. Cosmetic improvements
Simply categorize your to-do list into the above categories, then work through them in approximately that order. 

See the original post for more details on each of those priorities.