Ken Huang's Avatar

Ken Huang

@whatacold

Falling in love with #clojure, #clojurescript, and #emacs. Building Chrome extensions and websites using them. C++ dev by day. GitHub: http://github.com/whatacold YouTube: https://www.youtube.com/@kenhuang-tech Blog: https://whatacold.io

63
Followers
48
Following
88
Posts
28.11.2024
Joined
Posts Following

Latest posts by Ken Huang @whatacold

Preview
GitHub - drewr/postal: Clojure email support Clojure email support. Contribute to drewr/postal development by creating an account on GitHub.

I'm building a SaaS with #Clojure, and I found it was quite easy to send emails using #postal github.com/drewr/postal over the weekend. Do I just stick with it, or do I need to use something like Resend?

01.09.2025 16:24 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Comments about babashka from hackernews

Comments about babashka from hackernews

From hackernews 😍 #babashka #clojure

18.08.2025 14:48 πŸ‘ 17 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
The image shows a computer screen with a dark-themed program window open, running within Emacs (a popular text editor). At the top, the window lists "Active filters: [!omit]", indicating some files are filtered from view.

Below this, there's a green line showing available disk space (169 GiB available), followed by a list of files and directories:

- Some file names are written in light blue, such as a patch file.
- Certain file names are highlighted in orange and prefixed by an asterisk β€” these are various "ChangeLog" files with numeric suffixes.
- Other standard files and folders are shown in white and blue text.

In the bottom-left corner of the screen, a pop-up menu is open, likely from a macOS system. This pop-up displays options for sending files, such as "AirDrop," "Mail," "Messages," and others, with "AirDrop" currently selected. The pop-up mentions that there are 5 documents, totaling 17.1 MB.

The background behind the program is a blurred, colorful abstract pattern in blue, tan, and orange hues.

In summary: The image shows a file manager in a programmer's editor window, listing files and folders, with a macOS pop-up menu open for sharing files. The overall appearance is clean, modern, and uses a dark mode color scheme for accessibility.

The image shows a computer screen with a dark-themed program window open, running within Emacs (a popular text editor). At the top, the window lists "Active filters: [!omit]", indicating some files are filtered from view. Below this, there's a green line showing available disk space (169 GiB available), followed by a list of files and directories: - Some file names are written in light blue, such as a patch file. - Certain file names are highlighted in orange and prefixed by an asterisk β€” these are various "ChangeLog" files with numeric suffixes. - Other standard files and folders are shown in white and blue text. In the bottom-left corner of the screen, a pop-up menu is open, likely from a macOS system. This pop-up displays options for sending files, such as "AirDrop," "Mail," "Messages," and others, with "AirDrop" currently selected. The pop-up mentions that there are 5 documents, totaling 17.1 MB. The background behind the program is a blurred, colorful abstract pattern in blue, tan, and orange hues. In summary: The image shows a file manager in a programmer's editor window, listing files and folders, with a macOS pop-up menu open for sharing files. The overall appearance is clean, modern, and uses a dark mode color scheme for accessibility.

#Emacs send-to (aka #macOS sharing) merged upstream

xenodium.com/emacs-send-t...

I'm glad I gave it a chance indieweb.social/@xenodium/11...

20.07.2025 09:28 πŸ‘ 10 πŸ” 3 πŸ’¬ 3 πŸ“Œ 0
NVD - CVE-2025-48976

