ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

プログラミング

とりあずは動作するようになった機能

半月ほど前に書いたことの続き。 photo credit: Kasaa via photopin cc Ajaxでファイルのダウンロードを指示する処理を作っていることを以前書いた。 Ajaxでファイルのダウンロード - ソフトウェア開発者の日常 ポーリング部分を作っていなかったので作成し…

日経ソフトウェア 2012年12月号感想

読みたいところがあまりなかった。 photo credit: marcp_dmoz via photopin cc 特集1 HTML5超便利テク30選 色々なテクニックが、1ページ位にまとまっていて、自分が知らなかったことがすぐ見られる。 Windowsのメモ帳がBOMをつける場合について載っているの…

Ajaxでファイルのダウンロード

予想していない方法でできた。 photo credit: Kasaa via photopin cc ことの発端 以前、 1.AjaxでCSVファイル生成のプログラムを起動する。 2.CSVファイルが生成されるまでポーリングする。 3.生成されたので、Ajaxでファイルダウンロードを呼び出して、ダウ…

Socket通信プログラムを久しぶりに作る

7年~8年ぶりくらいになるのかな。 photo credit: rileyporter via photopin cc 開発環境の構築が終わり、C言語で書いたプログラムもgccでコンパイルできたので、Socket通信のプログラムを書き始めた。 いきなりは書けないので、サンプルを見つけて順番に試…

PHP:非同期処理の方法を調べた

出来たのはいいが、わからない点もある。 photo credit: Thorbard via photopin cc ことの発端 PHPでCSVファイルを生成して、ダウンロードを行うプログラムがあるが、データの取得に時間がかかりすぎて、ブラウザが待機時間を過ぎて、タイムアウトしてしまう…

jQuery:配列の値を取得する方法

別の方法では、上手くいかなかった。 photo credit: kohtzy via photopin cc name属性が配列になっている要素から、値を取得して、全て値が設定されていなかったら、警告を表示したかったので、ループしながら値を取得する方法を調べた。 調べた結果、以下の…

リリース前の総合試験は、注意深く実施する

改修した部分以外にも影響があるかもしれないということを忘れてはいけない。 photo credit: Stuck in Customs via photopin cc 改修が終わって、修正漏れがないかの確認も終了。 改めて通しで試験をする際に、改修していない機能を試したら、なぜか2回動作…

jQuery:要素の存在をチェックする方法

以前読んだ覚えがあったので、調べたら簡単な方法だった。 photo credit: Ezu via photopin cc プログラムをデバッグしていたら、存在しない要素から値を取得しようとして、動作がおかしくなっていることに気がついた。 以前jQueryでできることを調べていた…

正規表現が苦手

勉強して試していけば、理解できると思ってはいるけど、着手できていない。 photo credit: See-ming Lee 李思明 SML via photopin cc 英大文字・英小文字・数字のみで最大10桁までというチェックが必要になったので、Ja vaScriptの正規表現で実現する方法を…

PHP:¥マークの判定動作ではまった

久しぶりに¥マークではまった。何年ぶりくらいだろ。 photo credit: Kaptain Kobold via photopin cc ことの発端 ¥マークが含まれているかチェックするために、 $str = "入金予定"; $pos = strpos( $str, "¥¥"); if ( $pos !== false ) { echo("a"); } とし…

日経ソフトウェア 2012年9月号感想

特集1は読みごたえある内容だった。 photo credit: - Dave Morrow - via photo pin cc 特集1 JavaScriptの「わからない」を解消する! Part1はわかる内容だが、Part2/Part3になると、今まで知らなかったことが多くて、勉強になった。 この辺の内容は、どの本…

昔のプログラムを修正してわかること その2

今の自分の進化を感じるけど、過去の自分の未熟さに反省する。 photo credit: nyuhuhuu via photo pin cc 以前以下の記事を書いたが、プログラムの改修が終わったので、改めて気がついたことをまとめる。 昔のプログラムを修正してわかること - ソフトウェア…

処理の流れを勘違いしていると、現象がわからなくなる

