AWS上で稼働していたWindowsServer2012が応答しなくなりました

AWSのダッシュボードを確認

ステータスチェックが1/2で失敗していました

これは、OSの起動画面(Windowsを開始しています的な部分)で失敗している状態らしいです

スクリーンショット 2016-03-01 09.47.16

自動生成された代替テキスト: EC2 Management Console X 、 -- - 」 日 https://ap-northeast-l .console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1 #lnstances:sort=instanceld ← プ ラ イ バ シ ー ポ リ シ ー う c ☆ 0 EC2 ダ ッ シ ュ ボ ー ド イ ベ ン ト レ ポ - ト 制 限 Cél イ ン ス タ ン ス ー イ ン ス タ ン ス サ ー ビ ス イ ン ス タ ン ス の 作 成 接 続 Q タ グ や 属 性 に よ る フ ィ ル タ 、 ア ク シ ョ ン ま た は キ ー ワ ー ド に よ る 検 索 w 己 忸 東 京 サ ポ ー ト 5 個 中 1 ~ 5 ス ポ ッ ト リ ク エ ス ト リ ザ - ブ ド イ ン ス タ ン ス コ マ ン ド 専 有 ホ ス ト ト イ メ ー ジ バ ン ド ル タ ス ク [9] ELASTIC BLOCK STORE ボ リ ュ - ム ス ナ ッ プ シ ョ ッ ト ネ ッ ト ワ ー ク & セ キ ュ リ テ ィ セ キ ュ リ テ ィ グ ル - プ Elastic 旧 プ レ イ ス メ ン ト グ ル - プ キ - ペ ア ネ ッ ト ワ - ク イ ン タ - フ ェ イ ス 凵 WinServer20. JPSA WinServer20 WinServer2012 イ ン ス タ ン ス ト 62f44b7b ト 88a7b091 ト 95b53967 i-b7f04fae ト 7d671ee イ ン ス タ ン ス タ ・ mi び 0 t2.nano mi び 0 m ー 0 mi び 0 ア ベ イ ラ ビ リ テ ィ ap-northeast-lc ap-northeast-la ap-northeast-la ap-northeast lc ap-northeast-lc イ ン ス タ ン ス の れ ・ stopped 0 stopped 0 ・ stopped ス テ ー タ ス チ ェ 朝 2 ′ 2 の チ ェ 。 1 メ 2 の チ ェ ア フ ー ム の ス テ - な し ン な し な し バ ブ リ ッ ク DNS ec2-54-178-138-11 ec2 54-92-125-19 。 イ ン ス タ ン ス : い - b7f f se Ⅳ e 012New ) 説 明 日 a 0 ー P : .9212519 タ グ ス テ - タ ス チ ェ ッ ク イ ン ス タ ン ス イ ン ス タ ン ス の 状 態 イ ン ス タ ン ス タ イ プ プ ラ イ ベ ー ト DNS モ ニ タ リ ン グ b724 ね e t2.mcro バ ブ リ ッ ク DNS バ ブ リ ッ ク 旧 E 0 旧 ア ベ イ ラ ビ リ テ ィ ー ゾ ー ン 口 一 ド ノ ( ラ ン シ ン グ ロ - ド バ ラ ン サ - 費 フ ィ ー ド バ ッ ク ゆ 72 1 44 p-no heas 1 .comoute.intemal 2 巧 92 新 2 19 陟 no 臧 heas ト 1.com/ute.amazona、VS.COm 5 9212 19 5 9212 19 a 陟 no 市 le t - lc 0 日 本 語 @ 2 〔 8 - 2016 , Amazon Web Services,Inc. or its a ⅱ は s. All rights reserved. 利 用 規 約

システムログで具体的なエラーを確認

Difficulty detecting PV driver details for Console Output」のメッセージが出ています

スクリーンショット 2016-03-01 11.07.17のコピー

エラーメッセージで検索すると、docs.awsにそれらしいの記事が見つかりました

スクリーンショット 2016-03-07 15.56.33

WindowsServerの機能でAWS用のネットワークデバイスが無効にされてしまった可能性があるそうです

