洪 民憙 (Hong Minhee)'s avatar

洪 民憙 (Hong Minhee)

@[email protected] · 765 following · 868 followers

An intersectionalist, feminist, and socialist guy living in Seoul (UTC+09:00). Who's behind @fedify and @hollo. Write some free software in , , , & . They/them.

()

WebsiteGitHubBlogFedify

https://hongminhee.org/

https://github.com/dahlia

https://writings.hongminhee.org/

https://fedify.dev/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

Hackers' Pubの作業は思ったより遅いですが、それでも1月中に主要な機能を全て完成させ、プライベートベータを開始するのが目標です。

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

제 생각보다 作業(작업)이 더디긴 하지만, 어떻게든 1() 안으로는 基本的(기본적)機能(기능)들을 다 具顯(구현)해서 프라이빗 베타라도 始作(시작)하는 게 目標(목표)입니다.

Deno's avatar
Deno

@[email protected]

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

新年を迎えて再びHackers' Pubの作業を再開した。今日は共有された投稿を誰が共有したかを表示する様にした。(まだ共有をする事は出来ないが、他のActivityPubサーバーのアカウントが共有した投稿を見る事は出来る)

スクリーンショットに引用しているのは @genya0407 さんの下の投稿:

https://social.genya0407.link/@genya0407/113751089421389307

genya0407さんの投稿がHackers' Pubに共有された様子。「洪 民憙 (Hong Minhee)さんが共有」と書かれている。
genya0407さんの投稿がHackers' Pubに共有された様子。「洪 民憙 (Hong Minhee)さんが共有」と書かれている。
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

새해를 맞이해서 Hackers' Pub 作業(작업)을 조금 했다. 이제 共有(공유)(부스트)한 글은 누가 共有(공유)했는지 表示(표시)된다. (아직 共有(공유)를 할 수는 없고, 다른 ActivityPub 서버의 計定(계정)共有(공유)한 글을 볼 수는 있다.)

스크린숏에 引用(인용)된 글은 @everclear 님의 아래 글:

https://hollo.ingyeo.net/@everclear/01941d3a-d277-72de-afab-902fa6910f1c

잉어구이 님의 글이 共有된 모습. 「洪 民憙 (Hong Minhee) 님이 공유」라고 表示되어 있다.
잉어구이 님의 글이 共有된 모습. 「洪 民憙 (Hong Minhee) 님이 공유」라고 表示되어 있다.
なかやばし's avatar
なかやばし

@[email protected]

holloきょうみありではある

ssig33's avatar
ssig33

@[email protected]

教えて頂いた hollo ってやつがめっちゃよさそうだな、何が一番いいかというと Bun を捨てたという判断に共感した、これにします

genya0407's avatar
genya0407

@[email protected]

hollo は実際いい感じだと思う。mastodon からの引越しを検討するレベル。

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

I prototyped a logo for . What do you think? Does it look okay?

https://hollo.social/@hongminhee/019410c4-07cd-7ed0-bb0e-efb0b6dd88c5

A prototype of a logo for BotKit. It's an unassembled plastic model kit of a cute dinosaur. It's labeled with “BotKit by Fedify.”
A prototype of a logo for BotKit. It's an unassembled plastic model kit of a cute dinosaur. It's labeled with “BotKit by Fedify.”
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

I'm currently brainstorming a framework for creating fediverse bots called , based on . It's less flexible than Fedify, but the goal is to make it possible to create simple fediverse bots with much less code. What do you think?

import { createBot, mention, text } from "@fedify/botkit";
import { RedisKvStore } from "@fedify/redis";
import { Redis } from "ioredis";

// Create a bot instance:
const bot = createBot({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  bio: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social").}`,
  // Use Redis as a key-value store:
  kv: new RedisKvStore(new Redis()),
  // Use Redis as a message queue:
  queue: new RedisMessageQueue(() => new Redis()),
});

// A bot can respond to a mention:
bot.on(/hi|hello|what'?s\s+up/i, (ctx) => {
  return ctx.reply(text`Hi, ${ctx.actor}!`);
});

