buttonであるべきかinputであるべきか、それが問題が

やあやあ。

最近HTMLを復習してるよ。

で、その時思ったことを適当にメモしてみようと思う。

 

今回のお題は

「ボタンを作成するとき、button要素であるべきか、input要素であるべきか」

 

inputタグ buttonタグ

 

私が昔、ゴリゴリとHTMLを手書きしてた頃は、ボタンと言えばinputタグで書くのがセオリーだった気がしています。最近は、buttonタグを使うようにしている文献をよく見る気がします。

 (inputタグでボタンを作るというセンスはHTML4以前の感覚なので、今となってはかなり古いものであるという認識です。私が最も活発に手書きしていた時代は、ページデザインはtableタグで行うのが基本だった時代ですので、かなり古い話ですね。その後、デザインはdivタグにidを振りまくって、CSSでムギュっとするのが基本の時代が来ましたが、最近はHTML5でもっとタグの種類が増えて、文章構造がさらに細分化された認識を受けます)  

 

実挙動について

実挙動はどちらも同じように振る舞っていると、私は感じています。

ただ、IE7以前はbuttonタグの解釈にバグがあったそうなので、レガシーなシステムでは考えた方が良いのかも知れません。

IE7のバグは以下のようなものでした>
 <button type="submit" name="buttonName" value="hoge">foo</button>
 このタグで、通常はPOSTの値がbuttonName=hogeとされるべきところが、
 buttonName=fooとされてしまっていたようです。
 しょっぱいですね

もうIE7以前は古いブラウザですし、何処かで割り切ってしまっても良い気はします。ただ、MSはIE7(2006年)、IE8(2009年)のサポートを2016年1月までするつもりなので、「まだ気が早いんじゃないか?」と言われる事案も少なくない気がしてしまいますね。 

 

一般向けにオープンするwebサービスなのであれば、今さらinputタグにしがみつく必要はないんじゃないかなという気がします。

 

皆さんは、どう捉えてます?

TypeScriptの開発環境をVisualStudio 2013上に構築する為のメモ

やあやあ。

TypeScriptの良い感じのIDEを求めて、VisualStudio 2013上に開発環境をサクッと作ってみるよ。

 

VisualStudio 2013がインストールされている前提で話を進めるよ。

インストール出来ていない人は、以下を見てインストールしておいてね。

white-raven.hatenablog.com

 

最初にTypeScriptの拡張を入れます。

以下から取得します。

Welcome to TypeScript

 

2015.03.16現在は、downloadのToolsの所にリンクが張られているので、ここからインストーラを入手。

f:id:white_raven:20150316221051p:plain

 

次に、インストーラを実行。

f:id:white_raven:20150316221057p:plain

 

規約に問題がなければ同意をし、INSTALL

f:id:white_raven:20150316221101p:plain

 

しばし待つ

f:id:white_raven:20150316221104p:plain

 

完了。closeを押せば閉じます。

f:id:white_raven:20150316221107p:plain

 

これで、VisualStudioで新しいプロジェクトを作成するときに、TypeScriptのプロジェクトが選択できるようになっています。

VisualStudioのサジェスト機能が結構頑張ってる感じなので、使えるならこの開発環境でも良いんじゃないかなと思います。

 

ではでは。

 

本当に効果的なKPT (Keep/Problem/Try) とは

やあやあ。 KPT、してますか?

やってる? なるほど。で、本当に効果的なKPT、やれてますか?

 

悪循環を生むKPTのやり方

  • K:明日もがんばります
  • P:私が全部悪いんです。すみません
  • T:今日出来なかったことは明日やります

もしこんなKPTを繰り返していると、自尊心を過剰に侵害し、個人のモチベーションが低下してしまいます。メンバや部下を潰すことが目的であればそれでも構いませんが、鏡に向かって「お前は愚か者のクズだ」と言わせ続けるような行為は、決して良い結果を生み出しません。

 

(私が良いと考える)効果的なKPTのやりかた

  • K:このタームで出した成果を評価し、それを継続する賞賛のKeep
  • P:個人ではどうにもならない環境やプロセスに関するProblemを提起
  • T:Kに対する追加アプローチ、または新たなる挑戦/改善としてのTry

私は、このようなKPTの運用が良い効果を生むと言う事を経験しています。

分量としては、K:P:T=2:1:1程度で捉えると良いと考えています。

 

また、自分一人でやらずに他人と一緒にやると良いです。

 

互いに言語化するもの恥ずかしいようなレベルでKを出し合いましょう。

