駆け出しエンジニアの作業ノート

駆け出しエンジニアが作業ノート風にまとめるページ(関係無い事もしばしば)

PHPerKaigi2019に参加してきました

3月29日から31日まで開催された「PHPerKaigi2019」に参加してきました。

 

phperkaigi.jp

 

主に最終日のセッションを回りました。

 

「マニュアルにない引数を与えるとどうなる?php-srcへのバグ報告をした時の話」

 

言語のバグを見抜いて報告するという行為が単純にすごいと思いました。自分はまだそんな報告すら出来ないと思います。

 

「帰ってきた!平成最後のオレオレフレームワークの作り方」

 

uzullaさんの発表は上手いと思いました。始まる前から場を盛り上げて、本編が始まってからもしっかりと笑いを取りながら話せる技術は大いに参考にしたいと思いました。

 

LT部分

 

ソースコードリーディングのススメ」

 

身近な所からアウトプウトを始めるという観点では、傾聴に値する視点だと思いました。

 

PHPerKaigi2019に登壇された皆さまお疲れ様でした。また、それ以外のコーヒースペースでの突発的なLTも楽しめました。

 

最長片道切符(2019年3月改正)

3月のダイヤ改正では、おおさか東線の開業がありました。また、山田線の一部区間三陸鉄道に移管されるという変動がありました。

 

デスクトップ鉄さんが既に以下の記事を公開していますが、当方でもおおさか東線開業前にルートを算出しました。

 

desktoptetsu.hatenablog.com

 

結論ですが、変動はありませんでした。三陸鉄道移管区間については移管前からこの区間を含む区間は切符の購入が出来なくなっていたため、「暫定」ルートがそのまま正式ルートになりました。

 

さて、次の変動可能性ですが相鉄・JR直通線が開業する11月30日かもしれません。

 

既に、鶴見〜羽沢横浜国大の区間には営業キロの設定が発表されていますが、もし、ライナー号が運行されている鶴見〜横浜羽沢〜東戸塚間にも営業キロが設定された場合、大きな変動があるのでは無いかと考えています。もちろん、ライナー号は縮小傾向にあり、設定されない可能性が大いにあります。ただ、鶴見から貨物線との分岐点まではルートが共通しているので、ひょっとするとという風に考えています。


Githubへの公開と理想型

技術書典に出す本のソースコードGithubに上げました。

 

github.com

 

さて、GitHubに上げてトップ画面に遷移したところ以下のリポジトリがおすすめに上がってきました。

 

github.com

 

これを使うとSpotifyGoogle musicなどが1つの画面で再生出来るというものです。当初、上記のプログラムを作る際には複数のサービスが1つの画面で使え、かつ、自分でプレイリストを作り制御する事を考えていました。

 

複数サービスを一括で使う利点としては、現状サービス間で配信曲に差が有るので、その差によって生じる消費者側の不利益を緩和出来る点です。しかし、現実として完璧なAPIが公開されているのがSpotifyぐらいなので、まずはそこだけ実装する事になりました。

 

技術書典のサークルは以下です。

 

techbookfest.org

 

当日は、私もブースに立つかもしれません。では、当日お会い出来ればと思います。

networkxで最長片道切符のルートを算出しようとするが…

今回は、networkxというライブラリを使って最長片道切符を出そうとしたという記事です。以前使用したGraphillionでは、容量が大きすぎて計算が不能となるケースがありました。そこで、今回はnetworkxというライブラリを使って計算を実行してみました。コードは以下のようになります。

 

file1 = "honshu_networkx.txt"

Graph = nx.Graph()

def station_pick(lines):
station_list = []
for line in lines:
dat = line.split(",")
for i in range(2):
station = dat[i]
if station not in station_list:
station_list.append(station)
return station_list

def count_distance(path, edges):
distance = 0
f1_2 = open(file1, "r")
lines = f1_2.readlines()
f1_2.close()
for i in range(len(path)-1):
word1 = path[i] + "," + path[i+1]
word2 = path[i+1] + "," + path[i]
for line in lines:
if word1 in line or word2 in line:
dat = line.split(",")
distance += float(dat[2])
return distance

f1 = open(file1,"r")
lines = f1.readlines()
station_list = station_pick(lines)
f1.close()
edge1 = []
edge2 = []
for line in lines:
dat = line.split(",")
data1 = (dat[0], dat[1])
data2 = (dat[0], dat[1], float(dat[2]))
edge1.append(data1)
edge2.append(data2)

