読者です 読者をやめる 読者になる 読者になる

kakts-log

programming について調べたことを整理していきます

docker exitedなコンテナをまとめて削除する

dockerでの開発中に、docker runしてエラーが発生し、exitedになっているコンテナが残った状態になる場合があります。 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0efc271c4b9e testapp "python identidock.py" 6 seconds ago E…

Hash-Based サーチアルゴリズム まとめ

今回、多くの要素を持ち、必ずしもソートされていないコレクションに対して特定の値を探す際に効果的なHash-Basedサーチアルゴリズムについてまとめます。 日本語ではハッシュ法による探索アルゴリズムと呼ばれることもあります。 Hash-Basedサーチアルゴリ…

v8 "Launching ignition and Turbofan" 和訳

先日リリースされたv8 5.9において、新たなコード実行パイプラインが導入され、大きくパフォーマンスが向上したとのことです。 今後リリースされるNode.js ver8においてもv8 5.9が使われるため、概要を整理するためにv8本家のブログを和訳してまとめてみまし…

How browserify works

browserifyの仕組みに関して調べてみたのでメモ How browserify works browserifyはコマンドで指定したソースコードからAbstract syntax treeAbstract syntax tree - Wikipedia による静的解析を行い、コードの中に書かれているrequire()を探す。 ソースコー…

ChromeのHeadlessモードを使ってみる。

Headless Chromeとは chrome 59から、Headlessブラウザとしてchromeを使うことができるようになりました。 https://www.chromestatus.com/features/5678767817097216 2017年5月3日現在では chrome beta版でchrome 59、chrome canary版でchrome 60を利用する…

オライリー Docker 第3章までの読書メモ

