週報 2023/2/12~2023/2/18 ピスタチオの話

今週の振り返り

今週はひたすらSinatraアプリのレビューと修正を繰り返していました。
レビュー前は何かきれいじゃないことはわかるけど、何をリファクタリングすればいいのかわからないといった状態だったのですが、レビューで受けた指摘を反映するたびにどんどん良くなっていくのがわかって面白いです。
レビュー待ちの時間を利用して"単体テストの考え方/使い方"を読んでいます。
2章くらいまで話が難しくて「まだ早かったかも・・・」と思っていましたが、3章以降は単体テストのノウハウが詰まっていて為になります。
ボリュームのある本ですが、じっくり読んでいきたいです。

今週の成果

進めたプラクティス

  • Sinatra を使ってWebアプリケーションの基本を理解する

学習時間

今週:27時間
累計:657時間

目標達成状況

✅週報を継続する
✅毎日学習を継続する
✅スポーツジムで運動する

来週の目標

  • 週報を継続する
  • 毎日学習を継続する
  • スポーツジムで運動する

一人ガムトーク

ピスタチオの話

ピスタチオおいしいですよね
豆そのものもおいしいですが、ピスタチオテイストのスイーツが好きです。
以前、かなり奮発して帝国ホテルのビュッフェに行ったことがあるのですが、その時に食べたピスタチオジェラートが忘れられません。
濃厚も濃厚、ピスタチオよりピスタチオ味なのです。その日食べた料理の中で一番おいしかったのはピスタチオジェラートだったと言っても過言ではありません。
あまりにも美味しすぎて、なぜあんなに美味しいのかを帰ってから検索してしまいました。
すると、帝国ホテルのニュースリリースにこんな文言がありました。

「第9回コッパ・デルモンド・デラ・ジェラテリア2020(ジェラート・ワールドカップ)」で、日本代表として参加した帝国ホテルチームが準優勝いたしました。

そりゃ、美味しいよ!だって世界大会で準優勝した人たちがいるんだもん!
それ以来、あの味が忘れられなくてピスタチオ味のお菓子を見つけては試しているのですが、当然あのジェラートの風味には遠く及びません。
世界レベルってすごいな・・・と思った次第です。

以上、ピスタチオの話でした。

週報 2023/2/5~2023/2/11 100に関連した話

今週の振り返り

Sinatraのプラクティスのレビューが返ってきました。
指摘はたくさんあったのですが、一番の学びは「闇雲に最適化してはいけない」ということでした。
必要に迫られていないタイミングで最適化を行おうとしてしまうと、必要かもわからない最適化のためにコードが複雑化してしまう。
また、最適化を行うにしても実測値などの根拠を元にして行わないといけないということを学びました。

今週の成果

進めたプラクティス

  • RESTの考え方を理解する
  • Sinatraを使ってWebアプリケーションの基本を理解する

    学習時間

    今週:35時間
    累計:630時間

目標達成状況

✅週報を継続する
✅毎日学習を継続する
✅スポーツジムで運動する

来週の目標

  • 週報を継続する
  • 毎日学習を継続する
  • スポーツジムで運動する

一人ガムトーク

100に関連した話

高校生の時、ホワイトデーだったと思うんですが、彼女にバラの花束をプレゼントしたことがあります。
何か彼女を驚かせるものをプレゼントしたいと思いまして、バラを100本花束にしたんです。
100本がどのくらいのサイズになるか、深く考えずネットで注文したんですが、当日届いたのは直径が約50cm、重さ約5kgのバラの花束が届きました。
もうね、くっそでかいんですよ。
「素敵!」とか「ロマンチック!」とか飛び越えてただただくそでかい。
でかすぎて床に自立するし、持った感覚も花束というか丸太に近いんですよね。
さすがにそれを彼女に一人で持って帰らせるわけにはいかないので電車で一緒に持って帰ったんですが、その後の処理も相当大変だったらしく、彼女の家族にもめちゃくちゃ迷惑をかけてしまいました。
余談ですが、その後彼女とは結婚して今は夫婦として仲良くやっています。
100本のバラが功を奏したのかはわかりませんが。

以上、100に関連した話でした。

週報 2023/1/29~2023/2/4 結婚式の話

今週の振り返り

Sinatraのプラクティスで簡単なメモアプリを作る