Graph.add_nodes_from(station_list)
Graph.add_weighted_edges_from(edge2)
longest_distance = 0
for path in nx.all_simple_paths(Graph, source='新青森', target='門司'):
all_distance = count_distance(path, edge2)
if longest_distance < all_distance:
print(path)
print(all_distance)
longest_distance = all_distance
else:
continue

 

 

データセットについては自作をしました。なぜ、これを用いたかというとGraphillionの作者の方が大きなデータセットの場合にnetworkxの使用を薦めていたからからと思ったのですが、ちょっとミスリードだった気がしてきました。

 

github.com

 

結果として、networkxの使用はあまり向かない気がします。理由としては最初に経路をを算出してから徐々に最長の経路を算出していきますが、例えば、大阪から門司の最長経路を出す際に、既に鳥取から門司までの最長経路が出ているにも関わらずもう一度再計算しようとする印象を受けました。計算に無駄が多いため、結局約2日掛けても終わりませんでした。

「サービス品質向上しナイト ~みんなでテスト!10年続くチームと品質~」に行ってきました

2月14日に「サービス品質向上しナイト ~みんなでテスト!10年続くチームと品質~」という勉強会があったので行ってきました。

 

willgate.connpass.com

 

主催者のウィルゲートさんのイベントには既に2回ほどお邪魔させて頂いております。

 

www.willgate.co.jp

 

品質向上という事で、運用と新機能開発のバランスや技術的負債の解消といった話があるのかと思いましたが、主にQAエンジニアに関するお話でした。

 

そもそもQAという考えには自分の会社には無く、初めて知る概念でした。テストを専門に行う部署があればより実装に時間を掛ける事が出来、開発効率が上がるのかなと思いました。ただ、今日になってこんなニュースもあったので、また変わっていくのかなとも思いました。

 

thebridge.jp

 

その一方で、取引先との問い合わせの1次請けや、要件定義の支援をするサポートチームがほかの会社には無いなど思わぬ形で自分の会社の良い文化を実感する事が出来ました。また、自分では慣れていた1開発1チケット制もほかの会社には無いところもあるようでした。

 

会社の文化が段々と把握出来てきたので、今後も他社さんの勉強会に行って他社さんの文化を知ってみようと思います。

ブログ1周年

このブログは初めての記事を投稿してから1年になりました。

 

というわけで、ちょっと振り返りをしたい思います。

 

 

はてなブログでは、外部流入によるアクセス状況を管理画面から参照出来るので、そのデータに基づき1番見られた記事を発表します。

 

1番はこの記事でした。

 

psyduck-take-it-easy.hatenablog.com

 

こちらの記事はほかの記事を抑えてダントツの1位でした。こちらの記事に関しては公開直後よりも時間が経ってから、リアクションを頂いています。リアクションについては、私の励みになりますので、今後も寄せて頂ければと思います。

 

最長片道切符については、今年は少なくとも1回、もしかすると2回本州側で路線の開業があるため、変化する可能性があります。特に、今年の12月に開業すると噂の相鉄新横浜線埼京線(ほぼ確定)の直通運転の際に、鶴見-羽沢横浜国大(横浜羽沢)間の営業キロの設定だけで無く、現在一部ライナーが運行されている東戸塚-横浜羽沢間の営業キロが設定されるのかが気になっています。

 

仮に設定された場合、東北仙石ライン開業のようにルートがかなり複雑化する可能性があります。

 

また、JRが関係する新線の話ではこんなニュースもありました。

 

headlines.yahoo.co.jp

 

こちらの新線についても、開業すれば最長片道切符に関わってくる事が容易に想像出来るので、運賃計算上のルートがどのようになるか楽しみです。

 

では、今後とも、本ブログをよろしくお願いします。

技術書典に出展します

2019年最初の記事となります。

4月14日に池袋サンシャインシティで開催される技術書典6に出展します。以前、1回訪問した事がありますが、今回は執筆者側として参加します。共同サークルなので、サークル主という立場ではありませんが参加させて頂きます。

 

techbookfest.org

 

内容については、Pythonを使ってSpotifyAPIを操作して作ったものの話を予定しています。サークル名は「サポーターズCoLab」です。

1人でも多くの方に手に取ってもらえるような内容に出来るように頑張ります。