カテゴリー
システム関連

BitbucketからGitLabに乗り換えた話し

今の仕事でPDFファイルとか画像ファイルがたくさんあるサイトの世話をしているのだけど、このサイトをgitでバージョン管理している。プログラムソースではなく、HTMLファイルとか画像もgitでバージョン管理していると何かと便利なのである。やはり、先祖返りを起こさない(複数でサイトアップしてしまっているから、厳密には難しいけど)し、昔のページに戻してとかの話しもたまにあるので、gitで管理するのはいいのである。

さて、今まで使っていたのはアトラシアンのBitbucketだった。LFSで4GB近くのバイナリもレポジトリに入れていた。そうなると、無料プランでは無理で、有料のStandardプランのライセンスを購入していた。特にBitbucketの機能には不満はない。サーバーの運用も任せられるので安心して利用していた。

しかし、メールで送られてくる支払いの明細をみたら疑問が出てきた。支払いのメールアドレスとBitbucketのログインのアドレスと違っていた。こちらは、運用のアドレスと請求のアドレスが別に登録されているかと思ったら違っていた。こちらは自分が悪いのだけど、2つのアドレスをBitbucketに登録していた。不思議なのは、請求のあったアカウントには有料プランのWorkspacesを所有していない。請求されていない方のアカウントに有料プランを登録しているWorkspacesが存在している。これはどうしてか?

この辺りのWorkspacesって何かから調べて、アトラシアンのサポート担当者に聞いてみる。翌日の早い回答をくれたが、その回答はよくわからない内容だった。何かWorkspacesとクレジットカード記入と契約担当者の関係とかの、自分では理解できない難しいことを言っていた。

この辺りは、既に理解不能に陥っている。そもそも、Bitbucketに登録したときにはWorkspacesなんてなかったので(昔だとTeam?)、Workspacesと課金の関係から理解しなければいけないようだ。でも、課金の体系が変更になるのであれば、丁寧に説明してくれないと困る。

また別件の話しになるのだが、請求は毎月$15されている。レポジトリに5人のアカウントで使っていたので、$3×5人で$15だと思っていたら、実は違っていたようだった。アトラシアンのサポート担当者によると、Standardプランの最低限価格は$15ドルだそうだ。

しかし、こちらのWorkspacesの設定からリンクされている料金表を見て1ユーザー$3と思い込んでいた。

サポート担当者の説明だと、本来ならこの表の上にスライダーで人数を入力して価格シミュレーターがある価格表があるのだそうだ。価格シミュレーターだと1~5人でも$15になるそうだ。こちらを見てくれと言われた。

https://bitbucket.org/product/ja/pricing

おいおい、これはよくわからないぞ。重要な情報である価格表でこれでいいのか? 価格に関するすべてのページに、この価格シミュレーターが必要ではないか? だったら、大元の価格表だけにしないと、自分みたいな勘違いする輩が出るのではないのか?

ついでに請求書もわかりにくい。Workspacesごとに有料プランに登録できるらしいけど、請求書の明細には有料プランではないWorkspacesも載っている。しかも、なぜかすべてのWorkspacesは載っていないという訳のわからなさ。どういった理由でWorkspacesを選択しているのか?

だんだんBitbucketを使っていくのはめげてきた。課金体系には明確さが重要である。アトラシアンには不信感が残ってしまった。

ということで、Gitのレポジトリサービスなんて、Bitbucket以外にもいろいろあるしねということになった。どのGitのレポジトリサービスにしようかと考えたら、QNAPのコンテナサービスにGitLabのDockerコンテナで実現することにした。こちらはGitLab公式のコンテナを使って簡単に動かした。最初からGitLabをインストールするなんてRubyの云々でいろいろトラブル起こすのが目に見えているので、簡単確実にGitLab公式のコンテナを何も変更せずに利用する。レポジトリの移行は、BitbucketからPullしてGitLabにPushすれば、こちらも簡単である。

移行後は、Bitbucketの有料プランのWorkspacesに登録しているレポジトリを削除してStandardプランをFreeプランに忘れずに変更しておく。これをやっておかないとユーザーをWorkspacesから削除してもそのまま課金されるようだ。ただし、Workspacesの削除の仕方がわからなかったので、何もレポジトリが存在しないWorkspacesをそのままにしている。