今出来ていることは、それだけで素晴らしい事です。続けるに値するのであれば、それは賞賛されるべきです。

貴方は誇りを持ってそこに立っていてもよいのです。

但し、驕ってはいけません。

あくまでその自尊心は、貴方がエンジニアであり続ける為に持ち続けるべきです。

 

個人の技能問題や、知識・解釈・理解に関する事象は、Pに書いてはいけません。

それは、貴方の将来的な「課題」であり、「取り組むべき改善」です。

書くのであればTに書きましょう。

Pは、貴方の力でどうしようもない「本当の問題」を書き上げるべきです。

そして、貴方はそのPを再認識し、乗り越えなければいけないのであれば周りに助けを求めましょう。

貴方は一人では生きていけない。であれば、誰かと生きていく方法を模索するべきだ。

 

Tには「取り組むべき課題」や、「改善すべき事実」を書きましょう。

あくまで貴方の持ちうるリソースで戦える粒度で書くことが重要です。

漠然と書くことは避けた方が良いです。

Tは貴方にとっての、近未来に到達したいビジョンとして目標に掲げなければいけません。

貴方がそこに向かって死ぬ気で走る事になるのです。

到達点が見えないような道を、貴方は走り続ける事は出来ないでしょう。

短距離で構いません。貴方が全力で駆け抜ける事が出来る粒度で目標を定めましょう。

 

 

え? 意識高い系エントリで臭いって?

まあ、たまには良いじゃない。

もっと、自信を持って生きようよ。

将来的な移行性を考慮した場合の言語選択のメモ

やあやあ。

この記事は、将来的に移行を行おうと考えた場合、どの言語からどの言語を目指すと良いのかを思うままに主観と偏見だけでメモってみるよ。

 

C

CからならC++にシフトするか、C++に埋め込んでいくのもありだと思う

 

C++

古いC++からであれば、C++11やC++14になるのではないかな

新しい仕様で書き殴ると、旧環境でビルドできなくて死んでしまうから悩ましいけど

GUIを考えてWindows上で開発するなら、C# + XAMLというのも手だと思う

 

C#

C#C#だ!

 

COBOL

業界は、35歳未満のコボちゃんを求めているみたい

多分クリティカルな世界では当分滅ばないし、どこにも行く必要はないのでは

 

VB6

VB6からの移行は正直厳しそうだけど、現時点ではVB .NETじゃないかな

 

Perl

Perlはポエムだ。ここから何処かに行くのであれば、その方言を全て捨てる覚悟が必要だ

 

PHP

PHPに型を求めるのであれば、FBが公開しているHackにシフトするというのも一つかも。HHVM上で同居可能というのが強いと思う

 

Java

古いJavaならJava8を目指していく方が堅いかも。Javaは凄い人いっぱいいるから、先生には困らない気がする

トレンドを追い続ける覚悟があるなら、Scalaにシフトするのも良いかも知れない。Scalaといえば、だいくしーさんだよね

better JavaとしてKotlinもありなのかも知れないけど、この辺りはKotlinエバンジェリストか、Kotlinアイドルに聞いた方が良いのかな

 

JavaScript

敢えてのTypeScript。同居可能なのが強いと思う

毒は残っていても、現時点で型を持ち込むのであれば悪くない選択だと思う

 

Ruby

どこに向かえばいいのかな。巨大なシステムにしないなら、RoRで堅くまとめていくと良い気がする

 

Python

2.*と3.*の狭間は深いよね…

 

Object-C

可能であればSwiftで開発を始めた方が良い気がする

既にObject-Cで書かれたものを無理にSwiftにする必要はないと思っている

 

 

 

他にも言語があるのは知ってるけど、この辺で力尽きたでござる orz 

 

滅びることを覚悟したシステムであれば、将来的な移行・移植性を考えずに言語依存の書き方をバリバリすればいいと思うけど、蘇生術を施しいつか書き換えることを考えるなら、簡単で基本的な発想か言語に強依存しない考えで書いていきたいよね。

手段と方法を疎結合にするようなイメージで。

MavenプロジェクトをIntelliJ IDEA上で作る(Spring Boot編)

やあやあ。

Spring Bootを勉強する為に、Windows上にMaven 3な環境を準備してみたよ。

 

先ずは環境構築から。

 

1.Java8な環境を作る

    JDKのセットアップは以下参照

 