手を動かすプラクティスは楽しいですね。CSSは相変わらず手探りですが・・・
今回のプラクティスではデータはファイルに保存したのですが、次のプラクティスではDBを使った処理に変更します。
しかしその事を知っていたのに全く意識せずに作ってしまったのを後悔しています。もっと改修するときのことを考えて作ればよかった!

ウェビナー『良質な記事を量産する秘訣』に参加

伊藤淳一さんの登壇される、アウトプットに関するウェビナーということで参加しました。
アウトプットの極意を色々聞くことができ、ブログも久々に更新しました。
最近アウトプットネタがなかなか見つからないなぁと思っていたのですが、目標が高すぎるのが原因なのかなとも思いました。
今後のアウトプットの質を上げたいのであれば、下手でもいいからとにかく数をこなすのが自分にとっては重要なのかなと思います。

今週の成果

進めたプラクティス

  • Sinatraを使ってwebアプリケーションの基本を理解する

学習時間

今週:46.2時間
累計:595時間

目標達成状況

✅週報を継続する
✅毎日学習を継続する
✅スポーツジムで運動する

来週の目標

  • 週報を継続する
  • 毎日学習を継続する
  • スポーツジムで運動する

一人ガムトーク

結婚式の話

もう10年くらい前の話ですが、姉の結婚式がありました。
姉弟2人でそれなりに仲も良いのですが、私は涙腺が壊れてるのかってくらいに涙の出ない人間なので、結婚式くらいじゃまぁ泣かないだろうなぁと思っていました。
しかし、実際にはもうめちゃくちゃ我慢してました。うるっうるでした。
あれは何だったんでしょうね。いつか来ることは想像していた日が来る衝撃ってすごいですね。
泣いてしまえば楽なんでしょうけど、恥ずかしいので我慢してました。
式を終えて、涙を見せずにほっとしていたのですが、披露宴の方が本番でした。
お色直しの退場の時に突然エスコートに指名され、びっくりしていたのですが、その時に流れた曲がCapsulehappy life generatorだったんです。
私にCapsuleを教えてくれたのは高校生の時の姉でした。暇つぶしに姉の部屋に遊びに行ったときにたまたま流れていて、それをきっかけにハマっていまだに聴いています。
私にとってCapsuleのイメージは姉の部屋だったのです。
そんな曲が突然流れて、姉と過ごした時間の記憶が一気にぶわっと蘇って、気づいたらまた超涙目になっていました。
あーこの曲、姉にとっても私との思い出の曲だったのだなぁと思ったら鼻が猛烈にツーンとしてしまいました。
エスコート役なのでめちゃくちゃ写真撮られるけど、もうこっちは泣かないようにするだけで必死です。
何とか披露宴も泣かずに耐えきって無事終わったんですけど、人生で一番泣くのを我慢した思い出になりました。 今思えば、別にちょっとぐらい涙を見せても良かったかなとも思います。

以上、結婚式の話でした。

入学から100日経ったのでフィヨルドブートキャンプを紹介します

はじめに

フィヨルドブートキャンプ(FBC)に入学してから100日経過しました🎉
本記事では100日間で感じたフィヨルドブートキャンプのリアルを紹介したいと思います。
これから入学を検討している方の参考になれば幸いです💪

フィヨルドブートキャンプって?

FJORD BOOT CAMP
いわゆるプログラミングスクールなのですが、広告を打っていないのでなかなか見かけるチャンスが少ないかもしれません。

プログラマーとして就職を目指せるだけのスキルを身につけることを目標としたオンラインプログラミングスクールです。就職を目指せるスキルを弊社では「現場の人間にとって、戦力になるプログラマー」としています。具体的には、一人でWebサービスを作ることをゴールとした課題をやるのですが、それだけでなくチーム開発も経験できます。

一人でWebサービスをリリースすることがゴール(=卒業条件)なので、半端な能力、いい加減な学習態度では卒業できません。

どんな授業内容なの?

ラクティスという単元があり、それを各々自分のペースでクリアしていくことになります。
ラクティスの基本は書籍を読む、webサイトを読んで学習する、たまに動画を見る、という感じです。
多くのプラクティスには提出物があり、学んだ内容についての課題をクリアする必要があります。
これは単純にコードを書くだけでなく、開発環境を自分で作るとか設計図を書くとかいうものも含まれます。
エンジニアの仕事でコードを書くというのはあくまでも仕事の一部ですので、 コードを書くこと以外も学べるのは重要なポイントかもしれません。

