真面目に、強く、上品に

たのしくげんきに!

Java Memory Managementを読んだ

概要 How Garbage Collection Works - Java Enterprise Performance | Dynatrace を読んだのでまとめました。 Java Memory Management How Garbage Collection Really Works ガベージコレクションという言葉から、ゴミ集めをする実装だと思いがちだが実はそ…

良い人生とは何か

はじめに 出来るだけポエムを書かないように、普段は不必要な情報を削ぎ落とした文章を書くことを心がけています。 しかし、たまにはポエムっぽいことが書きたくなるもので、今回はちょっとポエムっぽいことを書いてみます。 テーマは「良い人生とは何か」で…

「プログラマのためのDocker教科書」を読んだ

概要 プログラマのためのDocker教科書」を読んだため、章毎の感想とまとめについて記述する。 対象読者 導入編でインフラ・ミドルウェアの基礎的な知識について解説があるため、非プラグラマでも基本的なUNIXコマンドが使用できるならば読み進めていける。 …

「自衛隊メンタル教官が教える心の疲れを取る技術」を読んだ

概要 「自衛隊メンタル教官が教える心の疲れを取る技術」を読んだため、章ごとの感想とまとめについて記述する。 ムリを無くす ムリの段階には三段階あり、段階が進む毎に心身への負担は大きくなり回復しにくくなる。 そのため出来るだけ初期段階で休息を取…

Vue.js雑感

概要 Vue.jsを使用した雑感について記述する Vue.js雑感 日本語の公式ドキュメントがちゃんと整備されており、宣言的レンダリング機能により、APIを呼び出して取得した値を定義しデータにバインドするだけで、おおかたの機能が実現できる。 jQUeryベースだと…

気分の落ち込みに対する処方箋

概要 気分の落ち込みが発生したときの対処方法について記述する。 気分の落ち込みはこころの風邪 よく言われることであるが、「落ち込んでいる」という事象が永劫続くということは少ない。 誰しもがかかりいつかは治るという意味で言うと、風邪に近い。 体質…

2017年度の目標設定

概要 難易度が高いかつ2017年度中に実現可能性がある目標を設定して記述する。 2017年度の目標 2017年度の目標は 「github.com/ymizushi でstar数100以上のプロダクトを作る」に設定した。 star数を100以上取るための戦略 広報 いくら良いプロダクトを作った…

技術ドキュメントを読む際に意識していること

概要 技術ドキュメントを読む際に、如何に要点を素早く抑えてインプットをするかで仕事の効率は大きく変わる。 ドキュメントの読み方については、巷に読書術の書籍が多数溢れていることから分かる通り、絶対的な正解は無く、人によって最適な読み方は変わる…

「仕事のミスが絶対なくなる頭の使い方」を読んだ

概要 「仕事のミスが絶対なくなる頭の使い方」を読んだため、その要点について記述する 要点 仕事のミスには以下の4つがある メモリーミス アテンションミス コミュニケーションミス ジャッジメントミス メモリーミスの基本対策 「記憶はすぐ忘れる」という…

「起業と会社経営の実務がよくわかる本」を読んだ

概要 「ダンゼン得する 知りたいことがパッとわかる 起業と会社経営の実務がよくわかる本」を読んだため、感想について記述する 感想 会社は当然ながら、事業活動により利益を出すことを目的に組織されている。 そのため、会社経営の実務はお金に関すること…

信用について

概要 ある事象を信用するか信用しないかという選択を迫られた時の判断基準について考える。 判断基準 前提として、間違ったことを言ったことがない人間は一人としていないということ。 間違ったことを言うパターンとしては以下の2種類である。 意図して間違…

メンタルの強さはレイヤー毎に違う

概要 メンタルの強さとはどういうことかを考える過程において、 対象者が置かれている状況のレイヤーに応じてメンタルの強さが変わるのではないかという仮説が出てきたた。 ここではその仮説の整理と検証を行う。 メンタルの強さとは 一言にメンタルの強さと…

「20代で身につけたい 営業の基本」を読んだ

概要 営業もやることになり、とりあえず基本となる営業テクニックを身に着けたいと思ったため、Aamzonで比較的評価が高めだった本書を読むことにした。 ここではその本の要点と感想をまとめる。 要点 商品を売るのでなく、経験を売る 営業のプロセスを「見え…

「ゼロ秒思考」を読んだ

概要 友人から問題の整理のために実践することをオススメされたため読んだ。 ここではそこで得られた知識、感想、まとめについて記載する ゼロ秒思考とは ゼロ秒思考とはかいつまんで言うと、1分1ページで毎日10ページメモを書くことで得られる迅速でか…

「Yコンビネーター シリコンバレー最強のスタートアップ養成スクール 」を読んだ

概要 「Yコンビネーター シリコンバレー最強のスタートアップ養成スクール 」において、スタートアップを運用していく上で重要と思った点、印象に残った点についてまとめる。 失敗する条件 サービス開発において必要でない、または重要度が低いことに時間を…

機械学習をツールとして使えるようになるまで

