Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ojichatを移植してたら試験監督に遅刻した話
Search
boiling_water_S
February 23, 2020
Programming
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ojichatを移植してたら試験監督に遅刻した話
boiling_water_S
February 23, 2020
Other Decks in Programming
See All in Programming
Java 27新機能 / Java 27 new features
kishida
2
170
FreeBSDでZabbixを動かす
kenkino
0
320
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
190
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
6
4.6k
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
260
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
160
The Rails Doctrine Decade
koic
2
380
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
540
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
250
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
530
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
120
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
540
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
My Coaching Mixtape
mlcsv
0
320
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Become a Pro
speakerdeck
PRO
31
6.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Transcript
ojichatを移植してたら 試験監督に遅刻した話 2020-02-23 14:30~ mintech revival #3 @boiling_water_S
本日のお品書き 1.自己紹介 2.移植の経緯 3.ojichatについて 4.移植 5.まとめ
自己紹介 (いつもの) 名前:Boiling_Water Twitter ID:@boiling_water_S 出身:うつくしまの左上 所属:KIT 情報 (卒業できそう) 情報処理技術研究会
どうしてこうなった\(^o^)/ - 2/11(火)夜 某研究室にて -
移植に至るまでの経緯-1 処理研語録BOTが Discordのアップデートにより停止 修正ついでに、何か機能追加するか じゃあ ojichatだな() 図.処理研語録BOT (DiscordBot)
移植に至るまでの経緯-2 Java用のojichatないかな? (Discord4Jを利用しているため) ない じゃあ 移植するか!(脊髄反射) 図.処理研語録BOT (DiscordBot) 決断:22時頃 試験監督まで、あと12時間
処理研語録BOT 研民たちの何気ない 名 迷言 を “語録”として記録・振り返る Discord Bot • 紙なんすか!?、ザッコ
• 蚊取り線香3点バースト • ブレーカーは2度死ぬ • 焼きそばペヤング超超超大盛GIGAMAX激辛END • ξ.rar • 泣きそうなくらい良い曲ですね。あっCDはいらないです • こっちが泣きそうだわ 以上 語録一覧より抜粋 運用開始(2019/06/26) ~ 128 語 登録済! メッセージ投稿復旧:2時頃 試験監督まで、あと8時間
ojichatって?
ojichatってそもそも何? 図. ojichatのロゴ (githubより抜粋) https://github.com/greymd/ojichat 名称 • Ojisan Nanchatte Generator
説明 • おじさんがLINEやメールで送って きそうな文を生成するコマンド • ジョークツール 言語・環境 • Golang-cli (Dockerコンテナ版も) 開発 • greymd(Yasuhiro Yamada)氏
例 -1 ランダムな女性の名前で文を生成 引数で指定された名前で文を生成 $ ojichat ヤッホーれいこちゃん、元気かな⁉⁉オレは、近所に新しく できたラーメン屋さん に行ってきたよ。味はまぁまぁだったかナ $
ojichat 山田 山田ちゃん、オハヨウ〜(^з<)(笑)山田ちゃんも今日も2時までお仕事かナ❓寒いけど、頑張 ってね(# ̄З ̄)
例 -2 -p(max3)で句読点の量を指定可能 -e で絵文字の量を指定可能 $ ojichat -p 3 オレとオマエと大五郎
オレと、オマエと、大五郎チャン、オッハー❗(^_^)オレと、オマエと 、大五郎チャンにとって、素 敵な、1日に、なります、ようニ $ ojichat -e 10 おはよー、!チュッ☀ ❗(^з<) $ ojichat -e 0 ヤッホー。はなみちゃん、元気かな。はなみちゃんにとって素敵な1日になりますようニ。
移植するぞー
移植の条件として設定したもの 1. 極力オリジナルと同じ挙動をすること (名前・絵文字数・句読点数を指定できる) 2. 外部ライブラリとして利用できるように Jarにパッケージングする 3. 標準ライブラリと同様に利用できること (Mathクラスみたいな感じ)
ojichatの処理フロー-1 1. ONARA(Ojisan NArikiri Randomized Algorithm : おじさんなりきり乱択アルゴリズム)からパターンを選択 今回はGR(Greeding/Reporting)パターンを選択
ojichatの処理フロー-2 2.パターンに沿って 文を生成する {TARGET_NAME}、オハヨー{EMOJI_POS} そういえば、昨日は例の{RESTAURANT}に行って きたよ。結構いい雰囲気だったから、オススメだよ {EMOJI_POS} タグ • {TARGET_NAME}
• {FIRST_PERSON} • {DAY_OF_WEEK} • {RESTAURANT} • {NANCHATTE} など…
ojichatの処理フロー-3 3.{タグ}を置換する(絵文字は指定数繰り返し) 〇〇チャン、オハヨー♥(^o^) そういえば、昨日は例のイタリアンに行ってきた よ。結構いい雰囲気だったから、オススメだよ ✋ 完了
移植中に困ったところ 1.初見Go言語 → 仕方ない 2.同じライブラリが無い → 他で代用 3.形態素解析してるってまじ? 4.カタカナ活用
形態素解析してるってまじ? 生成された文へパラメータをもとに句読点の追加を行う 図.ふと我に返ったときのつぶやき 句読点挿入 終了:4時半頃 試験監督まで、5時間半 図.おじさん文がTokenizeされる様子 (オリジナルより) さらに、助詞(+助動詞)のあとに読点を追加 より“おじさん”らしくなる...らしい
カタカナ活用-1 語尾を最大2文字までカタカナにする “おじさんカタカナ活用” を適用(挨拶の感情以外) より“おじさん”らしくなる...らしい(天丼) 図.“おじさんカタカナ活用” が適応される様子 (オリジナルより)
カタカナ活用-2 オリジナルは正規表現を用いて検出・置換 カタカナ活用完了:6時半頃 試験監督まで、3時間半 正規表現 なにそれおいしいの? 脳筋置換じゃい 正規表現 頑張って勉強します…
なんやかんやあって…
できらぁ!!(歓喜) 図.Intellij IDEA上でのテスト時のSC 移植(仮)完了:7時頃 試験監督まで、3時間
地獄と化したDiscord鯖 遊ぶ処理研民たち (Discordより抜粋) BOTに実装(終):8時頃 試験監督まで、2時間 図らずもORA (Ojichat Reflection Attack) に成功した処理研民
満足だろうな!ガトー! だが・・・ 阿鼻叫喚のDiscord鯖 ぼく「満足じゃ」 その後の起床:11時半頃 試験監督まで、-1時間半(遅刻) そのまま意識が遠くへ…… zzz
まとめ 大事な予定の前は、 アホなことしてないで、ちゃんと寝よう!
None
まとめ 1.一応遊べるレベルまで移植することができた 2.形態素解析 →句読点挿入が不自然(同じIPADicのはずなのだが...) 3.カタカナ活用が一部機能していない → 文末から遡る文字数設定のミス(12:30頃修正) 後々不具合修正&Githubで公開(許されれば)
謝辞 ojichat開発者 greymd様 資料中の例文・GolangのSCはすべて Github上(https://github.com/greymd/ojichat) から勝手にお借りしました。申し訳ありません。 本当にありがとうございましたm(_ _)m