@hongminhee洪 民憙 (Hong Minhee) さんに招待をいただきました。よろしくです。
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 1018 following · 727 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은:
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify、Hollo、BotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「
@hongminhee洪 民憙 (Hong Minhee)
」に。
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
@lionhairdino 그러지 않기를 빌겠습니다… 🙏
오 hackers pub 모바일 뷰 고쳐졌다
계정 이름에도 커스텀 에모지 표시되게 고쳤다.
아, 생각해 보니 RSS도 추가해야겠다.
Monads: Beyond Simple Analogies—Reflections on Functional Programming Paradigms
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
While exploring functional programming languages, I've been reflecting on how different communities approach similar concepts. One pattern that seems particularly fascinating is how Haskell and OCaml communities differ in their embrace of monads as an abstraction tool.
The Elegant Power of Monads in Haskell
It's common to hear monads explained through analogies to concepts like JavaScript's Promise or jQuery chains. While these comparisons provide an entry point, they might miss what makes monads truly beautiful and powerful in Haskell's ecosystem.
The real strength appears to lie in the Monad typeclass itself. This elegant abstraction allows for creating generic functions and types that work with any type that shares the monad property. This seems to offer a profound unification of concepts that might initially appear unrelated:
- You can write code once that works across many contexts (
Maybe,[],IO,State, etc.) - Generic functions like
sequence,mapM, and others become available across all monadic types - The same patterns and mental models apply consistently across different computational contexts
For example, a simple conditional function like this works beautifully in any monadic context:
whenM :: Monad m => m Bool -> m () -> m ()
whenM condition action = do
result <- condition
if result then action else return ()
Whether dealing with potentially missing values, asynchronous operations, or state transformations, the same function can be employed without modification. There's something genuinely satisfying about this level of abstraction and reuse.
OCaml's Different Approach
Interestingly, the OCaml community seems less enthusiastic about monads as a primary abstraction tool. This might stem from several factors related to language design:
Structural Differences
OCaml lacks built-in typeclass support, relying instead on its module system and functors. While powerful in its own right, this approach might not make monad abstractions feel as natural or convenient:
(* OCaml monad implementation requires more boilerplate *)
module type MONAD = sig
type 'a t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
end
module OptionMonad : MONAD with type 'a t = 'a option = struct
type 'a t = 'a option
let return x = Some x
let bind m f = match m with
| None -> None
| Some x -> f x
end
OCaml also doesn't offer syntactic sugar like Haskell's do notation, which makes monadic code in Haskell considerably more readable and expressive:
-- Haskell's elegant do notation
userInfo = do
name <- getLine
age <- readLn
return (name, age)
Compared to the more verbose OCaml equivalent:
let user_info =
get_line >>= fun name ->
read_ln >>= fun age ->
return (name, age)
The readability difference becomes even more pronounced in more complex monadic operations.
Philosophical Differences
Beyond syntax, the languages differ in their fundamental approach to effects:
- Haskell is purely functional, making monads essential for managing effects in a principled way
- OCaml permits direct side effects, often making monadic abstractions optional
This allows OCaml programmers to write more direct code when appropriate:
(* Direct style in OCaml *)
let get_user_info () =
print_string "Name: ";
let name = read_line () in
print_string "Age: ";
let age = int_of_string (read_line ()) in
(name, age)
OCaml's approach might favor pragmatism and directness in many cases, with programmers often preferring:
- Direct use of
optionandresulttypes - Module-level abstractions through functors
- Continuation-passing style when needed
While this directness can be beneficial for immediate readability, it might come at the cost of some of the elegant uniformity that Haskell's monadic approach provides.
Reflections on Language Design
These differences highlight how programming language design shapes the idioms and patterns that emerge within their communities. Neither approach is objectively superior—they represent different philosophies about abstraction, explicitness, and the role of the type system.
Haskell's approach encourages a high level of abstraction and consistency across different computational contexts, which can feel particularly satisfying when working with complex, interconnected systems. There's something intellectually pleasing about solving a problem once and having that solution generalize across many contexts.
OCaml often favors more direct solutions that might be easier to reason about locally, though potentially at the cost of less uniformity across the codebase. This approach has its own virtues, particularly for systems where immediate comprehensibility is paramount.
After working with both paradigms, I find myself drawn to the consistent abstractions that Haskell's approach provides, while still appreciating the pragmatic clarity that OCaml can offer in certain situations. The typeclasses and syntactic support in Haskell seem to unlock a particularly elegant way of structuring code that, while perhaps requiring a steeper initial learning curve, offers a uniquely satisfying programming experience.
What patterns have you noticed in how different programming language communities approach similar problems? And have you found yourself drawn to the elegant abstractions of Haskell or the pragmatic approach of OCaml?
음… Hackers' Pub의 상단 네비게이션 바 디자인을 개선해야 하는데, 어떻게 개선해야 할 지 모르겠다.
계정 이름에도 커스텀 에모지 표시되게 고쳤다.
プロフィールページにフィルターを追加した。ノートだけを見たり、共有した物だけを見たり、記事だけを見たりする事が出来る。
えーと…Hackers' Pubの上部のナビゲーションバーのデザインを改善する必要が有るけど、どの様に改善すれば良いのか分からない。
프로필 페이지에 필터를 추가했다. 노트만 보거나 공유한 것만 보거나 게시물만 볼 수 있다.
음… Hackers' Pub의 상단 네비게이션 바 디자인을 개선해야 하는데, 어떻게 개선해야 할 지 모르겠다.
フォローのお勧めのアルゴリズムを改善した。
https://github.com/dahlia/hackerspub/commit/27f91659687658cdc4490a1320c882ad70cc6766
プロフィールページにフィルターを追加した。ノートだけを見たり、共有した物だけを見たり、記事だけを見たりする事が出来る。
팔로 추천 알고리즘을 개선했다.
프로필 페이지에 필터를 추가했다. 노트만 보거나 공유한 것만 보거나 게시물만 볼 수 있다.
フォローとフォロワーリストを実装した。とりあえずは自分のリストだけを見る事が出来る。
フォローのお勧めのアルゴリズムを改善した。
https://github.com/dahlia/hackerspub/commit/27f91659687658cdc4490a1320c882ad70cc6766
팔로잉 및 팔로워 목록을 구현했다. 일단은 자기 자신의 목록만 볼 수 있다.
팔로 추천 알고리즘을 개선했다.
Hello, Hacker's pub!
これまで実装した機能:
- 共有
- カスタム絵文字
- プロフィールアイコン
- 画像添付
- 検索
- フォローのお勧め
フォローとフォロワーリストを実装した。とりあえずは自分のリストだけを見る事が出来る。
생각해 보니 알림이 없네… 알림도 만들어야지. 할 거 많다.
팔로잉 및 팔로워 목록을 구현했다. 일단은 자기 자신의 목록만 볼 수 있다.
Hacker's pub은 모바일에서 쓰기엔 제약이 많나... 아무래도 블로그가 메인이니
@markeb54맹꽁이 적어도 웹으로라도 모바일에서 쓸 수 있게 하는 게 목표이긴 합니다. 여유가 생기면 모바일 앱도 만들고 싶긴 해요…
Hello, world!
プロフィールページにOpen Graphの画像を追加した。
これまで実装した機能:
- 共有
- カスタム絵文字
- プロフィールアイコン
- 画像添付
- 検索
- フォローのお勧め
아 또 있다.
- 게시물 (
Note) 수정 및 삭제 (Article은 수정 가능한데Note는 아직 안 됨) - 팔로잉 및 팔로워 목록
생각해 보니 알림이 없네… 알림도 만들어야지. 할 거 많다.
My first post in Hackers' Pub!
저는 얼굴인식 카메라 앱 슈티를 개발하고 있습니다 iOS 버전 링크, 안드로이드 버전 링크
세션 타입 좋습니다 여러분
hello, world
앞으로 또 해야 할 것들… 뭐부터 해야 할까?
- 좋아요 및 에모지 리액션: 좋아요와 에모지 리액션을 별개로 구현할지(Hollo 방식), 좋아요를 에모지 리액션의 한 종류로 구현할지(Misskey 방식) 고민중…
- 인용 공유
- 사용자 이름에도 커스텀 에모지 지원
- 알고리즘 타임라인
- 게시물 번역: 대충 프롬프트는 만들었는데, 어떤 모델을 쓸 지 고민중…
아 또 있다.
- 게시물 (
Note) 수정 및 삭제 (Article은 수정 가능한데Note는 아직 안 됨) - 팔로잉 및 팔로워 목록
팔로 추천 기능을 구현했다!
앞으로 또 해야 할 것들… 뭐부터 해야 할까?
- 좋아요 및 에모지 리액션: 좋아요와 에모지 리액션을 별개로 구현할지(Hollo 방식), 좋아요를 에모지 리액션의 한 종류로 구현할지(Misskey 방식) 고민중…
- 인용 공유
- 사용자 이름에도 커스텀 에모지 지원
- 알고리즘 타임라인
- 게시물 번역: 대충 프롬프트는 만들었는데, 어떤 모델을 쓸 지 고민중…
ハクパブに初投稿です。どう使おうかはまだ模索中だけど、よろしく
처음 계정 만들고 나면 팔로를 아무도 안 해서 타임라인이 비어 있는 문제를 해결하기 위해, 팔로할 만한 계정 추천이 뜨도록 구현하고 있다.
팔로 추천 기능을 구현했다!
그냥 PostgreSQL의 ILIKE 연산자를 활용한 거긴 하지만, 나이브한 검색을 구현했다. 그리고 from:이나 lang: 같은 연산자도 구현했다.
처음 계정 만들고 나면 팔로를 아무도 안 해서 타임라인이 비어 있는 문제를 해결하기 위해, 팔로할 만한 계정 추천이 뜨도록 구현하고 있다.
어설프게 나마 검색 기능 구현중…
그냥 PostgreSQL의 ILIKE 연산자를 활용한 거긴 하지만, 나이브한 검색을 구현했다. 그리고 from:이나 lang: 같은 연산자도 구현했다.
별 거 아니지만, 로그인 안 한 상태에서 댓글 다는 방법을 안내하도록 해봤다.
어설프게 나마 검색 기능 구현중…
@hongminhee洪 民憙 (Hong Minhee) this would be a lovely thing to see a blog post about, as I don't think many projects in the fediverse have implemented such a thing.
@liaizonwakest ⁂ Okay, I compose a blog post about this: Hackers' Pub Introduces Flexible Username Changes: Breaking the Fediverse Norm!
Hackers' Pub Introduces Flexible Username Changes: Breaking the Fediverse Norm
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
Hackers' Pub, an ActivityPub-enabled social network, introduces a unique feature allowing users a one-time username change, a departure from the typical fediverse practice of permanent usernames. This policy acknowledges the evolving nature of personal identity, offering flexibility while maintaining network stability. When a username is changed, it becomes available for others, creating opportunities for new users to acquire desirable names. To prevent broken links, permalinks containing the original username will function until the username is claimed by someone else. This is made possible by using UUID-based actor URIs that don't include the username, unlike platforms like Mastodon where the username is embedded in the URI. Inspired by GitHub's username policy, Hackers' Pub aims to balance identity evolution with the benefits of federation. This approach allows users to correct initial username choices, evolve their online identity, and maintain their content history and social connections. This policy represents an experiment in fediverse identity management, testing whether flexibility can coexist with the stability required for federation, potentially influencing other platforms to adopt similar approaches.
Read more →눈에 띄는 업데이트는 아니지만, 아이디를 바꿨을 때 예전 아이디로 된 링크들이 유지되게 했다. (GitHub과 비슷한 동작.)
@hongminhee洪 民憙 (Hong Minhee) wait can you explain this?! Can you now change your username and it doesn't kill all the old links to your posts?
@hongminhee洪 民憙 (Hong Minhee) wait can you explain this?! Can you now change your username and it doesn't kill all the old links to your posts?
@liaizonwakest ⁂ Yes, exactly!
- You have a only chance to change your username.
- If you change your username, your old username becomes available for others.
- If you change your username, every old permalink with your old username will remain until someone takes your old username.
Hello, hackers pub!
【輪読会やってみます!】
#FediLUG
輪読会📖第零弾として #fedify の開発者である
Hong Minhee (洪 民憙)
@hongminhee洪 民憙 (Hong Minhee)
さんの著書『自分だけのフェディバースのマイクロブログを作ろう!』の輪読会を行います!
この機会に #Fedify を使用して皆さんで #ActivityPub や #TypeScript などの知識を強化しませんか?
本はGitHubから無料で読むことができます:
https://github.com/dahlia/fedify-microblog-tutorial-ja
参加:
https://fedilug.connpass.com/event/348240/
Fedify는 새로운 후원 파트너를 찾고 있습니다!
Fedify란?
Fedify는 #ActivityPub 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 #연합우주(#fediverse)에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.
💼 Fedify를 활용하는 프로젝트들
다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:
- Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
- Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
- Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
- Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스
🚀 Fedify가 제공하는 가치
- 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
- 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
- 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
- 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발
🤝 가능한 협력 모델
- 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 #Fedify 통합을 위한 전문적 지원
- 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
- 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계
🌟 Fedify와 협력했을 때의 이점
- 기술적 이점: 자체 구현 대비 시간과 리소스 절약
- 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
- 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
- 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화
📩 관심이 있으신가요?
ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:
- 이메일: sponsor@fedify.dev
- 연합우주:
@fedifyFedify: ActivityPub server framework
- GitHub: https://github.com/fedify-dev/fedify
귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.
Fedifyは新しいパートナーシップの機会を探しています!
Fedifyとは?
Fedifyは、ActivityPubベースのフェデレーションサーバーフレームワークで、開発者が分散型ソーシャルネットワークである#フェディバース(#fediverse)にアプリケーションを簡単に統合できるよう支援します。複雑なActivityPubプロトコルの実装を簡素化し、開発時間を大幅に短縮します。MITライセンスの下で提供されるオープンソースプロジェクトです。
💼 Fedifyを活用しているプロジェクト
すでに様々なプロジェクトがFedifyを活用しています:
- Ghost:数百万人のユーザーを持つプロフェッショナルな出版プラットフォーム(MITライセンスのオープンソース)で、Fedifyの主要スポンサー兼パートナーです。
- Hollo:個人ユーザー向けの軽量マイクロブログ(オープンソース、AGPL-3.0)
- Hackers' Pub:ソフトウェアエンジニア向けのフェディバースブログプラットフォーム(オープンソース、AGPL-3.0)
- Encyclia:ORCID学術記録をActivityPubを通じて提供するブリッジサービス
🚀 Fedifyが提供する価値
- 開発時間80%削減:複雑なActivityPub実装の代わりに実証済みフレームワークを活用
- 即時Fediverse互換性:Mastodon、Misskey、Pleroma、Pixelfed、PeerTubeなど様々なFediverseサービスとすぐに互換
- 専門技術サポート:ActivityPubおよびフェデレーションプロトコルの専門家による直接サポート
- カスタム開発:お客様の特定要件に合わせた機能開発
🤝 可能な協力モデル
- カスタムコンサルティングと統合サポート:お客様のプラットフォームへのFedify統合のための専門的支援
- カスタム機能開発:お客様のプラットフォームに必要な特定機能の開発と実装
- 長期的な技術パートナーシップ:継続的な開発とメンテナンスのための長期協力関係
🌟 Fedifyとの協力によるメリット
- 技術的優位性:自社開発と比較して時間とリソースの節約
- ブランドイメージ:オープンソースエコシステムへの支援を通じた企業イメージの向上
- 分散型ソーシャルネットワークへの参入:フェディバースエコシステムへの容易な参加
- 競争優位性:ソーシャル機能による製品競争力の強化
📩 興味をお持ちですか?
ActivityPubの実装をご検討中の方や、Fedifyプロジェクトとの協力にご興味のある方は、ぜひご連絡ください:
- メール:sponsor@fedify.dev
- フェディバース:
@fedifyFedify: ActivityPub server framework
- GitHub:https://github.com/fedify-dev/fedify
お客様の要件と目標に合わせたカスタマイズされた協力の可能性を一緒に探りましょう。
Fedify is looking for new partnership opportunities!
What is Fedify?
#Fedify is an #ActivityPub-based federated server framework that helps developers easily integrate their applications with the #fediverse, a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.
💼 Projects using Fedify
Various projects are already leveraging Fedify:
- Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
- Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
- Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
- Encyclia: A bridge service that makes ORCID academic records available via ActivityPub
🚀 Value provided by Fedify
- 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
- Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
- Expert technical support: Direct support from ActivityPub and Federation protocol experts
- Custom development: Tailored feature development to meet your specific requirements
🤝 Potential collaboration models
- Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
- Custom feature development: Development and implementation of specific features needed for your platform
- Long-term technical partnership: Long-term collaboration for continuous development and maintenance
🌟 Benefits of collaborating with Fedify
- Technical advantage: Save time and resources compared to in-house implementation
- Brand image: Enhance corporate image through support of the open-source ecosystem
- Entry to decentralized social networks: Easily participate in the fediverse ecosystem
- Competitive edge: Strengthen product competitiveness through social features
📩 Interested?
If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:
- Email: sponsor@fedify.dev
- Fediverse:
@fedifyFedify: ActivityPub server framework
- GitHub: https://github.com/fedify-dev/fedify
We're excited to explore customized collaboration opportunities that align with your requirements and goals.
Fedify는 새로운 후원 파트너를 찾고 있습니다!
Fedify란?
Fedify는 #ActivityPub 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 #연합우주(#fediverse)에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.
💼 Fedify를 활용하는 프로젝트들
다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:
- Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
- Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
- Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
- Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스
🚀 Fedify가 제공하는 가치
- 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
- 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
- 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
- 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발
🤝 가능한 협력 모델
- 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 #Fedify 통합을 위한 전문적 지원
- 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
- 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계
🌟 Fedify와 협력했을 때의 이점
- 기술적 이점: 자체 구현 대비 시간과 리소스 절약
- 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
- 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
- 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화
📩 관심이 있으신가요?
ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:
- 이메일: sponsor@fedify.dev
- 연합우주:
@fedifyFedify: ActivityPub server framework
- GitHub: https://github.com/fedify-dev/fedify
귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.
Fedify is looking for new partnership opportunities!
What is Fedify?
#Fedify is an #ActivityPub-based federated server framework that helps developers easily integrate their applications with the #fediverse, a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.
💼 Projects using Fedify
Various projects are already leveraging Fedify:
- Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
- Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
- Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
- Encyclia: A bridge service that makes ORCID academic records available via ActivityPub
🚀 Value provided by Fedify
- 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
- Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
- Expert technical support: Direct support from ActivityPub and Federation protocol experts
- Custom development: Tailored feature development to meet your specific requirements
🤝 Potential collaboration models
- Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
- Custom feature development: Development and implementation of specific features needed for your platform
- Long-term technical partnership: Long-term collaboration for continuous development and maintenance
🌟 Benefits of collaborating with Fedify
- Technical advantage: Save time and resources compared to in-house implementation
- Brand image: Enhance corporate image through support of the open-source ecosystem
- Entry to decentralized social networks: Easily participate in the fediverse ecosystem
- Competitive edge: Strengthen product competitiveness through social features
📩 Interested?
If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:
- Email: sponsor@fedify.dev
- Fediverse:
@fedifyFedify: ActivityPub server framework
- GitHub: https://github.com/fedify-dev/fedify
We're excited to explore customized collaboration opportunities that align with your requirements and goals.
반갑습니다!!
LogTape 0.9.0 Released: Synchronous Configuration and Better Runtime Compatibility
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
LogTape 0.9.0 introduces enhancements focused on flexibility and ease of configuration across diverse JavaScript environments. A key addition is the synchronous configuration API, providing `configureSync()`, `disposeSync()`, and `resetSync()` functions for simpler setup in scenarios where async operations are unnecessary. This version also improves runtime compatibility by moving file-system dependent components to a separate `@logtape/file` package, ensuring the core `@logtape/logtape` package works seamlessly across various JavaScript runtimes, including browsers and edge functions. Console sink enhancements include the `ConsoleSinkOptions.levelMap` option for customizing log levels. If you're using file sinks, you'll need to update your imports and install the new `@logtape/file` package. These updates reflect the project's commitment to providing a flexible and developer-friendly logging solution for JavaScript and TypeScript applications, with ongoing improvements to performance and compatibility.
Read more →I talked about #ActivityPub and #Fedify on
@guuJeremy's wonderful podcast, Software Sessions. I'm embarrassed by my poor English, but if you're interested, please listen!
그리고 어제 이미지 첨부 구현하면서 만든 리그레션 버그 하나도 고쳤다. (아무 이미지도 첨부 안하고 게시하면 오류가 나고 있었음.)
별 거 아니지만, 로그인 안 한 상태에서 댓글 다는 방법을 안내하도록 해봤다.
눈에 띄는 업데이트는 아니지만, 아이디를 바꿨을 때 예전 아이디로 된 링크들이 유지되게 했다. (GitHub과 비슷한 동작.)
그리고 어제 이미지 첨부 구현하면서 만든 리그레션 버그 하나도 고쳤다. (아무 이미지도 첨부 안하고 게시하면 오류가 나고 있었음.)
이미지 첨부 만들었다!
눈에 띄는 업데이트는 아니지만, 아이디를 바꿨을 때 예전 아이디로 된 링크들이 유지되게 했다. (GitHub과 비슷한 동작.)
揭示物에 이미지 添附하는 機能 만들고 있는데, 亦是 웹 프런트엔드 너무 어렵다…
이미지 첨부 만들었다!
이미지 업로드 테스트…
이미지 업로드 만들기에 앞서, 오브젝트 스토리지 聯動이 잘 되는가 確認하기 爲해 먼저 프로필 寫眞 업로드 機能부터 만들었다.
揭示物에 이미지 添附하는 機能 만들고 있는데, 亦是 웹 프런트엔드 너무 어렵다…
Hollo 만들 때 썼던 FlyDrive를 Hackers' Pub에서도 써야겠다.
이미지 업로드 만들기에 앞서, 오브젝트 스토리지 聯動이 잘 되는가 確認하기 爲해 먼저 프로필 寫眞 업로드 機能부터 만들었다.
이제 정말로 이미지 업로드를 만들어야 하는데, 오브젝트 스토리지 세팅하기가 귀찮다…
Hollo 만들 때 썼던 FlyDrive를 Hackers' Pub에서도 써야겠다.













