プログラミング
備忘メモ: Rust+Elixirな関数型言語「Gleam」のv.0.24が、2022.10.25(現地時間)でリリースされました。 gleam.run 今回のリリースで、「In-project Elixir support」機能が追加されたので、備忘として残しておく。 この機能は簡単にいうと、Gleamプロジェ…
備忘。 戒めの意味を含めて記録しておく。 でも、半分は愚痴。 文中には一部フェイク入れています。 概要 お仕事で、ある操作を行った利用者に対してメールを送信する機能の新規追加/改修を行った。 その際に、いくつかの点でハマり、結果として想定よりも…
備忘メモ。 忘れてまたググりそうなので。Rustで、文字列*1中にダブルクォーテーション(")と中括弧*2({と})を含めたい場合、エスケープ処理が必要になる。結論だけ先に書いとく。 ダブルクォーテーションの場合、エスケープ文字(\)を使って「\"」のよ…
備忘。 今まで知らなかったので、記憶に留めたいので記録しておく。 hoge&.empty? のように、「&.」をつけたRubyの記法を、最近知りました。 「Safe Navigation Operator」(別名:「ぼっち演算子」)と言って、オブジェクト(この場合「hoge」)がnilでも、…
備忘。 とある書籍の正誤表*1を読んでて、「へー」となった箇所があったので、記憶に残して起きたくて記載。ヒトの性別表記に関する規格として、国際規格ISO 5258というのがあるらしい。 これによると、性別の識別子には「GENDER」ではなく「SEX」(または、…
備忘。 初歩的なミスをしたので、戒めのために記録。 Twitter上でコラッツの予想(正しくは『コラッツの問題』?)に関する話を見かけて、「この問題の式を各種言語で書いてみるか。とりあえず、最初はElixirから書いてみよう」と思ったのがきっかけ。 それ…
前回書いた、「「Gophers Office Hours #13 〜セキュリティ回〜」で話されていたInteger Overflowの話。」の続き。発表者の@rung氏からInteger Overflowの根本対策の話を聞いたので、実際にコードにして確認してみた。
2020年10月19日、オンラインイベント「Gophers Office Hours #13 〜セキュリティ回〜」に参加しました。 イベントの詳細はこちら。mercari.connpass.comこのイベントでは、Go言語のセキュアコーディングの話をされていたのですが、その中で話されていた「Int…
2019/09/29に、「tokyo.ex #13 elixir本体ソースコードもくもくリード会」に参加してきました。 今回は、fukuoka.ex さんとのオンライン接続によるコラボ開催(笑)です。beam-lang.connpass.comfukuokaex.connpass.comそのイベントで、独自のコードを含めて…
Ubuntu 19.04 にインストールしたasdfコマンドをssh接続で利用しようとした際に遭遇。 概要: asdfコマンドが利用できるUbuntu 19.04に対して別端末からsshでログイン。 その際に、asdfコマンドへのパスが通っていなかった。 同様の設定をしていた「CentOS 7…
よくある「Proxy環境下」でハマった話。ElixirのPhoenix Frameworkの開発環境を作ろうと思い、Dockerfileを用意。 だが、同じDockerfileを使ってイメージ/コンテナを作成したにも関わらず、ホストマシンのOSの違いで「mix local.hex」コマンドが実行できる…
ElixirベースのフレームワークであるPhoenix Frameworkをちょっと試してみたい人向け。 Elixirインストール済みのDockerを利用して、Phoenixを構築/起動するまでの手順。ひとまずは、コンテナは都度消す設定(--rmオプションの付与)にしています。手順は以…
Moment.jsを利用して、現在日時を基準にして連続した日時データを取得しようとした際に確認した事象です。 const m = moment() for (let i = 0; i < 30; i++) { let cur_date1 = m.add(i ,"minutes").format('YYYY-MM-DD HH:mm') //以下略 } 上のコードの期…
自分が担当している運用作業の中で、数十個のグラフが表示されるHTMLをPDFに変換して、そのPDFをエビデンスとして保管する作業があります。これまではHTMLをブラウザに表示した後に印刷ボタンを押し、出力先をPDFにするという手順で実施していました。最初は…
2019/02/19(火)に「Go勉強会 Webアプリケーション編 」に参加してきました。今回の題材は「gRPC」です。gRPCは、公式ページのQuick Startをいくつかの言語で実施して、Basics(英文)のページを読んで一旦止まっていたので、ある意味では復習になりました。…
前回に続き、gRPCとProxy配下の環境ネタ。ちなみに、前回ハマってた内容はこちら。 mzryuka.hatenablog.jp前提として、Proxy配下の環境。 localhost内でGo言語以外の言語で動かしたgRPCのクライアントが、gRPCのサーバ側にアクセスできなかった。 ホストOS上…
タイトルで結論が出ているんですけどね。 Dockerファイル内で実施していたapt-getが問題なく動いていたので、peclの通信がProxyにブロックされているとはすぐに思いつけませんでした。
備忘メモ。mbox形式のファイルからメッセージを取り出して保存する際に利用した方法。 諸般の事情で、改行コードをLFからCRLFにする必要があった。本来ならテキストベースで一行ずつ読み込んで保存する際に改行コードを付ければ良いが、メールデータだとメー…
備忘メモ。Python3で「mbox」形式のファイルから1つずつメール(=メッセージ)を取り出すのに利用した方法。ライブラリ「mailbox」を利用する。 https://docs.python.jp/3/library/mailbox.html import mailbox def read_contents(file): mbox = mailbox.mb…
備忘メモ。Python3でforループを書く際、処理が1-2行なら1行(ワンライナー)で記述できる。例えば、「配列の値」と「その値を2倍した値」を出力したい場合。 keys = [1,2,3,4,5,6,7,8] for k in keys: print(k, k*2) これは、次のように書ける。 keys = […
※Goのバージョンは1.9.1で確認しています。Go言語で特定の文字列から時刻(Time型)を生成する際には、パッケージ「time」の「Parse」や「ParseInLocation」を利用します。 違いは、ParseがUTC固定で、ParseInLocationがLocation(「”Asia/Tokyo”」等)を指…
Go言語で「http.ListenAndServe」を使った際に、エラーメッセージ「missing port in address」が出た時の対処メモ。もっとも、オチは「渡す引数の設定値を間違えていた」というポカミスで、恥ずかしい限りなのですが。