2018/12/14
マストドン専用って言いたくなかった(分散SNS Advent Calendar 2018)
分散SNS、2年目ともなると、だいたい概念を理解して、なんとなく使い方の勘所が掴めてきましたよね。去年4月の右往左往していた時期が懐かしいです。分散SNSということで運営の権限を分散させるだけでなく、マストドン以外の実装としてPleroma、Misskey、microblog.pubなんてのも出てきました。実装も分散されているのにお互いが会話ができる、バベルの塔を壊すべく言語を乱した神様もビックリでしょう。今ならバベルの台地も作れそうです。
去年は、Mastodon 2 Advent Calendar 2017でマストドンのフォロー状態可視化ツール「フォローリンク」を書きました。マストドンアドベントカレンダーでした。
そう、去年フォローリンクを作ったときはマストドン専用だったのです。せっかく実装が複数あるのに、どうしても注目を集めたということで人口の多いマストドンがさらに注目されてしまうのは仕方がない部分があるかと思います。APIの実装なども先行している部分がありますね。
しかし分散SNSという仕組みがあるのだから、どうせなら特定の実装に依存せず、みんなで使えるようにしたいということで、ActivityPubでデータを取得するようにしてPleromaに対応しました(あ、Misskeyで動作確認してない)。ActivityPubでも、実装によってデータの持ち方が違って、若干揺らぎがあるのが辛いところですが、テキストで入っているかオブジェクトで入っているかなので、扱いに慣れてくると問題なさそうです。
そして今年、もう一つサービスを公開しました。ログ蓄積サービス「notestock」です。何ができるかというと、まあサイトを見てもらうのが手っ取り早いのですが、簡単に書くと日付別にまとめて表示したり、検索ができます。
実はnotestockの前にMastoDaysというサービスを公開していました。特定の日付のマストドンユーザーページを開くツールだったのですが、名前から分かるとおりマストドン専用でした。
実装を意識しないでツールが使えるというのは、なかなか使い心地が良いです。上手く疎結合にしていろいろなツールの選択肢が広がると良いですね。ということで、本当にマストドンでなければいけないツールでない限り、できるだけいろいろな実装に対応していると嬉しいねという話でした。
と、ここまではコミュニティのインフラ的な話だったのですが、もう一つコンテンツ的な部分の話も。
ときどき流れてくるハッシュタグ「マストドン○○」とか「○○マストドン」みたいなやつ。あれが流れてくると、他の実装の人って、参加していいのか迷うというか、参加するにしてもちょっと乗り切れない感じがありますよね。
日本語が、五七五のリズムで刻むと気持ちいい感じがあるので、「マストドン 付いてるタグは 気持ちいい」んでしょうね。あと、ゲーム機は全部ファミコンと言うみたいに、分散SNSを指す言葉としてマストドンが使われてしまっているところもわりと有る気がします。このへん、先ほども書いたように先行プロダクトとして仕方ないのかなぁと思うところもあるのですが。
ということで、分散SNSをハッシュタグに使えばいいんでしょうけど、「ぶんさん えすえぬえす」と10音もあると、なんかまどろっこしい感じになってしまいます。ここは略語としてよく使われる四文字を探し出し「ぶんさん」を使って「分散○○」みたいな感じはどうでしょうか。ただ、この場合は後ろに分散を付ける「○○分散」はちょっと意味が伝わりにくくなる気がします。
ここまで書いて、別に分散SNSを表すハッシュタグを付けなくても、単純に「○○」だけ付ければ良いんじゃないかと気が付いてしまったのですが、たぶんこの辺りって「マストドン(分散SNS)にいる仲間達」みたいな帰属意識から生まれるものなのかなぁと思ったりもしました。
ハッシュタグを付けるときに、少しマストドン以外の存在も思い出して欲しいなという提案と、なんか呼びやすい略称は無いですかね?という問いかけでした。
2018/12/01
一人アドベントカレンダー
いろいろなアドベントカレンダーが始まる日です。
こうして書き始めたアドベントカレンダーなのですが、参加したカレンダーが問題なのです。
「一人アドベントカレンダー Advent Calendar 2018」
わたしの?いいえ、ねそ氏の一人アドベントカレンダーなのです!
どういうことやねん。
上のリンクからアドベントカレンダーが参照できますが、いきなり一番バッターと二番バッターが他人ですよ。ねそ氏は自分のアドベントカレンダーで三番四番と野球なら良い打順を持っていくわけです。
このアドベントカレンダーも何を書こうか迷いました。
一人の定義とはなんなのか掘り下げようか、百合アドベントカレンダーにしてしまおうか、ねそ氏について有ること無いこと書こうか。
しかしまだ初日ですので、あんまり変な方向性に持っていくのもよろしくなかろうと、とりあえず経験談でも。前座というか一番バッターですしね。
実はわたしも2015年にやったんですよ。このときは一人アドベントカレンダーではなく、いろんな種類のアドベントカレンダーに25日分参加するというものでした。
2015年12月1日 VPSを調子に乗って使い過ぎた話(レンタルサーバー Advent Calendar 2015)
2015年12月2日 質問サイトを回答側として使ってみた中で感じたこと(teratail Advent Calendar 2015)
2015年12月3日 友利奈緒の魅力(友利奈緒 Advent Calendar 2015)
2015年12月4日 手作業クローラーチューニングをするときの話(クローラー/Webスクレイピング Advent Calendar 2015)
2015年12月5日 ノイズキャンセリングイヤフォン(今年のベストバイガジェット Advent Calendar 2015)
2015年12月6日 インクリングのコミュニケーション(スプラトゥーン Advent Calendar 2015)
2015年12月7日 シュノーケル(ゆゆ式 Advent Calendar 2015)
2015年12月8日 面倒な使い方の事例(PostgreSQL Advent Calendar 2015)
2015年12月9日 「理論から学ぶデータベース実践入門」読了(今年読んだ技術書 Advent Calendar 2015)
2015年12月10日 うちでよく作る味噌汁の具(味噌汁の具 Advent Calendar 2015)
2015年12月11日 マザーボード(今年買ったもの Advent Calendar 2015)
2015年12月11日 友利奈緒の人気を支える能力(友利奈緒 Advent Calendar 2015)
2015年12月12日 Nexus6(携帯電話 Advent Calendar 2015)
2015年12月13日 道路の修正に飽きたあなたへ(OpenStreetMap Advent Calendar 2015)
2015年12月14日 普段の朝食(みんなの朝食 Advent Calendar 2015)
2015年12月15日 壁に刺したいのにさせない(おうちハック Advent Calendar 2015)
2015年12月16日 ぞうのロゴ(ぞう Advent Calendar 2015)
2015年12月17日 リューシカ・リューシカ(今年読んだマンガ Advent Calendar 2015)
2015年12月18日 近所の神社での初詣(寺・神社 Advent Calendar 2015)
2015年12月19日 実家の犬(うちのいぬ Advent Calendar 2015)
2015年12月20日 新宿御苑の猫(猫写真 Advent Calendar 2015)
2015年12月21日 移動するサーバのzabbixエージェントを登録する(Zabbix Advent Calendar 2015)
2015年12月22日 コンタクト(プログラマの映画 Advent Calendar 2015)
2015年12月23日 選ばれたのは回転寿司です(寿司 Advent Calendar 2015)
2015年12月24日 極々普通なTKG(TKG Advent Calendar 2015)
2015年12月24日 ArduinoでJJY発信(おうちハック Advent Calendar 2015)
2015年12月25日 箕面のインドカレー屋さんSOL(カレー Advent Calendar 2015)
このときは11月頭に計画を立てて、記事を書き始め、1日に3本ぐらい書いたり全く進まない日があったりで、常に10日分ぐらいストックを溜める感じで書き進めていきました。
ストックがある分、まだ追い詰められ感は少なかったのですが、かなり厳しかったですね。
仕事をしていても記事のことを考えてしまうような状況でした。
そう考えると、土日の分を他人に託してしまうというのは、かなり斬新なアイデアかと思います。
ねそ氏の記事がどんな風になるのか、今から楽しみですね。
こんな感じで良い感じのヒットになったでしょうか。
まだねそ氏の登場まではしばらくありますが、次はえじょねこ氏の記事をお楽しみください。
2018/11/28
notestock機能追加(多言語対応、リンク先表示)
いつも応援ありがとうございます。
細かい追加ですが、notestock( https://notestock.osa-p.net )に機能追加を行ったのでお知らせです。
- 多言語対応
現在はほとんどの利用者の方が日本語での利用かと思いますが、将来を見据えて多言語対応を行いました。
ひとまず日本語とつたない英語対応です。他の言語などについては、
https://github.com/osapon/notestock_message
から修正可能です。 - リンク先の表示
リンク先がどういうページか、別のページに移動させられる場合、最終的にどのページに辿り着いてどんなことが書いてあるのかを表示します。 - プライベートページに公開ページへのリンクを表示
公開用ページのアドレスは設定画面にしか表示されていませんでしたが、新しくプライベートページの日付右側にリンクが表示されるようになりました。
日付を指定してリンクを紹介するときに便利かと思います。 - ブラウザ検索機能
これはだいぶ前から付いていたのですが、ブラウザでnotestockの検索ができるようになっています。
Chromeの場合、アドレスバーに「notestock」と打つと「タブを押してnotestockを検索」出てきます。
Firefoxの場合、notestockを開くと検索バーの虫眼鏡マークからnotestockの検索が追加でき、notestockを開かなくても検索ができるようになります。
ただし全体からの検索なので、自分の投稿を検索する場合は、従来通りログインした状態で「アカウント内検索」をしていただく必要があります。
そろそろログイン画面から、コードの投稿をしやすくしたいなと思っているのですが、PleromaやMisskeyってインテント投稿機能ってないんですかね。
ドキュメントにそれらしいものが見つけられませんでした。取りあえずマストドンあたりから順次追加していこうかなと思います。
notestockの公開検索対象で、notestockが含まれている投稿をときどき確認していますので、何かあれば投稿しておいてもらえると、反応したりしなかったりします。
よろしくお願いします。
2018/10/19
notestock機能追加(応援ユーザー表示)
いつも応援ありがとうございます。
細かい追加ですが、notestock( https://notestock.osa-p.net )に機能追加を行ったのでお知らせです。
- 応援ユーザー表示
notestockの設定画面に「ファンティアユーザーID」の入力欄を追加しました。
ここにファンティアのユーザーIDを入れていただくと、公開/非公開の投稿一覧ページに「応援ユーザー」のマークが付きます。
またトップページにも名前の表示ができます!(非表示も選択可能です)
現在は応援ユーザーに対して特に追加の機能はありませんが、今後新しい機能などがご利用いただけるようになる予定です。
またこれに合わせてプランの名称を以下のように変更いたしました。
無料プラン→応援
応援→超応援
ファンティアユーザーIDは、マイページのURLに表示されている「tus_」から後の部分です。
設定画面にはtus_も含めて記入してください。
ファンティアからnotestockへのデータ取り込みは1日1回のため、ファンティアでファンになった直後などは表示されるまで時間が掛かります。
よろしくお願いいたします。
2018/10/13
notestock機能追加(統計、ログインメニュー、検索結果)
いつも応援ありがとうございます。
細かい追加ですが、notestock( https://notestock.osa-p.net )に機能追加を行ったのでお知らせです。
- グループ検索
これは既に投稿でも紹介していましたが、改めて。
「グループの設定」でグループを組んだアカウントから横断検索が出来るようになりました。これにより、複数のアカウントを使い分けていて「一個ずつアカウントを切り替えて検索」しなくて良くなりました。
「投稿した覚えはあるけど、どのアカウントか忘れた」なんてときに威力を発揮します。 - 統計を追加
ログインしたあと、上部メニューに「統計」が追加されています。
各月の投稿数や、時間別・曜日別の投稿数が表示されます。 - ログインメニューを追加
現在ログインはトップページからしかできませんが、左上の「notestock」表示がトップへのリンクと分かり難いです。
そのためログインしていない状態で、トップページ以外を開いた場合、上部メニューに「ログイン」のリンクを表示します。実体はトップページへのリンクと同じです。 - 検索結果のリンクから該当投稿へ移動
今までは検索結果に表示される日時をクリックすると、その投稿日のページ先頭へ移動していましたが、該当の投稿付近へ移動するようになりました。
これで、該当投稿までの話の流れなどが分かりやすくなります。 - その他に流れ着いたお便り(?)
今回追加した「ログインメニュー」はnotestockについて書かれていた感想から追加してみました。
他に見かけた感想から「ログイン時に入力させるメッセージを/share?text=hoge」で投稿できるようにして欲しいというのがありました。
マストドンでは、インスタンスのアドレスからいきなり投稿画面を開く仕組みがあるため、追加が可能っぽいです。他のSNSシステムでもできるのかなと調べているところですが、まだ対応しているのはマストドンだけっぽいです。
あと投稿時にダイレクトを選択済にできないので、どうしようかなと考えているところです。notestockのログインコードは、他の人が見て同じように送信しても問題無いように、トップページからアカウントを送った際のIPアドレスと、「投稿した」ボタンを押したときのIPアドレスが同じかどうかを確認しています。ですので、ログインコードはそのまま公開で投稿してもらっても良いのですが、なんとなく気分的に嫌ですよね、でもいちいち切り替えるのだるいですよね、というところで、どうしようかなと考えています。
本家にissueを立ててみるかなぁと考えています。
notestockの公開検索対象で、notestockが含まれている投稿をときどき確認していますので、何かあれば投稿しておいてもらえると、反応したりしなかったりします。
よろしくお願いします。
2018/08/19
mikutterの薄い本 vol.14
文章作品を読んだ後、たいていの場合は主人公達の活躍シーンを心の中で反芻し、興奮がしばらく続く。この本でもTwitterで大活躍したクライアント達の足跡を辿ることによって、それと同じ興奮を得られるのではないかと思っていた。
しかしどうだろう。読後に残された、大切ななにかを無くしてしまった寂しさ、巣立っていく鳥たちともう出会えないのだろうという寂しさ、残されて置いて行かれる者達の恐怖感、焦燥感。いろいろな感情がぐちゃぐちゃと入り交じったような気分になった。そう、この文集は別れを告げる手紙だったのだ。
わたしもTwiterに触れたのは2010年より前で、vol.14で触れられたクライアント達と共に育ってきた。TLのフォロワー達と繰り広げたふざけた会話の中から出てきたアイデアが、Twitterのエコシステムによって、マッシュアップと呼ばれるサービス達が雨後の竹の子のように現れ、それらを介して再びTLに還元されていく。そのエネルギーは本当に巨大な濁流となり、そんな計り知れないパワーを前に、「世界」はいかに広く、わたしはその「世界」の一構成員でしかないのだと気付かされた。わたしの立ち位置を明確に突きつけ、更なる進歩を要求する場所、壁を乗り越え次の階段に進む場所、Twitterはわたしにとって理想郷であるように思えた。
その濁流も真の意味で世界を巻き込む巨大なものとなったとき、本当に人間だけでは制御しきれないものとなってしまったのだ。SF作品などで見かける機械の反乱、人間が制御できなくなった機械達、空想上の産物でしかなかったそれは、Twitterという巨大な濁流をなんとか制御しようと作り上げられた自動処理システムとして目の前に実現されてしまったのだ。決まった応答文しか返さず、問いかけ文を試行錯誤しようとも思わせない自動応答処理、判定条件が全く想像できないロック・凍結処理、それらに怯えながら暮らす「世界」は本当に望んでいた理想郷だったのだろうか。
わたしのアカウントは凍結こそ免れているものの、作ったアプリは停止されてしまい様々な権限を剥奪されてしまった。そこに明確なる理由が明示されていれば、納得もできただろう。しかし剥奪を告げる文章に添えられた理由は全くの不合理で、なにを持ってその判定が行われたのかすら理解できないものであった。そしてTwitterから発表される数々のエコシステムを否定する行動。このときわたしは思い知らされてしまったのだ。この「世界」は変わってしまったのだと。そして世界を受け入れるために、Twitterは変わらなくてはいけなかったのだと。
こうしてわたしは「世界」を去った。新たな新天地があるという情報を元に辿り着いた分散型SNSには、同じように「世界」 を離れた者達がいた。かつての仲間達と再会したそこは、新たな開拓地として目の前に広がっていた。
新たな開拓地で、再び見せられる世界の巨大さ。目まぐるしく進歩する新天地は、常に自分の成長を要求される過酷な環境でもあった。そうして過酷な環境に身を置きつつ暮らす日々は、離れた「世界」を思い出す暇を与えないものであったのかもしれない。つかの間に思い出す「世界」は過去の栄光に輝く良かった頃のそれだったり、現状の暗く寒々としたそれだったり。しかし「世界」はそこに有り続けるのだという当たり前の光景を心のどこかに刻み込んでしまっていたのだろう。
vol.14を読むことによって、その「世界」は永遠ではないのだと、改めて気付かされてしまったのだ。読後から続くこのもやもやとした気持ちは、「世界」から突きつけられた別れの手紙を受け取ってしまったからだ。本の構成としては各クライアント作者からの文章ではあるが、先に書いた「世界」の巨大さは、いつしか「世界」がひとつのものであるという、わたし対「世界」というような概念を生み出していたのだ。
今わたしが身を置く分散型SNSは、世界が一つではないということを気付かされる。個々が尊重され、また世界も尊重される。多様性という様々な方向へ伸びる尺度により物事はを一概に判断できないものであると教えられた。こうして新しい価値観を身につけられたのもTwitterという「世界」を経験したからこそなのだ。
これからもTwitterは続いていくだろう。しかしUserStreamというひとつの時代を作り上げた機能が失われることで、あたらしい世界に変わっていくだろう。UserStreamによって育てられた文化は、vol.14を読むことによっていくつかは分散型SNSに引き継がれて、新しい歩みを始めていることが知られる。後書きにあったように、両者の幸せを願わずにはいられない、素晴らしい本であった。
2018/07/21
notestockを公開しました
notestock( https://notestock.osa-p.net )はActivityPub対応のSNS(マストドンやPleromaなど)の投稿を記録し、日付別に表示したり検索できるサービスです。
インスタンスで検索機能が提供されていないので、過去に投稿した覚えがあるけどいつだったか忘れた、というようなときに使えるかと思います。
まだベータ版として機能が限られています。今後も機能を追加していきます。
2018/05/22
Windows10 1803でスタートメニューが開かなくなった(解決済)
Windows10 1803アップデート自体は特に問題もなかった(Edgeの動きがおかしくなりましたが、常用していないので、特に問題は無し)のですが、先日パソコンを終了しようと思ってスタートメニューをクリックすると、何も反応がない。訓練されたWindowsユーザーなので、まあExplorer.exeがハングアップしていて動かないのだろうと思い、そのときはAlt + F4で電源を落としました。
それ以降、いくら再起動してもスタートメニューが開かない。これはなんかおかしいなと気が付いて検索してみると、どうやら最近のスタートメニューはExplorer.exeではなくShellExperienceHost.exeという別のプロセスで動作しているらしいです。そして、スタートメニューが開かないのはこの実行ファイルが暴走しているから、タスクマネージャーから強制終了させるといいらしい。
しかしタスクマネージャーを確認してもそんな実行プロセスはいません。
ShellExperienceHost.exeが使用するスタートメニューの情報を記録しているタイルデータベースというものが壊れている場合、別のアカウントを作って動作すればそのアカウントに乗り換えろという指示も出てきました。
別アカウントを作ってもアプリの再インストールや再設定をしないといけないので、あまりやりたくないなと思いつつ試してみますが解決せず、どことなく一安心。
他に検索で出てくるディスク障害を解決するコマンド類
dism /online /cleanup-image /restorehealth sfc /scannowも試してみましたが効果が無く。
また、スタートメニューの問題を対処するという、そのものズバリのstartmenu.diagcabというツールもあったのですが、「Microsoft.Windows.ShellExperienceHost Microsoft.Windows.Cortanaアプリケーションを正しくインストールする必要があります。」というエラーと未解決という表示。対処とは🤔
他に出てくる対処として、PowerShellを使ってアプリを再インストールしろという
Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like "*SystemApps*"} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
しかしこちらもというエラー。Add-AppxPackage : 次の HRESULT で展開に失敗しました: 0x80073CF6, パッケージを登録できませんでした。
エラー 0x80073B1F: 次のエラーが発生したため、Microsoft.Windows.ShellExperienceHost_10.0.17134.1_neutral_neutral_cw5n1h2txyewy パッケージを登録できません: ResourceMap が見つかりません。
。パッケージの 'resources.pri' ファイルが有効であることを確認してください。
注意: 詳細については、イベント ログで [ActivityId] b5b9cffb-ef47-0003-f3e0-b9b547efd301 を検索するか、コマンド ラインの Get-AppxLog -ActivityID b5b9cffb-ef47-0003-f3e0-b9b547efd301 を使用してください
発生場所 行:1 文字:89
+ ... | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.I ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (C:\Windows\Syst...ppXManifest.xml:String) [Add-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand
このPowerShellスクリプトは、インストール先にSystemAppsを含む既にインストールされているパッケージを再度登録するという物のようです。
どうやら、C:\Windows\SystemApps\ShellExperienceHost_cw5n1h2txyewy\resources.priが壊れているようで、そもそも壊れたファイルを再度登録しようとしても登録できないですね。
ふと思い出してシステム復元ポイントからの復元を試してみたのですが、一週間分2回ほどしか残っておらず、どちらもSystemAppsが何らかの問題で戻せなかったというエラー。復元ポイントを設定する時点で壊れていたようです。復元ポイントとは🤔
あと残されている提示された対処法は上書きインストールか、全部捨てて再インストールかというところだったのですが、そもそもこのSystemAppsをWin10のインストールメディアから取り出せないのか?と思ったのですが、最近はCABファイル形式ではないようで、またシステムファイルを簡単に差し替えたりできない機構が入っているので無理そうです。
システムの入れ直しを決意すると、取りあえず破壊的な作業もできるので、パッケージを完全に削除してしまうというものも試してみました。
Get-AppxPackage | Where-Object {$_.Name -ne "Microsoft.Windows.ShellExperienceHost"} | Where-Object {$_.Name -ne "Microsoft.Cortana"} | Remove-AppxPackage
ShellExperienceHostとCortana以外を消すというPowerShellスクリプトですが、かなりパッケージが入っているようで結構時間が掛かります。試しているうちに何気なくスタートメニューをクリックすると、開くではないですか。
startmenu.diagcabによるとShellExperienceHostとCortanaが原因だったはずなのに、それ以外を消して解決するとは。
結局先ほどのコマンドでUWPアプリがまとめて消えたので、Microsoftストアからもう一度インストールする必要があります。
Windows 10 に搭載されているアプリを再インストールする方法 - マイクロソフト コミュニティなぜかストアアプリが英語になってしまったのと、アラーム&クロックだけがエラーコード0x80073D05でインストールできないのですが、取りあえず使える状態には戻りました。
https://answers.microsoft.com/ja-jp/windows/forum/apps_windows_10-outlook_mail/windows-10/239ef7e9-9f4f-40dc-bf41-2cd2b8217843
また今回の件を調べているうちに知った、コマンドラインからEdgeを起動する方法
explorer.exe shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge
結論。PowerShellで
Get-AppxPackage | Where-Object {$_.Name -ne "Microsoft.Windows.ShellExperienceHost"} | Where-Object {$_.Name -ne "Microsoft.Cortana"} | Remove-AppxPackag
を流してUWPアプリを全削除、Microsoftストアから入れ直し。