自動生成された代替テキスト: ← う C PV ド ラ イ バ の ト ラ ブ ル シ ュ X 、 = -- 」 [ 」 docs.aws.amazon.com/oa」p/AWSEC2/latest/WindowsGuide/pvdrivers-troubleshooting.html amazon webservices 日 本 語 ☆ 0 コ ン ソ ー ル に サ イ ン イ ン す る Amazon Elastic Compute Cloud M に 「 0S0 代 Windows イ ン ス タ ン ス 用 ユ ー ザ ー ガ ド キ ュ メ ン ト 一 本 ガ イ ド AWS Documentation Amazon EQ User Guide fo 「 Microsoft Windows Instances 第 Amazon EC2 イ ン ス タ ン ス 第 Windows イ ン ス タ ン ス の ま 殳 定 準 { 反 想 化 ド ラ イ バ 第 PV ド ラ イ バ の ト ラ ブ ル シ ュ ー テ ィ ン グ PV ド ラ イ バ の ト ラ ブ ル シ ュ ー テ ィ ン グ こ の ト ピ ッ ク で は 、 Amazon EC2PV ド ラ イ バ で 発 生 す る 可 能 性 が あ る 一 般 的 な 問 題 の 解 決 策 に つ い て 説 明 し ま す 。 目 次 WindowsServer2012 R2 で イ ン ス タ ン ス の 再 起 動 後 に ネ ッ ト ワ ー ク お よ び ス ト レ ー ジ と の 接 続 が 失 わ れ る ・ TCP オ フ ロ ー ド 時 刻 同 期 0 Amazon EC2 と は ロ セ ッ ト ア ッ プ ロ は じ め に ロ ベ ス ト プ ラ ク テ ィ ス Windows se Ⅳ e 「 2012 R2 で イ ン ス タ ン ス の 再 起 動 後 に ネ ッ ト ワ ー ク お よ び ス ト レ ー ジ と の 接 続 が 失 わ 0 チ ュ ー ト リ ア ル 0 Amazo n マ シ ン イ メ ー ジ 2014 年 9 月 10 日 よ り 前 に 使 用 可 能 に な っ た WindowsSe Ⅳ er2012 R2Amazon マ シ ン イ メ ー ジ (AMI) で は 、 イ ン 0 イ ン ス タ ン ス ス タ ン ス の 再 起 動 後 に ネ ッ ト ワ ー ク お よ び ス ト し 一 ジ と の 接 続 が 失 わ れ る こ と が あ り ま す 。 AWS マ ネ ジ メ ン ト コ ン ソ 0 イ ン ス タ ン ス タ イ プ ー ル の シ ス テ ム ロ グ に "DifficultydetectingPVdriverdetailsforConsoleOutput" と い う エ ラ ー が 見 つ か り ま す 。 こ の 接 続 損 失 は WindowsSe Ⅳ er2012R2 の プ ラ グ ア ン ド プ レ イ ク リ ー ン ア ッ プ 機 能 に よ っ て 発 生 し ま す 。 こ れ は 、 30 0 イ ン ス タ ン ス 購 入 オ プ シ ョ ン 日 ご と に 非 ア ク テ イ プ な シ ス テ ム デ バ イ ス を ス キ ャ ン し て 無 効 に す る 機 能 で す 。 こ の 機 能 は EC2 ネ ッ ト ワ ー ク デ バ イ 0 イ ン ス タ ン ス の ラ イ フ サ イ ク ル ス を 非 ア ク テ イ プ と 誤 認 し て 、 シ ス テ ム か ら 削 除 し ま す 。 こ の 状 況 に な る と 、 イ ン ス タ ン ス の 再 起 動 後 に ネ ッ ト ワ ー ク 接 続 が 失 わ れ ま す 。 0 イ ン ス タ ン ス の 設 定 0 イ ン ス タ ン ス メ タ テ ー タ と こ の 問 題 の 影 響 を 受 け る 可 能 性 の あ る シ ス テ ム に 対 し て 、 イ ン プ し 一 ス ド ラ イ バ ア ッ プ グ し 一 ド を ダ ウ ン ロ ー ド し て ユ - ザ - テ - タ 実 行 で き ま す 。 イ ン プ し 一 ス ド ラ イ バ ア ッ プ グ し 一 ド を 実 行 で き な い 場 合 は 、 ヘ ル バ ー ス ク リ プ ト を 実 行 で き ま す 。 ス ク リ プ ト は イ ン ス タ ン ス が こ の 問 題 の 影 響 を 受 け て い る か ど う か を 調 べ ま す 。 影 響 を 受 け て い て 、 Amazon EC2 ネ 0 EC2Config の 使 用 ッ ト ワ ー ク デ バ イ ス が 削 除 さ れ て い な い 場 合 、 ス ク リ プ ト は プ ラ グ ア ン ド プ し イ ク リ ー ン ア ッ プ ス キ ャ ン を 無 効 に し 0 PV ド ラ イ バ 利 用 規 約 一 ◎ 2015 ′ Amazon Web Services,Inc. or な affiliates. All rights reserved.

記事に書かれている対処法1に従い、元々使用していたt2.microからc3へ変更して起動を試みました

起動に成功

スクリーンショット 2016-03-01 11.43.26自動生成された代替テキスト: ス テ - タ ス チ ェ ッ ク に 失 敗 EC2 Management Console X ー Windows イ ン ス タ ン ス の ト X 並 AWS Developer For し ms: PV ド ラ イ バ の ト ラ ブ ル シ ュ x ← ア フ ー ム の 冫 - フ う c 日 https://ap-northeast-l .console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1 #lnstances:sort=instanceld ☆ 0 EC2 ダ ッ シ ュ ボ ー ド イ ベ ン ト レ ポ - ト 制 限 Cél イ ン ス タ ン ス ー イ ン ス タ ン ス サ ー ビ ス イ ン ス タ ン ス の 作 成 接 続 Q タ グ や 属 性 に よ る フ ィ ル タ 、 ア ク シ ョ ン ま た は キ ー ワ ー ド に よ る 検 索 w 己 忸 東 京 サ ポ ー ト 0 0 5 個 中 1 ~ 5 ス テ ー タ ス チ ェ ッ ク ス ポ ッ ト リ ク エ ス ト リ ザ - ブ ド イ ン ス タ ン ス コ マ ン ド 専 有 ホ ス ト ト イ メ ー ジ バ ン ド ル タ ス ク [9] ELASTIC BLOCK STORE ボ リ ュ - ム ス ナ ッ プ シ ョ ッ ト ネ ッ ト ワ ー ク & セ キ ュ リ テ ィ セ キ ュ リ テ ィ グ ル - プ Elastic 旧 プ レ イ ス メ ン ト グ ル - プ キ - ペ ア ネ ッ ト ワ - ク イ ン タ ェ イ ス 凵 WinServer2012copy JPSA WinServer2012New WinServer2012 イ ン ス タ ン ス ト 62f44b7b ト 88a7b091 ト 95b53967 i-b7f04fae ト 7d671ee イ ン ス タ ン ス タ ・ mi び 0 t2.nano mi び 0 c3 ね 「 ge mi び 0 ア ベ イ ラ ビ リ テ ィ ap-northeast-lc ap-northeast-la ap-northeast-la ap-northeast-lc ap-northeast-lc イ ン ス タ ン ス の れ ・ stopped ・ stopped 0 ・ stopped 朝 2 ′ 2 の チ ェ ッ ク に 合 格 し ま し た 朝 2 ′ 2 の チ ェ ッ ク に 合 格 し ま し た な し な し な し な し イ ン ス タ ン ス : い - b7f f se Ⅳ e 012New ) 説 明 ス テ ー タ ス チ ェ ッ ク モ ニ タ リ ン グ 日 a 0 ー P : .9212519 タ グ ス テ - タ ス チ ェ ッ ク は 、 こ の イ ン ス タ ン ス に よ る ア プ リ ケ - シ ョ ン の 実 行 を 妨 げ る 可 能 性 の あ る 問 題 を 検 出 し ま す 。 ス テ ー タ ス チ ェ ッ ク ア ラ ー ム の 作 成 シ ス テ ム ス テ ー タ ス の チ ェ ッ ク ① ス テ - タ ス チ ェ ッ ク に 関 す る 詳 細 は こ ち ら イ ン ス タ ン ス ス テ ー タ ス の チ ェ ッ ク ① こ れ ら の チ ェ ッ ク で は 、 こ の イ ン ス タ ン ス を 使 用 す る た め に 必 要 な AWS シ ス テ こ れ ら の チ ェ ッ ク で は 、 こ の イ ン ス タ ン ス の ソ フ ト ウ ェ ア と ネ ッ ト ワ - ク 構 成 ム を 監 視 し て 、 AWS シ ス テ ム が 正 常 に 動 作 し て い る こ と を 確 認 し ま す 。 シ ス テ ム の 接 続 性 チ ェ ッ ク に 合 格 し ま し た そ の 他 の リ ソ ー ス を 監 視 し ま す 。 イ ン ス タ ン ス の 接 続 性 チ ェ ッ ク に 合 格 し ま し た 口 一 ド ノ ( ラ ン シ ン グ ロ - ド バ ラ ン サ - 費 フ ィ ー ド バ ッ ク フ ィ - ド バ ッ ク の 送 信 こ の イ ン ス タ ン ス で 発 生 し て い る 状 況 が チ ェ ッ ク に 反 映 さ れ て い な い 場 合 、 ま た は 発 生 し て い る 問 題 が 検 出 さ れ な い 場 合 。 こ の フ ォ - ム で 報 告 さ れ た カ ス タ マ - サ ポ - ト の 問 題 に は 返 答 し て お り ま せ ん の で ご 注 意 く だ さ い 。 こ の イ ン ス タ ン ス に 関 す る 技 術 的 な 支 援 が 必 要 な 場 合 は 、 0 日 本 語 @ 2 〔 8 - 2016 , Amazon Web Services,Inc. or its a ⅱ は s. All rights reserved. プ ラ イ バ シ ー ポ リ シ ー 利 用 規 約

リモートツールでログインし、PVドライバを指定のものに更新します

 スクリーンショット 2016-03-01 12.00.56

自動生成された代替テキスト: LLLL EC2 Management ConscX Windows -f C aws.amazon.com/developertools/0847543877823643/ x AWS Developer Forums: x Amazon EC2 Windows C X Browse By Category • Amazon CloudFront • Amazon Elastic Compute Cloud • Amazon Elastic MapReduce • Amazon Fulfillment Web Service • Amazon Relational Database Service • Amazon Route 53 • Amazon SimpleDB • Amazon Simple Email Service • Amazon Simple Queue Service • Amazon Simple Storage Service • AWS CloudFormation • AWS Data Pipeline • AWS Device Farm • AWS Elastic Beanstalk • AWS Identity and Access Management • Amazon ElastiCache Developer Resources • Amazon Machine Images • Articles & Tutorials • Customer Apps Amazon EC2 Windows Drivers Developer Tools > Amazon EC2 Windows Drivers Community Contributed Software Amazon Web Services provides links to these packages as a convenience for our customers, but software not authored by an '@AWS" account has not been reviewed or screened by AWS. Please review this software to ensure it meets your needs before using it. A setup program to install or upgrade the paravirtualized drivers used by Amazon EC2 Window's to provide access to the underlying hardware. Details submitted By: AWS Products used: Languages(s): Created On: Last updated: JonathanS@AWS Amazon Elastic Compute Cloud English October 2, 2015 10:06 PM GMT November 13, 2015 1:38 AM GMT Published by Amazon Web Services (http://aws.amazon.com/windows) The Amazon EC2 service utilizes paravirtualization to provide Microsoft Windows Server instances with access to the underlying physical hardware. This utility installs/upgrades to the latest paravirtualization driver for stability and performance. In conjunction with the availability of this utility, the Microsoft Windows Server AMIS have also been upgraded so that all newly created instances will contain the latest paravirtuallzation driver. Please refer to the step-by-step Guide for walking through the process and for troubleshooting information, or the SNS Subscription instructions for being notified of new drivers. What's New 7.3.2 Logging and diagnostics: Improved logging and diagnostics Stability fix in AWS PV Storage driver: In some cases the disks may not surface in Windows after reattaching the disk to the instance.

ドライバインストール後、インスタンスが自動で再起動します

再度リモートツールでドライバのインストール成功を確認

スクリーンショット 2016-03-01 11.56.39

自動生成された代替テキスト: 0 姦 フ ァ イ フ ァ イ ル ( F ) 作 ( A ) / WI N -N u 5 丁 01 N84 こ 圧 ATA/ATAP コ ン と - タ - 〉 当 シ ス テ ム テ パ イ ス テ ィ ス ク ラ イ プ AWS PVDI AWS PVDI 〉 テ ィ ス プ レ イ ア ダ ブ ネ ッ ト ワ - ク ア ダ ブ 〉 ロ プ ロ セ リ サ 〉 上 フ ロ ッ ど - ラ イ プ マ ポ - ト .COM と 〉 自 マ ウ ス と そ の 〉 印 刷 キ ュ - / 0 記 恒 域 コ ン ト ロ - く) ・ AWSPVSt ( ) M00 代 全 般 0 デ バ イ ス マ ネ - ジ ャ AWS PX/Storage HostAdapter の プ ロ ノ「 テ 汚 イ バ - 詳 細 イ へ ン ト ル - ス AWSPVStorageHostAdapter M) ツ - ル ( T ) 表 示 ( v ) プ ロ バ イ ダ - 日 イ 主 テ ジ タ ル 名 者 . 汚 イ バ の 詳 細 は ) 汚 イ バ - の 霆 新 ( P ).. 汚 イ バ - を 元 に 戻 す ( R ) 無 効 ( D ) 削 除 ( u ) 8 Amazon 01C. 2015 / 07 / 22 7.3.2.0 M に rosoftWindowsHardwareCompatibility Publisher 汚 イ バ - フ ァ イ ル の 詳 細 を 表 小 し ま す 。 こ の デ バ イ ス の 汚 イ バ - ソ フ ト ウ ェ ア を 霆 新 し ま す 。 汚 イ バ - の 霆 新 後 に テ パ イ ス ガ 動 作 し な し 合 、 以 前 に イ ン ス ト - ル し た 汚 イ バ に 戻 し ま す 。 選 択 I デ バ イ ス を 無 効 に し ま 可 。 汚 イ バ - を ア ン イ ン ス ト - ル し ま す ( 上 級 者 用 ) 。 キ 11 ン セ ル 0 コ ン ト ロ - ル バ ネ ル の 演 ′ 0 テ ィ ア の 目 動 再 生 オ テ パ イ ス の 管 理 プ 解 持 の パ ス ワ - の 要 求 択 整 モ こ タ の ち ら っ き ( リ フ の シ ュ レ - ト ) の 整 方 法 ヘ ル プ ( H ) 非 表 示 2015 / 03 / 01