FBCのいいところ

ここでは私が感じたFBCのいいところを紹介していきます。
他のスクールに参加したことがないので比較はできませんが、素直な感想として書いていきたいです。

信頼できるメンター

メンターは実際に現役プログラマーとして働いている方々が兼業で務めています。
メンターの中には書籍を出版している方もいますし、フリーランスの方もいます。
また、メンター個人のTwitterなども公開されていますので『よくわからない誰かが教えてくれた』ということがありません。
メンターの身元がはっきりしているということは、いい加減な事は言えないということでもあります。

業界でも信用されている

一部のエンジニアからプログラミングスクール出身者がある種の厄介者扱いされていることはご存じでしょうか?
質の低いプログラミングスクールが乱立した結果、スクール卒の人が"半端な知識だけ身に着けた世間知らず"扱いされているのです。
プログラミングスクールに通っていたという経歴だけで嫌な顔をされてしまう可能性が現実的にあるのです。
その点で言うとFBCは業界で一定の評価を得ているように感じます。

例えば、先日はRubyの生みの親であるMatzさんがこのような質問に答えていました(クリックで全文が見れます)


また、FBC卒業生の方がRubyKaigiなどに登壇している(業界の第一線で活躍している)という事もFBCが評価されている一因になっているのだと思います。

Q&Aで質問できる、答えられる

受講生はQ&Aが利用できます。
回答してくれるのはメンターだけでなく、受講生や卒業生も回答することができます。
世の中にはプログラミング関係のQ&Aサイトもありますが、みなさん利用したことはありますか?
私も何度か利用したことがありますが、はっきり言えば雰囲気が良くないのです。
回答者は立場が上なのだから言葉遣いが悪くても良い。
答え方に文句をつける暇があるなら勉強すればいい。
こういう考え方の人間が少なからずいるのです。
その点、FBCのQ&Aは平和です。
みんなが仲間、友達、師匠なのです。

コーディング以外のスキルを得られる(かもしれない)

ITの世界も広いですが、FBCで学んで就職するとなると、web系の企業でRubyを使って働くというのが妥当な筋だと思います。
ではコードを書けるようになったら就職できるのでしょうか?
現実の就職には複合的な問題がたくさんあります。
コミュニケーション能力も当然必要ですし、新しい技術を学び続けることも必要です。そして自己発信、アウトプットが重要になってきます。また、エンジニアとしてのマインドも重要です。
こういったスキルは長く、きちんと、幸せに働くためには重要なスキルだと思います。
FBCで学習しているとそういったことも学ぶチャンスがあります。
ちょくちょく開催されるオンラインイベント、毎月のミートアップに参加することでリアルな業界を感じることができますし、求められているものが理解できるようになってきます。
(かもしれない)というのは、プラクティスで確実に身につくスキルではないからです。イベントに参加するのは強制ではないですし、そこで求められるスキルがわかったとして、訓練するかどうかも自分次第です。
ですが、きっかけとチャンスは与えられています。
どれだけ積極的に学べるかで卒業した時に見える世界も変わるでしょう。

FBCのいまいちなところ

正直そんなに不満を感じていることはないのですが、良いところばかり言うのも胡散臭いのでひねり出してみました。

教材はオリジナルじゃない

これは私も最初に面食らったのですが、教材や参考として提示されるものはAmazonで売っているような普通の書籍や普通に公開されているwebサイトです。
書籍代はスクール代に含まれず、書籍は自分で調達する必要があります
オリジナルの動画教材があるとか、わかりやすい書籍やドリルがあるとか、そういうスクールではないのです。
言い換えれば教材を目当てに入るスクールではないということです。
まともなエンジニアになりたいならこれを身につけてね、こういう経験を積んでねという道筋とそれを身に着けるためのソースを提示してくれ、そこに対するサポートが受けられるのがFBCです。

卒業には時間がかかる

卒業にはおよそ1000時間かかるとも言われています。
私の感覚からすると、学習を進めるうちにプラクティスにはない知識が欲しくなってくると思います。新たな知識を得ることで更に知りたいこと、やりたいことが出てくるのです。
そういった寄り道をしながら学習を進めるので、実際にはもっと時間がかかるはずです。

