Archit!! RSSフィード Twitter

2017-02-22

Bootstrapのform付モーダルをiOS状で表示するには

Bootstrapのモーダルはすごく便利。

ただ、form付モーダルをiOS上で表示させる際には注意が必要。入力部品を選択し、バーチャルキーボードを表示させたが最後、画面をスクロールさせるとモーダルじゃなくて背景の画面がスクロールしてしまう。これは、Bootstrapのバグで、ちゃんと公式サイトにも記述がある。そこには解決策も書かれていて、手動でモーダルのCSSを「position: absolute 」に変更してあげればいいらしい。ということで、モーダルを表示するJavaScriptを以下のように記述すれば解決した。

$("#mymodal").on("show.bs.modal", function(e) {
	if(navigator.userAgent.match(/iPhone|iPad|iPod/i) ) {
		$(".modal").css({
			"position":"absolute",
			"marginTop": $(window).scrollTop() + "px",
			"bottom":"auto",
			"width":"95%"
		});
	}
});

2017-01-24

Vagrant+CentOS7でネットワークの自動再起動

Vagrant+CentOS7でのネットワーク不具合 - Archit!!の続き。

ネットワークを自動再起動する方法を見つけたのでメモ。Vagrantのprovision機能を使えばいい。Vagrantfileに以下の内容を追記。

config.vm.provision "network-restart", 
	type: "shell",
	run: "always",
	inline: "sudo service network restart"

ポイントは「run: "always"」とすること。こうすることで、up時に常にinlineで記述された、コマンドが実行される。

2017-01-20

Vagrant+CentOS7でのネットワーク不具合

Vagrant+VirualBox+bento/centos-7.2でネットワークの不具合があるので対処法をメモ。

VagrantVirtualBoxも最新のものを使っている。現象としては、Vagrantfileに

config.vm.network "private_network", ip: "192.168.33.10"

と記述しているのに、ホスト側からゲスト(192.168.33.10)へのpingタイムアウトしてしまうというもの。

f:id:architshin:20170120193056p:image:left:w360

実際、SSHログインしてネットワーク設定を見てみると、192.168.33.10に割り当てられたNICが存在しない。
vagrant destroy
して再度upなど、様々試して見たけど、全く効果がない。これ、CentOS6系では全く問題ない。いろいろ調べてみると、CentOSは7からネットワークの扱いが変更になったこと(ネットワークだけではないけど)が原因らしい。実際、CentOS7、CentOS7.1で試したが現象は7.2と同様だった。

最終的にたどり着いたのが、ここのページ。どうもバグらしい。このページのやり取りの中に書かれているが、

service network restart

ネットワーク再起動するといいらしい。実際にやってみた。

f:id:architshin:20170120194011p:image:left:w360

確かに、NICがひとつ増えて、192.168.33.10が割り当てられている。これで、無事pingも通るようになった。

ただ、これ、仮想マシン再起動するたびに行わないといけない。次はupどきに自動で上記コマンドが実行される方法を探してみようっと。

2016-10-19

Gitでリモートmasterブランチの巻き戻し

GitHubの有料のプライベートリポジトリ数が無制限になったのを機に、いままでVPS上で管理していたSubversionリポジトリをちまちまGitHubに移している。幸い、インターネット上でアクセス可能なSubversionリポジトリなら、GitHub自動でインポートしてくれる機能がある。これを使えば、簡単にリポジトリの移管ができる。しかも、コミット履歴や、タグ、ブランチもそのまま移管してくれて、非常に便利。

ところで、あるプロジェクトのリポジトリを移管して少し困ったことが起こった。簡単に言うと、リモート上のmasterブランチをあるコミットポイントまで巻き戻したいのだ。これだけなら簡単なのだが、現時点のソースコードも別ブランチとして残しておきたいのだ。図にすると、

f:id:architshin:20161019151514p:image:w360

の状態を

f:id:architshin:20161019155620p:image:w360

にしたいのだ。手順としては、以下のようになる。

  1. ブランチを作成してpushする。この時点で、ローカルもリモートも
    f:id:architshin:20161019153431p:image:w360
    のようになる。
  2. リモートのmasterブランチを削除する。この時点で、リモートは
    f:id:architshin:20161019153105p:image:w360
    のようにhogeブランチのみになる。
  3. ローカル上でmasterブランチを指定のポイントまで巻き戻す。これは、例えば、指定ポイントのコミットIDが「84fds587」とするなら、
    % git reset 84fds587
    で可能。これで、ローカル上では
    f:id:architshin:20161019155759p:image:w360
    が実現できたことになる。
  4. 最後に、このmasterブランチをリモートにpushすれば、できあがり。

Gitでリモートリポジトリを巻き戻す - @tmtms のメモの記事が参考になった。

2016-04-08

MacでPleiades All in One Eclipse Mars

最新版のEclipse Mars(4.5)を使おうと思って、ダウンロードしてみた。Windows版はPleiades All in OneのFull Editionを使用すれば問題ない。Mac版は自分で作らないといけないので、MacでPleiades All in One Eclipse - Archit!!の方法でやろうとしたら、Marsではできない。というのは、MacMarstarファイルをダウンロードして解凍すると、なんと、フォルダではなく.appファイルになるのだ。

そこで、慌てずに、.appファイルを右クリックし、「パッケージの内容を表示」を選択して、中身を見てみると、なんのことはない、今までフォルダになっているのがそのまま.app内に入っただけ。そのまま

Contents > Eclipse

と中に入っていけば、「dropins」、「features」、「plugins」と各フォルダがある。これらのフォルダに対して、MacでPleiades All in One Eclipse - Archit!!の方法で、pleiades内のplugins、features、dropinsのフォルダ内のものをコピーする。さらに、今回からは「configuration」フォルダのものもコピーする。

もう1点注意しなければならないのは、eclipse.iniの記述。以下の3点を行う。

  1. 最終行に以下の2行を追記する。
    -Xverify:none
    -javaagent:../Eclipse/dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
  2. 起動スプラッシュPleiadesのものに変更するために、以下の2行をコメントアウトする。
    #-showsplash
    #org.eclipse.platform
  3. ファイルのエンコードも指定しておこう。
    -Dfile.encoding=UTF-8

設定後、もし心配なら、以下のコマンドでクリーン起動を行っておこう。

/Applications/Eclipse.app/Contents/MacOS/eclipse -clean