インスタンスをt2.micloに戻し、無事に起動を確認できました

この手順でうまくいかない場合のために、doc.awsの記事には対処法2も載っているようですが、うまくいってしまったため、そちらは未検証

Appcelerator StudioでビルドしたらWWDR証明書が期限切れ?

Apple’s World Wide Developer Relations (WWDR) intermediate certificate is not installed

Appcelerator StudioでiPhoneの実機をDeviceに選択して、[RUN]したら、上記のメッセージが出た。

ググってみると、次の記事がトップ

https://developer.apple.com/support/certificates/expiration

そして今回の解決策は、記事の中にあった次の説明だった。

Known Issues

Xcode unable to create distribution builds for App Store submissions or Enterprise apps.

This issue occurs when the expired WWDR Intermediate certificate is present in both the System keychain and Login keychain within the Keychain Access application. To resolve the issue, first download and install the renewed certificate. Next, in the Keychain Access application, select the System keychain. Select ‘Show Expired Certificates’ in the View menu and then delete the expired version of the Apple Worldwide Developer Relations Certificate Authority Intermediate certificate. Your certificates should now appear as valid in Keychain Access and be available to Xcode. This issue is resolved in OS X El Capitan v10.11.4 beta.

XcodeはApp StoreまたはEnterprise appの配布用のビルドを作成できませんでした。これはキーチェーンアクセスアプリケーションで確認すればわかりますが、期限切れのWWDR Intermediate certificateがシステムキーチェーンとログインキーチェーンのどちらにもあったことが原因です。解決策は、新しい証明書をダウンロードしてインストールします。次にキーチェーンアクセスアプリケーションで、システムキーチェーンを選択して、表示メニューから【有効期限の切れた証明書を表示】を実行します。そして期限切れの「Apple Worldwide Developer Relations Certificate Authority Intermediate certificate」を削除してください。これでキーチェインアクセスで有効な証明書をXcodeで利用できるようになります。