手取り足取りは教えてくれない

提出課題が間違っていたら、ある程度の修正方針までは教えてくれます。
ですが、最終的に調べて考えるのは自分です。
このスタンスにスクールなのに教えてくれない!と不満に思う方もいるかもしれません。
ですが、IT業界では自分で調べるスキルが必須なのです。
「スクールにいるうちから調べるスキルを磨け」というメッセージだと私は考えています。

100日間の私

この100日間で最も変わったのはマインドだと思っています。
ここでは私が100日間でやってきたことを紹介します。

毎日学習する

入学日から一日も休まず学習時間を確保しています。
楽なことではないですが、今はもう毎日何か学習しないと落ち着かないのです。
ではこのモチベーションがどこから来るかというと、日報と学習時間の記録です。
FBCでは学習した日の日報の記録が奨励されています。
日報には学習時間の記録機能があり、日報を書くことで自身の学習時間を視覚的に把握することができます。以下は私の学習時間の記録です。 私のほかにも毎日必ず学習すると決めている人は結構いる印象です。

ミートアップに毎月参加する

毎月ミートアップというオンラインイベントが開催されています。

ミートアップは、フィヨルドブートキャンプに関わる人たちが、ビデオチャットでワイワイする、オンライン飲み会です。軽食・アルコール・ソフトドリンクなどを片手に、プログラミングに関することや、普段の生活のこと、趣味のことなど気軽に話して楽しみましょう!

基本的には卒業生のリリースしたサービスの紹介と卒業式があり、その後参加者同士でのフリートークの時間があります。
このフリートークには、メンター陣や既に卒業した方々も参加してくれるので雑談の中で業界の雰囲気を感じることもできます。
私自身、知らない人と話すのはそんなに得意ではないし、海の底で物言わぬ貝になりたいタイプの人間です。できるだけ人と関わらず、リモートワークでひっそりとやれるならその方が気楽なタイプです。
しかし、気まぐれで参加して気づいたのはコミュニケーションって旨味しかなくない?ってことです。
わからないことが聞ける、自分の知らない話が聞ける、自分の気持ちや考えに整理がつく、人間関係が築かれる、いいこと尽くしです。
そのコストとして自分の引っ込み思案な気持ちを少しだけ奥に引っ込める必要はあります。ですが、魔法の呪文「今日初めて参加です」を使えばあとはなんとかなります。 コミュニケーション、コミュニティへの参加に対する意識がガラッと変わったのもFBCに参加したからこそと感じています。

ブログを始める

Web業界ではアウトプットする能力も一つのスキルとして評価されます。
FBCではブログやTwitterの利用を奨励しています。
ブログを書くことで文章作成能力を鍛え、学習内容を整理し、世の中に自分の存在をアピールするのです。
まだまだひよっこの自分がブログで技術的な記事を書く必要があるのでしょうか?技術を十分に学び終えてから書きたいという気持ちもあります。
ですが、技術を十分に学び終える日なんて本当に来るのでしょうか。
確かに、稚拙な文章、簡単な内容、他の人と同じような記事を書いてしまうかもしれません。
でも文章は書かないとうまくなりませんし、自分の言葉で書いた記事なら全く同じものはないはずです。
まずは始めること、次に継続することが大切だと考えています。

おわりに

以上となります。
結論を言えば私はFBC激推しです。
道は険しく、月会費もかかりますが、Web業界で働きたいけど何から手をつければいいかわからないという方にはおすすめしたいです。

週報 2023/1/22~2023/1/28 自動の話

今週の振り返り

先週の週報をうっかり忘れてしまっていました。
先週はデータベース設計のプラクティスで楽々ERDを読んでいたのと、自宅サーバーにnextcloud導入しました
今週はRESTを理解するプラクティスで、Webを支える技術を読みました。
データベース設計のプラクティスではTwitterのER図を作り、RESTのプラクティスではTwitterURI設計をしました。
nextcloudは中古でサーバーを購入して構築してみたのですが、なかなか勉強になったと思います。そして何より楽しいです。

今週の成果

進めたプラクティス

  • データベース設計の基本を理解する
  • RESTの考え方を理解する

学習時間

累計:548.8時間

目標達成状況

