Monors Note

Pythonとそれ以外いろいろ

C#でエンディアン指定して符号なし変数に変換する。

Webの通信なのでBinaryデータを扱って、通信先でデコードする場合エンディアンを指定する必要があります。 Webでは基本的にBigEndian形式で変換されたデータを使用して、通信が行われます。一方PC上の内部構造はLittleEndianが使用されています。 C#でリトル…

読みたいコード・記事

分散システム ID generator github.com Linux devconnected.com

golang のtoolの管理に関して

開発をしているとソース内では使用しないが、便利なtoolをgo getしバージョンの管理をしておきたいことがある。 例えば、golang.org/x/tools/cmd/stringerなど。 しかし、go moduleで依存関係を管理している場合、ソースないで使用されていないライブラリは…

for { select {....} }はbreakではfor文を抜けられ無い

Go

golangでtimeoutなどの処理を書く場合に、下記の様にfor文内にselectを記述することがある。 (この時Timeout時にはfor文を抜けたいとす。) for { select { case someChannel: // timeout以外の処理 case time.After(1 * time.Secound): // timeout時の処理 b…

ioパッケージでのファイル書き込み

goのioパッケージにはOpenFileという関数がある。これは、ファイル名、ファイルに対する操作、ファイルのPermissionを設定して、File構造体を作成する関数であうる。 io.OpenFile(filename string, flag int, permission int) golang.org ファイルに対する操…

`go`でコマンドのフラグを扱う

golangでコマンドを作成した場合、フラグによって動作を分けたい場合がある。 この動作はflagパッケージを使うことで可能である。 公式ドキュメント https://golang.org/pkg/flag 非フラグを受け取る cmd 1 2 3など、-hogeでフラグを指定しないことも可能で…

Dockerによるアプリケーション開発環境構築ガイド

Dcokerによる基本的なコマンド Dockerコマンドのシーン毎の利用例 1. Dockerイメーシを取得しRunする。 - docker imageをpullする。 docker pull - imageからconteinerをrunする。 docker run -d //demon化 -it //擬似TTY --name hoge ubuntu:16.04 bash 2.…

dockerでMysql コンテナを起動する。

dockerコンテナでポート3306でMYSQL:5.7を起動する。 docker run -itd --name develop-mysql-orderqr -e MYSQL_ALLOW_EMPTY_PASSWORD=true -e MYSQL_ROOT_PASSWORD='' -p 3306:3306 mysql:5.7 また、MySqlにターミナル上から接続したい場合 mysql -u root -h…

【KanBan】今後の方針

Productを作成していかないとやばいとひしひしと感じてきたので、ProductChallengeと称して何かを作成していきたいと思う。 第一弾はKanBanアプリの作成を行う。Webアプリとしてデプロイまで持っていければ良いと思っている。 やりたい事(ざっくりと) Trel…

AtCorder:ABC102:B問題

問題 beta.atcoder.jp 方針 四角形のいっぺんは90度である。 A, Bの点に対して座標をθ=90で回転を行う。 回転移動の1次変換 回答 a, b, c, d = map(int, input().split()) x ,y = c - a, d - b print(c - y, d + x, a - y , b + x) 感想 初めての問題だった…

"error: There was a problem with the editor 'vi'."(git)

何が起きた? gitで下記エラーが発生した。 gitで"error: There was a problem with the editor 'vi'." これはどうやら、viとvimが競合しているから発生するエラーの様だ。 gitの設定でエディターの設定をvimにしていすれば解決する。 git config --global c…

PythonでのEnumクラスの使用方法

Enum型ってなんのためにあるの状態だったのですが、かなり便利なことに気が付いたのでまとめます。 値クラスの作成をしたはいいが、不具合が多くてもっといい方法はないかを探したのがきっかけです。 (環境はPython 3.5.2です。) 最初に作成した値クラスは以…

gitでbranchも含めてtree構造を出す

gitを使っていてbranchも含めてtree構造に出来ればなと思い、調べてみた。 標準のgitに機能が含まれていました。 (参考:gitのrebaseとremoteとbranchと - 日々常々) gitのバージョン git version 2.9.0.windows.1 branchの構造 master と bugFixの2つの…

Dockerに今さら入門してみる(Part 1)~環境構築とコンテナの使用方法~

「Dockerを使えば簡単に環境構築出来るよ」と耳にタコが出来るほど聞くけど、「フーン、そうなんだ」と聞き流していました。 「新年度も始まったし新しいことに挑戦するか」ということで今さらですが、Docker入門をしてみました。 書いていることに誤りがあ…

アルゴリズムの計算量を求める。

アルゴリズムの計算量は以下の様に O(n) O(n2) と記述を行う。 アルゴリズムの計算量を計算できると、処理の速度の比較を行うことが出来る。 計算量を計算することで、アルゴリズムの比較を大雑把に行うことが可能になる。 具体的なことに関しては以下に具体…

bash on ubuntu on windows でCドライブを扱うには

Cドライブの場所 bash on ubuntu on windows では起動時した状態ではCドライブの場所が分からなかった。 しかし、/mntにCドライブをマウントしているようだ。 qiita.com そのため、cd /mnt/cと打てばCドライブに移動が出来る。 Windows上で簡易に操作を行う…

Lessen6-7:Extend Prefix

ポイント ・再帰検索時の検索結果の格納 再帰を用いた検索で、各末端での検索結果を最上段の関数に返す場合は、基本的にreturnを使用して値の返しを行う。 def foo(x): if x > 100: return x else: return x + foo(x + 1) しかし、ひとつの関数で複数の結果…

Lesson1-25:Allmax

ポイント keyでFunctionを指定する際に、初期入力がNoneの時の対象法 Key指定時の注意点 pythonにおいてmax(a, key=function)など、基準として関数を指定することが可能。 このような関数を独自で実装するとき、key指定がない場合のfunctionをどうするかが問…

Lesson1-7:UsingMax

今回のポイント MaxはKeyにFunctionを指定することが出来る。指定されたFunctionは最大値算出時にMapのように一つずつ値を算出し、比較をしすることで最大値を算出する。 例 def poker(hands): "Return the best hand; poker([hand, ...]) => hand" return m…

Lesson1-3:Outlining The Problem

はじめに Design of Computer ProgramsのLesson1-3についてまとめる。 ここでの目標 今回作成するのは、ポーカーの手札を複数引数として取り込んで、そのなかから一番いい手を返すプログラム。

Dependency Injection

はじめに Dependency Injectionについて自分なりにまとめてみる。 (Dependency Injection コンテントにつていは記述していません。) 修正箇所があれば、Updateをしていく。 そもそも Dependency Injection(DI)をWikiで調べてみると… コンポーネント間の依存…

Problem set 4-2:More Pour Problem

目次 問題の説明 ポイント ソース 問題の説明 PouringProblemの拡張版を今回は作成する。 前回の(PouringProblem)jsakusan.hatenablog.comは、2つの容器を使用した場合で解決方法を探索した。 しかし、今回は容器の数をフレキシブルに変化可能にする。 容器…

Lesson4-26:Cleaning Up Mc Problem

引数の値に応じて、関数を指定したい時のコードの書き方の話。 下記の様なコードがあった場合、 def mc_problem(start=(3, 3, 1, 0, 0, 0), goal=None): if goal == None: goal_fn = lambda state: (0, 0, 0) == state[:3] else: goal_fn = lambda state: go…

Lesson 4- 17: Calculating Costs

下記の定義のようなTupleがあり、最後から2眼目のtotal_costが欲しい。 この場合、一旦変数にいれてやると、可読性が上がる。 tupleの定義 path = [state, (action, total_cost), state, ....] コード def path_cost(path) if len(path) < 3: return 0 else…

Lesson4-4: Pouring Problem

目次 問題のイメージ 実装 問題のイメージ 良くありがちな、二つの容器を使用して特定の分量を測定してくださいという問題。 問題を解く方向性としては、探索問題となる。 既に探索した領域を記憶し、新たな領域を探索するイメージ 実装 def pour_problem(X,…

Problem set 3: 2_Quiz_Inverse_Function

目次 Inverse Functionとは 実装 逆算法 2分探査 Inverse Functionとは まずは、関数の定義から見てみる。 あるy = f(x)に対して、xを求めるようなf'(y)のことである。 ex) f(x) = x ** 2 f'(x) = sqrt(y) こんな関数を実装していく。 実装 逆算方 f(x)を0…

7-35. Trace_Tool

目次 これまでに作成したデコレータ Trace Tool これまでに作成したデコレータ DEBUGGING TOOL countcall trace <- New!! PERFORMANCE TOOL memo EXPRESSION TOOL n_ary Trace Tool 関数の実行のされ方がVisualizeされるデコレータ。 --> fib(6) --> fib(5) …

7-33. Quiz: Cache Management

目次 MEMO化について MEMOのデコレータ Hash TableにListは入れられない?? MEMO化について C101においても、プログラムの高速化にメモ化を使用する場面があった。コードは下記のようである。 memo = {} def fib(n): if n in memo: return memo[n] else: me…

【Python】複数代入について

複数代入とは下記のようなことを言っているつもりです。 >>a, b = 1, 2 >>a 1 >>b 2 複数の変数に一行の式で代入が行えること。 スワイプが一行で書ける!! int a = 1; int b = 2; int temp = a; a = b; b = temp; System.out.print(a + "," + b) と記述す…

Pythonでのメモリ使用状況をリアルタイムで表示(初級)

Pythonプログラムのメモリ使用方法(初級)をurseraの講座で解説していたので、メモしておく。 使用サイト ・ Python Tutor - Visualize Python, Java, JavaScript, TypeScript, Ruby, C, and C++ code execution -> リアルタイムでメモリの使用状況が分かる…