そもそも、ドッグフーディングなんて言葉があるのかしら?
自社開発した(ほとんどビジネスパートナーだより)アプリケーションを世の中に出す前に厳しくテストする必要はあると思いますが、自分たちで使いもせずに変なものは出せないといいテストだけし続けるのはどうかと思う。
気持ちはわかりますが、今のままでは、永久にリリースすることはできませんよぉ。
まずは、小さく始めてから育てるでいいじゃないですか?
現在は、このブラウザだけ、この端末だけターゲットですという縛りで。
新潟市で個人でコンピュータ相手にシステム開発をしています。確実、安く、素早くをモットーにやっています。
システム開発の時に調べた技術を惜しみなく公開していきます。あまりよろしくない業者についての苦言も為に吐きます。
コンピュータにベッタリというのもどうかと思いますが、やはりこれからは、コンピュータのことを知らないよりは知っていたほうが良いと思いますよ。
2015年10月29日
タブレッドで端末の向きが変わったのを検知する
iPadの向きが変わったことこののロジックで検知できます。
$(function() {
$(window).bind("orientationchange", function() {
if(Math.abs(window.orientation) === 90) {
alert("横向き");
}else {
alert("縦向き");
}
});
});
2015年10月16日
CakePHPでセッションがよく切れてしまうのを回避
CakePHPを使ってWebアプリケーションを運用していると特定の条件でセッション切れがよく発生します。(よく発生してはダメです…)
ページからリクエストした時にサーバーで処理が終わらないうちに再度、リクエストをするとCakePHP内でセッションが無いことになってエラーになってイました。
CakePHPのソースまで追ってみたら、セッションを管理しているファイルをReadした時にそのファイルが無いことになっていてダメだったようです。
この時は、セッション内容を持っているファイルをロックすることができなくてエラーになっていたのかと思っていました(いや、もしかするとそうなのかもしれない)
そのシステムを使っているお客様からURLの一覧から画面を複数連続で開くとセッションが頻繁に切れるようになったのでなんとかしてほしいという要望というかクレームが上がってきました。
再度、速い連続リクエストが原因でセッションが切れる問題を解決する記事が無いかちょっと調査したところ答えがありました。
WEB制作所インレットさんのサイトです。
対応策に3つのことをする必要があるのですが、(1)と(3)は、対応していたので、(2)の対応をすることにしました。
結論からいうと、セッション切れになることもなく、連続表示したページは全て正しく表示されました。
ただ、1点だけ腑に落ちないところがあります。
CakePHPのCore.php内のSessionの設定のろ頃でどこにセッションを作成するかの指定が効いていないようでした。
私の環境では、"cake"としているのでCakePHPのセッション用ディレクトリに作成されるはずのところが、Apacheのphp.confで指定されているパス(php_value)で指定しているディレクトリに作成されています。
1サーバーで複数のサイトを運用しているのでちょっと気持ち悪いですが、何か案がないか考えて見ようと思います。
※もしかすると、php_valueを各サイトのconfに書けば良いのかもしれないです。
この処理を追加します。
CakePHPにAjaxで連続リクエストするとダメなの?
ページからリクエストした時にサーバーで処理が終わらないうちに再度、リクエストをするとCakePHP内でセッションが無いことになってエラーになってイました。
CakePHPのソースまで追ってみたら、セッションを管理しているファイルをReadした時にそのファイルが無いことになっていてダメだったようです。
この時は、セッション内容を持っているファイルをロックすることができなくてエラーになっていたのかと思っていました(いや、もしかするとそうなのかもしれない)
そのシステムを使っているお客様からURLの一覧から画面を複数連続で開くとセッションが頻繁に切れるようになったのでなんとかしてほしいという要望というかクレームが上がってきました。
再度、速い連続リクエストが原因でセッションが切れる問題を解決する記事が無いかちょっと調査したところ答えがありました。
WEB制作所インレットさんのサイトです。
対応策に3つのことをする必要があるのですが、(1)と(3)は、対応していたので、(2)の対応をすることにしました。
結論からいうと、セッション切れになることもなく、連続表示したページは全て正しく表示されました。
ただ、1点だけ腑に落ちないところがあります。
CakePHPのCore.php内のSessionの設定のろ頃でどこにセッションを作成するかの指定が効いていないようでした。
私の環境では、"cake"としているのでCakePHPのセッション用ディレクトリに作成されるはずのところが、Apacheのphp.confで指定されているパス(php_value)で指定しているディレクトリに作成されています。
1サーバーで複数のサイトを運用しているのでちょっと気持ち悪いですが、何か案がないか考えて見ようと思います。
※もしかすると、php_valueを各サイトのconfに書けば良いのかもしれないです。
この処理を追加します。
if(!isset($_SESSION)) {
session_start();
}
関連記事CakePHPにAjaxで連続リクエストするとダメなの?
2015年10月4日
AWSのELBを使っている場合のタイムアウト対応
AWSを使ってシステム構築をしています。
今回、ファイルアップロードをしてデータ登録をする処理をつくったのですが、ある程度大きなファイルをアップロードするとHTTP Status 504のタイムアウトになってしまいました。
※実際のところはファイルのアップロードではなく、アップロードしたファイルの処理に時間がかかっています。
エラーになる場合は、60秒前に504ステータスが返ってきていました。
(504は、Webブラウザからのリクエストを受けたサーバーがされに別のサーバーにリクエストを送信した際に、別のサーバーからの応答が一定時間に返ってこないことを表しています。)
今回のシステムの構成は以下のようになっています。
[Webブラウザ] - [ELB] - [Webサーバ(Apache)]
Webサーバのタイムアウト時間は設定していないのでデフォルトの300秒らしいです。
で、60秒以内で504が返ってくるのはおかいいのでApacheではない。
てことは、504の意味を考えていると、ELBとWebサーバの間でしかないので、ELBの設定を確認したところ、「接続設定 アイドルタイムアウト: 60秒」という設定がありました。
で、これを編集し、Apacheと同じ300秒に変更してファイルアップロード処理をしてみたところ正常動作をしました。
めでたし、めでたし。
まぁ、もともと、このあたりの設定(ELBに限らず)とかは、全然やったことがなかったので新しい知識がついたということで大OKとしたいと思います。
このあたりをちゃんと考えられるプロの人だったら一瞬でわかったり、あらかじめ長めにしたりするんでしょうね。
今回、ファイルアップロードをしてデータ登録をする処理をつくったのですが、ある程度大きなファイルをアップロードするとHTTP Status 504のタイムアウトになってしまいました。
※実際のところはファイルのアップロードではなく、アップロードしたファイルの処理に時間がかかっています。
エラーになる場合は、60秒前に504ステータスが返ってきていました。
(504は、Webブラウザからのリクエストを受けたサーバーがされに別のサーバーにリクエストを送信した際に、別のサーバーからの応答が一定時間に返ってこないことを表しています。)
今回のシステムの構成は以下のようになっています。
[Webブラウザ] - [ELB] - [Webサーバ(Apache)]
Webサーバのタイムアウト時間は設定していないのでデフォルトの300秒らしいです。
で、60秒以内で504が返ってくるのはおかいいのでApacheではない。
てことは、504の意味を考えていると、ELBとWebサーバの間でしかないので、ELBの設定を確認したところ、「接続設定 アイドルタイムアウト: 60秒」という設定がありました。
で、これを編集し、Apacheと同じ300秒に変更してファイルアップロード処理をしてみたところ正常動作をしました。
めでたし、めでたし。
まぁ、もともと、このあたりの設定(ELBに限らず)とかは、全然やったことがなかったので新しい知識がついたということで大OKとしたいと思います。
このあたりをちゃんと考えられるプロの人だったら一瞬でわかったり、あらかじめ長めにしたりするんでしょうね。
2015年9月20日
Windows10とVirtualBox5.0とVagrantではまったの巻その2
以前の記事で、Windows10とVirtualBox 5.0は、正しく動作しないがあるという記事を書きました。
VirtualBox5.0.4をインストールすることで解決されているようなのでインストールしてみたら既存の仮想マシンが正しく動作しない場合があるという現象がありました。
具体的には、Guest Additions 5.0.4が使用できないという問題です。
それを解決する方法です。
ホストOS:Windows 10
ゲストOS:CentOS6.7 64bit版
VirtualBox5.0.4をインストールすることで解決されているようなのでインストールしてみたら既存の仮想マシンが正しく動作しない場合があるという現象がありました。
具体的には、Guest Additions 5.0.4が使用できないという問題です。
それを解決する方法です。
ホストOS:Windows 10
ゲストOS:CentOS6.7 64bit版
すでに作成されていたVirtualBoxの仮想マシンにGuest Additionsのバージョンが4.3.4がインストールされている場合、VirtualBox 5.0.4をインストールしているとGuest Additionsが正しく動作しないという問題があります。
VagrantのPluginの「vagrant-vbguest」をインストールしていると本来は、正しいバージョンの「Guest Additions」をインストールしてくれるのですが、なんだかと途中でエラーを起こしてインストールできていないようなのです。
グーグル先生に聞いてみるとLinuxのカーネルのバージョンが古いのが問題なので新しいものをインストールするようにというのが書いてありました。
※エラーメッセージにも「yum install kernel-devel-2.6.32-431.el6.x86_64」と表示されるので、その通りにしてみます。
グーグル先生に聞いた通りにやっている→うまくいかない
Error: Nothing to doとメセージがでる
これで新しいカーネルがインストールされるのでゲストOSを再起動すると新しいGuestAddionsがインストールされるはずです。
ですが、インストール自体がされません。
Qiitaでこの問題を解決している記事がありました。
Vagrantのフォルダ同期のエラーの対処
そもそも、yumでkernelのインストールを止めているようでした。
カーネルのアップグレードをする為には、「/etc/yum.conf」のカーネルを対象外にする(?)設定をコメントアウトする必要があるようです。
exclude=kernel*
↓
#exclude=kernel*
グーグル先生に聞いてみるとLinuxのカーネルのバージョンが古いのが問題なので新しいものをインストールするようにというのが書いてありました。
※エラーメッセージにも「yum install kernel-devel-2.6.32-431.el6.x86_64」と表示されるので、その通りにしてみます。
>yum install kernel-devel-2.6.32-431.el6.x86_64
言われたとおりにやってみる→なぜかうまくいかない
Error: Nothing to doとメセージがでる
>sudo yum install kernel kernel-devel言われたとおりにやってみる→なぜかうまくいかない
Error: Nothing to doとメセージがでる
グーグル先生に聞いた通りにやっている→うまくいかない
Error: Nothing to doとメセージがでる
ですが、インストール自体がされません。
Qiitaでこの問題を解決している記事がありました。
Vagrantのフォルダ同期のエラーの対処
そもそも、yumでkernelのインストールを止めているようでした。
カーネルのアップグレードをする為には、「/etc/yum.conf」のカーネルを対象外にする(?)設定をコメントアウトする必要があるようです。
exclude=kernel*
↓
#exclude=kernel*
これで、「sudo yum install kernel kernel-devel」をすると正しくインストールされます。
あとは、ゲストOSを再起動するだけです。
まとめると
- 同期フォルダが同期されなくなった場合、GuestAddionsのバージョンを疑う
- Vagrant pluginの「vagrant-vbguest」をインストールする
vagrant plugin install vagrant-vbguest - なぜか、「GuestAddions」のインストールに失敗する
Kernelのdevelがインストールされていない為、正しくコンパイルができない。 - kernel-develをインストールする
sudo yum install kernel kernel-devel
↓
インストールされない場合は、/etc/yum.confのexclude=kernel*をコメントアウトして再度、カーネルをインストールする - ゲストOSを再起動し、フォルダ共有ができるか確認する
できなかったら、別の問題なので解決方法を探す
これが、VagrantとVirtualBoxの最後のハマりどころになれば良いのですが…。
2015年9月7日
Google Chromeの機嫌が悪い←ごめんなさいChrome
多分そうなんですが、Google Chromeを45.0.2454.85m (64-bit)にバージョンアップしたら、頻繁に応答なしになってしまいます。
誰か何かヒントがありましたら教えて下さい。
もしかすると、ベータ版とかにすれば治るのかな?
一応PCの環境も書いておきます。
OS:Windows 10 Enterprise
メモリ:32GB
ディスク:SSD 256GB
インストールしているソフトウェアとの相性の問題だったようです。
IBMのインターネットバンキング専用のRapportというソフトウェアのバージョンが古かったのが問題だったようです。
Chrome45に対応してバージョンをインストールしたら問題なくなりました。
失礼しました。
もしかしてと思って、一旦アンインストールしたら調子良くなったので、もしかしたら新しいバージョンとか出てる?と思って見てみたら案の定リリースされていました。
とほほな感じです…。
誰か何かヒントがありましたら教えて下さい。
もしかすると、ベータ版とかにすれば治るのかな?
一応PCの環境も書いておきます。
OS:Windows 10 Enterprise
メモリ:32GB
ディスク:SSD 256GB
インストールしているソフトウェアとの相性の問題だったようです。
IBMのインターネットバンキング専用のRapportというソフトウェアのバージョンが古かったのが問題だったようです。
Chrome45に対応してバージョンをインストールしたら問題なくなりました。
失礼しました。
もしかしてと思って、一旦アンインストールしたら調子良くなったので、もしかしたら新しいバージョンとか出てる?と思って見てみたら案の定リリースされていました。
とほほな感じです…。
2015年9月6日
ScanSnap iX100A買ってみた
経費で落とす領収書とかを紙で保管しているのですが場所とったり、なくしたりするので電子化して管理したいと思ってました。
一応、複合機を持っているのでそれ使ってもできるのですがもっと簡単にする方法は無いかと探してました。
で、EvernoteのMarketでSCANSNAP EVERNOTE EDITION スキャナってのを販売していたのでちょっといろいろと調べてました。
49,800円!うーん、それほど高額なわけではないですがなんとか安く購入できないかな?と調べてたらSnapScap iX500と同じものであると。
すると、ScanSnap ix100というちょっと小さい手軽に持ち運べるほど小さくて安いのも発見。
結局、それほど頻繁に使うわけでもないのでお試し感覚にScanSnap iX100を購入することい決定しました。
まだほとんど触ってませんが、名刺をスキャン後に起動されるCardMinderがとても素晴らしかったです。
横向きの名刺を縦にスキャンしても横向きに変更してくれます。
一番いいと思ったのはOCRの機能です、氏名や氏名フリガナ、会社名部署、役職等ほぼ完璧に認識してくれます(100%ではありませんが)
※ちなみに自分の名刺は、グダグダになりました
スピードも申し分無いですよ。
名刺管理と領収書やレシートの管理に活躍してもらおうと思います。
あと、紙でもらった仕事の資料とかも同様です。
ScanSnap iX100(http://scansnap.fujitsu.com/jp/product/ix100/)
一応、複合機を持っているのでそれ使ってもできるのですがもっと簡単にする方法は無いかと探してました。
で、EvernoteのMarketでSCANSNAP EVERNOTE EDITION スキャナってのを販売していたのでちょっといろいろと調べてました。
49,800円!うーん、それほど高額なわけではないですがなんとか安く購入できないかな?と調べてたらSnapScap iX500と同じものであると。
すると、ScanSnap ix100というちょっと小さい手軽に持ち運べるほど小さくて安いのも発見。
結局、それほど頻繁に使うわけでもないのでお試し感覚にScanSnap iX100を購入することい決定しました。
まだほとんど触ってませんが、名刺をスキャン後に起動されるCardMinderがとても素晴らしかったです。
横向きの名刺を縦にスキャンしても横向きに変更してくれます。
一番いいと思ったのはOCRの機能です、氏名や氏名フリガナ、会社名部署、役職等ほぼ完璧に認識してくれます(100%ではありませんが)
※ちなみに自分の名刺は、グダグダになりました
スピードも申し分無いですよ。
名刺管理と領収書やレシートの管理に活躍してもらおうと思います。
あと、紙でもらった仕事の資料とかも同様です。
ScanSnap iX100(http://scansnap.fujitsu.com/jp/product/ix100/)
登録:
投稿 (Atom)