JetBrains IDEでREADME.mdを開くとクラッシュする

環境

Ubuntu 24.04

6.6.0-14-generic

IntelliJ IDEA Ultimate 2023.3.3

原因を調査する

ディスプレイサーバのプロトコルを変更する

  • Wayland: 発現した
  • X: 発現した

IntelliJ IDEA のバージョンを変更する

  • IntelliJ IDEA Ultimate 2024.1 EAP: 発現した
  • 2023.3.4 Release Candidate: 発現した
  • 2023.3.3: 発現した
  • 2023.2.5: 発現した
  • 2023.1.5: 発現した
  • 2022.3.3: 発現しなかった
  • 2022.2.5: 発現しなかった

別の JetBrains IDE を使用する

  • GoLand 2023.3.3: 発現した

プラグインのクラッシュを疑う

ターミナルから起動する

FATAL:credentials.cc(127)] Check failed: . : Permission denied (13)

と出てきたので Google で検索すると、 https://youtrack.jetbrains.com/issue/IDEA-319751 が見つかる

調査結果

対処方法

https://youtrack.jetbrains.com/issue/IDEA-319751/IDE-exits-immediately-after-opening-the-folder#focus=Comments-27-7315116.0-0 を参照する

Kaede Higuchi Live 2021 "AIM" に行った

この記事は、オタクのお気持ち表明のような物です。

要点まとめ

  • チケット消えて、開演5分前まで会場前で待ち
  • オール着席・コール禁止ライブは面白くない
  • ライブの内容は良かった

チケットが消えた件

今回のライブは、イープラスアプリ内でのスマチケ(スマートチケットかな?)というシステムでチケットが発券されました。

「機種変更などは済ませてからチケットをダウンロードしてください」的なことが注意書きにあったので、前日夜にチケットをダウンロードしました。多分1回きりしかダウンロード出来ないんだろうな~ということを勝手に想像しました。

チケットをダウンロードしようとイープラスアプリを開くと、更新を求められました。

更新をしてアプリを開いたら、謎のエラーダイアログが出て起動しません。何かがクラッシュしてるようです。

仕方がないので、アプリを再インストールしてチケットをダウンロードします。インストール直後にうまく動いたので、アップデートで何かが失敗したのかな?と思っていました。会場に着いてから、同じエラーダイアログが出て起動できなくなるとも知らずに。

チケットをダウンロードしたら、席番がわかるようになります。偶然、友人に Discord 上で席の番号を伝えていました。この行動が運命を左右します。

当日会場に着いて、イープラスアプリを開いてチケットの確認をしようとしたら、昨日の夜に見たエラーダイアログが出てきます。

「あ、起動しないしこれは終わった。しかし再インストールすれば開ける。」ということで、イープラスアプリの再インストールを行います。

アプリを再インストールしたにも関わらず、エラーダイアログが出続けます。「あれ?これ死んだのでは?」と思い、会場前でアナウンス等を行っているスタッフに話をしに行きました。

起きた問題は、

  • チケットを確認しようとしたら、アプリがクラッシュして開けない
  • 別のスマホで確認したら、チケットが一度きりしかダウンロード出来ない

の2点です。

これらを伝えたら、スタッフさんは中に確認へ行ってくれました。「別の者が来る」ということで、寒さの中待っていました。

会場整理をしているスタッフの方とは違う見た目の方が来ました。少し権限を持ってる人だったのでしょうか。

先程と同じ内容の話をしたら、「開演5分前に席が空いていることを確認出来次第ご案内します。」という回答が得られました。

開場16時半・開演17時半で、私が会場に到着したのは16時40分でした。

開演5分前まで待機するように頼まれたのは16時54分なので、30分入場できず会場前で待ちぼうけをする事になりました。

イープラスアプリのバグのせいでチケットが消え、寒い中30分無意味に会場前で時間を潰す人になってしまったのです。

開演50分前に会場に着いたのにも関わらず、開演5分前に入場した弊害

前説が聞けない

通常ライブの前説では、ライブ中の禁止行為等を説明することが多いです。禁止行為の説明等が聞けないので、何をしたら駄目なのかわかりません。