で、実際にやってみました。コマンド+シフト+Uでユーティリティフォルダを表示して「キーチェーンアクセス.app」を起動。キーチェーンで「システム」を選択して表示メニューから【有効期限の切れた証明書を表示】します。

2841e362e07779ba15e76665192ce818-300x129.png

次のように、これまで隠れていた期限切れの証明書が出てきます。

e7262f0b0bc387c19546616a31003b77-300x190.png

これをdeleteキーで削除しようとすると認証ダイアログが表示されます。パスワードを入力してreturnキーを押します。

2fdaee9831345e66231bcd68f9bde193-300x161.png

これで削除完了。

748f4ede8c906bc6f11deeefb77656a1-300x152.png

Xcodeでビルドすると、無事にiPhoneの実機に実行イメージが転送されました。

TWT for iOS インストール手順

iPadでTime Will Tell for iOSページにアクセス。

ページ下部から、iOS版のダウンロードリンクをタップし、[インストール]を選択

IMG_0020

ホーム画面に表示された[TimeWillTell]のアイコンをタップ。

002

AppStore経由のアプリでないため、「信頼されていないデベロッパ」の警告が表示され、[信頼]を選択。

IMG_0011

アプリが起動し、ログイン画面が表示される。

左上の[設定]をタップ

IMG_0012

