todo-txtでゆるゆるタスク管理
この記事はVisual Studio Code Advent Calendar 2019 - Qiita9日目の記事です。
タスク管理ツールについて
私は個人的なタスク管理にはTickTick、Todoist等、WEBサービス/アプリを利用しています。
これらのツールはスマホアプリもあり、デバイス間で連携できたり、通知が飛んで来たり、便利な面も多いのですが、
期日を設定したり、並び替えたり、UI操作を伴う入力が冗長であるというデメリットもあります。
todo.txtでののタスク管理
todo.txtは、プレーンテキスト1ファイルでタスク管理するために整備されたフォーマットです。
todo.txtのフォーマットが具体的にどういうものかは下記記事にて分かりやすく説明されているので、省略。
各種テキストエディタで、todo.txtを利用するためのプラグインが提供されています。
VSCodeでは以下。
"todo-txt"プラグインの使い方
todo.txtのフォーマットに従って入力すると、カラーリングして見やすく表示してくれます。
こんな感じ。
以下のコマンドが用意されています。ショートカットを設定しておけば、便利に使えます。
並び替え
todo-txt: Sort By Project
: Sort the entire file by projecttodo-txt: Sort By Priority
: Sort the entire file by task prioritytodo-txt: Sort By Due Date
: Sort the entire file by due datetodo-txt: Sort By Context
: Sort the entire file by context
タスクの完了
todo-txt: Toggle Task Completion
: Toggle the completion state of the current task line
行頭に"x"を入力し、タスクの完了/未完了を切り替えます。
todo-txt: Archive Completed Tasks
: Migrate all completed tasks to a done.txt file in the current directory
完了済みタスクをdone.txtに転記して、行を削除します。
スニペットを作っておくとさらに便利
こんな感じで作っておけば
必要箇所のみ入力していけるので、さらに便利です
まとめ
テキストで箇条書きにしてタスク管理しているという方には、todo-txt使うと捗るのでオススメです。
ニュースタイトルから575を抽出して、川柳を作れるアプリを作った話
クソアプリ Advent Calendar 2019 2日目の記事です。
https://qiita.com/advent-calendar/2019/kuso-app
Advent Calendar参加欲が急にわいたので、急遽エントリー。
アプリ概要
ニュース川柳(βです)
- ニュース記事から川柳を作るサービス。
- ニュースサイトのRSSを形態素解析し、5文字・7文字の単語を抽出しています。
- ユーザーは抽出された単語を選んで、川柳として投稿できます。
- 投稿された川柳からは、元のニュース記事に飛べるので、眺めていると、直近で話題になっているニュースが分かる予定。
背景
- コラージュ川柳(新聞の見出しの切り抜きで作る川柳)から着想。
- 機械学習の勉強をしてみたかったが、教師データが無い→言語解析系の教師データを集めるためのWebサービス作ればいいんじゃ?→川柳いいかも
- 本業でWebのお仕事できていないので、新しめのフレームワークを触って、時代に置いて行かれないようにしたい
使用した技術
SPAではじめて作りました。
バックエンド
- Laravel(PHP)+PostgreSQL…API、認証まわり等
- Node.js…形態素解析まわり
形態素解析
- kuromoji.js
php-mecabのインストールに挫折した(笑)ので、簡単に使えそうだったこちらを使用させて頂いた。
フロントエンド
- Ionic(v3) + Angular
IonicはアプリライクなUIコンポーネントが多数用意されている、Angularベースのフレームワークです。
普通に作ればPWAにデフォルトで対応しているのもメリット。
ちんたら作っている間にv4がリリースされてしまいましたが、v4ではReactやVueにも対応した様子。
SPAを初めて作る僕にとって、どう作るべきなのか迷うことが多々あったが、下記
公式のチュートリアルアプリがかなり参考になった。
https://github.com/ionic-team/ionic-starter-super
インフラ
- Laradock
DockerでLaravelを使うためのツール群。全部入り。
docker-composeをベースに、アプリケーションサーバ、WEBサーバ、DBサーバと、それぞれ別コンテナとして作ってくれる。
もしサービスがスケールしたらコンテナをまるっとAWS上にデプロイ…等つぶしがきくかな、と思って選定。
工夫した点
575を抽出するロジック
単純に5文字・7文字を抽出するだけでは単語の羅列になってしまい川柳にならないので、「年内」+「の」のように前後で合計5文字・7文字となるものを1ワードとして抽出した。
超ざっくりロジックだが、ある程度うまく拾えている。
あと「山口達也」など、意識せず話題のニュースからワードが抽出されてて面白かった。
反省点
構想から形にするまで、めちゃめちゃ時間がかかった
- アイデア自体は4年前くらいのもの
- 開発着手したが、残業続きでモチベーションが完全になくなったり、気が向いたら再開したり、を繰り返し、気付けば未完成のままここまで来ちゃった。
- 新しいこと(Laravel、Ionic、SPA、Docker)を盛り込みすぎた。躓いてはモチベーションが下がった。
SPAなので本来トークンで認証すべきだが、横着してセッションでやってしまった
下記、参考にさせて頂きました。
まとめ・感想
個人開発について
- 個人開発はモチベーション維持が大変
- 新しいことは、盛り込みすぎない方が良い
- 誰かと一緒に作ったら良いかも
Ionic(Angular)について
- エラーメッセージ、どこが悪いのか直感的に分かりにくい
- でもTypeScriptでカッチリ型指定して書けるのは好み
- 良くも悪くも全部入りなので、ファイル構成・デプロイの仕組み、周辺ライブラリの選定に迷うことはないのは良い
川柳、投稿してみてもらえると、嬉しいです!
ツイート機能つけた。お試しTweet。不謹慎。
— すぱいす@WEBサービス開発中 (@sp_i_c_e) 2019年12月1日
*ーーーーーーーーーーーーーーーーーーーーーーーー*
トランプ氏
ミサイル発射
うっとりと
*ーーーーーーーーーーーーーーーーーーーーーーーー*
https://t.co/jrF1KQuNIU #ニュース川柳
格安でスケールアップ可能なインフラ選定
WEBサービス開発にあたり、まずはインフラのこと書きます。
結論から言うと、GMOのConohaを使うことに決めたので、選定の過程を残しておきます。
選定基準
- 1000円/月 以下で使える
- スケールアップが容易
- rootを使えて、好き勝手インストールできる
今回作る川柳投稿サービスでは形態素解析のライブラリを使いたいので、PaaSよりもVPSの方がインストール作業時に潰しがきくだろうと判断しました。
候補
- Conoha
- さくらのVPS
決め手
- さくらのVPSはスケールアップのみでスケールダウンできないのに対し、Conohaは両方可能(1GBプラン〜)
- 初期費用がかからない
- 月額も安め
Conohaにして良かった点
- SSHの鍵が自動で作られるので楽。(自分ならとりあえず平文にしてしまうし…←よくない)
Conohaにして悪かった点
- FWで任意のポートを開けることができない
管理画面が上記のようなチェックボックスになっていて、指定のポート、もしくは全開放しかできません。
nodeのexpressで適当なポート使って簡易WEBサーバ立てるのをよくやるのですが、全開放するしかないので、抵抗があります。
まぁ本番用サーバで不要なポート開けるなという話ではありますが…
まとめ
1GBプランの「スモールスタートできる開発環境」っていうキャッチコピーが、今回の要件にどんぴしゃでした。
ずぼらWEBサービス開発の記録
WEBサービス作りたい
前々から、個人でtoCのWEBサービス開発をやりたいと思っています。
が、1日で作りました!的なことができるポテンシャルもなく、仕事やプライベートが忙しくなると、なかなかモチベーションが保てず、作りかけのまま挫折してばかり…
今回はなんとか完成させたいので、ここできちんと公言して、作る過程をブログでアウトプットしていこうと思います。
つくるもの
サービス名:ニュース川柳(仮)
サービス概要:
- 川柳投稿SNS
- コラージュ川柳の要領で、Webメディアの記事タイトルから川柳を作って投稿できる
- 投稿された川柳を見れば、今話題のニュースで使われている単語が並ぶので、ライトなWebメディアみたいに機能するはず
コラージュ川柳とは何か? コラセン倶楽部に潜入してきた! - デイリーポータルZ
実現方法
- Webメディアの記事を形態素解析し、5、7、5の候補ワードを抽出する
開発方針
とにかく手間をかけずに作る!
ライブラリに任せて、なるべく作らない
関連記事
随時更新していきます。
外でiPadを持ち歩くなら、強化ガラス「nuglass」必須!
節約のため、ガラケーとiPad miniの2台持ちしていますが、
先日いつものようにiPadでIngressをプレイしていたとき(←危険)
うっかり手を滑らしてアスファルトの上にiPadを落としてしまいました。。。
いつかは落とすと思っていたので、どれほど効果があるのか分からないけど一応貼っていた、この強化ガラス。
無残にひび割れた画面を、おそるおそるガラスを剥がしてみると...
うおー!!!!!無傷!!!!!
表面の強化ガラスはバキバキでしたが、本体の画面は無傷でした。
ほぼ諦めていたんですが、強化ガラス様様です。
これは、もう一回これ買うしかない。
せめてもの恩返しに、もう一回購入リンク貼っておきますw