taisablog

taisa's engineer blog

structure-data

投稿日:

-

執筆者:

関連記事

Vue.jsで外部APIを使ったTODOリストを作ってみた

APIを使ったTODOリストをVue.jsで作ってみました。TODOリスト用のAPIは以前書いたこちらのAPI「Go言語 GORM+GinでTODOリストのAPIを作ってみた」を利用します。CORSを全て許可しているのでどこからでも叩けるようになっています。 できたもの できたものはこちらです。http://vuejs.taisablog.com/todo APIのエンドポイント APIのエンドポイントは以下としました。 URL http://gin.taisablog.com/api/v1/ GET /todo // 一覧表示 POST /todo // 新規作成 GET /todo/:id // 編集画面表示 PUT /todo/:id // 編集(今回未使用) DELETE /todo/:id // 削除 TODOリストの処理 プロジェクトはvue-cliで作成し、APIはaxiosを利用しました。componentsにTodo.vueファイルを作成しそこにすべての処理を書いています。 インポート import axios from ‘axios’ const NOT_STARTED = 1 // 未対応 const STARTED = 2 // 対応中 const FINISHED = 3 // 完了 data function name: “Todo”, data() { return { todoList: [], inputField: ”, isActive: false, baseUrl: ‘http://gin.taisablog.com/api/v1/’ } }, created function created() { this.getTodo() }, methods : 一覧を取得する async getTodo() { try { let response = await axios.get(this.baseUrl + ‘todo’) this.todoList = response.data } catch (e) { console.log(e) …

Gitの参照 – HEADとheadsとtagsとremotes

Gitの参照についてまとめました。また別記事にてGitの内側について記載しています。 配管(Plumbing)と磁器(Porcelain)Git オブジェクト Gitの内側についておさらい 「git init」すると「.git」ディレクトリができるがその中についてがテーマ普段は使わない配管コマンドと呼ばれる下位レベルのコマンドがある4つのオブジェクトがある blobオブジェクト(ファイルに相当) treeオブジェクト(ディレクトリに相当) commitオブジェクト(commit情報を保持) tagオブジェクト(Tagを保持) Gitの参照って? ここで取り上げるGitの参照は「HEAD」ファイルと「.git/refs」配下のことを示します。「git init」した直後「HEAD」ファイルは「refs/heads/master」を参照し(初期化直後はなにも存在しない)、「.git/refs」配下には、headsとtagsディレクトリがあります。ブランチにcommitするとheads配下にブランチ名のファイルができ、HEADファイルはheads配下のブランチ名を参照します。 # masterにcommit後 # HEADファイル ref: refs/heads/master # refs配下の構造 └── refs ├── heads │   └── master └── tags Gitの参照の種類 Gitの参照の種類は次の通りです。 heads:作業中ブランチのcommitを参照tags:commitをわかりやすくする為の名前付け用remotes:リモートブランチのcommitを参照HEAD:作業中のブランチに対するシンボリック参照。HEADは基本的にheadsを参照しているので、他の参照と区別する為シンボリック参照と呼ばれます 動作確認の為の事前準備 次のような3つのcommitがあるリポジトリを用意しremoteへpushしておきます。 % git log –pretty=oneline master 1f36229bc26825222b191dcd63929392d9d8e2fd third commit 543ee947f5a865e1a998f793120667c3bf89fc80 second commit 23391397b4316d334e9293c4f7d1d601c1f24c4c first commit % git remote add origin git@github.com:taisa007/internal-git.git 次からはこのリポジトリを利用します。クローンする場合はこちらを利用してください。 構成 構成は次の通りです。「.git/refs」ディレクトリ配下にそれぞれheads, remotes, tagsというディレクトリが作られています。 % tree .git └── refs ├── heads │   └── master ├── remotes │   └── origin │   └── master └── tags Gitの参照の解説 「refs」配下にあるファイルはそれぞれ最後のcommitをファイルに記録しています。例えば現在masterは「third commit」にいますが「git log –pretty=oneline master」とすると次のようなcommit履歴が確認できます。 % git log –pretty=oneline master 1f36229bc26825222b191dcd63929392d9d8e2fd third commit 543ee947f5a865e1a998f793120667c3bf89fc80 second commit 23391397b4316d334e9293c4f7d1d601c1f24c4c first commit …

GitLabのprivateなPHPライブラリをcomposer installするには

社内ツールでprivateなリポジトリに置いておきたいけど、いろんなプロジェクトでcomposer installしたいというケースは以外とあるんじゃないかと思います。そういう時は、composer.jsonにrepositoriesを追加して、GitLab(ここではGitLabとしています)のURLを指定するとインストールが可能になります。しかしそのままだとpublicなリポジトリしかだめですが、privateなリポジトリであれば、GitLabからPersonal AcessTokenを取得して、composer config –global –auth gitlab-token.gitlab.com [ACESS_TOKEN]を実行すればcomposer installが可能になります。 { “name”: “taisa831/sample-framework-app”, “license”: “MIT”, “authors”: [ { “name”: “taisa”, “email”: “g5.taisa831@gmail.com” } ], “require”: { “taisa831/sample-framework”: “dev-master” }, “repositories”: [ { “type”: “vcs”, “url”: “git@gitlab.com:taisa831/sample-framework.git” } ] } では、Webフレームワークをprivateなリポジトリに公開して利用するところまでをやってみます。 (今回は便宜上publicにしています) 事前準備 ここではサンプルのWebフレームワーク(実装なし)をプロジェクトにインストールできるようにすることにします。リポジトリは2つで、フレームワークの実態であるsample-frameworkとフレームワークの雛形となるsample-framework-appを用意しておきました。それぞれの構成は以下の通りです。 https://gitlab.com/taisa831/sample-framework.git # フレームワークの実体 . ├── README.md ├── composer.json ├── src ├── tests └── vendor https://gitlab.com/taisa831/sample-framework-app.git # フレームワークの雛形 . ├── README.md ├── composer.json ├── composer.lock ├── config ├── controllers ├── models ├── public │   └── index.php ├── routes ├── tests └── views このsample-framework-appのcomposer.jsonには上記でも記載した内容が書かれています。requireにtaisa831/sample-frameworkを指定し、repositoriesにGitLabのURLを指定することで探してくれるようになります。 { “name”: “taisa831/sample-framework-app”, “license”: “MIT”, “authors”: [ { “name”: “taisa”, “email”: “g5.taisa831@gmail.com” } ], “require”: { …

