BLOGS

4D ブログ

warning: file_get_contents(http://www.telize.com/geoip/54.198.143.210) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/www.4d.com/docs/includes/common.inc(1762) : eval()'d code on line 4.
24/02/2016

デザインモードのデータベース設定画面には,『非動作プロセスのタイムアウト』という項目があります。ドキュメントの説明文が簡潔(活動していないWebプロセスを閉じるための最大タイムアウト時間)であり,v13以降,自動セッション管理というメカニズムも導入されたため,タイムアウトの役割がわかりにくいと感じるかもしれません。

 

v12以前,タイムアウトは,SET WEB TIMEOUTで設定することができました。このコマンドは,v13で廃止され,WEB SET OPTIONに引き継がれました。 

 

v12(コンテキストモードが存在した最後のバージョン)では,タイムアウトにより,Webコンテキストの持続時間が決められました。言い換えるならば,非コンテキストモードには,タイムアウトが適用されませんでした。v13で導入された自動セッション管理は,従来のコンテキストモード(のセッション管理システム)に代わるものです。ですから,非動作プロセスのタイムアウトは,自動セッション管理によって開始されたWebプロセスにだけ適用されます。

 

セッション管理されてないWebプロセスは,メソッド終了またはアボート後,自然に消滅してゆきます。プロセスは,しばらく『仮死状態』になるかもしれませんが,その時間は非動作プロセスのタイムアウト設定と無関係です。


24/02/2016

Mac版の4Dおよび4D Serverは,32ビット版がCarbon,64ビット版がCocoaアプリケーションです。開発部は,これまで段階的にソースコードをCocoaで書き換えてきました。Cocoa版の4Dは,原則的にCarbon版の振る舞いを忠実に再現していますが,実際のところ,Carbonよりも安定しており,全般的な操作感も快適です。

 

関連記事 

 

検証により,下記の問題も,Cocoa版の4Dでは発生しないことがわかりました。つまり,実際にはCarbonフレームワークの不具合でした。

 

  • フルスクリーンモードでメニューバーにアクセスした場合,ウインドウのタイトルバーが下方に移動しない問題 
     
  • ウインドウの一部が画面の左にはみ出ている場合,右上のリサイズハンドルで縮小しようとすると,逆にウインドウの幅が増大する問題
 

上記は,いずれも4D側の修正が困難であるため,Standard Behaviour(仕様上,想定される残念な振る舞い)という扱いになります。


16/02/2016

住所や電話番号などの情報を全角文字で管理しているアプリケーションは,非Unicodeのエンコーディングに文字列を変換する場合,特別な配慮が必要かもしれません。Unicodeには,よく似た全角文字が定義されており,そのすべてがShift_JISに変換できるわけではないからです。具体的には,下記のようなUnicode文字が存在することに注意を払う必要があります。

 

 

Read more

16/02/2016

 4D v15.1 Hotfix2を公開しました。

Read more

12/02/2016

4DのWebサーバーにHTTPSでアクセスしたところ,SSLに関する警告がブラウザに表示されるようであれば,セキュリティ設定やSSLサーバー証明書を見直す必要があるかもしれません。この記事では,HTTPSサーバーの設定について説明しています。

 

関連記事主要ブラウザのセキュリティ強化でHTTPSエラー?!

 

Read more

12/02/2016

Windowsプラットフォームのシステム管理者は,イベントビューアーでさまざまなイベントログを調べることがあります。4Dで作成されたアプリケーションは,4D自体が書き込む内容に加え,LOG EVENTコマンドで任意の文字列をイベントログに書き込むことができます。しかし,実際にログをビューアーで開いてみると,下記のようなメッセージが表示され,戸惑うことがあるかもしれません。

 

ソース "4D Application" からのイベント ID 2 の説明が見つかりません。このイベントを発生させるコンポーネントがローカルコンピューターにインストールされていないか,インストールが壊れています。ローカルコンピューターにコンポーネントをインストールするか,コンポーネントを修復してください。

結論からいえば,こうしたメッセージがビューアーに表示されたとしても,特に問題はありませんし,何か重要な情報が失われているわけでもありません。この記事では,4Dのイベントログについて簡単に説明してます。

 

Read more

08/02/2016

ドキュメントに記載されているように,Stringが実数をテキストへと変換するアルゴリズムは,v14R3以降,有効数字13桁に基づいて計算されています。以前のバージョンでは,15桁でした。具体的には,下記のようなコードを実行した場合に結果が違います。

 

String(Num("20160206125401")) //14桁


v14
: "20160206125401"

v15: "2.016020612540e+13"

 

同様の『丸め処理』は,メソッドエディター,4Dタグなどにも適用されます。

 

桁数が減らされたのは,実数からテキストの変換アルゴリズムが関係する処理だけであり,実数の内部保存形式や演算処理は,引き続き15桁(64ビット)であることに留意してください。

 

関連記事: 実数型の計算


29/01/2016

クライアント/サーバー版の4Dは,実行中にシステムがスリープ状態になると,基本的にネットワーク接続が失われ,再起動(クライアント側であれば再接続のこと)が必要となります。以前の記事で言及したように,新ネットワークレイヤーは,将来的にスリープを察知してセッション情報を保持・復元できるようになることが目標に設定されていますが,現時点で完成度は『97%』となっており,利用できるようになるのは,最速でも15R4になる予定です。この記事では,スリープの検出に関連したMacの情報を取り上げています。

 

Read more

28/01/2016

SQL EXECUTEを使用すれば,SQLコマンドを実行し,結果セットを変数に受け取ることができます。接続相手がおおきなテーブルであれば,データを取り出すために,フィールド数に対応できるだけのローカル変数を用意することになります。

 

例:


SQL EXECUTE($query;$mySqlVar_1;$mySqlVar_2;…;$mySqlVar_170)

このように,大量のローカル変数を使用するメソッドは,コンパイルに失敗することあるかもしれません。エラーメッセージは『ローカル変数の合計サイズが64KBを超えています』というものです。

 

v15以降,コンパイラーが処理できるローカル変数の合計サイズ上限は,64KBとなっています。以前のバージョンでは,32KBでした。もちろん,そのようなメソッドを実行する時には,プロセスのスタックサイズにも余裕を持たせるようにしてください。

 

注記: 32*1024バイトといったスタックサイズが推奨されていた時期もありました。現行バージョンでは,New processに『0』を渡すことが推奨されています。

 


28/01/2016

TeamViewer 11で4Dを遠隔地から操作する場合,QuickConnectが有効にされていないことを確認してください。この機能が働いている場合,QuickConnectボタンがすべてのウインドウに追加され,結果的にプロパティリストなどのパレットウインドウを移動することができなくなってしまうことが報告されています。

 

関連記事: https://rizonesoft.com/