❌週報を継続する
✅毎日学習を継続する
✅スポーツジムで運動する

来週の目標

  • 週報を継続する
  • 毎日学習を継続する
  • スポーツジムで運動する

一人ガムトーク

自動の話

自動で仮想通貨を取引するプログラムを作ったことがあります。
5~6年くらい前だったと思うんですが、当時ちょっとだけ仮想通貨の取引をしていました。
いろいろ情報を集めている中で大手仮想通貨取引所のBinanceがAPIを公開していて、Pythonでも取引できるというのを知りました。
自分で取引するのがちょっと面倒くさくなっていたので何か作れないかな~と思っていたところ、3点アービトラージという手法を知りました
ざっくり言うと、3つの通貨間の価格差を利用して、AでBを買う、BでCを買う、CでAを買う、と順々に通貨を買っていくと最後にはちょっとだけ儲かっているという手法です。
Binanceで流通しているあらゆる組み合わせで儲けが出る価格関係にあるかどうかを計算して、儲けが出る組み合わせを発見したら取引をするというプログラムだったのですが、結果的には全く儲からないどころか、取引するたびにマイナスになるプログラムでした。
敗因は買った瞬間には相場が変わってしまっていることです。
多分、他にも同じことを考えている人が大勢いるからでしょうね~。
楽して儲かる方法なんてないということを身をもって知る経験でした。

以上、自動の話でした。

nextcloudをUbuntu+nginx+postgreSQL+RAID1で自宅サーバーに構築する

nextcloudを使いたい

Google Photoの容量がきつくなってきたので写真と動画の保存先を移行する必要が出てきました。
他のクラウドサービスも検討したのですが、HDDが昔に比べてかなり安くなっていることもあり、自宅サーバーを立ててみることにしました。
RAID1に対応したかったので、ハードウェアRAIDに対応したHDDケースも検討したのですが、安いものは評判がよくない、本格的なものは高すぎるということで、今回はHP ProLiant Gen8を採用しました。
発売から10年程経過していますが、中古で1万円程度で買える、3.5インチベイが4つある、コンパクトでそこそこの静音性を持つといった感じで初心者が扱うには程よい感じです。
本記事では作業の流れと参考にした記事を紹介し、ハマったポイントと解決法を紹介します。

ハードウェア構成

HP microserver ProLiant Gen8
Xeon E3-1220L V2 (2.30GHz)
HDD 3TB *2
メモリ8GB
USBフラッシュメモリ32GB(Ubuntuインストール用)
USBフラッシュメモリ32GB(LIVE USB用)
Ubuntuのインストール用USBを作成するのにPCが必要になります。

環境

Ubuntu 20.04.5 LTS
PostgreSQL 12.13
PHP 8.1
nginx 1.18.0
Nextcloud 25.0.3

その他

  • 事前準備として、お名前.comでドメインを取得しています

1.UbuntuをLIVE USBから起動する

今回HDDは2つ用意していますが、RAID1で使用したいのでUbuntuUSBメモリにフルインストールします。
作業内容としては、

  1. Ubuntu 20.04.5 LTSをUSBメモリRufusで書き込む
  2. 1のUSBメモリからUbuntuを起動して、もう一つのUSBメモリをLIVE USBにする

となります。

Ubuntu 20.04.5 LTSをUSBメモリにRufasで書き込む

こちらの記事を参考に進めます。 【簡単】Rufusを使ってUbuntuのLive USBを作成する方法 – あの角を曲がれば、かぼしー

日本語対応のUbuntuはこちらからダウンロードできます。
Ubuntu Desktop 日本語 Remixのダウンロード

ここで作ったUSBメモリからUbuntuを起動することができますが、再起動するとデータが全て消えてしまいます。
では何に使うのかというと、このUSBメモリからUbuntuを起動し、もう一つのUSBメモリUbuntuをフルインストールすることで、再起動に対応したLIVE USBを作成することができます。

BIOS設定でUSBの優先順位を上げる

PCを起動した際に、OSが入ったドライブを読む前に作成したUSBメモリを読み込む必要があります。
PCのBIOS設定でUSBメモリの起動順位を上げます。
BIOSの設定方法はメーカーによって異なりますので手順は省略します。

参考:BIOS / UEFI設定: USB ドライブからパソコンを起動(Boot)する方法

LIVE USBを作成する

