#MyTwitterAnniversary にクラッカーの絵文字を取り戻す

2024.04.29

Twitterでアカウント作成記念日になるとツイートできる「#MyTwitterAnniversary」。
今はTwitterがXとなり、このハッシュタグも「#MyXAnniversary」へと置き換わりました(「Xには登録していない!登録したのはTwitterだ!」と今でもこちらのハッシュタグに置き換えて使う人もいます。私は両方書くタイプです)。

「#MyTwitterAnniversary」時代からハッシュタグの後ろにTwitterオリジナルのクラッカーの絵文字「#MyTwitterAnniversary」のクラッカーの絵文字がついており、これはXになっても引き継がれましたが……
「#MyTwitterAnniversary」につかなくなってしまったのです! 今までたくさんのツイートがこのハッシュタグでなされたというのに。

前置きが長くなりましたが、今回はその絵文字を取り戻すユーザーCSSです。

[data-testid="tweetText"] a[href*="/hashtag/MyTwitterAnniversary"][role="link"]::after {
content: "";
display: inline-block;
width: 1.2em;
height: 1.2em;
background-image: url("https://abs.twimg.com/hashflags/MyXAnniversary/MyXAnniversary.png");
background-size: cover;
background-repeat: no-repeat;
margin-left: 2px;
vertical-align: -20%;
margin-right: 0.075em;
}

無理でした。

2024.04.26

誰でしょうか、「月2回更新」というバカげたことを言ったのは。

……私ですね。

なにかしらネタが出てきて、書く気力があれば書きますね。

とりあえずの生存報告でした。なんだか続かない。

2023年を振り返って。

2023.12.31

あっという間に2023年が終わろうとしています。
もう2023年を終え、2024年を迎える準備をこのサイトではもう済ましてしまいました。
まだ大晦日なのに新年のあいさつが見えるって?お知らせ欄の更新作業は面倒なので、許してください()
そしてこの随筆は今年9本目。月1回更新が目標でしたから……、あれおかしいですね。

どんな年でも、振り返ってみると色々あります。当たり前です。
今年はTwitterがXになったのが一番の衝撃だったかもしれません(私はまだTwitterと呼び続けていますが)。
私の周りでも、ずっと「当たり前」だったものが変わったり、なくなったりしたものが多い1年でした。年の初めに戻って、記録しておけば……いつも思います。

ときどき変化を恐れ、怖がり、必死に元に戻そうとする私がいます。最初のうちは戻した方が楽ですが、途中から戻すための作業がつらくなる。そしていざ変化に適応しようとしても、そのころには変化が大きくなりすぎて難しくなる。私の悪い癖です。もう少し柔軟にならないと。

来年の目標は……そうですね。「随筆月2回更新」とでもしておきましょうか。
え?月1回更新が無理なのにできるわけないって?来年から変わるんですよ、来年から。

今年も1年、ありがとうございました。また来年も、どうぞよろしくお願いします!

P.S.
また始まってもない年を振り返ろうとしていました (笑)。
「2024年」を振り返って。

クリスマス

2023.12.25

なぜ日本では、これほどまでにクリスマスが騒がれるのだろうか?

街中にクリスマスソングとイルミネーションがあふれ、華やかになる景色を見ると、いつもそう思う。

子どもが笑顔になる日だからだろうか。儲かるからだろうか。

……そんなことはどうでもいい。
昨日と今日は皆の笑顔が溢れる日になるだろうから。
皆さんが、いつもよりもっと幸せな一日を過ごせた日になったことを願って。
メリークリスマス。

(2年前の日記より改稿)

無料レンタルサーバーの革命児!?「シン・クラウド for Free」がすごい!

2023.11.04
シン・クラウド for Free

私自身、そこまでウェブサイトにお金をかけられる立場ではないので、無料レンタルサーバーのXREAを借りている。
無料なので、本当に気軽に始められるのだが、

  • SSL非対応
  • 広告が強制表示
  • 時々サーバーが落ちている
  • (お金をかけているわけではないので、更新が滞りがち)

