Webアプリケーションに良くあるもの

Webアプリケーションでよくみるのだけれど
実現方法がわからないもの、わからなかったもの、作ったけれどコードが複雑になってしまったものを箇条書きにしておく。

時間があったら、まとめておきたいため。

  • フロントエンド
    • 日付をカレンダーから取得する(datepicker)
    • ページング
    • (保守性の高い)メッセージ群の表示、作成
    • もっとみるボタン
    • レスポンシブルデザイン
    • 文字の大きさ変更
    • 文字の大きさを変えると表示がおかしくなったりする。

    • テーマカラーの変更
    • 一番下までスクロールをすると続きのデータをロードする
  • バックエンド
    • (保守性の高い)ログメッセージ群の表示、作成
    • ファイルをダウンロードしたときに日本語が文字化けをする
  • 共通
    • 入力値バリデーション
    • 登録画面と編集画面で別々のフォーム、アクションファイルが存在する→ほとんど同じ処理なのでまとめられないか
    • マルチブラウザ対応

他にもあったけれど思い出したら追加していく。

Eclipseでプロジェクトを右クリックしたときにメニューにTomcatプロジェクトが表示されない。

かなりハマったので残しておく。

環境
Mac Sierra
Pleiades Eclipse Neon

現象
Eclipseでプロジェクトを右クリックしたときにメニューにTomcatプロジェクトが表示されない。

解決方法
設定からTomcatプロジェクトにチェックを入れる。

手順
プロジェクトを右クリックする。
プロパティーを選択する。
プロジェクトのプロパティーからTomcatを選択する。
Tomcatプロジェクトにチェックを入れる。

tomcat-project

EclipseでTomcatを起動したらAddress already in use: JVM_Bindメッセージが表示された

EclipseでTomcatを起動したらAddress already in use: JVM_Bindメッセージが表示された。
原因はわからないけれど8080ポートがすでに使われているからこのメッセージが出たようだ。
そこで以下の手順で解決できた。

環境
Windows10
Eclipse

コマンドプロンプトを開いて8080番ポートを使っているプロセスを確認してみる。

netstat -aon | find "8080"
TCP  0.0.0.0:8080  0.0.0.0:0  LISTENING  13204
TCP  [::]:8080     [::]:0     LISTENING  13204

どうやら13204のプロセスが8080番ポートをつかったままなのでtaskkillコマンドでプロセスを終了させる。

taskkill /F /pid 13204
成功: PID 13204 のプロセスは強制終了されました。

このあと、EclipseからTomcatを起動したら正常に起動ができた。

簡単な文字種+文字長試験用の文字列

試験をしている時に文字種と文字長を毎回テキストに作ってからコピペするのが面倒になったので残しておく。

  • 漢字10文字
  • 亜射鵜絵尾火気句家個

  • ひらがな10文字
  • あいうえおかきくけこ

  • 全角カタカナ10文字
  • アイウエオカキクケコ
    ガギグゲゴザジズゼゾ
    ダヂヅデドバビブベボ
    パピプペポパピプペポ
    ヴヴヴヴヴヴヴヴヴヴ

  • 半角カタカナ10文字
  • アイウエオカキクケコ
    ガギグゲゴザジズゼゾ
    ダヂヅデドバビブベボ
    パピプペポパピプペポ
    ヴヴヴヴヴヴヴヴヴヴ

  • 全角英字10文字
  • ABCDEFGHIJ

  • 半角英字10文字
  • ABCDEFGHIJ

  • 全角数字10文字
  • 1234567890

  • 半角数字10文字
  • 1234567890

Windows7で英語キーボードをつかうためにレジストリエディタで設定した内容

WINDOWS7で英語キーボードを使おうとしたらそのままではだめだという事がわかった。
だめというのはアットマーク(@)を入力しようとするとダブルクォート(”)になったり、アンダースコア(_)を入力しようとするとイコール(=)になった。

ネットで調べると以下のサイトで実施していることで対応したら解決した。
Windows 7 のキーボードを英語キーボードに変更

手順

  • Windowsキー + Rを押下してファイル名を指定して実行ウインドを立ち上げる。
  • regeditと入力してOKを押下してレジストリエディタを起動する。
  • レジストリエディタでは以下の項目を修正する。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters\LayerDriver JPNを「kbd101.dll」にする。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters\OverrideKeyboardIdentifierを「PCAT_101KEY」にする。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters\OverrideKeyboardSubtypeを「0」にする。
  • PCを再起動する。

Microsoftのサポートにも情報があった。
コンピューターに USB キーボードを接続したときに Windows で正しいキーボード レイアウトが使用されないことがある

SyntaxHighlighterで使用できるプログラム言語のタグ

SyntaxHighlighterで使用可能なタグがわからなかったので検索してみた。

SyntaxHighlighterで使用可能なタグ
http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

調べた時点で使用可能なタグ

Brush name Brush aliases
ActionScript3 as3, actionscript3
Bash/shell bash, shell
ColdFusion cf, coldfusion
C# c-sharp, csharp
C++ cpp, c
CSS css
Delphi delphi, pas, pascal
Diff diff, patch
Erlang erl, erlang
Groovy groovy
JavaScript js, jscript, javascript
Java java
JavaFX jfx, javafx
Perl perl, pl
PHP php
Plain Text plain, text
PowerShell ps, powershell
Python py, python
Ruby rails, ror, ruby
Scala scala
SQL sql
Visual Basic vb, vbnet
XML xml, xhtml, xslt, html, xhtml

PHPで総数がわからない標準入力を受け取るやり方

総数が分からない標準入力を受け取るときどうすればよいのか調べた。
whileの条件にfgetsを書くやり方ができないか調べたが、
現時点では見当たらなかったので、このやり方を使おうと思う。

PHP 5.6.28で確認。

$line = trim(fgets(STDIN));

while ($line) {
    $array[] = $line;
    $line = trim(fgets(STDIN));
}
var_dump($array);