サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
qiita.com/hoto17296
告知すると、社内からは「良さそう」「気になる」といった肯定的なリアクションがちらほらついたりします。 しかし当日になってみると期待していたほどには人が集まらず、イマイチ盛り上がりに欠ける会となってしまいました...。 もし本当に魅力のないイベントで誰も興味がなかったのであれば、仕方ありません。しかしよくあるのは 「えっ、あの勉強会って今日だったの?参加したかったんだけど打ち合わせの予定入れちゃった」 などと言われるやつです。実は興味を持ってくれている人がいるのに参加してもらえないというのは大変にもったいないです。 このような悲劇は、ちょっとした工夫で回避できます。 ポイント3点 1. 意思表示させる 社内チャットツールに告知を書くとすると例えば以下のような内容でしょう。 重要なのは最後の行です。誰が興味を持ってくれたのかを主催者側で把握することは、次で紹介する「予定をおさえる」へ繋げるため
そうです。わずか10行しかないデータですが、 15,000列 あります。 「それデータモデリングをミスってるやん」というツッコミはあると思いますが、今回はそのあたりについてはノーコメントです。諸事情ありこのようなデータを扱うことになりました。 今回は Snowflake でもなかなか扱うことが難しい (横方向に) クソデカデータの世界 をご案内したいと思います。 クソデカテーブルを作る まずテーブルを作ります。 この時点でエラーが出てくれるならまだ良かった。。。 なんとこのクエリは問題なく実行でき、テーブルは作成できます。 作成できてしまいます。 作成できてしまったが故に、「さすが Snowflake、列数が多いテーブルも簡単に扱えるんだね!!」と高をくくってしまいます。 ちなみに PostgreSQL の場合は1テーブルあたり最大 1,600 列だそうです。まぁそれだけあれば普通は困らな
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
とりあえず「IP アドレスと MAC アドレスを紐付けたらいいでしょ」と考えてこのようなコマンドを実行したが、IP アドレスは固定できなかった。 3行まとめ DHCP の仕様 (RFC2131) で定義されている Client Identifier という機能があり、DHCP クライアントは任意の識別子を DHCP サーバに伝えることができる YAMAHA ルータの DHCP サーバは初期設定では Client Identifier を用いた固定割当 (use-clientid 機能) を優先するようになっており、その場合は MAC アドレスで固定割当を設定しても動作しないことがある YAMAHA ルータの設定で use-clientid 機能を無効にすることで MAC アドレスによる固定割り当て設定を動作させることができる 原因調査をする 15.1.5 DHCP 予約アドレスの設定 -
Ubuntu 20.04 に X11 + VNC でいい感じのヘッドレスリモートデスクトップ環境を作ろうとして一週間くらい苦戦していたた、VNC を諦めて xrdp を入れたら一瞬でできてしまった。まとめるほどの内容ではないがまとめておく。 やりたかったこと 自宅ネットワークに Ubuntu Desktop 20.04 が入ったサーバがあるが、このサーバは自宅 LAN には接続されているがディスプレイは接続されておらず、これを自宅 LAN 内の MacBook からリモートデスクトップして使いたい。 VNC でうまくできなかった件 ディスプレイが無いので、vino のような「既に起動しているセッションを VNC 経由で遠隔操作する」ようなやりかたではできず、またリモート接続のたびにセッションを起動できるように Xvnc + inetd を試みたがこれはうまく設定できなかった。(力不足) そ
AWS マネジメントコンソールを SAML フェデレーションによる SSO で利用している場合、その権限で AWS CLI を利用するのは簡単ではない。 そもそも Role が一時的に割り当てられているだけであって IAM User を作成しているわけではないので Credentials を作成することができない。AWS CLI を利用するためには AssumeRoleWithSAML という API を使って一時的な Credentials を都度要求しなければならない。 詳しいことは以下に書いた。 SAML 認証による一時的な認証情報で boto3 を利用する - Qiita 上記は Python でやる場合の話だったが、今回は同じことを Bash でやれるようにスクリプトを書いたのでそれについてメモしておく。 スクリプト aws コマンドと jq コマンドはあらかじめインストールして
勢いで書いたはいいものの特に使うこともないコードが発生してしまったので Qiita に書いて供養する。 FastAPI のお試しと Bearer スキームの仕様理解のための練習という感じ。 大いに参考にした記事: トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた - Qiita 作ったもの パスワード認証 トークンを用いた認証・認可 Bearer スキーム = Authorization: Bearer ヘッダを見る バックエンド API のみでフロントエンドは作っていない 認証通ったら LocalStorage に token 入れておいて API 叩くときはヘッダ付けてくれって感じ @nuxt/auth とかでシュッとできそう JWT ではなく古典的なセッションストレージ (メモリ) なのでステートフル コー
こういうのを作りました。 Docker イメージの断捨離がダルい問題 Docker イメージがディスク容量を圧迫して困ることがありますよね。 docker image prune や docker system prune をすれば dangling なイメージをまとめて削除することができます。danglings (宙ぶらりんな) イメージとは「タグ付けされていない」「どのコンテナも使ってない」イメージのことなので、つまりは「削除しても問題なさそうなイメージをまとめて削除する」ってやつです。 これだけである程度は削除できますが、タグ付けされている不要なイメージまでは削除できません。 -a / --all オプションを使えばタグ付けされている未使用なイメージをまとめて削除できますが、これだと今度は必要なイメージまで削除してしまうので難しいです。 結局、ちゃんと断捨離しようと思ったら目視でひと
「家に余っている Raspberry Pi で無線ルータを自作できるんじゃね」と思い立ってやってみたやつ。 ググったら同じことをやっている人は山ほどいたので特に新しい話ではない。それどころか Raspberry Pi の公式ドキュメントにやり方が書かれており、このエントリもこのドキュメントに従ってやってみたというだけの内容になっている。 作ったもの Raspberry Pi 内蔵の Wi-Fi を AP として使う DHCP サーバ (dnsmasq) を動かして IPv4 アドレスを配布する トラフィックを有線ポート側に流すことでインターネットに繋げる 今回は上流に DHCP で IP を配ってくれる別のルータがいて、その下で動くようなものを作った。 使ったもの Raspberry Pi 3 Model B 3B 以降のモデルでは Wi-Fi を内蔵しているので、別途 USB Wi-Fi
Python で MySQL とのコネクションプーリングを行う方法と、そのハマりどころについて。 mysql-connector-python の MySQLConnectionPool の問題 まず、MySQL 公式の Python クライアント mysql-connector-python で単純にコネクションを作成する場合は以下のように書ける。 import mysql.connector cnx = mysql.connector.connect(host="...", user="...", password="...", database="...")
自宅のネット環境を IPv6 対応したら SSH や Git でインターネットに接続できなくなって困った話。 現象 「フレッツ回線」「IPv6(※)」「SSH」でインターネットに出ようとした際に、「client_loop: send disconnect: Broken pipe」というエラーが出て接続できない。 ※ DS-Lite や MAP-E による IPv4 over IPv6 を設定している場合は IPv4 での SSH 接続でも同様の問題が発生する。 原因 フレッツ網は IPv6 DSCP 値によってパケットを drop してしまうらしく、それによって SSH のパケットが届かなかったため。 DSCP とは DSCP は IP パケットに含まれる 6bit の値で、パケットの優先度を制御する目的で使われる。1 OpenSSH の DSCP 値 OpenSSH では明示的に設定し
社内向け Web アプリを作りたい。さらに言えば会社で G Suite (Google Workspace) を契約しているので G Suite アカウントによる SSO でログインできるようにしたい。しかし OAuth2 の認証機能を実装するのは面倒くさい。 そんなとき、OAuth2 Proxy というリバースプロキシを Web アプリの前段に置くという選択肢がある。 これを試してみたく、Docker を使って動作させるところまでやってみたのでその方法をメモしておく。 ※ 今回は G Suite による SSO の実装例を書いているが、OAuth2 に対応した IdP ならだいたい同じ方法でできるはず。 コード コンテナを3つ起動する。 proxy: OAuth Proxy を動かすコンテナ。今回はポート 8000 で外部からアクセスできるようにする。 web: Web アプリ。HTTP
某技術コミュニティ Slack で話していた内容のまとめ。 推測が多分に含まれているので気をつけて欲しい。 WSGI を使ったり使わなかったりする謎 自分は普段 Python で Web アプリケーションを開発するときは aiohttp Server を使っている。 だいたいいつもこんな感じのファイルを作って、本番環境で動かすときも (Docker コンテナで) python main.py と実行しているだけ。何も難しいことはなく、シンプルに Web アプリケーションを動かしている。 しかし以前 Flask で Web アプリケーションを開発していたとき、本番環境で動かすときは uWSGI なるサーバを使っていた。 あれは何か? なぜあのときは uWSGI が必要で、今回は使う必要がなかったか? いや別に、「WSGI が Web アプリケーションのためのインタフェースであり、uWSGI
AWS Lambda の Python ランタイムでよく使うモジュールを Lambda Layers に登録しようと思ったが、EC2 インスタンスを立ち上げてパッケージを作るのが面倒なので Docker でできるようにした。 Lambda Layers とは何か ファイルを zip で固めたものをアップロードして「レイヤー」として登録することができる Lambda Function にレイヤーを追加すると、ランタイムの /opt 以下に固めたファイルが展開されて実行時に利用できるになる 言語ごとに指定された名前のディレクトリの中にモジュールを入れておくと、Lambda Function から読み込めるようにパスを通してくれる 例えば Python ランタイムの場合、レイヤー zip 内の python という名前のディレクトリに Python モジュールを入れておくと Lambda Fun
例えば AWS Lambda + Amazon CloudWatch Events で定期的にどこかからデータをひっこ抜いてきて適当に Amazon RDS にでも突っ込んでおくかという場合に、普通の Provisioned インスタンスだと少なくとも数千円/月はかかってしまうが Aurora Serverless にすれば使っていないときは勝手に寝てくれるので格安で済むのではないか。1 2 ただしこのアイデアにはひとつ問題があって、Aurora Serverless が起きるのが遅いということ。 DB クライアントから接続を試みると寝ていた Aurora Serverless は起動し始めるが、接続を受け入れられるようになるまでの間にクライアントがタイムアウトしてしまうなんてこともある。 そこで、使うときはあらかじめ Aurora Serverless を起動 (Capacity を増加
RQ は、Redis をメッセージブローカー兼データストアとして利用することで分散タスクキューを実現する Python ライブラリ。 RQ: Simple job queues for Python Redis はリスト型の LPUSH と RPOP だけでタスクキューっぽい動きができて、RQ はそれを薄くラップしただけのシンプルな API という印象。 Celery + RabbitMQ の方が高機能だが、シンプルなタスクキューでいいという場合には RQ の方がとっつきやすい (と思っている)。 動かしてみる 手動でプロセスを複数立ち上げるのも面倒なので、 Docker Compose でサクッと試してみる。 実際に運用する際はちゃんと Redis サーバと Worker サーバ複数を用意してやるはず。
2019年11月25日に Amazon CloudWatch Synthetics のプレビューが公開されました。 Introducing Amazon CloudWatch Synthetics - Now in Preview 一言で言えば外形監視機能ですが、単に Web サービスの死活監視をするだけでなく、 ページ内の要素を監視する レスポンスタイムを監視する スクリーンショットを撮る リンク切れを検出する などなど、監視項目を柔軟に設定できるようです。 こういう機能欲しいな〜〜〜と思っていたところだったので、テンション爆上がりで早速試してみました。 監視項目を作成する 現時点では US East (N. Virginia), US East (Ohio), EU (Ireland) の3リージョンでしか使えないとのことですが、どのリージョンから監視をしても大して問題はないと思うので
Deep Learning 界隈のツールはまだまだアップデートが激しくて、ちょっと目を離すと環境構築手順が変わっていたりするので面倒くさい。 むかし書いた 趣味でディープラーニングするための GPU 環境を安上がりに作る方法 が今でも地味に伸びているのだけど、あの頃の環境構築手順とも変わってきたのでもう一度まとめておく。 あと Amazon EC2 の p3 インスタンスで Tesla V100 が使えるようになったので、どれだけ速いのか試してみたかった、というのもある。 (2018.10 追記) NVIDIA Volta Deep Learning AMI NVIDIA Volta Deep Learning AMI なんてのがあることを知った。 NVIDIA 公式 Ubuntu Server 16.04 ベース Volta 用のドライバインストール済み Docker + NVIDIA
$ docker run --runtime=nvidia --rm nvidia/cuda:9.1-runtime nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.77 Driver Version: 390.77 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compu
もうだいぶ前の話になるが、Node.js v8.0 で util.promisify が実装された。 同じく v8.0 で実装された async/await と一緒に使うと非常に便利。 今回は、promisify の便利さを説明するための資料としてのまとめ。 ちなみに Promise については説明しない。 例 以下のような、何らかのデータベースにクエリ文字列を投げて結果を取得するようなコードがあるとする。 const db = new DB('db://user:pass@host'); db.execQuery('SELECT ... FROM ...', (err, results) => { if (err) console.error(err); else console.log(results); });
次のページ
このページを最初にブックマークしてみませんか?
『@hoto17296のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く