概要 機械学習をツールとして使えるようになるまでに学習すれば良いことをまとめる。 何を学習すればよいか 機械学習フレームワークはPythonで書かれているものが多いので、Pythonをある程度読めると学習が早い。 機械学習フレームワークはWebフレームワーク…

24時間365日働くためには

概要 24時間365日働くための方法について考察する。 24時間365日働くとは 睡眠中・食事中・入浴中・移動中なども含めて常に仕事のことを考える、または仕事の実作業を行うこと。 睡眠中に仕事のことを考えるというのは想像が難しいが、睡眠中も脳は活動して…

「マンガでわかるプロジェクトマネジメント」を読んだ

概要 「マンガでわかるプロジェクトマネジメント」を読んだため、要点と感想を記す なぜ読んだか ITに限らない、より一般的な意味でのプロジェクトマネージメントに関する本を読んだことがなかったため、一度汎用的に使えるプロジェクトマネージメント手法に…

人にサービスを使ってもらうために意識すること

概要 人にサービスを使ってもらうために意識することについて考察する。 新しいサービスを使う理由について 現状に満足していたらわざわざ大小のコストをかけて新しいサービスを使おうとは思わないので、 新しいサービスを作るということは現状に満足してい…

「スマートフォンアプリマーケティング現場の教科書 リフロー版」を読んだ

概要 「スマートフォンアプリマーケティング現場の教科書 リフロー版」を読んだのでまとめと感想をここに記します。 何が書かれているか スマートフォンアプリに関わる企画、ビジネス、プロモーション、運用、マーケティング、分析について、企画からリリー…

AppleWatchの音声入力機能を使った処理系を作る

はじめに これは 第2のドワンゴ Advent Calendar 2016 - Qiita 18日目のために書かれた記事です。 なぜAppleWatchの音声入力機能を使った処理系を作るのか AppleWatchの文字入力はキーボードやタッチUIを利用することが出来ないため、文字入力方法としては以…

特定の相手のAmazonアフィリエイトリンクを生成する

何故するか 皆さんはAmazonアフィリエイトIDを持っているでしょうか。 Amazonアフィリエイトは御存知の通り、特定のIDを含んだURLからAmazonの商品を購入することで、IDの管理者にお金が入るサービスです。 何かWeb上の記事を経由してAmazonで商品を購入した…

プログラミングはスキマ時間にこそやるべき

概要 プログラミングはゾーンに入るまでの時間が長いため、スキマ時間にプログラミングをやることに対して躊躇いが発生してしまうことがあるが、 以下の理由からむしろスキマ時間にこそプログラミングをやるべきなのではないか。 プログラミングをスキマ時間…

「なぜ、あなたの仕事を終わらないのか」を読んだ

概要 UIEvolutionの創設者が実践してきた「時間術」が本書では披露されている。 著者が実績のあるエンジニアであるため、エンジニア視点から実践してきた「時間術」は説得力がある。 要点 期限のあるタスクはスタートから期限までにおける初めの2割の時間で…

Flask Blueprint における template_folderパス解決の罠

Flask には Blueprintというアプリケーションをモジュール化出来る機能が備わっていますが、このBlueprintのtemplate_folderパス解決にはちょっとした罠があります。 Flaskで以下のようなパッケージ構成を組んだと仮定します。 run.py admin/ __init__.py vi…

数万円の炊飯器が1500円で買った炊飯土鍋に負けた

最近にわかに注目を集めている炊飯土鍋。 私も同僚から布教されて最近炊飯土鍋を使い始めたのですが、すっかり虜になってしまいました。 「炊飯土鍋を使うと炊飯器が不要になる」、布教者は口々にそう言います。 しかし元々炊飯は鍋でしていたしそれを淘汰す…

ニコニコ動画にartihata動画を投稿しました

株式会社ドワンゴの運営するニコニコ動画にEmoji組版編集サービス artihata の紹介動画をアップしました。 artihata では言語はClojureとClojureのWebアプリケーションフレームワークである Luminus を採用しています。 ほとんどの実装はJavaScriptで記述さ…

Clojure日本語書籍まとめ[2015年6月時点]

Clojureの日本語書籍も数冊出るぐらいになりましたので、ここで一つ2015年6月時点でのClojure日本語書籍についてまとめてみました。 プログラミングClojure 第2版 Clojureの日本語書籍といえばまずコレ。 ハワイ在住Lispハッカーとして有名な川合史朗さん訳…

ClojureのAgentで生成されるスレッドプールのサイズを変更する

ClojureのAgentの実装では、2 + Runtime.getRuntime().availableProcessors()で得られるサイズでスレッドプールを生成するが、このスレッドプールのサイズはset-agent-send-executor!に任意のExecutorServiceを渡して書き換えることが出来る。 set-agent-sen…

Flocking - Web Audio APIを使用した音響合成エンジン(その1)

FlockingとはJavascriptで実装されたWeb上で動く音響合成エンジンです。 日本語での紹介記事が現時点で皆無なので、紹介したいと思います。 Web Audio APIをラップする形で実装されており、 ブラウザが対応さえしていれば、Flashなどのプラグイン無しでマル…

