Devlion Memo

のらりくらりと

Golangメモリ周りのメモ (goroutine割り込み)

前回 mjhd.hatenablog.com 最近、面白いツイートを見つけた。 Interesting bug caused by cooperative preemption and mutex fast-path inlining in Go: https://t.co/CHeGvBVhTE— Roberto Clapis (GMT -7) ️‍ (@empijei) August 16, 2019 内容は、ゴルーチ…

Railsにsorbetインストールしてみた with LSP

Rubyの静的型チェッカー、「Sorbet」がオープンソース化された。 LSPも実装されており、これだけRubyもシェアがあるので、覇権を握れるのでは。 手元にちょうど良いRailsプロジェクトが合ったため、導入してみた。 Sorbetのインストール ここではあまり詳し…

Golangメモリ周りのメモ (mid-stack inlining編)

前回 mjhd.hatenablog.com mid-stack inliningとは mid-stack inliningとは、前回の記事でも紹介したインライン化をより積極的に行うようになる機能のことである。 前回の記事からの引用だが、 Goのコンパイラは、関数が以下の条件に当てはまるとき、関数を…

WSLのIO遅いよ問題

WSLは理論的にはLinuxカーネルを起動するオーバーヘッドがなく軽量に動作するはずなのだが、実際に動かしてみると色々ともっさりしている。 例えばnpm installなどが重たすぎて永遠に終わらなかったりエラーが出てしまったり。 この辺のもっさりは、WSLのIO…

2019年最高のWSL環境を求めて

2016年、僕はWSLに出会い感動してからというもの、「最高のWSL環境を求めて」さまよい続けました。 来る日も来る日も「Windowsは最高・・・Windowsはクソ・・・Windowsは最高・・・」と呟きながら花びらを散らし、バグのあるWindowsアップデートにも負けず、…

サウナー用語

この頃サウナにはまっており、話題のサービス「サウナイキタイ」のサウナー達によるレビューを読み漁ってたらなんとなくサウナー用語(サウナスラング)がわかってきたのでまとめる。 外気浴 人間の三大欲求の一つ。 サウニング サウナに入ること。また、サウ…

2018年買ってよかったもの

年の瀬なので2018年に購入したものの中で、買ってよかったものをまとめてみた。 1位. ミラーボール 友人との会話の中でふざけて購入したミラーボールが思いのほか生活に潤いを与えてくれている。 このミラーボールは音に反応して光る機能があり、通常は流れ…

Golangのメモリ周りのメモ

以前、このレポジトリがバズっていた。 GitHub - intel-go/bytebuf: Example of how CL133375 can be utilized to mitigate Go escape analysis limitations. bytebufが小さなサイズのバッファ用にあらかじめ用意しているbootstrapというバイト列が、エスケ…

Prometheusの長期ストレージメモ

Prometheusを使うに当たって、長期ストレージについて調査をしたのでそのメモ。 Prometheus v2 Prometheus v2では、Remote Long-Term Storageのサポートがされている。以下のストレージを選択可能。 AppOptics: write Chronix: write Cortex: read and write…

いまさらSSL/TLS証明書

今までSSL証明書をなんとなく雰囲気で使っていた感が否めないため、自信を持って解説ができるよう具体的な仕組みを調べたメモ。 X.509証明書 X.509証明書はISO/IECによって定められている証明書に関する仕様。 公開鍵証明書、属性証明書、特定証明書の三つが…

GoでSpannerを扱う際のポイント

そもそもSpannerって? SpannerはGCPが提供する高可用性のあるリレーショナルデータベース。SQL文が使え、スキーマ定義・スキーマの変更・SELECT系のクエリを実行できる。(INSERT, UPDATE, DELETEは無い) プライマリーキーを適切に設定すれば、負荷に応じて…

golangとbazelで作るいい感じなビルド環境

※Makefileに一部間違いがあったため、修正しました bazelはビルドシステムの一つで、Googleが開発し社内でも使用している。makeなどの従来のビルドシステムと比べると、簡潔な設定で幅広い言語・ビルド対象に対応していて、ビルドが必要なものはほとんどbaze…

ノートパソコンをタッチ対応に…Neonode AirBarを購入してみた

www.air.bar AirBarは、タッチ未対応のノートパソコンの画面を、タッチ対応にするデバイス。(現在はWindows10のみの対応。今後Mac対応の製品が発売されるらしい) お値段も$69.00で買え、13.3inchから15inchまでのサイズをそろえている。 最近、秋葉原で5000…

macOS SierraでJIS配列キーボードを US配列として使う方法

mjhd.hatenablog.com この記事でも書いたのだが、macOS SierraからはKarabinerが使えない。 そこで、前回はカスタムキーボードレイアウトを作成することで対処をしたのだが、この方法の難点は、「日本語入力中の配列が JISのまま」というところ。 不完全な方…

WSLをXenialにアップデートしてみた

mjhd.hatenablog.com 過去記事で紹介したBashOnWindows(WSL)環境において、UbuntuのバージョンをTrustyからXenialへアップデートしたメモ。 アップデート方法 以下のコマンドを実行するだけ。 sudo do-release-upgrade その後、いくつかのアプリケーションに…