という弱点があった(最後の1つはともかく)。とくに「SSL非対応」はここ数年のSSLの急速な普及により、ブラウザーからの圧力が強くなってきていたので困っていた。
SSL未対応の警告(Firefox)SSL未対応の警告(Firefox)

そんなとき、予備として借りているXFREEから1通のメール。
その内容は「XFREEの新規登録は終了するよー、新しいサービス作ったから今後はそちらを使ってー」という案内だった。
XFREEからのメールXFREEからのメール
そっか、XFREE終わるのかー、残念だと思った。

……のだが、新しいサービスの「シン・クラウド for Free」が無料の割に機能が充実しているのだ。名前だけはどうにかならなかったのか……。

例えば、

  • 容量10GB
    XREAは1GB。ただし、XREAは元々申請すれば最大10GBまで増やせた。
    また、1週間後の10月10日に容量を10GBまで増やしている。
  • SSL化完全対応
    XREAは独自ドメインのみ対応、最初からのドメイン(hogehoge.s000.xrea.com)は、共有SSL(ss1.xrea.com/hogehoge.s000.xrea.com)のみ対応。
  • 広告非表示!
    XREAは一番上に強制表示される。しかも遅れて。
    XREA 広告の例XREA 広告の例

とはいっても、XREAにしかない・より劣る機能もある。

  • メールの送受信
  • 15世代までのバックアップ
  • シン・クラウド for Freeは3か月ごとの更新が必要

特に、最後の「3か月ごとの更新が必要」が痛い。個人サイトにとっての3か月はあっという間である。せめて1年に延びないものか。
シン・クラウド for Free 更新画面シン・クラウド for Free 更新画面

UIの比較

ここからは、両者のコンパネやウェブFTPの比較画像を載せたいと思う。正直なところ、2つに大きな差はないと思っている。

コントロールパネル

XREA
XREA コントロールパネル
シン・クラウド for Free
シン・クラウド for Free コントロールパネル

ウェブ FTP

XREA
XREA ウェブFTP
シン・クラウド for Free
シン・クラウド for Free ウェブFTP

というわけで、魅力的な「シン・クラウド for Free」の話であった。このサーバーを使ったサイトも立ち上げてみたい。

Twitterの青い鳥を取り戻せ

2023.07.27

7月24日、突如Twitterのロゴと名称が「X」に変更されましたが、長い間慣れ親しんだロゴを変えられても受け入れられません。
ということで拡張機能を使い、元のロゴに戻すことにしましょう。

注意事項

  • PC版のみです。といってもスマホアプリ版は記事執筆時点(7月27日)ではまだ青い鳥に「Twitter」のままです。
  • 拡張機能のインストールが2つ必要となります。

Twitter.com内の「X」を鳥に置き換える

①拡張機能「Stylus」をインストールする(ユーザーCSSが使えるものであればOK)
Chrome/Edge/Vivaldi版:https://chrome.google.com/webstore/detail/stylus/clngdbkpkpeebahjckkjfobafhncgmne
Firefox版:https://addons.mozilla.org/ja/firefox/addon/styl-us/

②「Return Twitter Bird」のインストール
「Return Twitter Bird」のインストール
Return Twitter Bird」にアクセスし、画面下の「Install」ボタンをクリックします。
これでウェブサイト上の「X」が青い鳥に置き換わります。

ファビコンを鳥に置き換える

ファビコンとはブラウザのタブやブックマークリストに表示されるアイコンのことです。
これも「X」になってしまっているので戻します。
①拡張機能「Redirector」のインストール
Chrome/Edge/Vivaldi版:https://chrome.google.com/webstore/detail/redirector/ocgpenflpmgnfapjedencafcfakcekcd
Firefox版:https://addons.mozilla.org/ja/firefox/addon/redirector/

②新ファビコンから旧ファビコンへの転送設定
「Edit Redirectors」をクリックし、設定画面に入ってください。
「Edit Redirectors」
設定画面にある「Create new redirect」を押すと、新しいリダイレクトを設定する画面が表示されるので、以下のように入力してください。
リダイレクトの設定

  • Description: 名前です。「Twitter Favicon」などお好きなように入力してください。
  • Example URL: https://abs.twimg.com/favicons/twitter-pip.3.ico
  • Include pattern: https://abs.twimg.com/favicons/twitter*.3.ico
  • Redirect to: https://abs.twimg.com/favicons/twitter$1.2.ico