課金以外のBitbucketは満足していたけど、今回の件は残念だった。海外のサービスを自分のようなヤツが使うのは難しいのは実感した。だけどEvernoteとかDropboxとか使っているけどな。

だけど、自分のところのQNAPでGitLabを動かすと、メンテナンスとか自分でやらないとけいけないので大変なのである。もっとわかりやすい料金体系のGitのサービスを探そうかな。

カテゴリー
システム関連

新しいEdgeになったようで

朝、メインのPCにアクセスしたら(このPCはずっと電源を入れっぱなし)、新しいMicrosoft Edgeに替わっていた。他のPCは、既に新しいEdgeをインストールされていたので、このPCにEdgeがやってくるのには随分時間がかかった。

だけど、問題が一つ。

新しいEdgeは、Chromeと画面がほぼ一緒。区別が付かない。テーマをダークに変えておくしかないか・・・・。

カテゴリー
サポート

ChromeとEdgeでstatus_invalid_image_hashで何もアクセスできなくなったときの対応

娘のノートPCでのトラブル。

Chromeで何もアクセスできなくなったそうな。見てみると、Chromeには

status_invalid_image_hash

というエラーコードが表示されている。Edgeでも同じエラーが出ている。ネットワークには正常につながっているので、おそらくノートPC側のトラブルだろう。

このノートPCは、大学で買わされた曰く付きのPCである。PCの条件(特に画面サイズと解像度)が大学側から、いろいろうるさく言われていたので、もう面倒だから大学が斡旋している本屋から買ったものである。このノートPCのことを調べてみると、所詮東芝の生保営業向けのダイナブックである。画面解像度だって普通のフルHDだから粗いし、サイズも大きいからクソ重いし、そんなに高機能でもないしと、本当に何も特徴もない面白味のない標準的なノートPCなのである。何かあったら本屋でサポートすると言うけど、サポートはWindowsの再インストールとなるのだろう。大学の授業で講師との共同作業で使うからって、うるさい条件を言っている割には、大学の授業ではこのダイナブックは活用されておらず、家でレポートをまとめる位のようである。しかも提出するレポートはメールで添付でもなく、印刷してどういう訳かインデックスのシールを貼って担当講師宛に郵便局のレターパックライトで郵送するという、いつの時代の仕事をしているのか?ということをやっている。おろらくダイナブックを買わせるのも、斡旋の本屋で買ってもらうことと、昔に大学の偉い人が東芝と関係していたし、安いタブレットWindowsPC(今は流行らなくなって少なくなったけど)を買って、後で大学のシステム部隊のサポートが困らないためなのだろうな。同じお金を出すのなら、もっといいPCを買っていただろうに。それと絶対にMac禁止と言っていたのは、学内ネットワークへのVPNがPPTPしかサポートしていないからだと思うわ。以上、大学斡旋のPCを買うな、という長い話しでした。

さて話しをもどす。

このエラーを調べてみると、

というサイトが見つかった。

Symantec社のセキュリティソフトの「Symantec Endpoint Protection(SEP)」の古いバージョンのコード整合性機能がMicrosoftの制御機能と互換性がないことが原因のようだ

が怪しい。このノートPCでも買ったときからSymantec Endpoint Protectionがインストールされていた。2017年という古いバージョンである。娘本人に聞いても、このSymantec Endpoint Protectionが何するものかわかっていなかった。

Symantec Endpoint Protectionを再設定をするのも面倒なので、アンインストールしてセキュリティソフトはWindows10に最初から入っているマイクロソフトのWindows Defenderにしてしまう。大学推奨の古いセキュリティソフトを入れているよりも、新しくバージョンアップしているほうが安心であるという判断である。

結局、何も考えずにSymantec Endpoint Protectionをアンインストールしたら解決した。もちろん、マイクロソフトのWindows Defenderが有効になっていることを確認しておく。娘には一家に一人自分のような人がいると便利だと言われてしまった。まあ、自分はDOSの時代(みんな知らないよな)からこの仕事しているし、普通のお父さんでは対応できないわな。

