【RaspberryPi Zero W】のPiユーザのパスワードをリセットする

ラズベリーパイのpiユーザのパスワードをリセットする方法はいくつかありますが、以下にいくつかの方法を紹介します。 方法1:パスワードリセットツールを使用する 別のコンピューターで、SDカードをマウントします。 SDカードのブートパーティションにある…

【書評】人は話し方が9割

はじめに 書評シリーズ第二弾は永松 茂久さんの『人は話し方が9割』です。 www.amazon.co.jp 読書時間 賞味2時間ほど。 ページ数はそこまで多くなくて、読みやすい印象でした。 難しい表現や言い回しがないのですらすら読めます。 率直な感想 コミュニケーシ…

【書評】世界一やさしい「やりたいこと」の見つけ方

はじめに 今回は八木 仁平さんの『世界一やさしい「やりたいこと」の見つけ方 人生のモヤモヤから解放される自己理解メソッド』です。 www.amazon.co.jp 読書時間 賞味2時間ほど。 ページ数はそこまで多くなくて、読みやすい印象でした。 やりたいことってな…

はてなブログでコードハイライトをカスタマイズする

ベースはテンプレート、ディテールは自分好みにしたい はてなブログにはデフォルトでたくさんのテンプレートがあります。 どれも素敵なものばかりですが、 自分のイメージとぴったり合うものってなかなか無いんですよね。 雰囲気は好きだけど見出しのデザイ…

【解決】FluentdのDocker公式イメージを使ってプラグインを入れる

結論 FluentdのDocker公式イメージを使用してプラグインを入れるときはUSER rootしてからgemを実行する 失敗例 そのままgem installしようとすると失敗します。 FROM fluent/fluentd:v1.11-1 RUN fluent-gem install fluent-plugin-elasticsearch && \ fluen…

DevOpsとはなんなのか - インフラの自動化①

前回のおさらい 前回は「DevOpsとは何か」ということについて触れました。 fclout.hateblo.jp DevとOpsが協調された組織としての文化を作るためには、 各メンバーそれぞれへの意識づけが最も大切になってきます。 それを支えるのが以下に提唱される6つのテ…

【書評】なぜ、「サボっている人」ほどうまくいくのか: ムダな努力から解放される7つのポイント

書評シリーズ始めます 今年から書評シリーズとして、読んだ本の感想や気になったセンテンスを書いていこうと思います。 記念すべき第一弾は田中靖人さんの『なぜ、「サボっている人」ほどうまくいくのか: ムダな努力から解放される7つのポイント』です。htt…

DevOpsとはなんなのか

DevOpsというワードが世に普及してから十年あまりが経ちますが 私の周りではまだまだその文化は浸透しておりません。(そもそも言葉を知ってる人がいないのでは?と思うほど)そんな環境下ではありますが、ついにDevOpsを推進するべくプロジェクトが立ち上が…

Notionで個人用OKRを設定してみた

一年の計は元旦にあり 2021年最初の記事は今年一年の目標設定から。 最近個人用OKRのツールをNotionに変えました。 今年はそれを運用していこうかと思います。 OKRとは 簡単に言ってしまえば組織の目標達成のためのツール、です。 GoogleやFacebookなどの有…

Django Rest FrameworkのSerializerでModel FieldをNot Requiredする方法

やりたいこと 以下に定義するModelについて、Not NullなフィールドはフォームやRESTでも必須じゃなくしたい。 class ExamTr(models.Model): class Meta: app_label = 'exam' id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) v…

【解決】OAuth2.0でinvalid_grant: Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe. と言われる

起きたこと GoogleAPI(Analystics)を使おうとOAuth2.0で認証しようとしたところ以下のエラーが発生 invalid_grant: Invalid JWT: Token must be a short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values in the J…

【解決】TinyMCEでPOSTしようとすると「An invalid form control with name='text' is not focusable.」と言われ何も反応しない

今日はフロントエンドネタです。 起きたこと 自作ブログサイト用のダッシュボードで投稿画面のエディタにTinyMCEを採用したのですが、 実際に導入して日本語化までしたはよいものの、 フォームに組み込んでいざSubmitしようとすると何も反応しない、というこ…

【解決】sphinx-build時に「doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.」と言われる

起きたこと djangoのソース(docstring)をsphinx-buildすると以下のエラーが起こりました。 WARNING: autodoc: failed to import module 'views' from module 'blogs'; the following exception was raised: Traceback (most recent call last): File "/usr/l…

JenkinsパイプラインからSkaffoldでCI/CDしてみる

今回はDevopsネタです。 JenkinsパイプラインからSkaffoldを使ってアプリケーションをCI/CDしてみます。 前提 Kubernetesクラスタが構築されていることが前提です。 JenkinsはHelmを使って導入します。 Kubernetesクラスタの構築(オンプレ-kubeadm)方法は…

GrafanaからSlackへ通知する

今回はメトリクス可視化ツールのGrafanaからSlackチャンネルへ通知を送る方法です。 Grafanaとは Grafanaとはオープンソースのダッシュボードツールです。 いわゆるメトリクス可視化ツールです。 Grafanaは、マルチプラットフォームのオープンソース分析およ…

