FM牛鍵屋本舗

プログラマ(弱)の日々精進系ブログ

【再読】プログラマの数学 第2版 第2章

プログラマの数学 第2版作者:結城 浩発売日: 2018/02/08メディア: Kindle版 「プログラマ脳を鍛える数学パズル」に 手も足もでないので勉強しなおします。 プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問作者:増井 敏克発売…

SpringBoot + H2DB

build.gradleに追記する runtimeOnly 'com.h2database:h2' implementation 'org.springframework.boot:spring-boot-starter-jdbc' application.propertiesに追記する # 接続先 実行するディレクトリを基準とした相対パス # Eclipseからbootしたらプロジェク…

Mac+Intellijで"Created by ${USER}"を変更するよ!!

うっかりリアルイニシャルが記載されたままGistにあげてしまったので変更方法をメモするよ。 /Applications/IntelliJ IDEA CE.app/Contents/binにidea.vmoptionsというファイルがあるので これに-Duser.name=${変えたい名前}を追記してIntellijを再起動する…

Javaでファイルを読むよ、でもこれは覚書だよ

Java8の試験でやったはずなんですけど、 すっかり忘れてましたね。 Files.linesでStreamを返せます。 でも、何度検証してみても BufferedInputStream is = BufferedInputStream(FileInputStream(new File("/nhome/hoge.list"))); ByteArrayOutputStream os =…

Windowsでシンボリックリンクを作るよ!!

エディタはkaoriyaさんのところのvim(gvim)を使っています。 最近、grepをvimgrep(遅い)から変えようとjvgrepを入れました。 github.com 既存ソースの調査をしなければならなくなり、ふと思いました。 Eclipseでいうワーキングセットみたいなディレクトリ作…

"Web開発者のための大規模サービス技術入門"を読んだよ

"Web開発者のための大規模サービス技術入門"を読んだよ 紹介 Web**+DB Press Plusの持ちやすいサイズ。 はてなの方が書かれた書籍で、インターン研修をベースにしているようです。 インターンレベル高っ。 実際のはてなや他の大規模サービスの事例をもとに、…

# Javaで簡易テンプレートを置換するよ!!

Javaで簡易テンプレートを置換するよ!! 仕事でテンプレートのプレースホルダーっぽいのを置換することになりました。 ~テンプレートエンジン使えよ~ プレースホルダーはある特定の文字列から始まり、特定の文字列で終わります。 置換する文字列は元を辿れば…

VagrantのGetting Startを読んでみたよ!!

VagrantのGetting Startを読んでみたよ!! 諸元 なんか仮想化したいなーと思って。 序文 Vagrantは単一ワークフローで仮想マシン環境を構築・管理するツール。簡単なワークフローと自動化に注力してて、「僕の環境なら動くのに」という例のアレを過去の遺産に…

GoogleAppsScriptをローカルで編集できるclaspを試してみるよ!!

GoogleAppsScriptをローカルで編集できるclaspを試してみるよ!! https://github.com/google/clasp Develop Apps Script projects locally using clasp (Command Line Apps Script Projects). とあるように、claspを利用することで(Google)AppsScriptプロジェ…

SQLServerをコマンドラインで使うよ!!

SQLServerをコマンドラインで使うよ!! ※ 環境はWindowsです 単体テストしてて、DBダンプのエビデンスをA5M2で取得していたんですが、 SQL発行するの面倒くさい!! 貼り付けるの面倒くさい!! コマンドラインでいい感じに出来ないかなーと調べてみたら sqlcmdと…

SQLServerに存在するオブジェクトのDDLが欲しいよ!!

