珠玉のプログラミング 第一部の問題をやってみて
珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造
- 作者: ジョン・ベントリー,小林健一郎
- 出版社/メーカー: 丸善出版
- 発売日: 2014/02/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
以下、チラ裏レベルの感想などなど。。。
- コラム1
- 数値をビット列にした場合の扱いやすさが印象的だった。golangで実装したので、ビット列はbyteのスライスにしたが。
- 「ビット列は『限られた範囲内にあり、密で、重複がなく、付随する情報も無いようなデータのセット』を表すのに有効」。
- 回答とはだいぶ異なる実装となった。
- コラム2
- 「名前の印(シグナチャー)」と二分探索木の有効性が良く分かった。
- 生データからプログラム内で扱い易い形の「シグナチャー」を生成して、シグナチャーを参照して検索を行う、という流れは、一つのパターンとして覚えておきたい。(今までも無意識で行っていたけど・・・)
- コラム3
- データ構造の重要性について説明している。この事については、常々意識している。
- コラム4
- コラム5
- この辺りの問題も、今の時代だとユニットテストを導入することで解決を図るかな・・・、と。
解いたソースはこちらです。
GitHub - SrcHndWng/go-learning-programming-pearls at part-1.0.0
SourceTreeで別アカウントのリポジトリにPushする方法
タイトルにあるように、SourceTreeで普段使っているのとは別のアカウントのGitにpushする方法についてです。
なお、SourceTreeのMac版での話となります。
- 右上の「設定」を押下し、「リモート」タブを選択する。
- 「追加」を押下し、「リモートの名前」「URL/パス」を入力する。「URL/パス」には「https://ユーザ名@github.com/・・・」となるようにする。ユーザ名をURLに入れると、下の「ユーザ名」欄に自動的に表示される。
- 「高度な設定」タブを選択する。
- 「グローバルユーザー設定を使う」のチェックボックスを外し、「名前」「メールアドレス」を入れる。「メールアドレス」を入れないと、使用しているマシンのユーザ名がコミット時に使用されてしまうようです。
以上です。
Visual Studio CodeでGo言語(golang)のユニットテストをデバッグする
タイトルにあるように、Visual Studio CodeでGolangのユニットテストを実行してデバッグする方法についてです。
とは言っても、ほとんどデバッグ時の設定手順と同じですが・・・。
デバッグ時の設定手順
- メニューバーの「Debug」より「Open Configurations」か「Add Configurations」を選ぶ。
- launch.jsonが開く。
- 「mode」の値を「test」に変更して保存する。
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "test",
- F5を押し、デバッグを実行する。
以上です。
Visual Studio CodeでGo言語(golang)のユニットテストを実行する
例によって忘れないための備忘録です。
Visual Studio CodeにGo with Visual Studio Codeが入っていることが前提です。
Visual Studio CodeでGo言語(golang)のデバッグをするときの設定
タイトルの件について、いつも忘れるからメモ。
Visual Studio Codeのバージョンによって違うかも。
A Tour of Goをやってみた(1)
前から気になっていたA Tour of Goをやり始めました。
初日は「welcome」から「Flow control statements: for, if, else, switch and defer」をやってたのだが、その感想を月並みだが箇条書きで書いてみます。
- 電車の中でiPadでやっていたので、ブラウザ上でコードを記述して実行できること。
- 今の所、構文が分かりやすい。ループがforのみである事などに、構文を限定しようとする思想を感じる。
- かなり分かりやすい英文で書かれているように思える。(有名な技術系のドキュメントは大抵そうだけど・・・)
昨今(いや、昔からか・・・?)、プログラマになるには英文が〜・・・、と言われるけど
- 英文の分かりやすさ
- 開発環境構築しなくても試せる
- 構文がry
などの理由から、未経験者にプログラムとはこんなものだよー、と体験してもらうのに
ちょっとイイかもなどと思いました。
nodejs(Lambda用)の自分流の開発環境構築〜実行まで
私がAWS Lambdaで実行するnode.jsを開発する際の、実行環境・開発ツールのセットアップ〜実行までの手順のメモ。
改善点があればアップデートしていくつもり。
プロジェクト作成
参考サイト
- ハンドラをローカルでキックするソース
作成したサンプルソース
- main.js(メイン処理)
exports.handler = (event, context, callback) => { // TODO implement console.log("main called!"); callback(null, "Hello from Lambda"); };
-
- driver.js(main.jsをローカル実行時に呼ぶドライバー)
var event = { "Records": [ { "awsRegion": "ap-northeast-1", "sequenceNumber": "xxxxxx", "partitionKey": "xxxxxx", "eventSource": "aws:s3", "data": "xxxxxx" } ] }; var context = { invokeid: "invokeid", done: function(err, message){ console.log(message); return; } }; var lambda = require("./main"); lambda.handler(event, context, function(error, result){ console.log("main callbacked!"); console.log(error); console.log(result); });
実行環境構築手順
ESLint構築手順
- $ npm install eslint
- プロジェクトのローカルにESLintをインストール。
- $ ./node_modules/.bin/eslint -v
- $ ./node_modules/.bin/eslint —init
- 案内に従いESLintの設定を作る。
? How would you like to configure ESLint? Answer questions about your style ? Are you using ECMAScript 6 features? Yes ? Are you using ES6 modules? No ? Where will your code run? Node ? Do you use JSX? No ? What style of indentation do you use? Spaces ? What quotes do you use for strings? Double ? What line endings do you use? Unix ? Do you require semicolons? Yes ? What format do you want your config file to be in? YAML
- esllintにconsole.logを許可。
- .eslintrc.ymlに以下を追加。
- 「no-console: 0」