スクリプト類とメニューボタン

トップ ソフト 雑記 日記 リンク

2018年12月30日日曜日

notestock機能追加(共有検索、Webhook機能)

いつも応援ありがとうございます。
今回はnotestock( https://notestock.osa-p.net )に割と大きめの機能追加を行ったのでお知らせです。

  • 共有検索
    今までログイン中の検索については、自分またはそのグループ内の投稿しか検索ができませんでしたが、共有(ActivityPub用語でアナウンス、マストドンだとブースト、PleromaだとRetweet、MisskeyだとRenote)された投稿も検索対象となりました。
    共有した投稿の投稿主がnotestockで検索対象になっていない時など、タイムラインで見かけて共有した覚えがあるんだけど、いつだったっけ?というようなときに威力を発揮するかと思います。ぜひご利用ください。
    https://mstdn.nere9.help/users/osapon/statuses/101322442242910201
    SNSの製品によって呼び方が違うので、統一されると良いですね。ひとまず分かりやすく共有と呼んでいます。

  • Webhook機能
    これは完全にお遊びの機能なのですが、投稿した内容に合わせて他のURLを呼び出すという機能が追加されました。
    使い方はこちら https://mstdn.nere9.help/users/osapon/statuses/101205592677942680
    Twitterに投稿する処理を用意すれば、条件に引っかかる特定の投稿だけTwitterに転送する、なんて使い方もできるかもしれません。
    今のところネタで思い付いて入れた機能なので、制作者も持てあましている状況です。
    入力欄が1つしか表示されていないと思いますが、設定画面でファンティアIDを入れていただくと3個に増えます。(超応援ユーザーの方は10個まで)

notestockの公開検索対象で、notestockが含まれている投稿をときどき確認していますので、何かあれば投稿しておいてもらえると、反応したりしなかったりします。
よろしくお願いします。


2018年12月18日火曜日

インターネット蟹工船を読んで

インターネット蟹工船 Advent Calendar 2018、18日目です。

   インターネット蟹工船を読んで
  マクナル星立ゼーポーモ中学校 おさ
 この作品は、まだ人類が母なる惑星、地球にいた頃に書かれたものだ。人類が宇宙に進出し、多くの星々をネットワーク接続するアウターネットになる前の、地球を覆い尽くしていたネットワークでの出来事がオムニバス形式で綴られたものだった。作中では管理者でもない人達が、それぞれ自分たちの価値観で物事を仕切りはじめ、コミュニティが崩壊していく話があった。個人を大切にするという考え方が、自分勝手と誤った解釈になり、共同体に所属する一個人でしかないという前提を忘れさせてしまうのか、そのような動きになる例を道徳の授業で習ったことを思い出した。
 わたしはこの作品を読んで、人類の歴史は繰り返すものなのだと感じた。異なる宗教、星、国、法律、ルール、これらはそれぞれのグループが築いてきた歴史に基づいたものであり、各グループは構成する人員の入れ替わりに合わせて信条が変化してきたものだ。その度に派閥ができ、コミュニティが分かれ、村、国、星、宗教が分かれてきた。人はそれぞれ考え方が微妙に異なり、完全に同じ考えを持つ人間は存在しない。それは同じ条件式と学習結果を与えられたコンピュータだけだろう。
 地球で文明を持ち始めた頃の人類は、各々が役割を分担することで、一人あたりの生活コストを下げ、文化を成長させてきた。人はお互い微妙に異なる考えや価値観を擦り合わせ、許容できる者同士で集まって生活しているのだ。これはネットワークにおいても同じことが言える。アウターネットになった現在でも、サービスは宇宙空間に分散したサーバー上で実行されているし、そのサーバーはエネルギーを得るためにどこか恒星系に所属している。これはアウターネットでの活動も、何らかの制約に縛られるということだ。なんの制約にも縛られたくないという人達もいるようで、アステロイドベルトの公宙域にサーバーを置いている人もいるようだが、警備ロボットなどでかなりの費用が掛かっていると聞いた。この作品でも語られていたように、自由とはコストが掛かるもので、何かを守るためにはお金であったり、人的リソースであったり、とにかく力が必要となる。
 わたしは大金持ちになったら、ぜひ自分のサーバーを打ち上げてみたいと思った。しかし現代では人類の活動範囲が広がってしまい、みんな同じような生活となってしまっているので、きっと共有サーバーで他の人達とアウターネットを使っていくことになるのだろうなと思っている。相手への敬意を忘れず、自分に合う活動領域を見つけたいと感じた。

エスペラント語でTerpomoってポテトの意味らしい。

2018年12月14日金曜日

マストドン専用って言いたくなかった(分散SNS Advent Calendar 2018)

分散SNS Advent Calendar 2018、14日目です。

分散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月1日土曜日

一人アドベントカレンダー

今年もやって来ました。12月1日。
いろいろなアドベントカレンダーが始まる日です。
こうして書き始めたアドベントカレンダーなのですが、参加したカレンダーが問題なのです。
一人アドベントカレンダー 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年8月19日日曜日

mikutterの薄い本 vol.14

mikutterの薄い本 vol.14『レズと青い鳥』 - mikutterの薄い本制作委員会書籍版を読んだ。

文章作品を読んだ後、たいていの場合は主人公達の活躍シーンを心の中で反芻し、興奮がしばらく続く。この本でも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年7月21日土曜日

notestockを公開しました

notestock( https://notestock.osa-p.net )はActivityPub対応のSNS(マストドンやPleromaなど)の投稿を記録し、日付別に表示したり検索できるサービスです。

インスタンスで検索機能が提供されていないので、過去に投稿した覚えがあるけどいつだったか忘れた、というようなときに使えるかと思います。

まだベータ版として機能が限られています。今後も機能を追加していきます。

 



2018年5月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 に搭載されているアプリを再インストールする方法 - マイクロソフト コミュニティ
https://answers.microsoft.com/ja-jp/windows/forum/apps_windows_10-outlook_mail/windows-10/239ef7e9-9f4f-40dc-bf41-2cd2b8217843
なぜかストアアプリが英語になってしまったのと、アラーム&クロックだけがエラーコード0x80073D05でインストールできないのですが、取りあえず使える状態には戻りました。


また今回の件を調べているうちに知った、コマンドラインから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ストアから入れ直し。

2018年4月19日木曜日

マストドンを始めて1年過ぎた

あちこちでポエムが書かれているようなので、わたしも。

マストドン自体の歴史はもう半年ぐらい長いのですが、わたしも多くの日本人と同じように、やはり日本語で紹介されて始めた口です。当時は、まだTwitterを使いまくっていたのですが、ぶろるっく関連のスパム対応なんかで面倒だなぁと思っていた頃でした。
現在mstdn.jpインスタンスを公開しているぬるかる氏が、nil.nuドメインで立ち上げたよーというツイートをしているのを見かけて登録してみました。ユーザーID2番を取っちゃったのはボケ老人として語り続けていくでしょう。

この日はなんやかんやで人が殺到して、お祭り状態になっていました。当初は分散SNSというものを知らず、もっと歴史のあったGNU Socialなんかも、このとき初めて耳にしたのでした。
分散SNSの思想については、らりお氏の記事が詳しいです。
gnusocial や mastodon の哲学 - 何とは言わない天然水飲みたさ
https://blog.cardina1.red/2017/04/13/federated-social-web/

わたしにとって初めて触れる分散SNSという思想は、当時上手く解釈をすることができず、どのように複数のインスタンスを使い分けたらよいのかが理解できませんでした。マストドンには「ローカルタイムライン」という同じインスタンスに属する人の投稿が流れてくるタイムラインがあるのですが、これがチャットのような機能を果たしてしまうため、この中で話題を完結させてしまうと、外部の人とは会話がしづらいというものでした。

使っていくうちに、わたし自身が理解したこととしては、Twitterの時と同じように使うのが一番よいというものです。これは複数のインスタンスに所属して、アカウントごとに人格を切り替えて使うのではなく、一つのアカウントにプログラマーな自分も、ゲーマーな自分も、全部載せてしまうというものです。ありのままを見せるということですね。テーマなどを決めずに考えを垂れ流すことで、どんどん話題は移り変わっていきますし、「アカウント間違えました」なんて発言をしなくて済むわけです。

すっかりマストドンに取りつかれてしまったわたしは、mstdn.jpがサーバを強化している間に、別のインスタンスにアカウントを作成しました。Twitterでフォローしている中で、わりと技術者寄り的で雰囲気がよいグループのうちの一人がインスタンスを立てたというので、同じグループで一気に移住が進むかなと目論んでの参加でした。しかしこれは思惑が外れてしまい、グループの移住は進まず、管理者もほとんど姿を見せなくなってしまいました。こうなるとインスタンスがいつまで維持されるのか、不安との戦いになります。Twitterでもそれほどツイートはしない部類の人間だったのですが、それでもローカルタイムラインには自分の発言ばかりが並んでいて、むしろここに新しい人が入り込めると考えるだろうか?という状態でした。

マストドンにはローカルタイムラインの他に「連合タイムライン」というものがあり、これは同じインスタンスに参加している人達がフォローしているアカウントの発言が流れてきます。ここから外部の人達の存在を知ることができるわけです。また同じインスタンスの人も、よそのインスタンスの人も、フォローすることによってホームタイムラインに発言が並び、まさしくTwitterと同じように使うことができるのです。

極たまに現れるローカルタイムラインの他者の発言に乗っかっていき、話題を広げようとしてみたり、連合タイムラインから新しい人をフォローしてみたり、この時期は分散SNSの難しさみたいなものを実感することができました。人は、寂れたところにはなかなか集まらないものです。自分が作ったインスタンスではないわけで、いよいよこれは自分一人が頑張ってもどうにもならないぞと思い至り、インスタンスを移ることにしました。

連合SNSは自分でインスタンスを立てる事もできます。先に書いたように、ありのままの自分というものを見せて行くには、自分のドメインでそれを行うのが一番分かりやすいものでしょうし、誰にも束縛されないマイルールをインスタンスに敷くことができるのです。しかし、わたし自身が技術者の端くれとして、自分の管理下のものは端々まで把握しておきたいという気持ちがあります。マストドンが作られているのはRubyで、Dockerを使って運用するのがメインとなる動かし方でした。わたしはそのどちらも、ほとんど把握していません。何かあればコードを読んで理解することはできますが、修正が必要となったときに言語の作法などを知らないわけで上手く直せなかったりする可能性がありました。まだ自分でサービスを立てるのは時期尚早と判断し、次も他者が立てたサービスのお世話になることにしました。

次の移住先は、現在わたしがメインで利用しているmstdn.nere9.help(インターネット蟹工船(通称nere9(ねれないん)))インスタンスです。nere9では、管理者が複数居るということで、そのあたりもインスタンスを選んだ一因です。nere9では、考察の好きなユーザーがよく発言しているため、考えを垂れ流しているうちに話題が変わっていくわたしとしても性に合っていると思いました。また、自分と感覚の合う人がインスタンスに居るということは、その人達がフォローしているアカウントが連合タイムラインに並ぶということで、こちらも好みのアカウントが多く、新しいフォローの助けにもなりました。

こうした経験から、連合の人口が少ない状態でのインスタンスの選択は、わりと重要だということです。マストドンでは、ローカルタイムラインと連合タイムラインから新しい人を発見してフォローしていくという流れになります。Twitterでも、昔はパブリックタイムラインというTwitterを一つのインスタンスと見立てるとローカルタイムラインのようなものが有りました。そこはTwitterに参加している全員の発言が流れていたので、大変雑多なものでしたが、たくさん並ぶ他言語の中から日本語話者を金魚すくいのようにフォローしていくという感じでした。今振り返るとマストドンに熱狂した当時は、Twitterで経験した過去の感覚と同じものだったのではないかと思います。

現在はTwitterからはパブリックタイムラインは失われてしまい、多くの人が既にTwitterアカウントを所有しているという状態です。こうなると、なにかしら別のコミュニティで知り合ってアカウント情報を交換するという流れで、サービス上で新しい人を発見する必要はないのかもしれません。連合SNSもこれと同様に、人が増えていくことで新しい人を見つけにくいという問題は解消されていくのではないかと思っています。そうです、こうやってウェブサイトでアカウントの紹介をして、ぜひフォローしてねと書くのが当時のTwitterでした。

マストドンのアカウントです。 https://mstdn.nere9.help/@osapon
ぜひフォローしてみて、新しい人を発見する足がかりにしてみてください。



マストドンにはまってしまって、色々とマストドン関連サービスなんかも作ってしまいました。osa-p.netに並んでいます。ITmediaのマストドンつまみ食い日記にも紹介してもらったりしました。把握しきれない連合の流れや、自分の作ったものが紹介される事によるモチベーションなど、マストドンつまみ食い日記には大変お世話になっています。ITmediaは情報発信用にインスタンスを立ててアカウントを運用しているので、連合SNS内でも情報の出所が分かりやすく、大変活用されていると思います。

マストドンを使った1年目、新しい可能性をたくさん感じた年でした。まだまだ広がり始めたばかり(GNU Socialを昔から使っていた人達、ごめん!)の連合ですが、面白い世界にしていけたら良いなと思います。

2018年4月6日金曜日

フォローリンクに機能追加しました

今年初のブログ記事です。
一応更新などはしているのですが、SNSをやり始めるとどうしてもそちらに投げるのが楽で、まとめて記事にしておくのがおろそかになりますね。

以前発表(ITmedia記事この日記の記事)した、マストドンでのフォロー状態を表示する「フォローリンク」ですが、新しい機能が追加されています。
まず、マストドンというのはSNSですが、特定の取り決めがあって、他のSNSとも接続できるのですね。このあたりは、マストドンについて調べてもらうと、他の人が書いている記事の解説がわかりやすいでしょう。
簡単に説明すると、マストドン以外にも、マストドンの元祖とも言えるGNU Socialや、新しく出てきたPleromaなどもあり、これらは互いに意識することなくフォローしあえるのです。これらは製品の名前であって、それぞれ各自が好きなように場(インスタンス)を作れます。Twitterみたいなのがいっぱいあると思ってもらえばいいでしょう。そしてお互いにやり取りできるので、それぞれにアカウントを作る必要はなく、どこか一カ所(のインスタンス)にアカウントをつくって、他の人をフォローすれば、他のインスタンスの人でもタイムラインに投稿が流れてくるので、便利です。

で、話を戻して、最初に描いたフォローリンクがこのフォロー状態を表示するのですが、新機能の1点目として、今までマストドンにしか対応していなかったものが、GNU SocialとPleromaにも対応しました。
より完璧に近いフォロー状態が表示できるようになりました。

2点目は、この機能を使って、フォロー状態をバックアップするツールを作りました。
マストドンではフォロー状態のインポート・エクスポート機能があるので、それを使って移動ができるのですが、インスタンスのトラブルなどで接続できなくなってしまうことがあるかもしれません。
このバックアップツールを使っておくと、定期的にフォロー状態を取り込んでおくので、いざというときにこのツールからフォロー状態のリストを取り出すことができます。

3点目は、これらの取り込んだ情報から、お勧めユーザーを紹介する機能です。
フォローをしてタイムラインにその人が居るということは、少なくとも見たくないユーザーではないと言うことです。そのユーザーがフォローしている人も同様だと考えると、「フォローしている人のフォローしている人」 もフォローしちゃって良いのでは?と言うことでお勧めとして紹介します。
インスタンスが離れていると、好みのユーザーを見つけにくいというのが現在GNU Socialをはじめとする分散SNSの問題ではないかと、わたしの観測範囲では言われているのですが、その解決に一つになれば良いなと思います。
もうちょっと精度を上げる方法も有るだろうと考えているのですが、まだデータ収集が十分ではないので、そのあたりを変えていけたらなと思っています。

そんなわけで、現在わたしはマストドンをメインに活動しています。
よろしければフォローしてみてください。
https://mstdn.nere9.help/@osapon

広告