Project Heimdall
Heimdall's All-Seeing Eyes — Heimdall sees and hears, all thanks to his extrasensory capabilities. His sight can extend across all Nine Realms, and he can see 10 trillion souls from the Bifrost Observatory. Asgardians call him from other worlds, such as Earth, Jotunheim, and Sakaar. Heimdall On Screen Powers, Enemies, History
2023-04-19
2023-05-11
2023-05-16
2023-05-18
2023-06-17
2023-06-18
- Honestly, the GTM strategy for Heimdall is a considerable concern. How are we going to do that?
- Project Heimdall Locale Transition Strategy
- Project Linguine
2023-06-20
Implemented Nav bar!
2023-06-21
-
Implemented Login with Clerk
-
The
useLocaleRedirect
caused some problems when a user landed on Heimdall in a non-English locale context and logged in- Clerk needs some initial load time, for example, 2s, for the Clerk Login SDK to load
- After logging in, conditionally loading
<SignIn>
caused an Error on Clerk, that rendering<SignIn>
when users are logged in is illegal. Thus, Clerk was redirected to the default locale. This happened within the next 2 seconds when Clerk figured that it was logged in and when React was unmounting the<SignIn>
widget. - Because
useLocaleRedirect
sends to English by default, the original locale will be lost - To get over this, I created two features:
- Save to local storage on the user's locale
- redirect within the
useEffect
hook (Warning: Cannot update during an existing state transition (such as withinrender
). Render methods should be a pure function of props and state.)
-
Also used HOC to inject callback when
<SignIn>
gets dismissed. Do I have to do this? Really?const withUnmountFunction = (WrappedComponent, onUnmount) => {
return function (props) {
useEffect(() => {
return () => {
if (typeof onUnmount === 'function') {
onUnmount()
}
}
}, [])
return <WrappedComponent {...props} />
}
}
```
```tsx
const SignInWithUnmountFunction = withUnmountFunction(SignIn, () => {
setSignInOpen(false)
})
2023-06-26
- Implemented Create PostgreSQL DB Tables and ORM · Issue #24 · anaclumos/heimdall
- How can we scrape the web with JavaScript enabled? Problems are Access Restricted SPAs like Twitter.
- Inngest - Effortless serverless queues, background jobs, and workflows
- Turns websites into data — Microlink
- microlinkhq/browserless: browserless is an efficient way to interact with a headless browser built in top of Puppeteer.
- Creating a Background Worker with Exec and Faktory
- adamschwartz/web.scraper.workers.dev: Scrape websites for text by CSS selector.
- anaclumos/parser-api: 🚀 A drop-in replacement for the Postlight Parser API.
2023-06-27
Created an MSA-style micro worker that will continuously fetch, load, and summarize HN contents!
2023-07-11
I was very close to shutting down all small locales. It costs too much while driving me so little value. People are spamming the newsletter mailing list by enrolling in all lists. I thought all small locale lists were like that so far. But then... I found one Danish user.
This person was the only one on the Danish list.
But... it changed my mind. I was moved. Ok... I'll keep the small-medium sprachraums.
Every hour, the processor will:
- For all newsletter that is
- non-deleted
- has a non-deleted subscriber
- Get content from the web
- Generate Summary
- Send Email
Also, instead of having one newsletter that could be transformed into many languages, let's start with 30 different newsletters covering the same content. That is, separating the linguistic UI from the newsletter content. So in a Korean interface, you can go to Hacker News Japanese version and read the content accordingly.
2023-07-13
Completed the Project Linguine Engine. Linguine Engine Test Drive Result 2023-07-13
2023-07-15
twitter과 마스토돈 따로 다루기
2023-07-16
Float UI - Free open source Tailwind UI components & Templates
2023-07-17
I am having trouble dealing with the Subscription Recurrence problem. Given a subscription table, how would I find all currently scheduled jobs?
- iCalendar RFC 5545?
- Cron notation?
2023-07-30
Halted, switched to a more conventional Docusaurus with Listmonk. Consider Project Done.
- Impossible to create subscriptions with Toss Payments with international audience
- Burnt out
- Will seek out sponsorships more
2023-08-01
2023-08-02
Heimdall Bogus Subscribers Attack Incident
2023-08-07
Added RSS Support. RSS Support · Issue #16 · anaclumos/heimdall
2023-08-08
- Resend made SMTP, will try it out
- isCategoryIndex function does not propagate to URL generations · Issue #9213 · facebook/docusaurus
2023-11-03
- i still want to make a koreanic name
- pabal.ai
- saja.ai
2023-11-06
- 들려옴
- 전해옴
- 이야기
- 나돌이
- 자자
- 왜자하다
- 가납사니
- 번설
- 담
- 곤여 (큰 땅)
- 보빙사
- 통리기무아문
- 저잣거리
- 수다
- 역마살
- 왁자지껄
- 도란도란
- 연
- 방패연
2023-12-07
I ₩ the Backdrop Build hackathon! 👑👑👑
— Sunghyun Cho (@anaclumos) December 7, 2023
Thank you so much for the grant @withBackdrop @AWSstartups!
Built with @nextjs server actions and @vercel postgres, @LangChainAI, @OpenAI, @Azure cognitive services, and @resendlabs, @docusaurus and many more! pic.twitter.com/EZ9jwQnW2c
아싸
일단 API 비용은 한숨 덜겠다!
그리고 Korean Won이 I Won할 때랑 같아서 뭔가 의미심장하게 재밌고 좋다
2023-12-23
Metaphor API looks great for Naroo