2.IntelliJ IDEAをインストールする

    Maven 3をIntelliJ IDEA上でkickすることを考えている時点でIntelliJ IDEAは入っている気がしますが、念の為さっくりと。
    IntelliJ IDEAを取得する。今回の使用方法であれば、Community Editionでカバーできます。

    参考文献

 

3.Maven 3をインストールする

    以下から取得する

 Maven – Download Apache Maven

    Windows環境であれば、Binary zipを入手します。
    解凍後、binディレクトリまでのパスを、環境変数PATHに登録する。

 

以上。

 


 

次は設定の引っ張り方。

試してみるプロジェクトは、以下のものです。

making/spring-boot-docker-blank · GitHub

 

コマンドから実行するのであれば

mvn archetype:generate -B^
-DarchetypeGroupId=am.ik.archetype^
-DarchetypeArtifactId=spring-boot-docker-blank-archetype^
-DarchetypeVersion=1.0.2^
-DgroupId=com.example^
-DartifactId=hajiboot^
-Dversion=1.0.0-SNAPSHOT

となるが、今回はこれをIntelliJ IDEA上でやってみる。

 

 IntelliJ IDEAを起動し、「Create New Project」を選択

f:id:white_raven:20150302112154p:plain

 

Maven」を選択

f:id:white_raven:20150302112221p:plain

 

Project SDKから、環境変数 JAVA_HOME に登録している、または任意の箇所に設置したJDKまでのパスを指定する。

f:id:white_raven:20150302112228p:plain

 

「Create from archetype」にチェックを入れて、「Add Archetype...」を押下する。

すると、「Add Archetype」ウインドウが表示される。

(ここで「Create from archetype」にチェックを入れていなくても、「Add Archetype」は可能)

f:id:white_raven:20150302112237p:plain

 

「Add Archetype」ウインドウには、コマンドで打ち込みたかった部分の、以下の箇所をテキストボックス内に入力する。その後、OK押下。

f:id:white_raven:20150302112246p:plain

 

すると、一覧にArchetypeが追加されている。

元にしたいArchetypeを選択し、「Next」を押下する。

この時に何かポップアップが出たら、上手く対処してください。

f:id:white_raven:20150302112252p:plain

 

「New Project」ウインドウが表示される。

f:id:white_raven:20150302112302p:plain

 

ここに、以下のように入力。入力後、Next押下。

f:id:white_raven:20150302112316p:plain

 

Mavenまでのパスが正しいかを確認し、各要所をチェック。

問題なければ「Next」押下。

f:id:white_raven:20150302112323p:plain

 

プロジェクト名称とプロジェクトの生成先を聞かれるので、上手く答える。

プロジェクト名称は、ArtifactIdと同じで良いと思う。

その後、「Finish」押下。

f:id:white_raven:20150302112332p:plain

 

この後、放っておくとプロジェクトが生成され、待ってるだけで出来上がります。

マシンパワーがそこそこ必要なので、低スペックマシンだと少し辛いかも。

 

私は第四世代のIntel Core i3の低電力版なモバイル環境で作成したので、少しイライラが募りましたが、一度プロジェクトが生成され切ってしまえば、ある程度の速度で触れるようになります。

 

以上です。

 

VirtualBox上のLubuntuとSSHでやり取りしたい

やあやあ。

VirtualBox上にLubuntuを入れてみたよ。

取り敢えず、hostとguestのLubuntu間をSSHでやり取りしたいので、その設定の覚書。

 

1.LubuntuにSSHをインストールする

 →sshdは起動時に立ち上がるようにしておく

 

2.VirtualBoxから、NATの設定

 ポートフォワーディングで、TCPプロトコルの22番ポートを開けておく

 

後はよしなに。

 

この「2」をついつい忘れちゃうんだよね。

 

ではでは。

VirtualBox上のLubuntuにGuest Additionsを入れる時の覚書

やあやあ。

超小型サーバを買って遊んでみようかなと思ったんだけど、色々思いとどまったのでVirtualBox上にLubuntu 14.10 64 bitをセットアップしてみたよ。

 

で、新たにセットアップしてからGuest Additionsを簡単に入れる手順の覚書をしておこうと思う。

 

$ sudo apt-get update

$ sudo apt-get install build-essential module-assistant

$ sudo m-a prepare

$ sudo apt-get install virtualbox-guest-dkms

 

以上!

 

 

今まで専用イメージ食わせてたけど、virtualbox-guest-dkmsを入れたら一発だと分かったので、その覚書。

色々楽になっていくなあ。

 

ではでは。