// Or, a bot also can actively publish a post:
setInterval(async () => {
  await bot.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, mention, text } from "@fedify/botkit"; import { RedisKvStore } from "@fedify/redis"; import { Redis } from "ioredis"; // Create a bot instance: const bot = createBot({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: bio: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]").}`, // Use Redis as a key-value store: kv: new RedisKvStore(new Redis()), // Use Redis as a message queue: queue: new RedisMessageQueue(() => new Redis()), }); // A bot can respond to a mention: bot.on(/hi|hello|what'?s\s+up/i, (ctx) => { return ctx.reply(text`Hi, ${ctx.actor}!`); }); // Or, a bot also can actively publish a post: setInterval(async () => { await bot.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
Deno's avatar
Deno

@[email protected] · Reply to Deno's post

Deno's avatar
Deno

@[email protected]

update: Oracle has reached out and asked for an extension to respond to the JavaScript trademark cancellation petition. We've agreed to a 30 day extension - Feb 3.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

I had a medical checkup and my cholesterol level was so high that I'm forced to eat only salads from now on. 😇

tesaguri 🦀🦝's avatar
tesaguri 🦀🦝

@[email protected]

ActivityPubの仕様すらJSON-LDを真面目に扱っていないのだとしたら素人の我々はなおさら雰囲気で扱っても許されるということだろうから勇気づけられる(いいえ)

Hollo :hollo:'s avatar
Hollo :hollo:

@[email protected]

Have you been having trouble fetching accounts or posts from that have custom emojis in ?

This is because they represent an Emoji object as an invalid JSON-LD object. Fortunately, this patch fixes that issue, so keep an eye out for it.

https://hollo.social/@fedify/01941dab-e4c3-7ce0-9307-b5b8c095d521

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@[email protected]

Are you getting the following error when trying to look up any Activity Streams objects from that contain custom emojis?

jsonld.SyntaxError: Invalid JSON-LD syntax; "@id" value must a string.

This is because they represent an Emoji object as an invalid JSON-LD object. Fortunately, this patch fixes that issue, so keep an eye out for it.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

It's been an hour and a half and it's still only at 85%… 😇

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to Hyoung-Won Park's post

@dalcrose.hyoungwonpark.net 달크로즈 님도 새해 복 많이 받으세요!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

皆様、明けまして御芽出度う御座います!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

여러분, 새해 () 많이 받으세요! 올 한 해도 잘 付託(부탁)드리며, 尹錫悅(윤석열)은 어서 監獄(감옥)에 가길 바랍니다…

촛불에 구어진🔥잉어구이🔥's avatar
촛불에 구어진🔥잉어구이🔥

@[email protected]

  1. 많은 일이 있었지만 잘 버텨냈어요.
  2. 그래도 집 밖에 좀 나갔어요.
  3. 홀로 세팅했어요.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

Cloning the Akkoma source code, and it's taking a long time here… 😇

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to Scammo's post

@scammo Thank you too!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to モナコ広告 :fedibird1: @技術・雑談's post

@monaco_koukoku 二つ以上のバージョンの@js-temporal/polyfillパッケージがロードされたかも知れないですね。🤔

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

同時(동시)에 만들고 싶은 게 너무 많아서 뭐부터 해야할지 모르겠다.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to Chee Aun 🤔's post

@cheeaun Oh, I haven't thought that's text copy, but decoration.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to Chee Aun 🤔's post

@cheeaun Yes!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post

It's actually a vector illustration drawn by Inkscape.

A screenshot of an Inkscape workspace with the BotKit logo prototype.
A screenshot of an Inkscape workspace with the BotKit logo prototype.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

I prototyped a logo for . What do you think? Does it look okay?

https://hollo.social/@hongminhee/019410c4-07cd-7ed0-bb0e-efb0b6dd88c5

A prototype of a logo for BotKit. It's an unassembled plastic model kit of a cute dinosaur. It's labeled with “BotKit by Fedify.”
A prototype of a logo for BotKit. It's an unassembled plastic model kit of a cute dinosaur. It's labeled with “BotKit by Fedify.”
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@[email protected]

I'm currently brainstorming a framework for creating fediverse bots called , based on . It's less flexible than Fedify, but the goal is to make it possible to create simple fediverse bots with much less code. What do you think?

import { createBot, mention, text } from "@fedify/botkit";
import { RedisKvStore } from "@fedify/redis";
import { Redis } from "ioredis";

// Create a bot instance:
const bot = createBot({
  // The bot will have fediverse handle "@greetbot@mydomain":
  username: "greetbot",
  // Set the profile icon (avatar):
  icon: new URL("https://mydomain/icon.png"),
  // Set the bio:
  bio: text`Hi, there! I'm a simple fediverse bot created by ${
    mention("@hongminhee@hollo.social").}`,
  // Use Redis as a key-value store:
  kv: new RedisKvStore(new Redis()),
  // Use Redis as a message queue:
  queue: new RedisMessageQueue(() => new Redis()),
});

// A bot can respond to a mention:
bot.on(/hi|hello|what'?s\s+up/i, (ctx) => {
  return ctx.reply(text`Hi, ${ctx.actor}!`);
});

// Or, a bot also can actively publish a post:
setInterval(async () => {
  await bot.publish(text`Hi, forks! It's an hourly greeting.`);
}, 1000 * 60 * 60);

export default bot;
import { createBot, mention, text } from "@fedify/botkit"; import { RedisKvStore } from "@fedify/redis"; import { Redis } from "ioredis"; // Create a bot instance: const bot = createBot({ // The bot will have fediverse handle "@greetbot@mydomain": username: "greetbot", // Set the profile icon (avatar): icon: new URL("https://mydomain/icon.png"), // Set the bio: bio: text`Hi, there! I'm a simple fediverse bot created by ${ mention("@[email protected]").}`, // Use Redis as a key-value store: kv: new RedisKvStore(new Redis()), // Use Redis as a message queue: queue: new RedisMessageQueue(() => new Redis()), }); // A bot can respond to a mention: bot.on(/hi|hello|what'?s\s+up/i, (ctx) => { return ctx.reply(text`Hi, ${ctx.actor}!`); }); // Or, a bot also can actively publish a post: setInterval(async () => { await bot.publish(text`Hi, forks! It's an hourly greeting.`); }, 1000 * 60 * 60); export default bot;
NTSK's avatar
NTSK

@[email protected]

新幹線乗ったのでHollo更新します

pkg update's avatar
pkg update

@[email protected]

현재 @pkgupdt 으로부터 계정 이전 중입니다.

불편을 끼쳐드려 죄송합니다.

Older →