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

kakts-log

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

Merged to node-csvtojson

OSS

Merged. 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互換のため、既存のプロジェクトにおいても互換性を気にせずに使うことができます。イン…

herokuインスタンスのタイムゾーンを変更する方法

herokuでインスタンスを立ち上げた場合、インスタンス上で使われているタイムゾーンは、標準時(UTC)がデフォルトで設定されているため、日本時間と比べてタイムゾーンが9時間分ずれている状態となっています。 このタイムゾーンの設定を変更する方法は以下…

hubot-heroku-keepaliveの導入

前回のエントリで、hubotをherokuの無料dynoへデプロイさせ、slackでのbotの運用を始める事ができたのですが、しばらくほっておくとherokuインスタンスが停止している状態になっていました。調べたところ、herokuの無料dynoの仕様が以前と変わっており、以下…

slackとhubotの連携

最近チャットツールとしてslackを使い始めました。業務以外にプライベートでも使っていて、自分のチャンネル上でbotをつかって外部サービスと連携できるようにしたかったので、hubotを導入しました。今回はhubot と herokuを利用したbotの作成方法を解説しま…

lodash forEach

lodash.js forEachでforループのcontinue breakを行う方法配列やオブジェクトの要素をループさせたい時、lodash.jsのforEach(eachでもあり)をつかって処理を書いていて、一般的なfor文で使われるようなループの終了、lodashのドキュメント(https://lodash.c…

schemeでのnilの扱い方

sicpを空き時間をみつけて読み進めていて、ようやく2章目に突入しています。nilもしくはnullを使った際に出るエラーについて気になったのでメモ。scheme処理系(主にgauche)においてコーディングする際、nilを使うと実行時に以下のエラーが出てしまう。;Unbo…

配列 foreachによる文字列連結について

"-"区切りの文字列をUpperCamelCaseにする (js)javascriptにおいて、 "test-upper-camel-case"のように、 ハイフンで区切られている文字列を変形してupperCamelCaseにしようとするとき、以下のような形で、split()をつかって "-"区切りのものを配列にしてか…

OSのプロセス、forkなど

海外ではapueと呼ばれていて、unixプログラミングに関して有名な詳解unixプログラミング第3版をちょくちょく読んでいます。8000円以上してめっちゃ高額ですがかなり勉強になって良い本だと思います。プロセス周りの章を読んでいて、すごく勉強になって…

redisをdaemonizeする

前回エントリより、ec2インスタンス上でredisのインストールが完了して、redis-serverコマンドでredisを立ち上げることが出来ました。redis-serverコマンドで立ち上げるのでなく、常に裏っかわでredisが起動した状態にして、別に作成したwebサーバ用のインス…

amazon ec2インスタンスにおけるredisのmakeが出来ない問題

ec2インスタンスをつくってredis(2.8.17 stable)の環境構築をする際にmakeでエラーが出たのでその対処法をメモ状況プライベートサブネット上にredis用のインスタンスを立ち上げ、NATを介してwgetでredisのソースをダウンロード。その後/usr/local/srcにて解…

voidポインタの特徴

cにおけるvoidポインタは、汎用ポインタと呼ばれ、どのようなデータ型でも指すことが出来る。void *pv;こんな感じで他のintやcharポインタと同様に宣言できる。voidポインタの特徴としては、大きく3つある①charポインタと同じ表現形式とメモリ上の並びを持…

golang Packageまわりの整理

golangいじりはじめました。早速チュートリアルを一通りやっていて、パッケージのインポートについてちゃんと整理したかったので以下のページを軽く和訳しつつまとめます。http://www.golang-book.com/11/index.htm以下和訳PackagesGoは良質なソフトウェアエ…

golangはじめた

golang気になっていたのでチュートリアルみていろいろいじってみた。https://gobyexample.com

/etc/init.d/hoge startとservice hoge startについて

/etc/init.d/hoge start と service hoge start は何が違う?http://blog.cles.jp/item/6767すげー気になってたやつです。

mac OS Xでのopencvのインストール

mac marvericksにてopencv環境を構築したかったのでメモ1: macportsインストールopencvおよび、opencvを使うにあたって必要となるpkgconfig zlibをインストールするのにmacportsを使います。 homebrew使うやり方もあると思うのですが、macportsでのインスト…

atomエディター 表示がうまく反映されない問題

atomエディターでファイルを複数paneで表示させていると、たまにキーボード入力は受け付けるんですが、エディターにその変更が描画されていない問題がよく発生しますそのときにコンソールみるとUncaught RangeError: Maximum call stack size exceeded とで…