オブジェクト指向とは

新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiitaなどを参考にまとめたメモ。 オブジェクト指向プログラミングとは,オブジェクト同士の相互作用として,システムの振る舞いを捉える考え方である.所謂手続き型…

FuelPHPのemailで日本語メールを送る際に気を付けること

マルチバイト環境でFuelPHPのemailを使う際、いくつか気を付けなければいけない問題がある。 今回想定している環境は、以下。 FuelPHP 1.8 UTF8でメールを送りたい HTMLメールを送りたい 自動改行処理を止める(あるいは、改善する) FuelPHPのemailパッケージ…

最高のXiaomi Notebook Air 13.3を購入した

もともとはMacBookAir13を4年間使っていたのだが、macOS sierraにアップデートしてから様々な問題にぶち当たり、Macが少しだけ嫌いになったのと、もともとメモリ4GBしかなかったため流石にしんどくなってきたので、新しいPCを買うことに。 中国メーカーXiaom…

最高のBoW(Bash on Ubuntu on Windows)環境のために

最近、Macを捨ててWindowsに乗り換えた。その際に、Macで使用していたCUIにより開発環境をできるだけWindowsに移植できないかと考えた。 BoW(Bash on Ubuntu on Windows) BoWは、Windows10よりベータ版として提供された、Windows上でLinuxバイナリを実行する…

AirPrintをXamarin Androidに載っけてみた

mjhd.hatenablog.com の記事にて、BMPからUNIRASTへの変換が完了した。 あとは、BonjourとIPPを実装すれば理論上はXamarin AndroidからAirPrintができるはず。 ということで実装してみた。 Bonjour Bonjourは、ネットワーク上のデバイスを探すためのプロトコ…

UNIRASTをC#で実装してみる

UNIRASTという画像形式がある。 AirPrintなどで使われている形式のようで、Appleが独自開発をしたもののようだ。公式なドキュメントは見当たらないが、リバースエンジニアリングしたものがGitHub上にたくさん転がっていたので、それをC#で書き直してみた。 …

法人を立ち上げる手順

実際に法人を立ち上げてみて、その手順のメモ。 ちなみに、私は大学生なので、近い境遇で起業を考えてる人などの参考になれば。 前提 学生 合同会社 共同設立者あり 報酬あり 紙定款 準備 法人登記にあたって必要なものは以下。 代表社員個人の印鑑登録証明…

MacのJIS配列キーボードをUS配列で使いたい人用カスタムキーボードレイアウト

追記 現在はもっといい方法を使っています。 mjhd.hatenablog.com MacのJIS配列キーボードをUS配列で使いたい人用、カスタムキーボードレイアウトを作成した。 El Capitan以前の人は、Karabinerというソフトを使った方が色々捗る。 macOS Sierra以降の人は、…

Xamarin Androidで、AutoResizeするTextViewとButtonを作成する

Androidには便利な機能があり、LinearLayout使用時にそれぞれのウィジェットにWeight(重み)をつけることで、割合をベースにしたレイアウトを作成することができる。 これを使うことで、デバイスのサイズにとらわれずにレイアウトを作成することができる。iOS…

完全食を自作してみた3

完全食を自作してみた2 - Devlion Memoより、最終報告。 8月一杯、完全食を食べ続け、比較のために9月一杯は普通の食生活を続けてみた。 完全食は良い…だけど 完全食は、時間の節約になった。 寝る前に翌日分の完全食を10分ほどで作り、朝・晩飲む。かなりの…

macOS Sierraにアップグレードして起こった問題

macOS Sierraにアップグレードした。いろんな問題が起こった。 Siriが使えない Siriボタンが追加されたのはいいが、押しても何も反応がない。 おそらくバグ。 Escキーが死ぬ 作業していると、突然Escキーがシステムワイドに効かなくなり、vimのINSERTモード…

SD共有サーバでFuelPHPを動かす

お名前サーバなどの一部の共用レンタルサーバでは.htaccess内におけるmod_rewrite機能に制限が加えられている. 拡張子を書き換えるなどの処理はできないらしいのだが,ちょっといじると実はmod_rewrite機能は大体使えたりする. 一体何に制限がかかってて何…

完全食を自作してみた2

完全食を食べるようになって半月ほど経った.(1日3食,うち2食が完全食) 完全食が何かわからない人は,完全食を自作してみた1 - Devlion Memoを見ていただきたい. 完全食で生きていけるのか? 結論としては,問題ないと感じた. もちろん,まだ続けてみて半…

完全食を自作してみた1

PFJというものをご存知だろうか. Perfect Food for Japaneseの略で,このサイトにてレシピが公開されている. 完全食の日本人版というもの. 完全食 完全食とは,1日分の食事摂取基準(国が公開している)などを参考に,様々な材料を調合し液状にしたもの. …

スプラトゥーン 終了間際 コード

A A E A D E A Abm F#m E A Abm F#m E D E