Post

New!

2019-11-17 15:30:27

アルゴリズムとデータ構造 - キュー

概要アルゴリズム図鑑を参考に、アルゴリズムとデータ構造を学ぶ。 実装はgithub - bmf-san/road-to-algorithm-masterにも置いてある。 キュー 常に先に追加されたデータからしかアクセスできないようにデータを一列に並べた構造 スタックとは追加と削除の方向が逆になる。 FIFO(First In First Out) 先入れ先出し 待ち行列ともいう。 データの追加をenqueue、削除をdequeueという。 計算時間配列や連結リストなど実装形式による。 実装package main // Queue is a queue. type Queue st...

プログラミング

Algorithm Data structure queue

New!

2019-11-17 15:28:54

アルゴリズムとデータ構造 - スタック

概要アルゴリズム図鑑を参考に、アルゴリズムとデータ構造を学ぶ。 実装はgithub - bmf-san/road-to-algorithm-masterにも置いてある。 スタック 常に最新のデータからしかアクセスできないようにデータを一列に並べた構造 LIFO(Last In First Out) 後入れ先出し 常に最新のデータへアクセスしたいときに便利な構造 データの追加をPush、削除をPopという。 他にDup、Peek、Swap(またはExchange)、Rotateといった操作がある。 cf. Wikipedia - スタック 計算時間配列や連結リストなど実装形式に...

プログラミング

Algorithm Data structure stack

2019-11-03 11:03:15

GolangのHTTPサーバーのコードリーディング

概要GolangでHTTPサーバーを立てるコードの詳細を追ってコードリーディングする。 参考実装コードリーディングしていく実装はこちら。 package main import ( "net/http" ) func main() { mux := http.NewServeMux() handler := new(HelloHandler) mux.Handle("/", handler) s := http.Server{ Addr: ":3000", Handler: mux, } s.L...

プログラミング

Golang net/http

2019-11-02 20:47:49

アルゴリズムとデータ構造 - 配列

概要アルゴリズム図鑑を参考に、アルゴリズムとデータ構造を学ぶ。 実装はgithub - bmf-san/road-to-algorithm-masterにも置いてある。 配列 データを1列に並べたもの データへのアクセスは容易だが、追加や削除には時間がかかる 配列のデータはメモリの連続した領域に順番に格納される 固定長のメモリを確保する 宣言時に確保(静的確保) 実行時に確保(動的確保) 計算時間配列に格納されているデータ数をnとする。 データへのアクセス O(1) メモリアドレスが添字を使って計算することができるため、データに直接アクセスすることができる。(ランダムアクセス)...

プログラミング

Algorithm Data structure array

2019-10-18 01:54:54

アルゴリズムとデータ構造 - リスト

概要アルゴリズム図鑑を参考に、アルゴリズムとデータ構造を学ぶ。 実装はgithub - bmf-san/road-to-algorithm-masterにも置いてある。 リスト(線形リストの片方向リスト) データを一直線上に並べた構造 各ノードは次のノードへのポインタを持つ データの追加や削除は容易だが、アクセスには時間がかかる リストでは、データは連続したメモリ領域に格納される必要はない 一般的には離れた領域に格納される 計算時間リストに格納されているデータ数をnとする。 データへのアクセス O(n) データの先頭から順次アクセス(シーケンシャルアクセス)する必要があるため、線形時...

アルゴリズムとデータ構造

Algorithm Data structure linked list singly linked list

2019-10-13 14:13:57

PHPカンファレンス沖縄2019に参加してきた

PHPカンファレンス沖縄に参加してきた先月に続きPHPカンファレンスに参加してきました。 沖縄は6月末に宮古島にいった以来で、少し気温の変化が感じられました。 セッション実用PHPメタプログラミング実用PHPメタプログラミング evalは最終手段 ex. foreach内でevalを使って関数定義するとか →Closureで頑張る 大いなる力には大いなる責任が伴う 静的解析の恩恵が受けられなくなったりする 社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話 理...

ポエム

PHP PHPカンファレンス

2019-10-13 13:27:13

レガシーコード改善ガイド

レガシーコード改善ガイド 第1部 変更のメカニズム 第1章 ソフトウェアの変更 第2章 フィードバックを得ながらの作業 第3章 検出と分離 第4章 接合モデル 第5章 ツール 第2部 ソフトウェアの変更 第6章 時間がないのに変更しなければなりません 第7章 いつまで経っても変更作業が終わりません 第8章 どうやって機能を追加すればよいのでしょうか? 第9章 このクラスをテストハーネスに入れることができません 第10章 このメソッドをテストハーネスで動かすことができません 第11章 変更する必要がありますが、どのメソッドをテストすればよいのでしょうか? 第12章 1ヶ所にたくさんの変更が必...

test

2019-10-13 14:13:06

PHPカンファレンス北海道2019に参加してきた

PHPカンファレンス北海道2019に参加してきた2ヶ月ぶりのPHPカンファレンスに参加してきました。(前回はPHPカンファレンス福岡2019に参加・登壇してきました) 北海道は子供の頃数年ほど住んでいたり、祖父母が住んでいたりと縁の地なので、他のカンファレンスとはちょっと違った感情を感じて、ポエミーでエモい気持ちになりながら現地で過ごしていました。(昔住んでいた家やよく遊んでいた公園を見に行ったりしました。) セッションPHPを学ぶということPHPを学ぶということ PHPを学ぶということ PHPだけ学べばよいということではなくて、周りを見渡すと多岐にわたる分野の学習が必要ということかなと思っ...

ポエム

PHP PHPカンファレンス

2019-10-05 20:57:51

FuelPHP1.8.0→1.8.2、PHP5.6→PHP7.3へのバージョンアップした

概要FuelPHP1.8.0→1.8.2、PHP5.6→PHP7.3へのバージョンアップ対応をした。業務でアプリケーションのバージョンアップ対応を行ったので、取り組みをまとめておく。 スコープ FuelPHP1.8.0 → FuelPHP1.8.2 PHP5.6 → PHP7.3 対象リポジトリ ユーザー側アプリケーション 管理側アプリケーション パッケージリポジトリ ※ミドルウェアのバージョンとかは割愛※OSはAmazon Linux(2ではない) FuelPHP1.8.0はPHP7.2まで対応しているが、1.8.2は7.3まで対応している。 バージョンアップに取り掛かる2週間くらい前...

プログラミング

PHP FuelPHP

2019-09-27 09:21:33

DockerのOperation not permittedというエラーに対応する

概要Docker Composeを使ってgolangのtest実行していたら、Operation not permittedというエラーに遭遇した。 対応Docker Documentation - runtaime-privilege-and-linux-capabilities Dockerコンテナの特権設定をいじると解決する。 gobel_test_db: container_name: "gobel_test_db" build: ./docker/mysql ports: - "3305:3306" volumes: - m...

インフラ

Docker Docker Compose Linux linux capabilities seccomp