Homebrewでantがインストール出来ない問題に対処

HomebrewでAntをインストールしようとbrew install antを実行したところ、 以下の様なメッセージが表示された。 ==> Downloading http://www.apache.org/dyn/closer.cgi?path=ant/binaries/apache-ant-1.9.2-bin.tar.gz ==> Best Mirror http://ftp.tsukuba.…

nicosearch をPyPIで公開

ニコニコ検索APIをPythonから使用する簡単なラッパーライブラリを書いたので、試しにPyPIに公開してみました。 https://pypi.python.org/pypi/nicosearch https://github.com/ymizushi/nicosearch インストール方法 pip install nicosearch 使用方法 from ni…

Clojureのevalとmacroのパフォーマンスを比べる

Clojureには他の動的型言語と同様に文字列*1をプログラムとして評価出来るevalという関数があります。 Clojureにはマクロがありますし他の動的型言語と同様にevalは遅いだろうという推測は容易に出来ますので、evalを使わないといけない局面というのはそう多…

Racketのdot記法を使う

Racketのdot記法は、基本的にリストの最後の要素の前に付きますが、 (1 . < . 2)と書くと、(< 1 2)と等価に評価される*1同様にみなされるようです。 dot記法がペアを生成する(cons x y)の省略記法であることを考えると、 この記法は例外的に感じられます。 …

Lispは読みにくい以上に書きにくいと感じている人が多い説

Lispが流行らない理由として「括弧が多い」ということはよく挙げられる要素だと思います。 それでは何故「括弧が多い」ことが敬遠されるかというと、以下の2つが考えられます。 読みにくい 書きにくい そのビジュアル面から、「括弧が多い」ことで「読みに…

RacketのREPLをマシにする

Racket のREPLは素の状態では履歴もemacs標準キーバインドも使えないため、使い勝手が非常に悪いです。 とりあえず XREPL(eXtended REPL) を設定しましょう。 設定方法 $ echo "(require xrepl)" >> ~/.racketrc POSIX互換なら $ racket でREPLが起動する際…

minosound 1.1 をリリース

minosound 1.1 をリリースしました。 バックエンドの部分はClojureで開発していて結構出来ているのですが、 はもうちょっと作りこみたいなーと思ったので、 とりあえずクライアントの部分だけデザイン、UIを変更したり、 WebVIEWでの更新情報告知機能などを…

CloudBeesでのClojureプロジェクトのデプロイ方法

Clojureでよく使われているPaasとしてはHerokuが有名だと思いますが、最近はCloudbeesもよく使われているようなので、私もCloudbeesにプロジェクトをデプロイしてみました。 Cloudbeesはクラウド環境を操作するためのleiningenプラグインが用意されており、…

IDEとVimと生産性

単純に生産性だけを考えると、静的型言語なら確実にIDEの方が生産性が高いように思うし、動的型言語でも最近だとIDEの方に軍配があがることが多いかもしれない。 ただ、実はプログラマにとって生産性はあんまり重要ではなくて、 それよりもどれだけモチベー…

迷路自動生成

先日リリースしたアプリで迷路自動生成を実装してみたので、 まとめてみます。 迷路自動生成の仕様としては、 2次元平面の対角をスタートとゴールとする スタートは必ず一つ ゴールは必ずしも、一本の道で終わってなくても良い 以上の3点となります。 これ…

Homebrewでインストールしたleiningen1.xからleiningen2.xへのUpgrade

2013/04/04現在、Homebrewでインストールされる leiningenが1.x系列なので2.x系列にUpgradeしてみました。 ほぼleiningen/wiki/Upgradingの手順通りです。 直接Cellarいじくっていいのかよくわかりませんので、こうした方が良いよというのがあれば指摘してい…

zshでgit checkoutを叩いた時のリモート補完を無効

最近bashからzshに移行したが、 zshではデフォルトでリモート補完が有効になっているので、 git checkout でブランチ名補完を行おうとした際に、 リモートのブランチ名を探しに行ってしまう。 そのため補完が完了するまで入力を受け付けないという事が頻発す…

Vimでカレント列から行末までをヤンク

Vimではノーマルモードで Dでカレント列から行末までを削除してヤンク、 Cでカレント列から行末までを削除してヤンクして挿入モード に入るのに、 カレント列から行末までをヤンクするコマンドが y$ でしか出来ないので、 nnoremap Y y$ しておけばいいと思…

Pythonのitems()とiteritems()の違い

Python2.xの辞書オブジェクトに対する組み込みメソッド、 items()はkeyとvalueをtupleに格納したlistを生成して返すのに対して、 iteritems()はイテレータを返す。 items()はいちいちリストを生成する分、オーバーヘッドがかかるので、 基本的にiteritemsを…

git rebase

git

git rebaseするときの注意点 git rebaseはbranchを切ってからのcommitを全て書き換えてしまう(ハッシュも違うものになる)ので、リモートブランチにpushしてから、git rebaseを行うと、そのままではpush出来ず、 間違えてpull してしまうと、同じ内容のコミ…