サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
hnakamur.github.io
2013-09-01 Chef-soloとAnsibleとFabricを試してみたので感想をメモ。どれもそんなに深くは使い込んではいない。 このメモは自分の脳内の考えを整理するためのもので、人が使うことについてどうこう言うつもりはないです。 Chef-solo 書いてみたcookbookはこちら。hnakamur/chef-cookbooks hnakamur/chef-repo クックブックは手順を書くのではなくて結果を書くというのがどうも本質的に違うと私は思ってしまう。料理のレシピだって手順を書くし。書結果がこうあるべきというのはserverspecが出来た今となってはそちらに任せて、クックブックは本来手順を書くべきものだと思う。 RubyのDSLだけど結局上から順に評価されるので、実は手続きを書いていることになっている。でもファイル単位でしか再利用できないので、一部だけ使いたいと思っ
2018-01-30 はじめに Allocation Efficiency in High-Performance Go Services · Segment Blog という記事を読みました。素晴らしいのでぜひ一読をお勧めします。 この記事は自分の理解と実際に試してみた結果のメモです。 一番のポイントは go build -gcflags '-m' のようにオプションを指定してビルドすればコードのどの箇所でヒープ割り当てが発生したかを確認できるということです。 pprof や go test -benchmem でもヒープ割り当ての発生回数は確認できますが、上の方法ではコードのどこ(何行目の何カラム目)でヒープ割り当てが発生したかとなぜ発生したかの理由を確認できます。 元記事の内容メモ 冒頭にあげた記事を読んで私が理解した内容のメモです。 元記事の全ての内容を書いているわけでないので、元
2016-08-02 Go言語(Golang) はまりどころと解決策の記事についてのコメント記事を誰かが書くだろうと思ってスルーしてましたが、見かけないので書いてみます。 ただし私はGo言語を使って開発していますが、言語自体を詳細に知るエキスパートでは無いです。Go言語にかぎらず個人的にはややこしいところにはなるべく近づかないスタンスなので、詳しい方から見ると物足りないかもしれません。そう感じた方は是非ブログ記事なりを書いていただけると嬉しいです。 interface とnil (Goのinterfaceは単なる参照ではない) 特にコメントはなくてそのとおりだと思います。 Frequently Asked Questions (FAQ)に加えて Effective Goも早めに読んでおいたほうが良いと思います。 またnilに関する文献としては Understanding Nil // Sp
2017-04-24 はじめに voormedia/rails-erd: Generate Entity-Relationship Diagrams for Rails applications を使って tootsuite/mastodon: A GNU Social-compatible microblogging server のER図を生成してみました、というだけの記事です。 Relax Ruby version requirement (#1901) · tootsuite/mastodon@0611209 のコミットに対して 生成したPDFが mastodon-er-diagram.pdf です。 たぶん今後更新しないので新しいER図が欲しい方は自分で生成してください。 生成手順 生成時にデータベースにアクセスするので、mastodonのソースを git clone しただけで
2015-10-22 以前Go言語のDependency/Vendoringの問題と今後.gbあるいはGo1.5 | SOTAを読んだのですが、その時は様子見にしていました。 しかし、仕事でGoを書くとなるとやはりVendoringは必要だろうと思い、遅ればせながら今回gb, tools/godep, mattn/gomを試してみました。 gbの不満 gbの例を見ると、自分のプロジェクトのトップディレクトリに src/cmd あるいは src/github.com/ユーザID/プロジェクト名 というディレクトリを作ってそこにソースを置く必要があるようです。 FAQにもWhy can’t I place source in $PROJECT/src?という項があるので、これは仕様のようです。 でもこれだと、自分のプロジェクトを他のプロジェクトで使いたい時に go get で使えないですよね。
2012-05-04 これまでいつも/etc/sudoersを編集していたのですが、よくみるとファイル末尾に ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment) #includedir /etc/sudoers.d と書いてあって、/etc/sudoers.d/にファイルを置けば/etc/sudoersを編集しなくても済むんですね。(しかしなんでincludedirには#をつける仕様なんだろ。今までずっとコメントアウトされていると思ってました。その上のコメント行に#ついててもコメントじゃないと書いてあるのに気づいたのが今日です) /etc/sudoers.d/hnakamur を Defaults:hnakamur !requiretty hnakamur ALL=(ALL) NOPA
2015-02-22 なぜ ウェブアプリ開発をしているとInternet Explorerでの動作確認のためmodern.IEが欠かせません。が、インストール直後は英語環境になっているので、日本語環境での動作確認のためにはセットアップが必要です。 セットアップ手順は以下のQiitaの記事に書いたのですが、手数が多くて面倒でした。 VirtualBox - modern.IEのWindows 7で日本語の表示と入力をできるようにする - Qiita Windows8.xのmodern.IEで日本語を入力、表示できるようにする。 - Qiita それを自動化するコマンドラインツールmoderniejapanizerを作りました。実は2年ぐらい前にAutoItを使って作り始めたのですが自動制御がうまくいかないときがあって挫折していました。昨年暮れぐらいから再挑戦して、今回は勉強を兼ねてGoで実装
2020-05-29 はじめに wsl-ssh-agentでWindows Subsystem for LinuxからWindowsのssh-agentを使う設定手順 · hnakamur’s blog は快適だったのですが WSL2 では使えないことが分かりました。 wsl-ssh-agent の WSL 2 compatibility に回避策が書いてあるのを見つけ Use an ssh-agent in WSL with your ssh setup from windows 10 も読んで設定してみたので手順をメモしておきます。 KeePass と KeeAgent プラグインをセットアップ KeePass Password Safe はパスワードマネージャーですが、 KeeAgent – lechnology.com プラグインを入れると experimental ではありますが
2021-10-31 はじめに OpenSSLのSSL_sendfileとパッチを当てたnginxでLinuxのkTLSを試してみた · hnakamur’s blog を書いてから1年半経って状況が変わっていたので再度試してみました。 9日前に SSL: SSL_sendfile() support with kernel TLS. · nginx/nginx@1fc61b7 で Linux の kernel TLS を使って sendfile するコードが nginx に入っていました。 コミットメッセージによると enable-tls オプションを有効にした OpenSSL 3.0 が必要とのことです。 検証環境 $ cat /etc/os-release | grep ^VERSION= VERSION="20.04.3 LTS (Focal Fossa)" $ uname -r
2017-02-12 はじめに Beringei: A high-performance time series storage engine | Engineering Blog | Facebook Code という記事を読んで、Facebookが2015年に “Gorilla: A Fast, Scalable, In-Memory Time Series Database” という論文でGorillaという時系列データベースについて発表したものをBeringeiとしてオープンソースで公開したのを知りました。 この論文は読んだことがなかったので読んでみたのですが、時系列データベースのデータの特徴をうまく活かした独自の圧縮方法が興味深かったので、自分でも試してみたのでメモです。 Gorillaでは高い圧縮率によってデータをオンメモリで扱うことができるようになり、書き込みと問い合わせの速
2016-06-20 はじめに キーバリューストアについて調べていたらLSM-Treeというデータ構造とRocksDBが気になったということで調査メモです。ただし、それぞれの技術詳細を調査したり自分で検証してみたというメモではないです。 そうではなく、いろんな記事で言及されていたり、ソフトウェアで採用されているのが気になったというだけの浅いメモです。が、脳内バッファからあふれる量になったので自分用に軽くまとめ。 LSM Tree Log-structured merge-treeを略してLSM Treeと呼ぶそうです。概要はLog-structured merge-tree - Wikipediaを参照してください。 CockroachDBのデザインドキュメントのRead vs. Write Optimization Spectrumによると、B+ Treeというデータ構造は書き込みより読
2015-07-26 はじめに ここしばらくriywo/anyenvとyyuu/pyenvでPython 2.7.10をPython 3.4.3を使い分けてきたのですが、私の用途だと2系と3系の最新だけ使えればいいことがわかりました。 そこで、pyenvを止めてhomebrewのpython2と3を使うことにしました。自分用にPython2のvirtualenvとPython3のvenvで仮想環境を作る手順のメモを書いておきます。 事前準備 Python2とvirtualenvのインストール。 brew install python pip install virtualenv Python3のインストール。 brew install python3 インストールされるコマンドはpythonとpipがPython2用で、python3とpip3がPython3用となっています。 Pytho
2012-05-04 2013-03-13追記 この記事が@matzさんにツイートされたのを受けて、各処理系の最新版で再度試してみました。 lua, V8, ruby, mrubyでfib(39)の実行時間比較 2013-03-12版をご参照ください。 mruby (軽量ruby) ソース公開 | quredo-styleを見て、自分の環境でlua, luajit, V8, ruby, mrubyで試してみた。 テスト環境 Model: MacBook Air 13-inch, Mid 2011 CPU: 1.7GHz Intel Core i5 RAM: 4GB 1333MHz DDR3 OS: Mac OS X Lion 10.7.3 lua fib.lua function fib(n) if n < 2 then return n end return fib(n-2) + fib
2016-12-31 はじめに 検索してたら Why Kubernetes is winning the container war | Hacker News というHacker Newsのスレッドを見つけました。 実際に勝つどうかはともかく、実際に使っている人やMesosphereやRed Hatの人のコメントがあり、非常に参考になりそうです。このブログ記事を書くまで私は Kubernetes はろくに触ったことが無かったので内容はよくわからないですが、後日また見直してみたいところです。 上記のHacker Newsのコメントで以下の2つのチュートリアルが紹介されていました。このブログ記事はこのうち1つめのほうを試してみたメモです。 Kubernetes Bootcamp kelseyhightower/kubernetes-the-hard-way: Bootstrap Kubern
2013-03-02 D3.js - Data-Driven Documentsを使ってツールチップあり複数折れ線グラフのサンプルを作ったのでメモ。 サンプル Multi-Series Line Chartのサンプルをベースに改良しました。 X軸のラベルを回転 D3.js Tips and Tricks: How to rotate the text labels for the x Axis of a d3.js graphを参考にして回転させました。 svg.append("g") .attr("class", "x axis") .attr("transform", "translate(0," + height + ")") .call(xAxis) .selectAll("text") .style("text-anchor", "end") .attr("dx", "-.8em
すると apt show lxd で以下のように出力され、lxd の deb パッケージはダミーで snap でインストールするように書かれていました。 $ apt show lxd Package: lxd Version: 1:0.9 Priority: optional Section: universe/admin Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 79.9 kB Pre-Depends: debconf, snapd Depends: debconf (>= 0.5) | debconf-2.0 Breaks: lxd
2016-07-23 ストリーミング・レプリケーションの構築 — Let’s Postgres と PostgreSQL9.1ためしてみた【非同期レプリケーション編】 - ごろねこ日記 を読んで、2台のLXDコンテナを使ってPostgreSQLの非同期リプリケーションを試してみたのでメモです。 またPostgreSQL Replication - Second Edition | PACKT Booksが $10 と安かったので、買って非同期レプリケーションの章まで読みました。 手順はAnsible playbookとしてまとめました。 hnakamur/postgresql-async-replication-example-playbook ansible.cfg で ask_vault_pass = True と指定しているので、プレイブック実行時に Vault password:
2017-09-02 2022-05-17 追記:代替スクリプトを書きました https://github.com/hnakamur/setup-my-ubuntu-desktop/blob/main/my-apt-add-repository 事前に curl, gpg, coreutils パッケージがインストールされている必要があります。 使用例 my-apt-add-repository ppa:hnakamur/nginx GPG公開鍵の登録は 第675回 apt-keyはなぜ廃止予定となったのか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 で解説されている手順に沿っています。 はじめに PPAのページにはPPAを追加するには add-apt-respository コマンドを使うように書かれています。 例えば gcc-7 などを配布しているPPA
2015-04-25 Vagrant Cloudに上がっているUbuntu trustyのオフィシャルイメージubuntu/trusty64 | Atlas by HashiCorpをVagrantfileで参照していたら、 vagrant up の際に以下の様なメッセージが表示される時がありました。 $ vagrant up …(略)… ==> default: A newer version of the box 'ubuntu/trusty64' is available! You currently ==> default: have version '14.04'. The latest is version '20150422.0.0'. Run ==> default: `vagrant box update` to update. 以下のように実行するとアップデートが出来ま
2017-05-13 はじめに 会社の同僚と話していて、私もそろそろIPv6に触れる機会を作っておかないとまずいなと思い、IIJmioひかりとIPoEとひかり電話を契約してDS-Liteというのを試してみることにしました。 ネットワークは経験不足で苦手な意識の強い私ですが、少しずつでも経験を積んで多少は理解できるようになりたいという思いもあります。 で、先人たちのブログ記事に助けられながら、なんとか設定できたので一旦メモです。 Edgerouter Lite-3でDS-Lite - Qiita が、NTT東日本と西日本という違い以外は同じ構成なので大いに参考にさせていただきました。 実は当初は、パスワードなど環境に応じて異なる部分の値だけ書き換えて流せばよいかと甘く考えていました。が、実際やってみて、細かく分けて1歩1歩設定を進めていくほうが良いというか、そうでないと私には無理だということ
2012-05-04 なぜ? chef-soloで作業環境構築の自動化 | ひげろぐ を参考に、Chefサーバは使いたくないけど、chef-soloとknifeを使いたい! ということで、そういう環境を作るためのスクリプトを作りました。 だいぶ前から試行錯誤してたけど、ようやくできたので公開。 セットアップスクリプト chef-soloやknifeはrootユーザで実行する想定です。 このスクリプトではruby、rubygems、ruby-devel、make、gccをyumで、 chefとknife-soloをgemでインストールします。 chef-soloやknife実行時にオプションをなるべく指定不要にするため、設定ファイルはデフォルトの場所に配置しています。 /etc/chef/solo.rb /root/.chef/knife.rb その他の詳細は install_chef-so
2016-04-19 はじめに なぜDockerではなくLXCを使うのか コンテナと言えばDockerが有名です。Docker 1.9からネットワーク機能が大幅に良くなっていて、Docker Composeでコンテナを作成するとコンテナ名で名前解決できるようになっています。 また公式のCentOS 7コンテナも良くなっていて、Dockerfileに CMD ["/bin/init"] と書いておけば普通に systemd が起動するようになっています。 そして docker run に --privileged オプションを付けて実行すれば実行時に /etc/ などの下のファイルを書き換えることも出来ます。 しかしこのような使い方はBest practices for writing Dockerfilesと全く合いません。Dockerのベストプラクティスでは1コンテナ1プロセス、コンテナ
2015-09-22 Ubuntu 14.04 (Trusty)にMySQL APT RepositoryからMySQL 5.7 (Development Release)を インストールするスクリプトを書きました。 Vagrantfileと共にhnakamur/noninteractive_install_mysql_from_apt_repository_to_ubuntu_trustyに置いてあります。 使い方 MySQL :: Download MySQL APT Repositoryをブラウザで見てmysql-apt-config_x.x.x-1ubuntu14.04_all.debのファイルのバージョンを確認し、スクリプト内の mysql_apt_deb_file変数の値をを適宜修正してください。 スクリプト内のmysql_root_password変数の値を設定したいMySQ
2020-04-07 はじめに io_uring について以下の素晴らしい入門記事を知ったので試してみたメモです。 io_uring By Example: An Article Series - Unixism io_uring by example: Part 1 - Introduction - Unixism io_uring By Example: Part 2 - Queuing multiple requests - Unixism io_uring By Example: Part 3 - A Web Server with io_uring - Unixism サンプルソースコード shuveb/io_uring-by-example: A companion repository for the io_uring by Example article series RE
2020-03-21 はじめに XMLSecでの証明書検証のコードリーディング · hnakamur’s blog の結果を元に hnakamur/nginx-lua-saml-service-provider で SAML レスポンスを検証する処理を外部コマンド呼び出し方式から LuaJIT FFI でのライブラリ関数呼び出し方式に書き換えました。 Add response:verify_response_memory method by hnakamur · Pull Request #4 · hnakamur/nginx-lua-saml-service-provider 今回の作業で LuaJIT FFI でモジュールを書く際の知見が少し溜まったのでメモしておきます。とは言ってもガーベジコレクションといった深いところは触ってないので対象外です。 背景: なぜ C 言語で Lua 用
以下の2つのページを参考に、node-http-proxyでバーチャルホストで振り分けつつ http/httpsからwebsocketにリバースプロキシする実験をしてみました。 環境はCentOS 6.2です。ソースはhnakamur/node-http-proxy-websocket-sampleにあります。 5分くらいで出来るnode.js(0.6) + socket.io(0.8x)のサンプルプログラム - 大人になったら肺呼吸 nodejitsu/node-http-proxy +---------------+ +------+ VHost1App/app | | | port 3000 | +--------------+ | +---------------+ -+ proxy-vhost +------+ | port 80, 443 | | +--------------
2017-01-02 はじめに さくらのクラウドでPackerとTerraformを使ってCoreOS Container Linuxの環境構築をしてみたのでメモです。 パブリックアーカイブ・ISOイメージにCoreOSはあるのですが、現状では残念ながらバージョンが 367.1.0 (stable) とかなり古い状態です。 そこで https://stable.release.core-os.net/amd64-usr/ 以下にある安定版公式ISOイメージの現時点の最新版である 1185.5.0 を使ってPackerでさくらのクラウド上にマイアーカイブを作成し、それを元にサーバで使用するディスクとサーバを作成します。 さくらのクラウドにはスタートアップスクリプトという機能がありサーバの起動時に設定を行うことができるのですが、これが使えるのはCentOS、Debian、Ubuntuに限定され
2013-04-03 Vagrantと1.0.xと1.1.xについて バージョン1.1.xの位置づけについては以下の記事を参照。 Vagrant 1.1, VMware Fusion - HashiCorp 変更履歴は vagrant/CHANGELOG.md at master · mitchellh/vagrant · GitHub。 gem installで入れられるのは1.0.x系のみ。現在は1.0.7。 search | RubyGems.org | your community gem host Vagrant 1.1.5のインストール Vagrant → Vagrant - Downloads → Vagrant - Downloads v1.1.5 と進み、Vagrant.dmgをダウンロードしてインストール PATH設定 vagrantコマンドにPATHを通します。 ca
2017-05-28 はじめに IIJmioひかりとEdgeRouter-LiteでDS-Liteを試してみた の後、多少調整して一旦自分の希望通りの動きで落ち着いた状態になっていましたが、ブログに書いておかないと忘れそうなのでメモです。 IPv6の静的アドレスとルーティング設定 Edgerouter Lite-3でDS-Lite - Qiita では という設定でルータのWAN側のIPv6アドレスをホームゲートウェイからもらってルーティングも自動設定するようになっていました。 これは楽な反面、ルータ起動後10分程度しないとIPv6アドレスがつかないので、その間はIPv4 PPPoEにしないとインターネットに繋がりません。 ルータの再起動は約2分半かかるので、そこからさらに約10分かかるというのは中々辛い感じでした。 が、会社の同僚に教えてもらいつつ試行錯誤したところ、以下のように静的にア
次のページ
このページを最初にブックマークしてみませんか?
『hnakamur.github.io』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く