でも、これは企業配給のPCではやってはダメである。システム部隊に責任を持って対応させるべきである。しかし、こちとらこんなダイナブックを自費で購入しているし、本屋のサポートなんていまさら期待できないし、古いSymantec Endpoint Protectionが原因でPCが使えなかったらどうしようもないので、とっとと自分で対応してしまった。でも、もう大学も4年でもう卒業なので、このダイナブックも卒業してもいいかもよ。

カテゴリー
その他

格安スマートウォッチのすごい充電方法の話し

近くに住んでいるお姉ちゃんから、最近買ったスマートウォッチの使い方を教えてくれと頼まれた。何でもあるフリマサイトで1,000円以下で買ったそうな。

箱と説明書まで全部持ってきてもらうと、何とチープなスマートウォッチだった。中華製?台湾製? 写真を撮るのを忘れた。

説明書は中国語と英語しかなかった。英語があるだけまだマシだけど。まずは説明書にしたがって同期のアプリをインストールしてもらう。何とアプリは日本語に対応していたのは驚き。だけどアプリのLineが”行”って翻訳されていたけど。

次にスマートウォッチの電源をオンにするが、それらしいボタンがあるけど電源が入らない。説明書にもそれらしいことは書いていない。

仕方ないので、まずは充電をする。しかし、充電ケーブルも付属していないし、そもそもケーブルをつなぐためのジャックがスマートウォッチ側にない。それと充電方法も説明書には書かれていない。

ふとスマートウォッチのバンドとの接続部分を見ると、金属の端子らしき物が2つ出ている。もしかしたら。これが充電の端子だと閃いた。これを充電器のUSB Type-Aのジャックに差し込むと・・・。

何とピッタリ差し込まれた。しかもスマートウォッチの電源も入った。そして、充電も開始した。

充電は必ずケーブルで行うなんて常識を疑わないと、説明書なしの世界のガジェットを使いこなせないということを理解した。しかしながら、このスマートウォッチはものすごく素晴らしい仕様だった。心拍数の計測できるし、アプリも通知もできるし、睡眠の質も計測できるし、一通りのスマートウォッチというか活動計の機能を持っている。

自分はいまだに、MI Band2を使っている。だって全く壊れる気配がないし、バッテリーも1ヶ月近く持つし、ディスプレイが明るい昼間見えない以外は不満な点がない。今はMi Band5が出るって言うのに、まだ買い換えることはないか。

カテゴリー
その他

iPad AirでATOK Passportが対応していなかったのを買ってから気が付いた話し

Webサイトのチェックで最近になってお客さんのほうからiPadで確認してと言われてるようになったので、とうとうiPadを買ってしまった。Androidのタブレットもずっと探してきたけど、よさそうなタブレットがなかったというのも一つある。

さて、いろいろとアプリをインストールしていくと、ほぼAndroidのスマートフォンを同じような環境になってしまった。

iPadで困ったのは、ATOKのPassportが用意されていなかったことである。ATOKをインストールしようして初めて気が付いた。ATOKのPassportの契約をずっとしているので、Windows, Android, Macとインストールして使っている。iPadはPassportではなくて別のATOKの契約になるのね。iOSのiPhoneの同じらしいけど。

ATOK Passport 日本語入力|Just MyShop/

AndroidではなくてChromebookはATOKをインストールできなくなったという噂も聞いたことがあるけど、まさかiPadもATOK Passportに対応していないなんて・・・・。

まあ、しょうがないかと思いつつ、ATOKを別途お金を払うか悩んでいるところ。

それと、iPadのジェスチャーに慣れようとしている真っ最中なのである。

カテゴリー
その他

iPad Airを買ったら、iMessageのアクティベートができなくてAppleのサポートに電話した話し

このウィルス騒ぎで経済を回さなければという訳のわからない理由でiPad Airを買った。ツレには「あまり日本経済には影響ないね。」と言われてしまったけど、Webサイトを作成している身としては、iPad位は一つ持っていないないといけないという別の理由も言っておく。

さて、iPadにアプリをぼちぼちインストールしてみたら、結局AndroidのPixel4とあまり変わらないアプリ構成になってしまった。みなさんはiPadを活かしたアプリをインストールするのだろうな。自分は使い慣れたアプリしかインストールしなかった。