「Show advanced options...」
また、「Show advanced options...」を押して表示されるチェックボックスのすべてをチェックしてください。

これで完了です!TwitterにTwitterが帰ってきました。
ただ、「終わりの始まり」となりつつあるTwitterから、必死に飛び立とうとしている青い鳥に鳥かごを被せて逃げないようにしている……ように思ってしまうのは私だけでしょうか。もう少しだけここにいてね。

TweetDeckのスレッド表示を直す

2023.07.14

最近、TweetDeckのスレッド表示がうまくいかない。うまくいかないTweetDeckのスレッド表示

ということでお決まりのユーザーCSSである。スレッドのときだけclassがつくのでやりやすかった。

このコードをBetter TweetDeckのユーザーCSS欄やMarinDeckのカスタムCSSにコピーしてください。.js-component:empty + .tweet-detail-wrapper .js-tweet.tweet-detail.js-has-replies:not(.margin-l--46),
.js-component:empty + .tweet-detail-wrapper .js-tweet.tweet-detail.js-has-replies:not(.margin-l--46) + .detail-view-inline {
margin-left: 46px;
}
.js-component:empty + .tweet-detail-wrapper .js-tweet.tweet-detail.js-has-replies:not(.margin-l--46) div.margin-b--10 {
margin-left: -46px;
}
.js-component:empty + .tweet-detail-wrapper .js-tweet.tweet-detail.js-has-replies:not(.margin-l--46)::before {
content: "";
position: absolute;
width: 3px;
left: 27px;
border-radius: 3px/7px;
margin-top: 38px;
height: calc(100% - 44px);
background-color: #e1e8ed;
}
html.dark .js-component:empty + .tweet-detail-wrapper .js-tweet.tweet-detail.js-has-replies:not(.margin-l--46)::before {
background-color: #3d5466;
}

これにて修正完了。きちんスレッド表示がなされるようになった。スレッド表示が直った
実はある条件を満たすとうまくいかないのだが、それはまあ……見逃してほしい。

公式に似せたTwitterシェアボタンを作る

2023.05.29

この随筆にもTwitterのシェアボタンを設置しています。共有してくれると嬉しいですからね。ただ、どれくらい使われているかわかりませんが……。


Twitterシェアボタン

ところでこのボタン、一見公式のもの見えますが、実は違います。
こちら側で作ったものです。

なぜ公式のを使わないのか

理由は簡単です。「まだTwitterでいてほしいから」。
そして「ダークモード時に背景が白くなるから」です。
公式経由で実装すると、iframeで埋め込まれるがために、こちら側からCSSを適用してデザインを変更して使用することができません。仕方ないのでそのまま使っていましたが、やはり目立ちます。
そこで、自分で作ることにしました。とはいっても、デザインを考えるのは面倒なので「どうせなら公式まんまのものを作ってしまえ!」ということにしました。

作ったコード

中身はTwitterのそのままでいいとも思われそうですが、TwitterのCSSにはかなり無駄も多いので、今回はデザイン以外は別物となっています。

また、アイコンには「Fork-Awesome」を使用しています。ダウンロードしてサーバーに設置して使用することもできますが、サイトの「Get Started」のUse a CDNからすぐ下のコードをコピーしても使えます。どちらでも変わりません。

HTML
※(())部分は適宜修正を加えてください。
<a class="twitter-share" href="https://twitter.com/intent/tweet?url=((URL))&text=((タイトル))&related=((投稿後に表示させるユーザー))" target="_blank" rel="nofollow" title="この記事をTwitterでシェア"><span class="fa fa-twitter" aria-hidden="true"></span>ツイート</a>