[サーバ情報:]の[稼働表Webアドレス]をタップ

IMG_0013

Webアドレスを入力して[<設定]をタップ

006

[稼働表Webアドレス]にWebアドレスが表示されているのを確認して[<ログイン]をタップ

IMG_0024

ユーザ名とパスワードを入力して[ログイン]をタップ

 

IMG_0023

稼働表画面が表示される。

IMG_0021

各訪問先名をタップすると、入力画面が表示される。

010

Vectorworks関連プログラミングセミナーの報告

「Vectorworks」カスタマイズ関連でプログラミングセミナーを担当しています。これは2014年11月〜2015年5月まで計4回に亘って開催されました。その初回の報告です。

2014年11月7日にA&A社にて開催したAPAスペシャルWebセミナー【プログラミング編】「VectorScriptをはじめよう」の講師を務めました。

 

APA(エーアンドエープロフェッショナルアドバイザー)として、しばらく開催されていなかったプログラミングセミナーを担当することになりました。午前と午後で計40名ほどご参加いただきました。

みなさんには好評でしたが、やはりプログラミングですから、1時間半くらいのセミナーでは説明仕切れない内容です。もっと詳しいことを聞きたいという声をいただきましたので、3回のシリーズで開催することになりました。

当日のスライドはこちらをご覧ください。

