Angular - Guide - Overview
GuideのOverviewから見ていきます。
https://angular.io/docs/ts/latest/guide/
このページは、このAngularマニュアルの使い方が書かれています。
Angularが始めての人は"Learning Angular"から読みましょう。
大きな枠組みとして以下のセクションが存在します。
"QuickStart"
インストール無しでAngularを操作できます。
"Guide"
ローカル環境でAngularを動かし、データ表示、ユーザ入力の受付、サービスのインジェクション、簡単なフォームの作成を学べます。
"API Reference"
Angularライブラリのそれぞれについて詳細を確認できます。
"Tutorial"
ステップバイステップで、Angularを使ったアプリケーション開発に必要な、主要機能を学ぶことができます。
"Advanced"
Angularの深い部分を学べます。
"Cookbook"
特定の課題に関する解決策が紹介されています。
盛りだくさんですね。
QuickStartは前回内容を見たので、
次回以降はGuideの続きを見ていきたいと思います。
その後、Tutorial, Advanced, Cookbookと続ける予定です。
Angular - QuiqkStart
Angular2の勉強がてら、Docsページの解説をしていきます。
この記事作成時点では、2.4が最新バージョンです。
トップページ
トップページは以下。
https://angular.io/docs/ts/latest/
ANGULAR DOCSの下にTYPESCRIPTと書かれていると思います。
Angular2はTypeScriptで記述することが推奨されており、
当マニュアルもTypeScriptベースで説明がなされています。
万が一、TypeScriptではなくJavaScriptのマニュアルが見たい場合は、
左のメニューの最下部の"Angular for TypeScript"という部分をクリックして、
JavaScript版に切り替えましょう。
トップページからは、QuickStartやGuide、API Refarenceなど各種ページへ
遷移することができます。
また、ヘッダー部分からは、最新バージョンの情報へリンクすることができます。
QuickStart
まずはQuickStartを確認しましよう。
https://angular.io/docs/ts/latest/quickstart.html
Angularアプリケーションは、コンポーネントからできています。
コンポーネントとは、HMLテンプレートと、画面の一部分を
操作できるコンポーネントクラスを組み合わせたものを指します。
サンプルコードはPlunkerで見ることができますので、 まずは触ってみることをお勧めします。
Angular2ではdecoratorという、メタデータを記述する記法が登場します。
コードで@Componentとなっている部分がそうです。
selectorでカスタムタグを指定し、templateに置きかえる内容を記述します。
{{name}}の括弧はinterpolation bindingというもので、
こう書くと、実際に画面表示されるときには変数nameの値が代入された形で画面表示されます。
次回
GUIDEのOverviewから順に見ていきます。
TickTickの紹介
タスク管理に便利なWebサービス、TickTickを紹介します。
背景
タスク管理ツールといえばGoogleタスクがメジャーですが、私には以下のような不満がありました。
(そのタスクをいついつやるという)時間の概念がない
要は、タスクを
・時間
・グループ(<-こっちはGoogleタスクでも設定できる)
という2軸で管理したかったわけです。
この2軸の概念があれば、明日の作業計画を立てたり、
必要なタスクらを納期通りこなすことができるか、見通すことができるようになります。
さらに、タスクの整理をiPhoneやAndroidのネイティブアプリでできればなおよし。。。
(スマートフォンのWebブラウザだと、どうしても操作しづらいもんね。)
上記条件のもと探し回った結果、TickTickにたどり着きました。
TickTickでできること
タスクの登録、チェックによるタスクの完了は、通常のタスク管理アプリ同様に行えます。
また、左側のリスト一覧から"Add List"を選択することで、リスト(タスクを束ねるグループのようなもの)を登録することができます。各タスクは、どこか一つのリストに所属させることができるので、グルーピングが可能です。
各タスクは、右側のペインからその作業を行う時間や、リマインドを表示する時間、繰り返しの設定などを行うことができます。
TickTickの凄いところ
日々、新しい機能が追加され続けています。
直近では、1日や1週間といった単位で、終わった作業と終わっていない作業をテキスト形式で出力することができる
Summary(※現状はBeta版扱い)
という機能が登場しました。
今後にも期待です。
残念なところ
表示言語は切り替えることができて、日本語も選択肢にあるのですが、翻訳が非常に残念な感じです。
Completed="完成した"、Settings="設置"など。。。
まぁそんなに複雑な単語も出てこないので、英語のまま使えば気にならないんですけどね。
無料で利用できるので、気になった方は是非お試しください!
HttpServletResponseに2GBを超えるContentLengthを設定する方法
JavaのServletでファイルサイズを返答する際に困ったのでメモ。
ファイルのダウンロードリクエストに対しては、ファイルサイズをレスポンスしてあげる必要がある。
レスポンス情報はHttpServletResponseにセットすることでクライアントに返すのが基本。
ファイルサイズについては
#setContentLength(int value)という関数があるので、基本的にはこれを使うことになるのだが、、、
引数がintであるため、intの最大値である2,147,483,647 ≒ 2.1GBちょいまでしかファイルサイズを設定できないことになる。
今日び、2GB越えのファイルなぞゴロゴロあるわけで、、、
さて困ったぞとなったわけである。
ちなみに
setContentLengthはint引数のものしかない。
#昔は2GB越えのファイルを転送するなんて想像もしていなかったのだろうか。。。
色々と調べ回って、単純な解を見つけた。
HttpServletResponse#setHeader(String headerName, String value)
という関数を使えばよい。
headerNameという名前のフィールドにvalueをセットしてくれるというもの。
これを使って
response.setHeader("Content-Length", String.valueOf(size))
とやってあげれば、long長のファイルサイズであってもヘッダーに設定できる。
なんか、スマートな解ではないのですごくモヤモヤするが、、、
まぁひとまずこれで良しとしよう。