公式サイトには、ライブ中の禁止行為等の説明が書かれていませんでした。「新型コロナの拡大対策をします」しか書かれていませんでした。

会場内に入りライブが始まり、周囲のオタクの行動を眺めていたところ、2つのレギュレーションが見えてきました。

  • オール着席
  • コール禁止

コロナ対策ということでやっているのでしょうか。「楽しめないレギュレーションだな」と感じました。

レギュレーションに対して感じたことは、下でもう少し掘り下げます。

怒りの感情でライブが楽しめない

自分の失敗で入場出来なくなったわけではないので、怒りというものが湧いてきます。

怒りの矛先はイープラスです。イープラスアプリを開発した人間でしょうか。

「こんなバグがあるアプリをリリースして、お金やチケットを扱うなんて酷すぎる!」とキレ散らかしていました。

ライブ前は、"推しのライブなので楽しみたい" という気持ちを持って会場に向かいます。

入場しようとしたら入場が出来るかわからない状態になり、かなり寒い中で待たされたら、楽しみたい気持ちはかき消されてしまいます。

入場しても場の盛り上がりにはついて行けず、一人イライラしながらライブを見る事になり、純粋に楽しむことが出来ませんでした。

オール着席・コール禁止というレギュレーション

コロナ禍で感染を広げないためには仕方がないレギュレーションだと思います。ライブ開催が原因で感染が広がったら、演者や運営も大迷惑です。

感染を広げないよう対策するのは良いのですが、楽しいか楽しくないかという問題は全く別です。

楽しくなかったです。

会場にいるオタクの大半が棒振り地蔵になっていました。キモい。

ライブでは、動いて声を出すことで体のリソースをたくさん使います。これによってライブに参加している気持ちが高まります。一体感とかいう奴かもしれません。

オール着席でコール禁止の場合すべてのリソースが余った状態になり、ライブを聞いているだけになります。

リソースが余った結果、Twitter を一生見てました。

オール着席のデメリット

曲に合わせて動くことが困難

座っていると足先でリズムを取ることしかできません。

私はリズムに合わせて体を動かすタイプなので、足先でリズムを取るのは物足りない感じがしました。頭も振りづらかったです。

周囲のオタクの振動が伝わってくる

ライブが行われるホールは、基本1列席が繋がっています。

人間が動くと椅子が振動します。周囲のオタクの振動がめちゃめちゃ自分に伝わってきて気持ち悪かったです。

自分が動くことによって発生する振動が他人に伝わってると思うと、なんか気持ち悪いです。

コール禁止のデメリット

もどかしい

コール曲は楽しい感じの曲が多いです。アルバムを初めて聴いた時、「コールするとしたらここだな~」など色々考えていました。

声を出したいのに出せない状況は、非常にもどかしく感じました。

ライブ内容について

ここからは、ただ語彙力が死んだオタクの感想です。

めちゃめちゃ良かったです。

しっかりストーリーがあって、それに合わせた曲順で歌われていました。

野球部監督、カエデ、22歳の樋口楓 と3つの世界が、現実の樋口楓に反映されていくような感じ、良かったです。

ファンメイド曲や響鳴など、ランティスと関係ない曲もやってくれて、激アツでした。

響鳴は KANA-DERO を思い出しました。

いそっち…好き……… KANA-DERO パーカー着てたのヤバい…

最後に

ライブ前に色々問題が発生しましたが、樋口楓のライブはやはり良かったです。

個人的には KANA-DERO のほうが良かったと感じています。

コロナ騒動が収まったら、再演をやってほしいと強く願います。

この記事を読んだオタクは AIM を見てください。3月始めまでネットチケット購入すれば無料で無限回見れます。

secure.live.nicovideo.jp

終わり

【あつ森】南半球でお金を稼ぐ方法【タランチュラ超え】

初めに

3月に北半球ではタランチュラが出るので日本人の8割くらいがタランチュラでお金を稼ごうと方法を編み出していました。

南半球を選択した私はタランチュラが出ない代わりにサソリで代用しようと思いましたが、蚊とスズムシとコオロギが走っても逃げないので諦めました。