Vectorworks2016新製品発表会

Vectorworks2016新製品発表会に行ってきました。
場所は品川グランド、参加者は数百名。
内容は次のとおりです。

司会:塩澤さん
1.SEANさんのお話(英語、木村さんの同時通訳)
2.サーカーさんのお話(英語、木村さんの同時通訳)
3.佐藤さんのお話
4.慶應SFCの池田先生のお話
「マリオネットを使ってみました」というお題でビジュアルプログラミングツールを紹介してくれました。
5.テコデザインの柴田さんのお話
サブディビジョナルサーフェスを紹介してくれました。
6.ポリゴンアーキテクツの山川さん
Renderworksを紹介してくれました。

先生方の新機能の説明とデモがわかりやすかったです。
特にマリオネットは素晴らしいのですが、Fundamentalのライセンスでは利用できません。残念です。

デモ機が展示してありましたので、マリオネットを少し触ってみたところ、ビルトインのモジュールを適当に配置して実行すると「エラー」が表示されます。ソースコードを見るとPythonコードでした。ビルトインのモジュールでもつなぎ方によってはエラーになります。見た目はビジュアルプログラミングですが、中身はこれまでのPythonプログラムと同じでした。マリオネットというのはプログラムモジュールをビジュアルに登録しておける機能、だと思いました。

 Renderworksがバンドルされて価格がアップするものの、VSSの更新料は据え置き、というお得な情報もありました。