CentOS8にSkaffoldを導入する

今回はCentOS8にSkaffoldをインストールして、kubernetesクラスタへデプロイしたいと思います。 はじめに SkaffoldとはGoogleが提供するkubernetesネイティブなアプリ開発をするための支援ツールです。 Skaffoldは、Kubernetesネイティブアプリケーションの…

【解決】The file will have its original line endings in your working directory

Git

事象 Gitローカルリポジトリに新規ファイルを追加しようとしたら以下のような警告が発生。 git add -A warning: LF will be replaced by CRLF in kubernetes/docker_dev/Dockerfile. The file will have its original line endings in your working director…

Fluxでk8sをGitOpsしてみる

はじめに 今回はコンテナ仮想化プラットフォーム「docker」のオーケストレーションツールである「Kubernetes(k8s)」の話。 k8sを運用する場合に、マニフェストだったりdockerイメージだったりをリポジトリで管理すると思うのですが、 その際に出てくる考え…

Amazonから「サインインが検出されました」という通知が届く

今回はAmazonアカウントへの不正アクセスについてです。 不審な内容の通知が あるとき以下のようなSMSが私用携帯に届きました。 「おや?」と思ってEメールを確認すると同じようなメールが。 さらに同デバイスに入れてるAmazonショッピングアプリからも同じ…

Flutterの開発環境を構築する for Windows10/VSCode/Android

はじめに 今回は最近話題のクロスプラットフォーム向けフレームワーク「Flutter」を使ってAndroidアプリを作ってみます。Flutterって何?という方はこちら。 Flutter - WikipediaFlutter自体はiOS、Androidの他にWebやデスクトップ向けのアプリ開発もできる…

【解決】jQuery3.5.1でfadeOut()が使えない?

jQueryでローディング画面を作ろうと思って、 ロード後のフェードアウト処理を function stopload(){ $('#loaded').css('display','block'); $('#loading').delay(200).fadeOut(100); } みたいな感じで書いて実行すると、以下のエラーが発生した。 $(...).fa…

Windowsの画面ロックを回避する

テレワークということもあり、セキュリティを考慮して特定時間が経過すると強制的に画面ロックならびにシャットダウンがされてしまう端末で仕事をしているが、やはりいちいちロックされるのは面倒くさい。 定期的にキーボードから自動入力する方法はないかな…

Python の引数に * (アスタリスク) のみ指定されているのは何なのか

djangoのget_context_dataのソースを見ると def get_context_data(self, *, object_list=None, **kwargs): のように、引数に「*」のみが指定されているパターンがあった。 これなんだろうって思って調べてみたら、以下のような記載を見つけた。docs.python.o…

【解決】Cannot filter a query once a slice has been taken.

htmlの中でタブを使って色んなフィルタリングパターンのテーブルを見せるために、 そのパターンごとにデータを渡したかった。 (クライアント側でデータをフィルタリングすることもできるのかもしれないけど面倒くさかった…)そこでviews.pyの中でこんな風に…

【解決】object has no attribute 'object_list'

Djangoの汎用ビューの話。 TemplateViewを使用して継承元となるビューを作成して、 それとgeneric.Listviewの両方を継承させたオリジナルリストビューを作成したら以下のエラーが発生。 object has no attribute 'object_list'調べたところ、マニュアルには…

Djangoのtemplateのurlでクエリパラメータを渡す

悩み 以下のようなタブ切り替えをしたいときに、 パスではなくてクエリパラメータで内容を変えたい。 (urls.pyの内容を変えたくない) <ul class="nav nav-tabs"> <li class="nav-item"> <a href="{% url 'accounts:list' public%}">公開済み</a> </li> <li class="nav-item"> <a href="{% url 'accounts:list' draft%}">下書き</a> </li> <li class="nav-item"> </li></ul>

【CSS】ブロック内で文字列を折り返す

こんな風にブログサイトの中で、各記事のダイジェストを作ろうとしていたらタイトルが横にはみ出してしまった。 なんとか写真の幅で折り返したい。 ちなみにダイジェスト部分はトップ画、投稿日、タイトル、記事ダイジェストの4要素をGrid Layoutで縦に並べ…

【解決】 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

事象 コンテナのPythonとDjangoをそれぞれ最新化(2.6.0→3.8.0、1.1→3.0)して、 docker build後にrunserverすると以下のエラーが発生。 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.APサーバ側…

【解決】ModuleNotFoundError: No module named '_ctype'

事象 docker buildするときの pip install uwsgiで以下のエラーが発生。 ModuleNotFoundError: No module named '_ctype' 解決策 libffi-devを入れることで解決 dnf -y install libffi-dev

【解決】JupyterLabからデータを生成しようとするとSynchronousOnlyOperationエラーが起きる

JupyterLabからテスト用のデータを作成しようとしてエラーになったのでメモ。 以下のようなテスト用のデータを生成するコードをJupyterLabで実行。 import random, string import uuid import datetime def randomname(n): randlst = [random.choice(string.…