Mac Book Proも持っているけど、アップル謹製のアプリケーションって使っていない。大抵は、Window10のPCに合わせている。しかしながら、iPadのホーム画面のiMessageアプリに付いている赤字のビックリマークがとても気になっていた。iMessageアプリなんて使ったことはないけど。

さてさて、ここからが本題。

iMessageアプリのアイコンをクリックすると、アクティベートが失敗したというエラーメッセージが出てくる。失敗したからキャンセルボタンを押したら何もしないで元に戻ると思いきや、また同じメッセージが出てくる。しかも、ホーム画面に戻れないし、他のアプリに切り替えることもできないし、iPadを再起動しないといけなくなるという致命的な障害が発生した。

Googleさんに聞いてもわからなかったので、最後の手段でアップルのサポートに連絡をする。AppleのサポートのWebサイトから連絡しようとしたけど、製品のシリアル番号ではじかれるという障害も味わった。これまた仕方ないので、Apple Careの電話番号を調べて電話した。3分くらい待ってつながったのはよかった。

まずは、シリアル番号ではじかれるという障害は、アップルサポートのアプリをインストールすればOKと言うことを聞いた。このアプリは最初からインストールされていなくて、App Storeからインストールしなければいけないそうな。

iMessageでのアクティベートの問題は、とても厄介だった。サポートの担当者も初めての障害だったらしい。いろいろ試してもらって、結局エバンチュリストというサポートの偉い人まで登場となった。

肝心のアクティベートの障害の解決方法は、「設定」の「iMessage」で表示されているApple IDを一旦削除して(入力項目からキーボードのバックスペースキー)、再度入力するというとても単純なことで解決した。でも、それでどうして解決してしまうかは、エバチュリストの人も謎だった。そもそも、iMessageを起動すると、にっちもさっちもいかず再起動しなければいけないなんて、エバンチュリストの人もあり得ないと言っていた。

ちなみに、以上のサポートは画面共有でサポートの指示でこちらがiPadを操作しながらサポートしてもらった。iPadには、最初からリモートアクセスのホストが最初からインストールされているのね。画面の参照だけで操作までができるかどうかはわからないけど、でもこのリモートアクセスのおかげでずいぶん助かった。

以上で、50分かけてアップルの担当者は、丁寧にサポートしていただいた。とてもありがたい経験をした。みんなアップルの製品を買うのはわかるような気がした。自分は面倒なので、なるべくサポートに連絡しないようにしたいけど・・・・。

カテゴリー
その他

QNAPにsudoをインストールした話し

QNAP(TS-673)にsudoをインストールしてみた。sudoをインストールしておけば、コンソールからadminで入らなくてもいろいろできる。最近、ようやくQNAPにDockerのコンテナで、サーバーを立てて、ずっと使っているさくらインターネットのVPSを移行している。

上の記事のようにあらかた移行できたけど、残りはWebのサイトの更新作業で使用するためのテストサーバーを移行するだけとなった。DockerのコンテナでApacheをインストールしただけで動いていることは動いているのだけど、更新をどうするか? ネットワークドラブで更新するのでもいいのだけど、外部からの更新もできるように、sshでscpでファイルを更新したい。しかし、QNAPで最初からサポートしているsshサーバーは、ポート番号の変更くらいしかできなそう。何とか公開キーでの認証をできるようにしたが、パスワード認証を禁止することができない。/etc/ssh/sshd_configをどうもQNAPが起動するたびに書き換えてしまうようである。SSHの設定は、この辺で中断して、先にsudoを使えるようにしておく。

ここから本題である。

QNAPにsudoをインストールする情報は、いろいろなサイトで書かれているが、QNAPのファームウェアのバージョン(ちなみに現在は4.4.2.1310 Build 20200519が入っている)によって方法が違うみたい。とりあえず、今使っているQNAPで動いた結果をメモとして残しておく。

  • QPKG Storeのアプリリポジトリを追加してEntware-stdをインストールする。
    参考:QNAPにEntware-stdをインストールする – Qiita
  • opkg install sudo でsudoをインストール。qpkgではないopkgコマンドであるのに注意。
  • 設定追加はvisudo をしてもダメ。/usr/etc/sudoers を直接編集すること。
    vi /usr/etc/sudoer