4D Summit Europe 2014 Paris

2014年11月18日~2014年11月20日、フランスのパリで開かれた4D Summitに行ってきました。セッションはプレクラスも含めると3日間、白石は次のセッションを受講してきました。

2014.11.18

Pre – class Migration with the Experts

— Add Komoncharoensiri, Keisuke Miyako, Olivier Deschanels, Thomas Maul

 

2014.11.19

4D Summit Keynote

Quiz — 4Dについてどれだけ詳しいかというクイズが会場で配られていましたので回答。

A Voyage in the AWS Cloud  — Pierre Gilot

XML demystified  — Bruno Legay

Labels Revisited  — Keisuke Miyako

The 4D product line in Cocoa: Natibe 64-bit  — Laurent Esnault

10 tips to improve your Web design  — Add Komoncharoensiri

The new network layer  — Sergiy Temnikov

4D’s 30th birthday party @ Eurosites George V

 

2014.11.20

4D Summit Keynote

Easy visualization with hmCal and hmReports  — Christian Sakowski, Matthias Heubach

Migration, Part II  — Achime Peschke

Extending our old (excellent & unique) app to the cloud: From 4D to 4D Mobile  — Daniel Santiago, Susana Gutierrez, Francisco Caja

SQL by the Master  — Sergiy Temnikov

Gift Dinner @ Eurosites George V Arts — Quizに解答した結果が良くて上位3位に入ったご褒美に夕食券をいだだきました。

 

2015.11.21

4D社見学 @Clichy

宮古さんに案内していただきました。

 

帰国後、参加の感想を4D社に投稿しました。

カテゴリー: 4Dタグ:

2つの画像を比較する

今回は画像サイズの話。フォームに表示した画像変数がコピペやドラッグ&ドロップで変更された場合をキャッチしようとしていました。
On Data Changeを使うと同じ画像をペーストされた場合を識別できません。
リファレンスにEqual picturesというコマンドがありました。これだと思って使ってみるとうまく動いてくれません。
単純化して調べてみると、同じ画像を代入した2つのピクチャー変数を比較するとFalseが返ってくるのです。同じ画像を代入したのに等しくないと。マニュアルが間違っていて戻り値が逆?、変数の領域が異なる?とか、いろいろ考えてはまりました。
どうやら画像が空の場合にFalseになるのだと気づきました。そこでサイズを調べてみたら、サイズがゼロの時にEqual picturesはいつもFalseを返す、のでした。

//関数名:BL03_PIC_load
//20150206 wat
//画像をロードしてフォームに表示、途中で変更されたかどうかを調べようと、
// 4D v13で実装されたEqual picturesを使ってみる。

C_LONGINT($1;$pic_id)
$pic_id:=$1

C_PICTURE($mask)
C_BOOLEAN($isEqual)
C_TEXT($m)

READ ONLY([PIC_SET])
QUERY([PIC_SET];[PIC_SET]PIC_ID=$pic_id)
$numOfRecs:=Records in selection([PIC_SET])
If ($numOfRecs=1)