CSS
.twitter-share {
display: inline-block;
height: 20px;
box-sizing: border-box;
padding: 1px 12px 1px 12px;
background-color: #1d9bf0;
color: #fff !important;
text-decoration: none !important;
border-radius: 9999px;
font-weight: 500;
cursor: pointer;
white-space: nowrap;
vertical-align: top;
font-size: 12px;
line-height: 18px;
}
.twitter-share:active, .twitter-share:focus, .twitter-share:hover {
background-color: #0c7abf;
}
.twitter-share .fa.fa-twitter {
display: inline-block;
font-size: 14px;
margin-right: 3px;
position: relative;
top: 0.5px;
}

HTMLを次のように変更すると、フォローボタンを作ることもできます。((ユーザー名))部分には、@から始まるユーザー名を入れてください(例:@mmahhi_1)。
なお、「title=""」や「((ユーザー名))をフォロー」部分は、お好きなものに差し替えることもできます。
<a class="twitter-share twitter-follow" href="https://twitter.com/intent/follow?screen_name=((ユーザー名))" target="_blank" rel="nofollow" title="((ユーザー名))をフォローしましょう"><span class="fa fa-twitter" aria-hidden="true"></span>((ユーザー名))をフォロー</a>

iOS版MarinDeckのスクロールバグを直す

2023.04.05

最近、Twitterのサードパーティークライアントが続々使用不可能となってから、たびたび代替として挙がるMarinDeck
粗削りな部分は多々ありますが、それでも本家より何倍も使いやすいと感じています。

そんなMarinDeckのiOS版には、ある致命的なバグがあります。
それは、「スクロール中にスクロール場所が飛ぶ」というものです。40件ほどさかのぼるとすぐ発生するので、少しでも多くさかのぼろうとすると、見られないツイートが出てしまいます。

しかし、これは厳密にはMarinDeckのバグではなく、Webkitのバグだと考えられています(その証拠に、大元のウェブ版TweetDeckでも発生します)。

解決策

では、解決策はないのでしょうか?幸いなことに、MarinDeckにはカスタムJSを読み込める機能がありますから、それを使いましょう。
今回は、このコードを使います。
この下に、コピー用のコードを設けたので、コピーしてMarinDeckのカスタムJS(設定にあります、CSSではありません)に貼り付けてください。

コピー用コード(元のコードはMITライセンスです)
(function() {
'use strict';
function f() {
var increaseChirpSizes = function (column) {

column.UPWARD_SCROLL_CHIRP_BLOCK_SIZE = 1000; // default: 40
column.INFINITE_SCROLL_CHIRP_BLOCK_SIZE = 40; // default: 20
column.TARGET_COLUMN_CHIRP_LIMIT = 1000; // default: 40
};

var createColumn = window.TD.controller.columnManager.createColumn;
window.TD.controller.columnManager.createColumn = function(e, t) {
var column = createColumn(e, t);
try {
increaseChirpSizes(column);
return column;
} catch (err) {
console.error(err, column);
return column;
}
};

var columns = window.TD.controller.columnManager._aColumnIndex;
for (var index in columns) {
increaseChirpSizes(columns[index]);
}
}

(function g() {
if (window.TD && window.TD.ready) {
f();
} else {
setTimeout(g, 100);
}
})();

})();

// TweetDeck__Triple the amount of loaded tweets
// Copyright (c) 2018 pejuta (https://openuserjs.org/users/pejuta)
// Released under the MIT license
// https://opensource.org/licenses/mit-license.php
// Customized by mmahhi (http://mmahhi.s203.xrea.com/)

ちなみに元のコードとは、17~19行目が以下のように変わっています。上のコピー用コードはすでに変えてあるので、書き換えは不要です。
column.UPWARD_SCROLL_CHIRP_BLOCK_SIZE = 1000; // default: 40
column.INFINITE_SCROLL_CHIRP_BLOCK_SIZE = 40; // default: 20
column.TARGET_COLUMN_CHIRP_LIMIT = 1000; // default: 40

これでスクロールバグが発生しなくなっているはずです。皆さん、よいTwitter・MarinDeckライフをお過ごしください。

なぜこれで直るのか