これでターミナルからの設定が捗りそう。

カテゴリー
その他

iPhoneのSafariで画面が崩れるのは、CSSのデフォルト値を疑えという話し

お客さんからページの右上にある検索ボタンがとんでもないところに表示するという相談が来た。この部分は他の会社が作った部分だけど、安い早いと重宝されている自分のところに回ってきた。

検索入力項目と検索ボタンが横に並んでいるはずだけど、検索ボタンが入力項目の下に送られて表示されてしまうらしい。

どうも、特定のPCで発生するとのこと。自分のところのPCでChrome, Firefox, Edge, それと忘れていけないInternet Explorer(忘れたいけど・・・)で試してみたけど、すべて正常に検索ボタンが配置している。スマートフォンも試してみたけど、唯一おかしな動作をしたのはiPhoneのSafariだった。

とりあえず検索入力項目の幅を小さくしてみると、正常にiPhoneでも表示するようになった。だけど、これだとPCでは検索ボタンの横が空いてしまう。

そこで、iPhoneのCSSでどのような状態になっているかを調べるため、iPhoneの実機でデバッグできるようにする。参考にしたのは以下のサイトである。意外に簡単にiPhoneのSafariページをMacのSafariの開発ツールから見ることができた。

実機のiPhone Safariで発生した表示バグをMacに接続して検証する | Qookie Tech

MacとiPhoneをつなげて調べてみると、入力項目のpaddingの初期値が設定していないのが原因だった。iPhoneの場合、何もpaddingを設定しないと0.5emが初期値になってしまう。ちなみに、初期値は以下の通りになる。

iPhone SafariPC Chrome
padding0.5em1px
margin0em0em

どうも最初に作った人は、検索フォーム幅、入力項目幅を固定にして、marginやフォントサイズとかすべてのものをピクセル単位で指定していたけど、paddingだけを指定し忘れたのが原因だった。そもそも、CSSのリセットをしていなかったのが敗因だった。

特定のPCでどうして発生するかは、その実機を見に行けば原因解明は速いかもしれない。こちれは不明? 古いバージョンのブラウザがインストールされているから?

カテゴリー
その他

1年かかってQNAPにサーバーに移行した話し

自粛要請だったからではないけど、昨日でようやくLinuxからQNAPにサーバーを移行した。QNAPを買ったのは、ほぼ一年前である。

今まで忙しいとか気が乗らないとかの理由で、サーバー移行を放っておいたのは自分が悪い。

今回移行したのはLinuxサーバーで動いているIMAPとSambaサーバーである。IMAPのほうははそのまま移行したのではなく、QNAPのDockerコンテナの上でDovecotで動いている。成果はGitHubに置いてある。自分のネットワーク内で動けばいいという位のいい加減なコンテナである。

https://github.com/muneando/docker-simple-dovecot

見返してみるとコミットメッセージもいい加減である。自由にForkして自由に書き直してね

ファイルサーバーはQNAPの本来の仕事である。今回のQNAPはバックアップに使っていた。それが原因かもしれないが、最初はWindowから共有フォルダでアクセスしたときにファイルの書き込みができなかった。調べてみると、共有フォルダの書き込み権限(どうしてゲストに書き込み権限が必要なの?)がなかったことと、共有フォルダ以下のファイルとディレクトリのグループがバックアップ先のグループIDになっていたことが原因だった。グループはドメインユーザーに変更して解決した。そのときは、管理者でターミナルでログインできないと設定できないので注意。

あとは各ディレクトリのバックアップの設定をしておく。こちらは、前回のRedmineのMariaDBのバックアップと同様に、HBS3でバックアップを行う。HBS3はとても楽チンである。バックアップ先は、もう一台のQNAPとHPのMicroServerにインストールしたFreeNASの2台である。本当なら、どちらかを別の場所に置けばいいのだけど。

