あるイベントの出店者側の言い間違いが面白かった
ノベルティグッズを配っているので、そういうと思ったのでしょうが、大きい声で
「アメニティ」
と叫んでました。
ちょっと、寒くなりました。
新潟市で個人でコンピュータ相手にシステム開発をしています。確実、安く、素早くをモットーにやっています。
システム開発の時に調べた技術を惜しみなく公開していきます。あまりよろしくない業者についての苦言も為に吐きます。
コンピュータにベッタリというのもどうかと思いますが、やはりこれからは、コンピュータのことを知らないよりは知っていたほうが良いと思いますよ。
2015年10月31日
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としたいと思います。
このあたりをちゃんと考えられるプロの人だったら一瞬でわかったり、あらかじめ長めにしたりするんでしょうね。
登録:
投稿 (Atom)