おそらくですが、TweetDeckはスクロールするときに新しいツイートを読み込むと、その前に表示したものが消えるようになっています。そのタイミングの問題で、Webkitのみが自分のスクロール位置を見失っているのではないかと思います。
そこで、その処理を1000件読み込んだ時までさせないようにすることで、事実上消す処理を無効にし、バグを発生させなくしています。

補足として40件と指定されたコード2行目は、一度に読み込んで描写するツイートの数のようです。ツイートはどんな場合でも40件ずつ読み込まれるようなので、最大限読み込むようにしてあります。

最後に、私の記事が役に立ったという方は、Twitterのフォロー、よろしくお願いします!

関連記事

CafeLogを画像拡大スクリプトに対応させる

2023.03.26

この随筆で使っているCafeLogでは、画像を投稿することができます(前回の記事で使っていますね)。

この機能は最初の段階では、画像をクリックするとその画像単体の画面に飛ぶようにリンクされているのですが、どうせなら画像拡大スクリプトを使って、その画面上にホバーさせようと考えました。結構簡単な改造で済みますので、ぜひお試しください。

注意事項

  1. mmahhiは、何があっても責任を負いません。
  2. 私が使用しているCafeLogのバージョンはVer.5.11です。
    最新版のVer.5.5ではありませんのでご注意ください。
    ※ただし、Ver.5.5でも全く同じ方法での改造ができそうです。

画像拡大スクリプトの導入

画像拡大スクリプトと言えば、「LightBox」が有名ですが、今回は「Fancybox V3」を使うことにしました。ちなみにV4以降はライセンス体系の変更により、個人利用でも有料となっていますのでご注意ください。
なお、LightBoxなどの他の画像拡大スクリプトも同じような手順で使用することができます。

導入はいたってシンプルで、以下の3ファイルを管理画面の「テンプレート編集」から「本体ファイル」を選択し、head内に記述するだけです。
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js" ></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js" ></script>

テンプレートファイルにFancyboxの記述を追加

画像挿入時にdata-fancyboxを自動追加したい

さあこれで終了!……とはなりません。というかこれで終わるなら記事なんて書きません。

Fancyboxは
<a data-fancybox="gallery" href="img.jpg"><img src="img.jpg"></a>
のように、画像リンクに対してdata-fancybox="~~~"を設定することで初めて動作します。
これを毎回記述するのはかなり面倒です。しかも、CafeLogで画像貼付をしたときに出力されるHTMLには懐かしいboder="0"の記述も。今は必要ありませんし、あると文法チェッカーに怒られます。これも毎回消すのは面倒です。

ということで、このテンプレートを直してしまいましょう。たった1ファイルの変更で済みます。

FTPソフトから、CafeLogのインストールディレクトリ > admin > lib > img_mgr.plを開きます。その360行目付近に# 原寸画像タグのコメントがあります。その下の行を以下のように修正してください。((お好きな英数字))の部分は適当なものに変えておいてくださいね。

my $tag = "&lt;a href=&quot;$cf{htmlurl}/img/$id.$ex&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;$cf{htmlurl}/img/$id.$ex&quot; border=&quot;0&quot; alt=&quot;&quot;&gt;&lt;/a&gt;";

my $tag = "&lt;a href=&quot;$cf{htmlurl}/img/$id.$ex&quot; data-caption=&quot;&quot; data-fancybox=&quot;((お好きな英数字))&quot;&gt;&lt;img src=&quot;$cf{htmlurl}/img/$id.$ex&quot; alt=&quot;&quot;&gt;&lt;/a&gt;";

こうすることで、<a href="~~~.jpg" data-fancybox="((お好きな英数字))" data-caption=""><img src="~~~.jpg" alt=""></a>のようなHTMLが最初から出力されるようになります。便利!

ちなみに、data-fancyboxの値が同じものがひとかたまりとして扱われます。記事の一覧表示時に別の記事の写真がひとかたまりとして扱われるのが嫌な方は、ここを記事ごとに変更(末尾に日付を足すなど)するとよいでしょう。
また、data-captionを設定すると、写真の下に説明を追加することができます。お好みで追加してください。キャプションの例

CafeLogに画像拡大スクリプトを導入することはかなり簡単にできるので、試してみてはいかがでしょうか。

- CafeLog -