オライリーのDocker本を買って読み始めました。 第3章までメモをとりつつ読み進めたので、箇条書きですがメモを公開します。 Docker作者: Adrian Mouat,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2016/08/17メディア: 単行本(ソフト…

CentOS node.js 6.x系最新版を ansibleでインストールする

CentOS でnode.js 6.x系のインストール方法 CentOSサーバにて、node.js6.x系最新版をインストールする際、 公式のドキュメントにインストール方がまとまっています。 パッケージマネージャを利用した Node.js のインストール | Node.js このドキュメントの記…

Hive posexplode関数を使った配列操作について (配列のインデックスを保持したまま処理を行う方法)

Hiveをつかってクエリを書く際に、配列データのクエリでの操作についてハマったのでメモ。 複数の配列データを持ったテーブルの操作 ユーザ毎に複数のアイテムIDとアイテム名をもたせた配列を それぞれitem_ids, item_namesとして、 以下のような構造のuser_…

ansible commandとshellモジュールの違い

ansibleで使って対象ノードで特定のコマンドを実行する際、 デフォルトで用意されているcommandモジュールとshellモジュールを使うことができます。 環境変数や、パイプを使ったコマンドを実行させる場合 この2つは挙動が異なるのでまとめてみました。 comma…

iostatでのディスクI/Oの指標を見る

iostatとは 「I/O statics」の略称 iostatコマンドを使って、ディスク毎のI/O統計を集計して ディスクI/Oの使用率・飽和度を示す指標をみることができます。 利用シーンとしては、主にディスクI/O関連の調査を行う場合に使われます。 主なオプション iostat…

Ansible でjenkins用サーバをセットアップする

macOSのPCから特定のサーバに対してansibleをつかってパッケージをインストールする方法を解説します。 ここでは、特定のサーバに対してjenkinsとsvnをインストールし、起動させるためにansible playbookを書いていきます。 ansibleのインストール macでのan…

Serverspec でサーバの状態をテストする

chefやansibleを使ってサーバの環境構築が主流になってきていて、業務や個人で使っている人も多いと思います。 サーバ構築した後に、そのサーバの状態が正しく設定されているかを確認するとき、 手動でサーバにはいってプロセスの状態を見たりする事もできま…

CentOS yum update で特定のパッケージだけアップデートさせないようにする

yum のパッケージ更新をするさい、 yum update コマンドを実行すると、すべてのパッケージとそれに依存するパッケージを更新します。 手動もしくはyum_cronによる定時実行で、これを実行すると、アップデートさせたくないパッケージも更新されてしまいます。…

node.js Promiseを使った非同期処理

node.jsの非同期処理を書く際に便利なPromiseについて紹介します。 主にnode.js 4.x系以降でデフォルト利用可能な機能になります。 Promiseとは 非同期処理を抽象化したオブジェクトで、非同期処理に関する統一的なインターフェースを提供します。 これによ…

unixファイルシステムについて (詳解linuxカーネル第1章5節)

積読していた詳解linuxカーネルをまた読み進め始めました。 プロセススケジューラやらファイルシステムなどについて非常に詳しく書かれていて面白いです。 今回は第1章5節 ファイルについての項目を読んで整理してみました。 詳解 Linuxカーネル 第3版作者: …

Merged to node-csvtojson

OSS

Merged. github.com github.com

Streams for everyone

medium.com あとで読む

初 OSS contribution

github.com nodeのnode-csvtojson パッケージへのPRマージされた なにげに初OSS contirubutionだったので記念にメモ

詳解システムパフォーマンス第6章 CPUアーキテクチャのまとめ

詳解 システム・パフォーマンス作者: Brendan Gregg,西脇靖紘,長尾高弘出版社/メーカー: オライリージャパン発売日: 2017/02/22メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 最近発売された「詳解システムパフォーマンス」を買って読…

Goのスライスについて

Goのスライスについて Go Slices: usage and internals - The Go Blog Go言語において固定長のサイズの配列とは別に、要素の追加に応じて自由にサイズを拡張できるスライスという型があります。 スライスのデータ構造 スライスのデータ構造としては、ソース…

Go deferについて

Goには、deferステートメントというものがあり、deferへ渡した関数実行を、その呼び出し元の関数の終了時(return)まで遅延させることができます。 package main import "fmt" func main() { // main関数の最後に実行される defer fmt.Println("world.") fmt.…

Go 変数宣言についてのまとめ

仕事で Goを使う機会があったので、基本から勉強していて、変数宣言について気になった点についてメモがてらまとめます。 Golangにおける変数宣言において、 varをつかって変数宣言をするのが一般的 package main import ( "fmt" ) func main() { // int型で…

mongod replicaSet セカンダリノードを起動後に[RS102 too stale to catch up]が出たときの対処法

mongoでレプリカセットを組んでいて、たまに障害でセカンダリノードのサーバなどが死んで、 セカンダリノードのmongodプロセスを起動した後に、プライマリのデータをsyncできずに下記のエラーが出る場合があります [rsBackgroundSync] replSet error RS102 t…

ソフトマックス関数についてのまとめ

前回の記事でニューラルネットワークの出力に対する活性化関数にシグモイド関数を使うことを紹介しました。 今回では、分類問題をニューラルネットワークをつかって解く際に、活性化関数としてよく使われるソフトマックス関数についてまとめます。 ソフトマ…

php mysql でコネクションプールを貼る

phpからmysqlを使う際に、拡張モジュールであるmysqliを使って mysqlサーバとの接続、クエリ実行を行う場合 コネクションプールを貼る事ができます。 公式ドキュメントによると、phpでのコネクションプールはphp5.3から対応されています。 PHP: mysqli 拡張…

Node.js clusterモジュールについて

シングルスレッドで動作するNode.jsにおいて、マルチコアCPUを持っているマシンの能力を最大限引き出すために、 複数のワーカープロセスを起動して処理を分散させたいといったニーズがあると思います。 そのときに重要なclusterモジュールについて、いつも業…

シェルソートについて

シェルソートは前回紹介した挿入ソートの改良版アルゴリズムです。 挿入ソートは一般的に、配列がほとんどソートされた状態で効率的に機能するもので、それ以外の場合では大きくパフォーマンスが落ちるのですが シェルソートではその欠点を補う仕組みになっ…

挿入ソートについて

先月、Javascript advent calendarで、v8の配列ソートアルゴリズムにおいて、 配列の要素数に応じて挿入ソートとクイックソートを使い分けているという記事を書きました。 v8における配列ソートについて - kakts-log 今回は、挿入ソートについてまとめてみた…

パーセプトロンとニューラルネットワークの違い

正月休みを利用して Deep Learningに関して勉強をしています。 以前、パターン認識系の本を読んでいたのですが、実装をせずに理論だけ学んでいて、いまいち自分の中で理解が進まず挫折していました。 下記に紹介する「ゼロから作るDeep Learning ――Pythonで…

C socket accept時に accept: Socket operation on non-socket が出るときの対処法

最近、tcpソケットまわりの知識を身につけたいとおもい、 ネットワークプログラミングに関する技術書を購入して勉強をはじめました。 Linuxネットワークプログラミングバイブル作者: 小俣光之,種田元樹出版社/メーカー: 秀和システム発売日: 2014/10/07メデ…

node.jsで統計処理をするには simple-statisticsが便利

データ解析して統計処理を行う際にはRやpythonがライブラリもそろっていて便利ですが、node.jsでも簡単に統計処理を行いたい場合は、simple-statisticsというnpmモジュールが非常に便利です。 github.com 数値データを配列で持たせて、平均値や中央値、分散…

mac USキーボードでの英字入力がおかしいときの対処法

macで USキーボード配列を使っている際に、ダブルクオーテーション「"」を推した直後にaを打つと「à」になったり、 スペースを押すと勝手に「"」がもう一つ挿入されたり挙動がおかしいときがあります。 その場合は、macのキーボードの英語設定がおかしいこと…

Makefileでmake時に 「*** missing separator. Stop.」 と出たときの対処法

c言語で書いたプログラムをコンパイルする際にMakefileにコンパイル処理をまとめて行くと便利です 。 たまにMakefileをつかってmakeすると以下のエラーが出る時があります。 Makefile:8: *** missing separator. Stop. この場合は、下記の最後の行の先頭でス…

v8における配列ソートについて

この記事はJavaScript Advent Calendar 2016 - Qiitaのの18日目の投稿です。 私は業務やプライベートで、node.jsを使って開発をしています。 勉強のために、時間のあるときにv8のソースコードを読んでいて内部の実装について調べています。 先日、配列のソー…

Google apps script のLock制御について

この投稿はGoogle Apps Script Advent Calendar 2016の17日の投稿です。 Google apps scriptとは developers.google.com Googleスプレッドシートや、ドキュメントなど、Google関連のサービスにおいてGoogle apps script(以下GAS)を使ってシートの編集、 web …

nginxの利点

個人環境でnginxを使うようになったので、nginxを使う上での利点について軽く整理する。 nginxの主な用途 Webサーバ Apache HTTPとよく比較される 静的コンテンツサーバ 画像・htmlなどの静的コンテンツをキャッシュする リバースプロキシ リクエストを終端…

markdownで表を作りたいときは markdown tables ganeratorが便利

ブログの記事や仕事でよくmarkdownを使いますが、表をmarkdownで書くのが非常にきついと感じています。 たとえば C D A 0 1 B 1 1 ↑こんな感じの表を書く際に markdownでは以下のように書く必要があり、非常に厄介です。 | | C | D | |---|----|----| | A …

Amazon Dash Button と slackを連携させる

Amazon Dash Buttonとは 既にアメリカで発売されていたamazon dash buttonが日本でもリリースされました。 www.amazon.co.jp 初期設定を済ませた後、ボタンを押すだけで特定の商品を購入できるものです。 ボタン自体は500円で購入でき、注文時に500円が割り…

Amazon Lightsail でインスタンスを作る

Amazon Lightsail Amazon re:Invent で発表され、話題になっているサービスでamazonがvpsサービスを開始しました。 www.youtube.com Amazon Lightsail – AWSの力、VPSの簡単さ | Amazon Web Services ブログ インスタンスを立ち上げるのは非常に楽で、 イン…

Microservices - a definition of this new architectural term

Microservices - a definition of this new architectural term martinfowler.com 今更だけど、martin fowler のmicroservicesに関する記事を読んだ microservicesは既存のモノリシックなサービスと違って、機能ごとに複数のコンポーネントに分けて運用する…

Next lexicographical permutation algorithm

Next lexicographical permutation algorithm 文字列 辞書昇順で次の文字列を見つける問題 アルゴリズムの問題で特定の文字列に対して辞書的に次の順番の文字を見つける問題を解いていて 上記のページの考え方が非常に参考になった 辞書降順の場合も応用すれ…

Memory Usage in CockroachDB

www.cockroachlabs.com 今年リリースされた CockroachDBのメモリ管理についての記事 どうやらRDBMSのようにクエリかけるしトランザクション機能もあるのと、 NoSQLのようにスケーラブルで高可用性があるDBとのこと あまりネットに情報がないっぽいので今度じ…

Docker Container Anti Patterns

blog.arungupta.me Dockerあまりいじる機会がないので、休日にいじりつつanti patternの記事もじっくり読んで学ぼうと思う

Chrome Experiments for Virtual Reality

vr.chromeexperiments.com ChromeブラウザがVR対応しているらしい 現状CardBoardを使えば上記のページのサンプルがみれるらしい。 コード観た感じだと、レンダリングにThree.jsつかっているっぽい 以外と導入は楽かも

The New Context Conference: Social Impact of Blockchain

www.youtube.com ブロックチェーンのカンファレンス動画 ざっくり見てみたけど面白いので時間あるときにじっくり見る

slackをrssリーダーにする

rssリーダーとしてのslack qiita.com こちらの記事を読んでみた。 今更ながら、slackチャンネルにrssを登録できることを知らなかった。 個人用にメモなどで使っているslackアカウントで気になるブログのrss登録してrssリーダーにするとかなり良さそう slack …

GraphQLを使ってみた

最近話題になっているGraphQLについて RESTful web api界隈で話題になっている、GraphQLが結構気になっています。 先日のnode学園#23でもGraphQLの話が上がっていて、RESTfulって運用上結構辛いところもあるよね という文脈からGraphQLを推している 発表もあ…

macで npm install時にEACCESSエラーが出る

macでnpm install 時にEACCESSエラーが出る macでnodeやnpmバージョンアップした後、 sudo npm install などでroot権限でインストールしたあとにnpmで以下のエラーが出るようになってしまった npm ERR! Darwin 13.4.0 npm ERR! argv "/usr/local/bin/node" "…

npm v4 v5について

npm v4 v5 について 先日のnode学園でnpm の開発者Forrest Norvellが登壇してnpmのv4 v5について語っていました。 nodejs.connpass.com 発表のスクリプトは以下にまとまっています。 Forrest Norvell曰く、v4はそんなに大きな変更点はなく、v5でdepricatedだ…

yarnについて

yarnとはyarnhttps://yarnpkg.com/ https://code.facebook.com/posts/1840075619545360yarnとは、Facebookのエンジニアを中心に開発された、npmクライアントのこと。npm互換のため、既存のプロジェクトにおいても互換性を気にせずに使うことができます。イン…