※この作業は失敗するとメインPCのデータが吹っ飛ぶ可能性がありますので、よく読んで進めてください
Ubuntu20.04:USB Linuxの作り方 – demura.net

【ハマりポイント】
上記記事ではEFIシステムパーティションを指定していますが、私はメニューに表示されなかったのでFAT32にし、マウントポイントに/dosを指定しました。
ルートパーティションについては上記記事と同様にしました。

完成したLIVE USBメモリをサーバーに差して起動します。

2.ソフトウェアRAIDでRAID1環境を作る

次に、mdadmを使ってRAID1環境を作ります。
【Linux】mdadmを用いたソフトウェアRAID構築 | ぺんぎんや
/mnt/raid1ができたら、オーナー情報とパーミッションを変更します。
sudo chown -R www-data:www-data /mnt/raid1
sudo chmod 770 -R /mnt/raid1

3.nginxとphp-fpmの導入

【ハマりポイント】
php-fpmは8.2以降が既に出ていますが、nextcloudが対応していないので8.1を使います。
sudo apt install php8.1-fpm

Ubuntu Server 22.04 + nginx + php-fpm 8.1 の動作環境を構築する - Symfoware

4.必要なパッケージのインストール

こちらもphp-fpmに合わせてphp8.1のものをインストールします
必要なパッケージはこちらを参考にしています。
Installation on Linux — Nextcloud latest Administration Manual latest documentation

sudo apt install imagemagick php-imagick php8.1-common php8.1-mysql  php8.1-gd php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-bcmath php8.1-gmp php-pgsql memcached php8.1-pgsql

5.postgresqlの導入

RaspberryPi4でPostgresSQL+Nginx+NextCloud18構築 - Qiita

ここで設定したDB名とロール、パスワードは後で使いますので忘れないように。

6.ルーターとネームサーバーの設定

Raspberry Piとnginxでwebページを公開してみる
こちらの記事を参考にIPの固定、ルーター、ネームサーバの設定をします。
【ハマりポイント】
Ubuntuから設定する場合、interfaceを使う方法は廃止されていますので、netplanを使って設定してください。
【Ubuntu】固定IPアドレスの設定(無線LAN、Wi-Fi対応):netplan | OFFICE54

7. certbotのインストール

RaspberryPi4でPostgresSQL+Nginx+NextCloud18構築 - Qiita
記事に従い、SSL証明書を取得するためにcertbotをインストールします。

8. nextcloudの導入

以下のコマンドでnextcloudをダウンロード、展開します。
wget https://download.nextcloud.com/server/releases/nextcloud-25.0.3.zip
sudo unzip nextcloud-25.0.3.zip -d /usr/share/nginx/
sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R

9. nginxの設定

sudo vi /etc/nginx/conf.d/<取得したドメイン>で設定ファイルを作ります。
Install NextCloud on Ubuntu 20.04 with Nginx (LEMP Stack) - LinuxBabe
こちらの記事のStep 3: Create a Nginx Config File for Nextcloud 参照

コピペする場合はphp7.4-fpm.sock →php8.1-fpm.sockに書き換えてください。
webサーバを一度stopします。
systemctl stop nginx

10.SSL証明書の取得

certbot --nginxで取得します。 今後自動で取得させるために、crontabに以下を追記します

$ crontab -e
0 1 1 * * root /usr/bin/certbot renew --force-renew --webroot-path /var/www/html/ --post-hook "systemctl reload nginx"

11. nextcloudにアクセスする

systemctl start nginxでnginxをstartします。
取得したドメインにアクセスします。
設定がうまくいっていればこのような画面が表示されます。

ユーザー名とパスワードは自由に決めてください。
データフォルダーに/mnt/raid1を入力
データベースはPostgreSQLを選択
5.postgresqlの導入で設定した内容でデータベースのユーザー名、パスワード、データベース名を埋めます。
データベースのユーザ名は5.postgresqlの導入で設定したロール名です。
データベースのホスト名はlocalhost:5432を入力

12.インストールの完了

nextcloudのインストールが完了しました。
最後に細かい設定をしていきます。

メモリ最大サイズを変更する

sudo vi /etc/php/8.1/fpm/php.ini
memory_limit = 1024Mに変更します
その後sudo systemctl restart php8.1-fpm.serviceで反映