Released Ring 1.14.2 to fix a vulnerability with Apache FileUpload (https://nvd.nist.gov/vuln/detail/CVE-2025-48976)

#clojure

17.06.2025 01:34 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸ₯· Clojure Pro Tip 4

In case you don’t know it, we can use raw strings, like embedding JS code, in hiccup.

I just found out we can use `raw` to prevent strings from getting escaped.

I should’ve found this at the beginning, as it’s mentioned on the homepage, but somehow I missed it.

15.05.2025 14:21 πŸ‘ 6 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Which means, we’re not a nerdπŸ˜„

15.05.2025 13:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Congrats! A good start!

03.05.2025 11:53 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

For Wu Bai you could try η—›ε“­ηš„δΊΊ 再度重相递 ζ΅ͺδΊΊζƒ…ζ­Œ. ι»„ζ˜ ζˆ‘ηš„εΏƒε€ͺδΉ± for Chou.

30.04.2025 12:09 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

I like songs of 伍佰 and 周传雄, I also tend to like "old" songs.

30.04.2025 10:27 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

πŸ₯· Clojure Pro Tip 3

Sometimes, we may want a few examples of a #clojure API for inspiration.

With #cider in #Emacs, we can run M-x cider-doc to see the docstring for the symbol. We can even use M-x cider-clojuredocs for examples if the symbol is from the language core.

29.04.2025 16:01 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Clojure - Threading Macros Guide

Thread-as macro: clojure.org/guides/threa...

23.04.2025 16:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Clojure Pro TipπŸ₯· 2

So you're more than excited to find out how #clojure thread macros can make code clean and concise, you just love it! But at some point you'll be trapped a bit as the threaded argument's positions are inconsistent using -> or ->>.

Luckily, you can use as-> (see the pic)

23.04.2025 15:59 πŸ‘ 6 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Post image

It's amazingly easy to group things in #Clojure. The core provides a group-by function directly. Together with many built-in functions or key functions, it creates tons of possibilities, and we can also bake our grouping function if none is satisfying.

Example from github.com/functional-k...

18.04.2025 13:43 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Collecting events to Google Analytics in ClojureScript Projects
Collecting events to Google Analytics in ClojureScript Projects YouTube video by Ken Huang

Added a demo project and a demo video: Collecting events to Google Analytics in ClojureScript Projects
youtu.be/r8D0vb94MeA

07.04.2025 10:32 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Clojure Pro TipπŸ₯·

In #clojure, we can use comment for tests in development. However, since a comment evaluates to nil, you may run into surprising results/errors if you misuse it.

In these cases, you may tend to use ; to comment them out, but a better choice is to use the discard reader symbol #_.

05.04.2025 06:43 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Clojure practice tipπŸ’‘

Even if we might not have the opportunity to code in #clojure at work, we can still use it for ad-hoc scripting or proofs of concept. I promise it’s a lot of fun, thanks to the interactive development approach. We can try out ideas, building stuff bottom-up or top-down.

25.03.2025 01:46 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - whatacold/google-analytics: πŸ“ˆA ClojureScript library to collect user events to Google Analytics. πŸ“ˆA ClojureScript library to collect user events to Google Analytics. - whatacold/google-analytics

ANN: a small #clojurescript lib for collecting events for google analytics, you can use it in a web app or a chrome extension.

github.com/whatacold/go...

22.03.2025 16:25 πŸ‘ 5 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0
Post image

Emacs Pro TipπŸ₯·

Having too many buffers isn't good for switching buffers in #emacs.

After finishing a project, we'd better close all its buffers. How?
1. C-x C-b opens up ibuffer
2. Click at the top to sort by that column, or hit s f
3. Mark them by m, then hit D to close them

22.03.2025 11:18 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Hmm, I wasn’t aware of dot dot before, so usually I used the thread macro.

20.03.2025 14:20 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Thanks a lot!

19.03.2025 14:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
GNU Emacs For Mac OS X Usually there's a nifty page here with a big download button. But you are using a browser which doesn't support SVG and so you get the boring looking page.

Thanks! I was trying to use Emacs on Mac a bit these days, and I tried to install Emacs-plus via brew, it installed successfully and I can run Emacs from the term, but I couldn’t find it in spotlight search, do you happen to know why? Thanks.

In the end, I installed the one from emacsformacosx.com.

19.03.2025 13:52 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Hi Gosha, which Emacs build do you use on Mac OSX?

19.03.2025 01:55 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
GNU Emacs For Mac OS X Usually there's a nifty page here with a big download button. But you are using a browser which doesn't support SVG and so you get the boring looking page.

I tried two builds right now. First, I tried `brew install emacs-plus`, it took a long time to build and I could start it from CLI, but I couldn't find it in the launchpad, which was weird.

Then I tried emacsformacosx.com, it just worked.

18.03.2025 16:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Trying #emacs on a Macbook a little bit, not productive at all right now. Which build do you use? And how do you deal with no right ctrl?

18.03.2025 16:42 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Sometimes the best way to gain new insights on how to get things to work is to check out the source code.

Just found out how to set thread numbers by setting :min-threads and :max-threads for #ring and #jetty in #clojure:
github.com/ring-clojure...

18.03.2025 12:34 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Clojure - Cheatsheet

And personally I use the official #clojure cheat sheet quite often: clojure.org/api/cheatsheet

17.03.2025 13:09 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Thanks! It looks fantastic! And here is the page for #clojure: learnxinyminutes.com/clojure/

17.03.2025 13:05 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Noj in a JAR - setup-free Clojure for beginners:

https://www.youtube.com/watch?v=gHwFCOkBb_o

#clojure #datascience

12.03.2025 08:08 πŸ‘ 3 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0

Congrats!

11.03.2025 02:21 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Thank you! didibus on slack also pointed that out to me, and I've updated my post a little bit. It's an interesting topic and I'll come back to it in the future, thanks!

10.03.2025 14:57 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0