諸元 と、掲題の通りの要望がありました。 業務処理ではなく、運用管理のためです。 もちろん、SQLServerManagementStdioのGUI操作で簡単に出来るのですが、しばしば行われるとそれすら面倒くさいという例のパターン。(https://technet.microsoft.com/ja-jp/…

jsessionidとsastrutsのタグライブラリの罠と戦ったよ!!

外部オープンにオープンする機能を書いていて、どこからリンクを設定するかが未定だったのでとりあえずURL直叩きで動作確認を行っていました。その中で、他機能の詳細画面(こちらも公開)へ飛ばす処理があったのですが、これがまた特定条件下の場合に404エ…

結城浩さんのプログラマの数学を読了したよ!!

プログラマの数学 第2版 備忘録的に。今後はもっとちゃんと書評書きたいな。 結城さんの本は昔、デザインパターン学習時に大変お世話になりまして、 以来、難しいことを分かりやすく丁寧に説明して頂ける文章のすっかりファンとなってます。 そして今回、僕…

RakeとGemとBundlerについて微妙な理解をするよ!!

たぶん、僕が仕事で書いてるJavaにとってはMavenとかGradle、ビルドツールとしてはAntなどに当たるんでしょうが、Javaを基準に理解をしようとしてもなかなか深まらない、これら。 とりあえず現時点での認識を備忘録的に記載しておきます。 そんな情報の不正…

Javaでbooleanの排他的論理和の否定を書くよ!!

今日既存ソースを眺めてて、大したことではないのだけれど、ある箇所が目に留まりました。 簡単に言えば2つのオブジェクトが両方ともnullかまたは両方ともnullじゃない場合にエラーにする処理で、コードにすると以下のように表せます。 Object a = createSom…

Rakeではファイルすべてがまず評価されるよ!!

またまたパーフェクトRubyから。 Rakeのファイルタスクの説明でわからない部分があり、 ここ3日くらい頭を抱えたり鼻歌を歌ったりしていたんですが、 ようやく理解出来たので、記録として残しておきます。 願わくば同じ悩みを抱えている人を救えますように。…

メソッド引数ではハッシュのブレースを省略できるよ!!!

Rakeのtask定義で本当に不思議だったこと パーフェクトRubyの12章にRakeの説明が載っていて、つらつらと学んでいたんですが、ふとひっかかったことが。 task :hoge => :moge 書き方だけ見るとHashだなあ、と思ったんですが、{}がない。これは一体どういうこ…

Deferred模索中。とりあえずスペルややこしい。

今日試みたjQueryのDeferred ECMA6からPromiseが言語仕様に含まれているんだっけ…。 最近流行りはObservableなんだっけ…。 そんなことを思いつつ、今日も元気にjQueryでDeferred。いつもスペルを間違える。 普段は function hoge() { var $d = new $.Deferr…

JavaScriptのprototype

ふとjavascriptのこと考えていて、 「prototypeのこと私ちゃんと説明出来ない…」と冷や汗が出たので ちゃんと調べてみる。 ちょっと記事のレベルが低いので後日書き直します… 調べる前の知識(間違っているかもしれない) javascriptの各オブジェクトが参照で…

Go言語のTLSのHTTP実装:オレオレ証明書をコード中で登録する

Real World HTTPで GO言語でTLSの簡易HTTPサーバ、クライアントを実装しよう、というトピックがありました。 説明の通り、OpenSSLコマンドでルートCA、サーバ、クライアントの鍵と証明書を作りました。(コマンドの意味は理解できておらず…この辺りも学んでお…

アロー関数

去年末からずっと渋川よしきさんのRealWorldHTTPという本を読んでるんですが、 なかなか読了できず。。。 FetchAPIのサンプルを拝読していたら、 見慣れぬ構文が…。 // (中略) .then((response) => { return response.json(); }) // (後略) lamdaっぽい… と…

synchronizedブロックとwaitに関する仮説

JavaGoldの資格勉強してて、 「なんでsynchronizedブロックでしかwait/notify/notifyAll使えないんだろう?」 と疑問に思ったので考えてみた。 間違ってるとは思うのでツッコミ待ち。 メソッド名から考えてみる まず、Threadを一時中止するメソッドとして ja…

Facebookが自殺投稿前に検知するAIを初公開

自殺的な投稿に備えて全投稿を走査して、必要ならピンチな本人や友人にメンタルヘルス資材を送ったり、地域の初動対応者に連絡を取ってくれたりして、AIを使うことで人力よりも迅速に助力できるとか。 Facebook rolls out AI to detect suicidal posts befor…

emmet.vimでhtml5のスニペット呼び出し

vim

インストール deinを使っているので、.vimrcに call dein#add('mattn/emmet-vim') からの :call dein#install() html5のスニペット展開 insert modeでここまで打って、 html:5 そのまま<C-y>,でどーん <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> lang属性を"ja"にしたい マニュアルに書いてある通</c-y>…

Haskellことはじめのその1

漠然と、次に覚える言語は今使ってるJava(や、JavaScriptとかPerlとか)以外のパラダイムの言語にしたいなー と思っていて、ぱっと思い浮かんだのがちょっと前にやけに流行っていた関数型言語。 と、いっても関数型言語って結構あるし、どうしよう…。 Lispも…

native修飾子を使ってみる(JNI)

javaの勉強を始めた頃に 存在を知ったnative修飾子。 java.lang.Systemのソースなどなど 結構使われていたので、ちょっと学んでみました。 以下をはじめ、いろんな情報源を参考にさせてもらいました。 link そもそもnative修飾子とは link nativeのメソッド…

CODE COMPLETE 第2版 下巻(2)

雨がうっとうしい。 第27章 プログラムサイズが及ぼす影響 プロジェクトのメンバーに応じてコミュニケーションパスが乗法的に増加する。 プロジェクトの規模が大きくなるとエラーの数は劇的に上昇する。 プロジェクトの規模が小さいほうが生産性は高い。 プ…

【T-SQL】CURSORの使い方

触ってないとすぐ忘れちゃう…。 https://docs.microsoft.com/ja-jp/sql/t-sql/functions/fetch-status-transact-sql とはいえマニュアルじっくり読んでないから、 ちゃんと読みたい。 CREATE CUROR cursor_name FOR SELECT id, name FROM sample_table ; DEC…

T-SQL知らなかったメモマン

時間がないからといって API(に限らず)の設計を見切り発車で作成するのは くなかったな、と痛感した今日。 焦ってコンストラクションを行うほうが 結果としてリスクもコストも高くなる悪例でした。 ストアドファンクションでは副作用を伴う処理を行えない …

CODE COMPLETE 第2版 下巻

途中までしかまとめられてないけど 第25章 コードチューニング戦略 パフォーマンス ≠ コードチューニング というか、コードの速度向上がパフォーマンス改善の一部分でしかない。 要件、設計レベルの見直しやハードウェアの改善、コンパイラやOSコールなど 改…