動画のサムネイルを表示させる

ffmpegをインストールします
sudo apt install ffmpeg
nextcloudの画面右上のアイコンメニューから、アプリ→マルチメディアと進み、Preview Generatorを有効にします。
config.phpを開きます。
sudo vi /usr/share/nginx/nextcloud/config/config.php
以下を追記します

'preview_max_x' => 1024,
  'preview_max_y' => 1024,
  'preview_max_scale_factor' => 1,
  'enable_preiews' => true,
  'enabledPreviewProviders' =>
  array(
          0 => 'OC\\Preview\\Image',
          1 => 'OC\\Preview\\Movie',
          2 => 'OC\\Preview\\MKV',
          3 => 'OC\\Preview\\MP4',
          4 => 'OC\\Preview\\AVI',
  ),

以下のコマンドでアップロードされたファイルのサムネイルが作成されるのですが、ファイルの量によっては数時間かかります。

sudo -u www-data php /usr/share/nginx/nextcloud/occ preview:generate-all

今後追加されたファイルにもサムネイルを作りたいのでcronで自動化します

crontab -u www-data -e
*/10 * * * * php /usr/share/nginx/nextcloud/occ preview:pre-generate

以上です

スマホのアプリを使えば自動アップロードの設定ができますが、アップロードの始まるタイミングが微妙に不規則です。
設定後にすぐ始まるときもあれば、しばらく時間がたってから突然始まってたりします。
mdadmでRAID設定をしている場合は、障害発生時にメールを送信するように設定すると安心かもです。

Linux ソフトウェアRAID 監視 メール通知│システムガーディアン株式会社 PostfixからGmail経由でメールを送信するための設定メモ | あぱーブログ

週報 2023/1/8~2023/1/14 童話の話

今週の振り返り

wcコマンドを作るプラクティスを修了しました。
データベース設計の基本を理解するプラクティスでは達人に学ぶDB設計徹底指南書を読み終えました。
続いて楽々ERDレッスンを読んでいます。
ラクティスとは関係ありませんが、自宅サーバーで個人クラウドを運用したいと思い、nextcloudを導入しました。
まずはお試しで運用してますが、使いやすければストレージをRAID1にしたいと思っています。

今週の成果

進めたプラクティス

  • wcコマンドを作る
  • データベース設計の基本を理解する

学習時間

今週:30.5時間
累計:464時間

目標達成状況

✅週報を継続する
✅毎日学習を継続する
✅スポーツジムで運動する

来週の目標

  • 週報を継続する
  • 毎日学習を継続する
  • スポーツジムで運動する

一人ガムトーク

童話の話

毎日寝る前に子供に読み聞かせをしています。
絵本は買ったものもたくさんありますが、図書館で借りるのも多いです。
調べたら借りた本だけでも現在460冊なので実際に読んでいるのは500冊くらいになっていると思います。
ということで、約500冊の中からrira的好きな絵本ベスト3を作ってみました~。

3位 こんにちは、長くつ下のピッピ

世界一強い女の子ピッピが登場するお話です。
長くつ下のピッピといえば有名な児童小説ですが、こちらは2004年に出版された日本語版の絵本です。
奇想天外なピッピの行動が面白く、なにより無敵かってくらい強いところが好きです。
ピッピの絵本は他にも何冊かあり、どれも面白くておすすめです。

2位 三びきのやぎのがらがらどん

がらがらどんという名の3匹のやぎがトロルと出会うお話です
力こそパワーな大きいがらがらどんが好きです。
子供の絵本でこんなに強い必要ある?ってくらいのオーバーキルをかましてくれる爽快アクションシーンがあります。
短いので年少さんくらいから読めるのもGood。

1位 ラチとらいおん

世界一弱虫な男の子ラチとそれを鍛えるらいおんのお話です。
らいおんが超かわいい。超いいやつ。
らいおんはぬいぐるみサイズですがとても優しくて強いです。
大人になってから初めて読みましたが、私も弱虫だったので子供の頃に読みたかったです。
短いお話ですが、読むと勇気がもらえるお話です。

以上です

こうやって挙げてみると私は強いのが好きなんですね。
かわいい系なら"ぐりとぐら"とか"ちいさなりすのエメラルド"とかも好きです。
おすすめを上げたらきりがないので今日はこのへんで。