ファイルサーバーとIMAPは、ほぼツレしか使っていないので、ツレのPCで設定変更を行っていく。ThunderbirdでIMAPを見ているので、MailDirのディレクトリコピーではなくThunderbirdでメールメールのコピーをしておく。ファイルサーバーはドライブの切り替えで完了である。

以上で、1年かかってLinuxサーバーからQNAPに移行ができた。とても時間がかかった。

カテゴリー
その他

RedmineとBitbucket(Gitレポジトリ)を連携させる

仕事で使用しているRedmine(一人チケット管理だけど)とBitbucketのレポジトリとの連携の設定をしてみます。やってみると、つまづいた点がありましたので、メモとして残しておきます。

参考にしたのは以下のサイトです。

今回行った手順を簡単に説明すると以下の通りです。コマンドなどの詳細の手順は各サイトをご覧ください。

  1. Redmineにredmine_github_hookプラグインをインストールする。
  2. RedmineのサーバーにBitbucketリポジトリからmirrorリポジトリでcloneしておく。そのときgit remoteは、後で認証が面倒になるのでhttpsではなくsshで指定しておく。cloneはサーバーのredmineのアカウントで行う。
  3. Bitbucketリポジトリからfetchできるように、ssh-genkeyでパスワード無しで公開キー、秘密キーを作成する。公開キーをBitbucketに登録しておく。実際にfetchできるかテストしておく。
  4. Redmineでリポジトリの設定をする。設定はRedmine全体の設定とプロジェクト個別のリポジトリの設定がある。設定できたらプロジェクトのリポジトリが参照できるか見てみる。サイトが今どきUTF-8ではなくシフトJISだからリビジョンの差分が文字化けしてしまうので、全体の設定-ファイル(どういう訳かリポジトリではない)で、添付ファイルとリポジトリのエンコーディングをutf-8,cp932,euc-jpに設定しなければいけない。差分を表示をインラインにすると文字化けするが、横に並べるにすると正常に表示される(これは不明)。また、リポジトリが大きいとプロジェクトのリポジトリのページはInternal Errorになるが、しばらくすれば参照できる(これで最初諦めかけた・・・)。
  5. BitbucketのリポジトリのWebhooksの設定をして、commitするとredmineのレポジトリが更新されるようにしておく。何かcommitしてBitbucketにpushすると、Redmineのレポジトリが更新されるかを確認する。
  6. 連携する前のRedmineの各チケットとリビジョンと関連付けを行う。

以上は各サイトのいいどころ取りしたものです。それぞれ自分のサイトに合わせて設定してください。

以上ですと、Redmineからレポジトリを参照できるだけですので、BitbucketとSourceTreeでも使いやすいようにRedmineの連携も設定します。

BitbucketからRedmineのチケットIDとリンクするには、リポジトリの設定のリンクで

Link URL: https://[redmineのドメイン]/issues/\1
Link Key : #(\d+)

とします。これでBitbucketページ内で#チケット番号をクリックすれば、Redmineの該当する番号のチケットページが表示します。

同様にSourceTreeの設定-詳細で、コミットメッセージ中のリンクで

置換タイプ : その他
正規表現 : (\d+)
リンク先 URL : https://[redmineのドメイン]/issues/$1

と設定すると、コミット内のメッセージに出てくる#チケットIDをクリックすれば、Redmineの該当する番号のチケットページが表示できるようになります。

実現できなかったことは、Redmine内のレポジトリのハッシュからBitbucketのコミットにリンクの方法でした。何かよりRedmineのブラグインがあるのでしょうか?

追記(2020年5月7日)

RedmineとSourceTreeの連携ですが、以上はWindowsの設定方法です。Macの場合は違います。リンク先ではなく置換される文字列となりますので、HTMLのリンクとなります。例えば、以下のようになります。

正規表現パターン : #(\d+)
と置き換えます : <a href="https://[redmineのドメイン]/issues/$1">#$1</a>

ただし、自分のところではブラウザが起動せずに、そのままのビューでRedmineになってしまいます。何かまだ問題がありそうです。

SourceTree で JIRA 課題や GitHub や Bitbucket Cloud Iss… - Atlassian CommunitySourceTree で JIRA 課題や GitHub や Bitbucket Cloud Iss... - Atlassian Community