Engineer.社会人からWEBエンジニアになった人間の備忘録的勉強記録この広告は、90日以上更新していないブログに表示しています。Mapsで任意の場所に指定の距離の円を置けるWebサービスを作った作ったものはこちらです。名前は「尺々(しゃくしゃく)」と言います。syakusyaku.shirakiya.comきっかけ私が現在働いている会社でもそうなのですが、家賃補助で「会社から〇〇km圏内で××円支給」というのがよくあるかと思います(今まで働いてきた会社ではこうした福利厚生があったのでよくあると言ってますが、世の中的によくあるのかは...?)。ことは多々あるかと思いますが、そのときにブラウザで使えるツールで使いやすいものがないなーと常々思っていました。そこで決定版的なツールを作ろうと思ったのがきっかけです。尺々は2つの機能があります。以下にそれぞれの機能について軽く説明します。任意の距離の円を地図に置くこれが基本的なこのサービスの使い道だと思います。会社等の中心を選んで円を落とすことができます。使い方の流れはこちらの動画をご覧ください。Mapsでもできることではあるのですが、2つの住所間の距離も測定できるようにしてします。会社の住所とこれから借りようとしている部屋の住所の正確な距離を知りたいというような欲求が生まれるかなと思ったためです。こちらも使い方の流れを動画にしたのでご覧ください。youtu.beUIパーツが散らばってないだったり使いやすさ重視で作ってみました。tasks(以下スケジューリングタスク)でタスク定義を更新しようとした時に少しだけハマったことを書きます。ECS(以下ECS)利用中、コードの変更を行いデプロイするためにECSのタスク定義だけ更新することはよくあると思います。流れで書くと以下のような感じでしょうか。imageをbuildECRにimageをpush最新imageを使った新しいrevisionのタスク定義を作成スケジューリングタスクのターゲットに設定しているタスク定義を最新のタスク定義を使うように変更3のECRへのpushや、4のタスク定義の更新などはECR/ECSのそれぞれのAPIを叩けばいいのですが、5のスケジューリングタスクのターゲットを変更するにはECSのAPIにはそれらしいものがなく、どのAPIを使うべきかパッとわかりませんでした。PutTargetsを叩けばいいようです。Events」の中に出てくるターゲットのことを指しています。Eventsがinvokeするものを指す用語で、利用可能なAWSサービスは以下のページにズラッと記載されてます。タスク」が含まれており、スケジューリングタスクはこれを利用するわけです。CLIだと以下のようなコマンドです。内容だけを更新すればいいというお話でございました。Eventsのターゲットのことかな、と察することもできるのでしょうね。いえ何かのご参考になれば幸いです。ECS久しぶりにこちらに書きます。(関係ないですけど、QiitaとBlogの使い分けって難しいですよね。いうWebサイトのFargate化を進めていたときにデプロイで少しハマったことを書きます。appの実行環境をEC2からFargateに載せ替えるにあたり、デプロイの自動化も進めていました。appのデプロイの手順は上の図のような形で作戦を練っていました。image作成・ECRにpushタスク定義を更新(2のimageを使う)サービスを更新(3のタスク定義を使う)し、既存タスクを最新のサービスを使ったタスクに入れ替える1はGitの操作なので除きますが、2〜4の操作はCI上(今回はCircleCIを使っています)で行う操作なので、AWSのAPIを叩く必要があります。2と3は普通にECRにpushし、タスク定義をupdateするためのAPIを叩くことで実現できます。公式にもドキュメントがあるのでこれらが参考になります。Serviceサービスのデプロイはデプロイタイプによって利用するAPIが異なる今回の話題の中心は4のデプロイについてです。ECSではサービスのデプロイ方法(=デプロイタイプ)は2種類の方法が利用できます。実はこの2種類のデプロイタイプのそれぞれで叩くべきAPIが異なります。CodeDeployのCreateDeploymentズバリここでハマってしまいました。具体的に見ていきましょう。CLIを用いると以下のような操作でデプロイを行うことができます。入れ替わっていることが見て取れます。「サービスをデプロイするにはサービスを更新(=update-service)すればよい」のです。叩くとどうなるでしょうか。deployment.結果、InvalidParameterExceptionで怒られてしまいました。デプロイするならCodeDeployのdeploymentをトリガーしろと言っていますね。このようにCodeDeployを使っていると、UpdateServiceを叩いたところでデプロイすることはできません。"d-XXXXXXXXX"}これでCodeDeployによるデプロイプロセスが開始されました。まとめECSのデプロイはデプロイタイプによって叩くべきAPIが異なります。create-deployment)以上、何かのご参考になれば幸いです。ECS/FargateのデプロイタイプをBlue/Green(CodeDeploy)にしたときにデプロイ実行で叩くべきAPITweet広告を非表示にするもっと読むコメントを書く2018-07-22【Jaaxman】日本語に翻訳した論文の検索機能をつけましたjaaxman.shirakiya.com当ブログでのJaaxmanの紹介記事はこちら↓shirakiya.hatenablog.comそのJaaxmanに本日、検索機能をつけたものをリリースしました。2カテゴリの論文のタイトルとAbstractをGoogle翻訳で日本語化したものが一覧で見れるWEBアプリです。日付やカテゴリなどで表示される論文情報のフィルタリングができるようにはしていましたが、記事数も多くなりやはり検索機能はほしいと思い、今回のアップデートを進めました。論文情報のタイトル検索を行うための入力欄が右上近くにあるので、こちらから検索したい単語を入れ、「検索」のボタンを押すと検索にヒットした論文情報のみを表示します。原文(英語)の2つで、日本語の検索ワードで検索すると日本語版のタイトルを、英語の検索ワードでは英語版のタイトルを対象として検索を行います。上のGIFのように混合の場合でも日本語・英語それぞれの検索ワードでタイトルの検索を行います。Abstractは検索対象には含まれませんので、ご注意ください。完全に作者都合の不定期なアップデートとはなりますが、お役に立ちましたら嬉しいですね。作ったjaaxman.shirakiya.comJaaxmanという名前です。いうカテゴリが付けられてSubmitされていることが多いです。普段それらの論文で新しいものを拾い読みするときは、FeedlyでarXiv.orgのRSSを連携させてリスト化したものを見ていました。恥ずかしながら英語を見て脳にダイレクトに情報が入ってこず、情報を脳に入れるためには英語読むモードに切り替えないといけず、英語読むモードはかなり脳のスタミナを消費してしまうので、気軽さに欠けるものがありました。(慣れの問題とはわかっていますが...)そこで「タイトルとAbstractだけでも日本語化したらスッと脳に入ってくるのでは?」と思ったのが制作のきっかけでした。2カテゴリの論文のタイトルとAbstractをGoogle翻訳で日本語化したものが一覧で見れるこれに尽きます。基本的に「更新された論文を通勤中の電車内で流し見する」ことを最も重要なユースケースとしていたため、凝った検索などの機能は特別用意していません。逆に気になった論文はPocketやTwitterなどのシェアができるようにパーマリンクを用意しました(シェアボタンは重たくなるので置きたくなかった)。他にも新規Submitだけのものをフィルタリングできたりします。ホントは更新があったら通知があれば良いのになぁと思っていたりしますが、それはおいおい。APIにかけて保存してします。SPAとして構築しています。github.comあと、別にロゴとかいらんでしょとか思ってたのですが、少し調べてみるとLOGASTERというサービスでそれっぽいロゴが1000円ほどで買えたので、1000円ぐらいなら出すかと思い、買いました。1000円だろうが、ロゴがあるのとないのとでは製作時のやる気アップ度が全然違ったのでいい買い物したと思います。.aiなどのイラストレーション用ソフトに対応したファイルは1000円のプランだと含まれていないのですが、そもそも使えないので必要ありませんでした。)作ってみて気づいたことアカデミックな文章に対するGoogle翻訳の精度はそこそこ高いという印象を持っていて、実際にAbstractの翻訳を読んでみるとめちゃめちゃいい精度で翻訳されていてGoogle様すごいという気持ちになりました。コンピュータサイエンスにおいて「英語で言われた方がわかる(というか誤訳?)」ということがままあることに気づきました。effect」→「蝶効果」これはあくまで一例ですが、逆にGoogle翻訳のクセを見抜いて日本語を見たときに何を言っているのかを少し考えるということが必要だというのは若干の本末転倒感があり、残念ポイントでした。自分が使っていく中で不都合なりが発生した場合は対応しおうかなと思っていますが、めちゃめちゃ丹精込めて機能改善を行う予定はあまりないです。強い要望などがあれば対応できる範囲で行おうとも思っています。一方で、オープンソースとしていますので(誰も興味がないとは思いますが)ご興味のある方は見ていただいても構わないと思っています。基本的に自分のために作ったものではありますが、誰かのためにお役に立てれば幸いです。作ったTweet広告を非表示にするもっと読むコメントを書く2017-11-15Boostnoteは良いMarkdownエディタめっちゃ久しぶりの更新。当方エンジニアで、日々手順やメモを取ることが多いが、これまで理想とするMarkdownエディタには巡り会えていなかった。PaperAtomどれも満足はしていない中で使い続けてきて、そろそろ個人的な決定版が欲しかった。Markdownエディタに求めるものは以下の点。「フォルダ」のような概念があること異なるPC間でメモが同期できること一覧性が高いこと安い(月額料金は払いたくない)データのexportができること「フォルダ」ここでフォルダと言っているのは、例えばEvernoteのノートブックに対応するイメージで、中にあるメモがある分類でまとめられるものとしている。このフォルダのようなものがあれば、例えばMySQLに関するメモを作成するときは「MySQLフォルダ」にメモを保存しておけば、MySQLのメモを探すときにまず「MySQL」フォルダに見にいけばいい。メモを見返すときにフォルダがあれば圧倒的に楽になると思っている。(何かを思い出すときや探すときに、そういう階層構造のようにインデックスを作って、思い出している気がする。)残念ながらKobitoにはフォルダはなく、編集した順序でメモが並ぶというのが不満足だった。Paperはフォルダはあるものの、メモの編集画面とは異なる画面にフォルダの一覧画面があるため、別タブに表示している一覧にタブ移動しないといけないのが煩わしかった。Atomは左カラムにディレクトリの階層構造が常に表示することができるのでGood。当然ながら、自分の作業メモであったり何かのライブラリに関するメモは、いつでもどのPCでも見れるような状態にしておきたい。Kobitoで同期をしようと思うと月額480円のプレミアムプランに入らないといけない。Paperなんかはそもそもクラウドの保存しているメモをブラウザ上で編集するのでこの点は良かった。一覧性が高いことメモを探す時にとても重要。Paperはフォルダ毎にメモ一覧ページがあり、別のフォルダのメモ一覧を見ようと思うと一度フォルダ一覧ページに戻ってから再び見たいフォルダからメモ一覧ページに遷移しないといけず、なかなか煩わしい。(フォルダ毎だけでなく全メモ一覧ページがあるものの、それだとフォルダ毎にまとまらないのでNG)安い一般的な庶民なもので、やはり安いにこしたことはなく、ただ良いMarkdownエディタなのであれば多少の金額は払うつもりでいた。データのexportができることあまり優先度が高いわけではなかったが、やはりデータのexportができる方が嬉しい。いつそのエディタがサービス・開発中止になるともしれないので、いざとなったときに簡単に移行できるような備えはあった方が安心。以上のような観点でエディタを探したときに巡り合ったのがBoostnoteだった。OSS製のプログラマ向けMarkdownエディタで、無料で利用可能である。Electronをベースにしているが故にMac・Windows・Linuxと使えるプラットフォームの幅も広く、またiOS・Androidでもネイティブアプリがある。基本的に使い方はGithubにWikiといくつか使い方に関する記事があるので、それらを見るとだいたいわかる。Qiita上に記した求める点に対してBoostnoteの良さをつらっと書いていく。「フォルダ」Boostnoteでは「Storage」と呼ばれるものがフォルダに相当するもので、好きなようにラベルが付けられて言うことなし。Boostnoteは初期設定の中で、メモのrawデータ(CSONデータ)を格納するディレクトリを指定する。同期ディレクトリ内に指定することによって、同期しているデバイス同士ではデータを共有することが可能になる。https://github.com/BoostIO/Boostnote/wiki/Cloud-Syncing一覧性が高い特に気に入っているところだが、Boostnoteは様々な観点からメモを一覧にして閲覧することができる。Notes)スター付きメモ一覧(Starred)各Storage毎のメモ一覧(Folders)各タグ毎のメモ一覧(Tags)これだけ一覧で見る方法があると、メモも見つけやすい。(あとElectronアプリの割に動作がサクサクでそれも見つけやすさに遠からず寄与している気がする。メモが増えると遅くなるなどの検証はしていないのでここは何とも言えない。