離島ツアーの回数を重ねていたら、タランチュラ島と同じくらい稼げる島を見つけたので紹介します。

f:id:chun37:20200327023835j:plain

環境

  • 南半球
  • 3月

離島の詳細

  • 木は針葉樹のみ
  • 池や川は無し
  • ヤシの木が4本(右2本・左2本)
  • ニジイロクワガタ、ヨナグニサンが木に止まっている
  • 地上にはオオセンチコガネのみ

手順

  1. 叶式の要領で湧きを固定させる 参考動画
    • 花を取る
    • 木を切る(ヤシの木は残す)
    • 見やすくするために雑草を刈る
  2. 取らない虫を走って蹴散らす
  3. ゴライアスオオツノハナムグリがヤシの木に止まっていたら捕らえる
  4. 気が済むまで2と3を繰り返す

利点

  • 失敗しても島の最初に戻されない
  • サソリやタランチュラを捕まえるは難しいが木に止まっている虫を捕るのは比較的簡単
  • 同時に2匹出ることも

f:id:chun37:20200327023927j:plain

詳細

ヨナグニサンは1月, 2月, 3月, 10月, 11月, 12月に発生

オオセンチコガネは1月, 2月, 3月に発生

ニジイロクワガタは1月, 2月, 3月, 12月に発生

ゴライアスオオツノハナムグリは1月, 2月, 3月, 12月に発生

ゴライアスオオツノハナムグリはヤシの木のみに発生するため針葉樹を切っても問題なくスポーンする。

最後に

時間変更はしていないため1月と2月と12月の検証はしていないのですが、南半球の3月のお金稼ぎ方法を見つけられたので北半球の人たちにも負けずにお金が稼げて良かった。

macOSでPythonのmysqlclientをインストールする方法

mysqlclientがインストール出来ない

pip install mysqlclientと入力してもエラーが出てインストール出来ない。

赤文字でずらーっとエラーが出ますが2種類です。(私が確認した限りでは)

1つ目がmysql_configが見つからない。(エラー文は消えました)

2つ目が

ld: library not found for -lssl

Failed to build mysqlclientと書いてある行のいくつか上を確認するとどちらかのエラーが出ます。

対処法

mysql_configエラー

brewが使える環境で

brew install mysql

と入力してmysqlをインストールし、mysql_configコマンドが打てることを確認出来れば解決です。

ldエラー

brewが使える環境で

brew install openssl

opensslがインストール済みの方は

brew reinstall openssl

と入力し、インストールか再インストールをすると

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

コンパイラがopenssl使うには環境変数を設定してね(意訳)

と言ってきてるのでLDFLAGSとCPPFLAGSの環境変数を設定すれば解決です。

おわりに

pythonmysqlを使うにはどのOSでもmysqlclientインストール時にコケるのでどうにかならないかなぁ〜と思っています。

ここに書いてないエラーが出た場合は環境とエラー文をコメントに記入してもらえば出来るだけ対処します。

pipenvでmysqlclientをインストールしようとしたらコケた話

環境

OS: macOS 10.14.6

Python: 3.7.5

pipenv: 2018.11.26

状況

homebrewでmysql-clientは入っている状態

virtualenvではないPythonにはmysqlclientは入っている状態

症状

忘れた

後で確認して書く

解決方法

pipenv install mysqlclient

ではなく、virtualenvをactivateした状態で

pip install mysqlclient

Pipfileに記述されないのはデメリットの塊だが動作はするようになった。

pymysqlはDjangoが使えなかったのでmysqlclientしか選択肢がなかった。

おわりに

mysqlclient入れると必ずといっていいほどコケるのでどうにかしてほしい

PythonをやめるかMySQL使わないかのどちらかでしか対処不可能なのが辛い

PythonistaがRustを学ぶ

この記事は随時更新されます。

教材