わかると、なんだそんなことかだけど。 photo credit: mrbill via photo pin cc 現象 セッション変数の値を消すために、 unset($_SESSION["val1]); としているが、同じセッション変数名を使っている別の画面に遷移すると、値が保持されたままになっている。 …

jQuery:値を消す方法

2番目に試した方法で目的を果たせた。 photo credit: nlogax via photo pin cc ちょっと書き方を悩んだけど $('#button').click(function(){ $('#val_a').val(""); }); で値消えた。 最初に試して駄目だったのは $('#val_a').val = ""; と書いていた。 試せ…

昔のプログラムを修正してわかること

過去の自分に感心したり、なんでこんな風に作ったんだと嘆いたりいろいろある。 photo credit: slworking2 via photo pin cc 最近のこと 以前作った作ったシステムの改修を受注したので、プログラム見て、どのように修正すればいいか確認しているが、ところ…

SQL:COALESCEを使って、NULLを0に置き換える

SQLは使えば使うほど、奥の深さがわかってくる。 photo credit: kogakure via photo pin cc SELECTした結果で、数値項目を必ず0にする方法 PostgreSQLでは、COALESCEを使えばいいということがわかった。 SELECT table_a.id_a, table_a.id_b, COALESCE(table_…

SQL:日付範囲の比較で四苦八苦した

考え始めたときは、CASE文を使うとは思っていなかった。 photo credit: therefromhere via photo pin cc ことの発端 期間の判定で、6/1~7/15の間に今日の日付が入っているか判定するのは、SQLのWHEREで 6/1 <= 今日の年月 AND 今日の年月 <= 7/15 と書けば…

PHP:セッションのタイムアウトがよくわからない

session関係の設定をして気がついたこと。 photo credit: Ian-S via photo pin cc ことの発端 Webのシステムになって、ログインして放置しているとセッションが切れるんだろうけど、実際どれくらいの時間で切れるんだろうという話になったので試してみた。 …

PHP:OLE経由でExcelファイルを扱うときの注意点

当たり前といえば、当たり前なんだけど。 photo credit: Till Zoltán via photo pin cc Excelで作られたシステムからデータを抜き出して、データベースに登録するプログラムを作っている最中に気がついたこと2点。 1.ボタンの貼り付けられているセルからは、…

JavaScript:子ウィンドウから親ウィンドウを再読み込みさせる方法

2018/6/29 jQueryを使う方法は動作しないので、訂正して取り消します。 会社で知らない人がいたので、教えてあげた。 photo credit: Dustin Diaz via photo pin cc ことの起こり Webの画面では、新規入力をしようとすると、別ウィンドウ=子ウィンドウが開い…

PHP:月末の日付の求め方

最近もわからなくなって、昔のソースコードを探してた。 photo credit: pvera via photo pin cc プログラムを作っていると、データを抽出するときに月末の日付が欲しいことがある。 if文かSQLの条件で、 日付データ < 2012/8/1 とすればいいのはわかっている…

プログラムでメール送信失敗を判定して、別のメールアドレスに送りなおすことができるか

考えてみたけれど、簡単には出来ないという結果になった。 photo credit: Éole via photo pin cc なぜそんなことを考えたのか お客さんから、 「プログラムから添付ファイル付きメールを送ると、添付ファイルの容量が大きいために受け取れない人がいる。 そ…

プログラミングは好き

考えをまとめるのは難しいな。 photo credit: Jürg via photo pin cc やまもとさをんさん(@sawonya)のツイートに対して以下の反応をしたが、このツイートするまでに2回書き直している。 @sawonya プログラミングは好きですが、好きで仕方がないというレベ…

jQuery:一番便利だと思う場面

今日、jQueryでコードを少しだけ書いて、改めて便利だと思った点。 photo credit: "Cowboy" Ben Alman via photo pin cc ラジオボタンで、選択を切り替えると同時に検索を実行したいと要望があったので対応したが、jQueryを使わなければ、ラジオボタンのタグ…

プログラムのデバッグ作業時は、気分転換と視点変更が必要

始業ちょうどにお客さんから連絡があって、調べ始めたのはいいがなかなか原因がわからず苦労した。 photo credit: Jaypeg via photo pin cc 原因は、同一日付で異なる宛先に対して複数処理していると、最後に取得したデータで上書きしてしまい、必要なデータ…

あわただしいときこそ、落ち着いた確認が必要

バグを見つけて修正するのはいいが、慌てているのでミスをしやすい。 Visual Basic で、最後のデータまで繰り返すwhileループを書いていたが、最初のデータしか処理されない。 何度試しても同じなので、よくよく見たら、ループ内で、whileの条件に使っている…

ブログに載せるソースコードを見やすくしたくて、サービスを探した

たまにソースコードをブログに載せているが、タブが無効になってインデントされていない。 他のブログでは、色分けやインデント、行番号の表示されている。 調べたら、JavaScriptを追加して上記のことをしているらしい。 はてなブログでは、JavaScriptの追加…

PHP:integerの最大値はいくつか

PHPは宣言なしで変数が使えるので、変数に整数が代入されたらinteger型になる。 integer型なら、上限があるはずだと思って調べたら、integer型の上限を超えたらfloatになると書いてある。 以下のコードで確かめたら、確かにfloatになっていた。 "; } ?> int(…

慣れていない環境というだけで、思考が鈍っていた

FreeBSDサーバで動作しているPHPの環境で、あるライブラリを動作させるためにinclude_pathへのパスの追加が必要になったので、php.iniを編集しようとしたら、リードオンリーになっていた。 自分で設置したわけではないので、なぜリードオンリーになっていた…

PHP:メモリの解放は重要

お客さんから連絡があって、システムを確認するとブラウザの表示が真っ白。 何が起きたかと思い調べていたら、MDB2で1GB以上のメモリを確保しようとして、エラーが出力されてるようになった。 原因調査 1画面で10項目以上の件数データを表示しているが、1個…