//同じ画像フィールドから2つの変数にピクチャーをロード
vBL03_varPIC_LOGO:=[PIC_SET]PIC_LOGO
vBL03_varPIC_LOGO_onload:=[PIC_SET]PIC_LOGO

//画像を比較すると
$isEqual:=Equal pictures(vBL03_varPIC_HEAD;vBL03_varPIC_HEAD_onload;$mask)
$m:=$m+”PIC_HEAD $isEqual=”+String($isEqual)+”,”
ALERT($m)
// Falseが返ってくることがある????  そこでサイズを調べてみた

C_LONGINT($picSize;$picSize_onload)

$picSize:=Picture size(vBL03_varPIC_HEAD)
$picSize_onload:=Picture size(vBL03_varPIC_HEAD_onload)
$isEqual:=Equal pictures(vBL03_varPIC_HEAD;vBL03_varPIC_HEAD_onload;$mask)

$m:=”BL03_PIC_load: ”
$m:=$m+”PIC_HEAD $isEqual=”+String($isEqual)+”,”
$m:=$m+” $picSize=[“+String($picSize)+”]”
$m:=$m+” $picSize_onload=[“+String($picSize_onload)+”]”
ALERT($m)

End if

リファレンスをよく読んでみたら書いてありました。Equal picturesは空のピクチャを与えると正しく実行されなかったとしてシステム変数OKにゼロを返す、と。要はEqual picturesは正しく実行されたかどうかを判定してから比較結果を評価しなくてはならないのでした。
ここで2者択一問題が発生しました。

1)OK変数が1の時だけ比較値を評価する
2)画像サイズがゼロの時はそもそもEqual picturesを実行しない

さてどちらでしょうか。サイズがゼロ以外にOK変数がゼロになることがあるのでしょうか?

「サイズがゼロでもゼロ以外でもEqual picturesがエラーの場合、アプリは画像は変化しなかったと見なす」

として問題は無いように思えます。いやもとい、片方の画像サイズがゼロでもう片方がゼロじゃなかったらエラーになる、という意味でしょうから

今回は次のコードを正解としました。

//Jiro_pic_isEqual
//20150207 wat
//2つの画像を比較して同じかどうかを調べる

C_PICTURE($1;$pic1)
$pic1:=$1
C_PICTURE($2;$pic2)
$pic2:=$2

C_PICTURE($mask)
C_LONGINT($pic1Size;$pic2Size)
C_BOOLEAN($0;$isEqual)

$isEqual:=Equal pictures($pic1;$pic2;$mask)
If (OK=0)

// OK変数の値がゼロの場合はサイズがゼロの可能性がある
//どちらか一方だけがゼロの場合:OK変数がゼロ、比較結果はFalse
//または両方ゼロじゃない場合:OK変数が1、比較結果は画像が同じならTrue画像が違えばFalse

//失敗の場合、画像サイズが同じゼロならツゥルー
$pic1Size:=Picture size($pic1)
$pic2Size:=Picture size($pic2)
If (($pic1Size=0)&($pic2Size=0))

$isEqual:=True

Else 

//現時点では失敗の場合フォルスが返されているが念のため
$isEqual:=False

End if 

End if 

$0:=$isEqual

 

Date 関数がv13.3からv13.4で変わった

いいのです。よくあることなのです。

マニュアルにも書いてありました。12月の次が1月であるという保証はない、と。

しかし動いていたんです。v13.3までは。

Date(‘2014/13/1″)

v13.3までは、このコードは2015年1月1日を返してくれていました。それがv13.4でDate関数が大幅に変更になりました。このとき動きがマニュアル通りになりました。13月という月は無いのだと。プログラマが制御せよと。

問題はその月の最後の日を返すところで起こりました。次の月の1日から1日引いて求めます。正解は次です。

C_LONGINT($1;$year)

$year:=$1

C_LONGINT($2;$month)

$month:=$2

C_DATE($0;$date)

$date:=Date(String($year)+”/”+String($month)+”/”+String(1)) //当月の1日

$date:=Add to date($date;0;1;0) //翌月の1日

$date:=Add to date($date;0;0;-1) //当月の末日

$0:=$date

カテゴリー: 4D