The Rust Programming Language (https://doc.rust-jp.rs/book/second-edition/)

Rustの文法をPythonに置き換えて理解する

ここには正しいことしか書かない

関数定義

Rust:

fn main() {

}

Python:

def main():

標準出力

Rust:

println!("Hello, world!");

Python:

print("Hello, world!")

インデント

共通: スペース4つ

パッケージマネージャ

Rust: Cargo

Python: pip

ライブラリのインポート

Rust:

use std::io;
extern crate rand;

FIXME: 現時点で詳細や違いはわかっていない

Python:

import os

変数定義

Rust:

let foo = 5;

Python:

foo = 5

文字列のフォーマット

Rust:

println!("{}", 変数名);

Python:

print("{}".format(変数名))
print(f"{変数名}")

数字にキャスト

Rust:

let mut guess = "10\n";
let guess: u32 = guess.trim().parse()
    .expect("Please type a number!");

Python:

guess = "10\n"
guess = int(guess)

無限ループ

Rust:

loop {
}

Python:

while True:

ループからの脱出

共通: break

間違っていたこと

ここに間違えていたことをまとめる

Pythonにはない概念のメモ

マクロ

  • 実行するときはマクロ名!(引数)

  • 関数を叩くのと同じ感じで実行出来る

  • 関数のオーバーライドみたいな感じで自分で好きに出来る

コンパイル

行末

プロジェクト自動作成・管理

変数

  • 基本immutable

  • let mutで定義するとmutable

変数の参照

  • &変数名で参照出来る

Dockerとpipenvでの開発中 罠にハマった

プログラミングでお金をもらうようになったちゅんです。

Djangoでいろいろしてるのですが、つい先日(12月3日くらい?)にDjango3.0とかいうのが出たんですよ。

「ふーーーん まぁ今やってるプロジェクト終わったら個人的に触ってみるか」程度でスルーしてたら自分の開発にも影響があって焦りまくったお話です。

本題

環境

  • Docker-Compose
  • pipenv

何があったか

Docker触ったことなかったので「Dockerなにそれわからん~」って言いながらDockerfileを書くのを人に任せていたんですね。(これ重要)

プロジェクト開始時時点での最新バージョンDjango 2.2.7を使っていたのですが、インストール時にバージョン指定せずにインストールしていたんですね。

pipenv install django

って実行するとPipfileにdjango = "*"って記入されるんですが、これって最新のバージョンを取ってくる意味でして…

  1. Django最新版をインストールするように指定(当時は2.2.7)
  2. Django 3.0がリリースされる(最新版が3.0に変わる)
  3. Django最新版をインストールする(3.0)

何も考えずにDockerで動かしてみたらエラーを吐いてしまって「は?」ってなるんですけどver2.2.7のコードはver3.0で動くわけもないんですね。

これはバージョンがいかんのかと思って2.2.7をインストールするように指定し直さなあかんなって思って

pipenv uninstall django
pipenv install django==2.2.7

ってインストール時指定してあげればDockerくんも2.2.7をインストールしてくれるだろうな~と思ってたらいつまで経っても3.0をインストールしてて仕事中にPC破壊しかけました。

pipenv install

と打つとカレントディレクトリにあるPipfile・Pipfile.lockを探して自動でインストールしてくれます。(前提知識)

pipenv installコマンド打つとPipfileに書いてある物を自動的にインスコしてくれると思っていたんです。(ここも重要)

なんで変更が適用されないんだろうか原因究明を急ぎました。

原因

ふと人に書いてもらったDockerfileを見ると

RUN pipenv install --skip-lock --system --dev

って書いてあって、

  • --skip-lock : Pipfile.lockを使わずにインストール
  • --system : 仮想環境ではなくデフォルトのPythonにインストール
  • --dev : dev-packageもインストール

--skip-lockオプションが原因でした。

Pipfile.lockがバージョン周りの情報を扱うらしいです。

解決

Dockerfileを

RUN pipenv install --system --ignore-pipfile --deploy

に書き換えてちゃんとDjango 2.2.7がインストールされ動くようになりました。

まとめ

  • 人の書いたファイルもしっかり目を通そう
  • 人任せにしちゃダメだ
  • サイトからコピペするにしてもオプション周りは自分で調べて自分に合ったものを使おう
  • パッケージをインストールするときはなるべくバージョン指定しよう