no image

2018年の抱負

今年も去年と同様に2018年の抱負を書く。 2018年の抱負 去年と同様にいろんなことはできないので大目標3つ+サブ目標。これ以外にも細かいものはいくつかあるけど別途まとめる。 CTOとして 機械学習 英会話 サブ目標 引き続きフロントエンド CTOとして 今年1月から不動産テックのスタートアップカンパニーであるCocolive.Inc(ココリブ)にCTOとしてジョインした。エンジニアとして長年やってきたけどCTOははじめて。そしてスタートアップながら良いエンジニアが5人集まったという好状況なのでこれまでのチームビルディングの経験を活かしつつ会社を成長させていきたい。自分個人の目標は昔から「日本のエンジニアの地位をあげる・世界に通用する」であるのでこれはぶれないようにする。また合わせて決めていることは「選択と集中」をすること。限りあるリソースの中でできることできないこと、やるべきことやらないことを見定めて1年やる。あとは楽しむこと。 機械学習 今年技術的には一番力を入れる予定。個人的な興味と現在のサービスの性質上なんらかの形で機械学習が導入できると大きなメリットが見込めることから本格的にスタートすることにした。 機械学習の勉強会を開催する 機械学習の話をいろんな人とする プロダクトに導入する 英会話 これまでほそぼそとやっていたけど実践では全然だめという状況なのでこれをなんとか打開したい。今年は1年間継続して実践メインで徐々に英語慣れしていく。去年はPyCon APAC in マレーシアに参加したけど今年は5月末にシンガポールで開催されるということでここを一つのターゲットとしてやる。 コミュニケーションがとれること サブ目標 いくつもやりたいことをこなすなんてことは自分にはできない。けどサブとしてでもやりたいもの。 フロントエンド 去年はサブでなくもはやメインとして活動できてなおかつ執筆もできたので結果的にすごいよかった。JSはやればやるほど面白いので引き続きやる。 VueJSの深掘り Reactの深掘り CSSやる コードリーディング 今年の抱負のまとめ なにはともあれ健康で楽しく仕事ができていることがなによりなので毎日「今日も生き抜こう©」とつぶやきながらマイペースにやっていく

no image

カンファレンスを最大限に楽しむ方法

Talk Python To Me という PodCast を聞いている中で興味深い話があった。 Talk Python To Me Podcast Talk Python To Me is a podcast for developers who are passionate about Python. Learn about the language and related technologies. Episode #161: Django 2.0 の 00:58:20〜のトーク内容で「カンファレンスを最大限に楽しむ方法は?」という質問に対する回答 まず第一に参加できるなら参加しましょう。もし US や北アメリカのカンファレンスに行けない場合は、ローカルで開催されているカンファレンスに参加しましょう。そしてもし参加したら友達とくつろぐのはやめて新しい友だちをつくりましょう。自分の視野を広げるために参加しているのだから。それが簡単でないことはわかります。でもそうすることで新しいアイデアやコネクションをつくることができて新しい視野がひろがります。そして、それができた場合でも自分の知識をみせびらかすようなことはやめて、そのかわりに質問をしましょう。そして私は、カンファレンスに参加してハイヤリングをした立場として分かりますが、知識があるひとよりもむしろ、新しいことを見つけ出して熱心に学ぼうとしている人を雇おうとします。 以前にカンファレンスに参加したことがある人もそうでない人も、カンファレンスのボランティアをやるのもよいです。ボランティアをする中で関係ができあがり、新しいコネクションができます。私はボランティアをすることで自分のキャリアの中で大きな変化を得ることができ、とても良い人で出会うきっかけになりました。恥ずかしいとか思うかもしれませんが、そんなことは誰も気にしてはいません。自分もとても恥ずかしいことをした経験があるけど誰も覚えてはいませんよ。 ソース:https://talkpython.fm/episodes/transcript/161/django-2.0 内容は意訳してる箇所や多少省略してる箇所があるので詳しく知りたい方はソースを見てください。この内容はトークする側ではなく単純に参加する側へ向けた話。 そしてある意味当たり前のような話ではある。ただ、恥ずかしがるとかそういった考えはなんとなく日本的もしくはアジア的なところがあるのかなと思っていたので、アメリカでもこういったことが話されてるんだなっていうところに興味が持てた内容でした。 話し手はこの方 Daniel Roy Greenfeld (@pydanny) | Twitter The latest Tweets from Daniel Roy Greenfeld (@pydanny). Co-Author Two Scoops of Django (https://t.co/h98NETIALQ), open source coder, husband of @audreyr, former NASA coder. Los Angeles, CA