[mac運用]Boot Camp領域のマシン間移動

年末も近づいている中、弊社メディカルデザインには新しい人が続々と入社されてくるわけですが、入社日までにPCを準備しないといけないと思うといつもビクビクするシステム部 中村です。こんにちは

PCの準備係の自分には、新しい方にPCを準備する場合や部署や担当がわかる事によってデスクトップからノートにしたい、でもOSは移動して使えるようにしておいて等、結構無茶な要望が届きます。まあぱぱっと・・こなしまいますけど・・・

 

弊社では基本的にはApple製品のiMac/MBP等ばかりでMAC OSの移動は簡単なのですが、Boot Campで動いているWindowsを動かすのは結構至難の業です。

というわけで、今日はBoot Camp 上動くWindowsの移動方法をメモ書き程度に書いてみます。

まずは、移動先マシンでMACOSを構築し、移動元のMACをターゲットモードで起動して、パーテーションのコピーを行います。

この際thunderboltで接続するとあっという間にコピーが終わる!Firewireなんて時代遅れ!って事を書きたいのですが、いろんなパターン試しましたが、実質速度は変わらないです。

パーテーションのコピーですが、

これはWinclone ( http://twocanoes.com/winclone/ )というソフトを使いコピーします。有料ですが、あきらめて買いましょう。MAC標準のパーテーションコピーも何度か試しましたがうまくいった試しがありません。スクリーンショット 2014-11-11 9.22.19

WincloneでMAC本体の年式(チップセット)が同等ならたいていこれだけで移動が完了してしまいますが、年式の違うMACに入っているBootCampWindowsはコピーするだけでは大抵動きません。(ブルースクリーンで止まります。)

ブルースクリーンを回避するために、移動元のWindowsをシャットダウンする際に

デバイスマネージャーでSATAの デバイスマネージャーコントローラーを一度削除します。

これで、強制的にSATAコントローラーを標準の物を使わせるようにできます。

大抵Windowsのコピーで起動時にブルー画面がでるのは、SATAのコントローラーが前のPCのものになっている為です。

この方法はDOS/V機同士の移動でも使えるので、コピーはしたけどブルースクリーンで止まってしまうという場合は是非やってみてください。

一度立ち上がってしまえば、あとはそのマシーン用のBoot Camp用ドライバーセットを当ててやると移動終了です!

 

USMハラー分解 準備編

システム部の中村です。

こんにちは

弊社の書類棚などは、基本的に、USMハラーの棚をカスタマイズして使っておりますが、このUSMハラー専用工具ができないと名高いのです。

またその専用工具が、通常では買えず業者にお願いをしないと構築できないという物なのですが、

先日、知り合いから、ネジが付いてるなら、何とかなるよ

必要なのは、4と5の首振りの六角レンチだけだよ

IMG_0344

ということで、

作業方法を見学に、風邪引いてゴホゴホ言いながら、ちょっくら立川までお出かけしました。

で教えてもらった方法ですが、

なるほど!という目から鱗な方法で・・!

 

今晩撮影しながら作業してみますが、簡単に分解・組立はできそうです!

今朝、事務所にみんなが来る前に、ごにょごにょっと作業してみました・・

IMG_0345

IMG_0346

案の定簡単に分解できました。&組立もできそうです!

 

先日ある物を導入して会議室が狭くなってしまい、少しでも広くといろいろ試行錯誤中でしたが(TVの配線とかカメラ除湿庫を整理)、これ根本的に会議室を広く使えそうです。

 

そして裏の倉庫に新型のUSMハラーパイプを見つけたので、そっちだともっと簡単に作業できるので、そっちにやり替えて、裏のサーバー棚を作りきろう!(そんな時間あればいいけどな・・・・)
 

Line クリエーターズスタンプ製作 その1

日曜日に新作ガンダムでTVシリーズの1-3話先行上映会(監督の舞台挨拶付き)に行ってきたシステム部の中村です。こんにちわ

IMG_0016

さて、弊社の取引先様はゆるキャラをたくさんお持ちになっているので、以前は、高値の花だったLINEスタンプ(公式)を提案はしたのですが、なかなかよい返事をいただけませんでしたが、クリエーターズスタンプならコストもかからず、広告媒体としてもいろいろ使えるのではないかと思ったのが、先日の話でして、、、

 

Continue reading

某テーマパークのチケットシステムの考察

最近忙しくてディズニーシーに行っていないなーと思ってるシステム部の中村です。

こんにちは でも次は9月7日のレジェンドオブミシカの最終日をねらっていこうかと思うしだいです。

IMG_0270

ちなみに、自分はミシカをみるならこの基地の右上からですね!

 

さて先日仮眠を取ろうとした際に、考え出したら止まらなくなった某テーマパークのゲートのシステムに関しての考察をまとめたいと思います。

 

某テーマパークの入場ゲートのシステムですが、

1、チケットのバーコードに書かれているIDを読み込むのですが、不正防止対策として過去使われたチケットを判断している。過去はチケットにパンチしているので、判断が付きやすいが現在はパンチしていない

2、2014年時点で6億人の入場が確認されている ただ、ID月チケットになり始めのは数年前からなので、ここでは約3億レコードのチケットが発見されたと想定

3、3200万人程度の年間利用者数から1日平均平均8.5万人程度 最大で14万人と推定

このことから

過去のチケットが約3億インパレコードあると推定されます。(インパ:インパーク 意味:パークにインする(入園する)) その3億レコードを毎回なめるというのはいくらなんでも現実的ではなさすぎます。

ゲートにオンメモリーなDBを組んでもいくらなんでもあの短期間(もの数秒)ではいくらなんでも無理だと思う。となるとどうするべきか。ちょっとまてよく考えたらチケットには約1年の有効期限が設定されている となると

ゲートの中では

1、日付から該当IDの範囲を計算し範囲外を排除

2、ゲート内内部のDBには過去1年分のインパレコードを準備し総舐めを行う。未使用チケットも考えても、年間では4000万レコード程度と推定。

4000万レコードをIDごとでテーブルを分け尚且つ物理的にもパーテーションで割って、オンメモリーに載せてしまえば、短期間の検索も可能と思われます。

selectした瞬間 当日のみのインパレコードがある当日インパテーブルにIDをinsert、パーク内のアトラクション優先チケット発券をはこの当日テーブルをselectさせればいい

これなら、あの短期間で不正チケットのcheckも可能ではないでしょうか。

なかなかこのような超大規模なレコードを扱う機会が少ないので、いいアイデアがでないところですが、きっとその手のベンダーさんとかはノウハウすごいんでしょうね。

USJさんはNECの技術使いまくりというCM ( http://jpn.nec.com/ad/usj/entry.html ) まで流れてるぐらいなので、一度こういう大規模的な技術セミナーとかあれば、受けてみたいものです。

 

そしてついでに某テーマパークの一番偉い人に撮影お願いした自分の中の取って置きの写真を1枚

iikuni

iMacのHDDをSSD化する方法とFANの爆音対策

毎日暑い日が続いていますがみなさんお体大丈夫でしょうか。

普通は暑さで食欲が減ると聞きますが、逆におなかが減って仕方ないシステム部の中村です。こんにちわ

 

最近、新人さんが入社する際などPCの下準備をさせていただいていますが、~買う際にいい物を買ってるので長い間使えるのかは不明ですが、、、弊社は結構物持ちがよいのですが、いかんせん長い間使っていると、どうしても、HDDとか壊れてきます。

お客様にデータなどは、各クライアントマシンに入れず社内のNASに入れているので、作業端末が壊れても問題ないと言えば無いのですが、それで業務が1日止まってしまうというわけにはいかないので壊れる前にHDD交換が最近のトレンドです。

とはいえ、最近の社内はノートPCの導入が進みSSD化されたマシンが半分近くになってきたので、HDDをSSD化するような作業は実際生まれないのですが、そろそろ、2007年モデルiMacとかのHDDが悲鳴をあげそうです。

 

というわけで、今回悲鳴をあげて壊れる一歩手前のiMac 27インチモデルのHDD交換を行う際にどうせ買えるならHDDではなくSSDにしてしまおうということを記事にしてみようかと思います。

この記事の内容は

  1. HDDをSSD化する
  2. 純正HDD以外だと、FANが全開で回ってしまう障害が発生する

=======注意========

お約束ですが、自己修理など改造を行うとアップルの保障等は受けられなくなる可能性があります。自己責任で対応ください。

=======注意========

 

Continue reading

iOSアプリ申請 ステータス:Metadata Rejected で リジェクトされた!!

下書きには保存していて公開するのを忘れてたおっちょこちょいなシステム部の中村です。

こんにちは

 

さて先日からクライアント様のアプリを申請しているのですが、最後の最後で

Metadata Rejected  なるステータスでリジェクトされてしまいました。(自分初めて見ました・・・)

IMG_4165

 

調べてみると

プログラムその物には問題ないけど、ストアーに表示するデータ(文言等)に問題があるので、通せないよ!

でも、プログラムは問題ないから、表示する文言とかの問題箇所をなおしたら、直ぐに確認して公開してあげるよ

という旨の連絡が、友人の結婚式場に前日入りしたホテルの大浴場の脱衣場でアップルさんから流れてきました。

でもアプリ紹介の文言で問題になりそうな箇所はないし、レーティングも問題ないはずだし・・・

何だろう・・と よくよく調べてみると、

スクリーンショット画像に時計などのステータスがでてるので、だめっぽいという事がわかりました。

温泉で火照った体を クールダウンしながら、ちゃっちゃっと画像を修正アップ! 

リジェクト連絡が届いてから1時間で再申請=>2時間で In Review=>そのあと、3時間後に公開という流れ

で無事公開できました。正直ここで、またリジェクトになったら、どうしようと・・と結婚式どころではなかったのですが、

無事結婚式の前日にアップできて安心してウエディングケーキを食べることが出来ました!

ほんとよかったよかった・・

IMG_4012

写真は友人の新婦デザインのウエディングケーキ おいしゅうございました。

 

 

 

お客様のアプリだったので、なかなか公開時間が確定できず、お客様に心配をおかけしてしまったのが、本当に申し訳ない状態でした。

アップルさん・・・お願いです。有料でいいから優先レビューオプション作ってください;;;

 

iOSアプリ審査についての覚書

クライアント様のアプリ開発でアップルの審査が遅れに遅れまくり、冷や汗だらだらのシステム部中村です。

今回はDUNSナンバーの不具合等がすべての引き金になってはいるのですが、次は問題起こらないようにと覚書を・・・

 

製作会社でよくあるパターンとして、ADCへの登録を代行して行い、開発・審査・公開まで代行する。という流れが多いと思います。この流れに沿って覚書を・・・書いておきます。

 

ADCへの登録代行のときに必ず必要になるが、DUNSナンバーといわれる、国際的な会社証明IDみたいなものが必要となります。日本の登記簿謄本の民間版みたいなものです。日本では、東京商工リサーチ様が対応してくれています。

https://duns-number-jp.dnb.com/search/jpn/login.asp

クライアント様が自社のIDを取得するのは、無料で行えるのと、一番時間も手短に行えるので、これだけはクライアント様にとっていただきましょう。請求申請から 2営業日ぐらいで届きます。

ただ、このDUNSナンバー 病院など財団関係とかだと、一部情報が正確に入っておらず、法人格扱いされていない場合があるので、その場合は、カンパニー登録が出来ないので、修正が必要です。DUNSナンバーの修正は、D&B社に英語対応が必要になるので、修正処理を完了するまで、約一週間程度かかります。

D&B社から修正完了のメールが届いてから、アップルにその情報が反映されるまでに、14営業日が必要となるので、修正が必要だった場合は、かなりの時間のロスを覚悟してください。(この間に開発を行えば、時間のロスもなくなりますが・・・)

なお弊社が今回代行させていた際、修正した連絡がとどいて16営業日たっても、アップル側に修正がうまく伝わらず、法人申請ができないという状態になったため、日本のアップルデベロッパーセンターに直接電話を行い、登記簿謄本のコピーを送り、対応してもらいました。 修正必要な場合は、正直すべて登記簿謄本扱いで対応していただきたいが、とりあえず、電話対応(日本語)でここはなんとか切り抜けられました。

 

さて 法人登録で登録できたら、次は、iOSデベロッパー契約に移ります。(年間7800円税別)法人登録さえ出来ていれば、金額さえ支払えば、1-2営業日で対応してもらえます。

※ アップルIDの名前は必ず英語表記でないと審査に通りません。

 

ここまででかかる日数をまとめると

DUNSナンバー取得 最大 2営業日 必須
DUNSナンバー修正 平均 7営業日程度 修正時のみ
DUNSナンバー修正アップル反映 最短 14営業日(米時間計算) 修正時のみ
ADC法人登録 最短 1営業日 必須
iOSDeveloperProgram 平均 2営業日 必須

なかんじになります。

通常であれば、5営業日もあれば、対応できるのですが、DUNSナンバーの修正等の作業が入るとかなり時間が延びます。また新会社などの場合も登録申請に時間がかかると思われるので、まずは、DUNSナンバー取得してADCに登録だけしてしまうのがよいかと思いますね。

 

さて登録できたとなると次はアプリを開発して、 iTunes Connect =>Manage Your Appsで申請をかけます。

これが通常では7営業日ぐらいといわれいますが、最近は、5営業日ぐらいが平均です。

http://appreviewtimes.com/

他の開発者の公開時間等を集計して平均値を出してくれているサイトです。この辺で確認するとよいかとおもいます。OSのアップデート時などは、いつもより時間がかかるかなと思っていますが、最近はほんと平均的5営業日もあれば、審査してくれています。

ただし、これは、カルフォルニアの時間帯での計算なので、米国の祝日等とかぶると、日本のカレンダーでの計算とずれる場合があります。


審査状況を知るために、便利なツールがアップル純正のアプリとしてiTunes Connect Mobile

IMG_3943 IMG_3941 IMG_3942

を使いリアルタイムでアプリの審査状況がリアルタイムでわかります。

IMG_3940

朝9時半電車に乗っている時間帯にPush送信で新着情報が届くので、会社にきて直ぐ対応できるので、便利です。(メールでももちろんお知らせは届きます。)

 

あとは、アップルと連絡を取るために、判りやすいように

IMG_3939

サンフランシスコの時間も登録しておくと、向こうが深夜から連絡がこない などわかりやすくなるので、登録するのがお勧めです。

 

最後に

アップルさんも有料枠いいので、審査を優先的にしてくれるフローを作っていただけるとすごいうれしいです。急にアプリを公開しないといけないとか、修正が必要な場合とか用に(一応そういうフォームはあるんですが、確実に優先的にやっていただけるわけではないので・・・)

 

スパムメール扱いされているかの確認

やたら最近、iOS・Androidアプリ開発と海外のspamメールリストサービスと英語で連絡をしあうことが増えて困ってる

システム部 中村です。(本当に英語が苦手なんです・・・)

英語といえば、特にiOS関係では少々クライアント様の企業形態が特殊でその説明を文章と草木も眠る丑三つ時にアメリカの本社の方と片言の英会話という荒行。英語怖いです!!

 

と話はぜんぜん変わりますが、

最近クライアント様から、 相手にメールを送ったらエラーメッセージが戻ってくるようになった。とご相談を受けますが、

大抵の場合は、

1、メールアドレスの書き間違え

2、相手メールサーバーの一時的なダウン

3、送信先のメールボックスに空き容量が無くなった

4、メールアカウントが削除されている

なのですが、 時折、メールサーバーやインフラ側でspamメールとして認識され届かないという場合があります。

そんなときはこのサイト  http://www.blacklistalert.org/  で、確認です!!

ここにメールサーバーのIPアドレスを入れて検索すると、海外の大手のスパムメールブラックリストに登録されているかどうか一括で判断してもらえるサイトです。 ちなみに弊社のメールサーバーをcheckしてみると…..

mdmailserver

大手ブラックリストに登録されておらずすべてでOK頂きました!!

メールが届かないとかあったらspam扱いされていないかなどのチェックも大切ですね!!

 

そして少し気になったので、自宅で運用しているメールサーバーを調べてみると1件引っかかってる!!

nakamuramyhome

明日お休み使ってホワイト化の申請でもなげてみますか・・・

 

[Androidアプリ開発] Titanium Mobile のビルドエラー

システム部の中村です。

こんにちわ 来月友人の結婚式があるのに着ていくスーツが無く (太ってスーツが着れるか?)どうしたものかと・・・・

さて今日は titanium(タイタニウム)のお話です。

TITANIUM_logo1

Android開発・iOS開発を同時に行う際、TITANIUM(タイタニウム)を使う開発者の方が多いかと思われますが、

Titanium Studio のVer3.2系でANDROID用APKをビルドすると一旦は成功はするが、GooglePlayにアップロードすると、

GooglePlay経由でアプリをダウンロードすると、”パッケージファイルに正しく署名されていません”というエラーが発生する場合が多々あります。

原因はjavaSDK とTitanium Studio のビルド方法に問題があります。

ただTitanium Studioのビルド方法が変えられない為かなり強引なやり方で対応しないとなりません。

詳しく書くと、 Titanium Studio ではjdk1.6系を使うが、JDK1.6でビルドする場合は、公開鍵をSHA256withRSA でビルドすると、正しく署名されていないというエラーがでます。 

jdk 1.6.0 では SHA1withRSA でビルドする事が必要である。

MAC版では色々方法が書かれていますが、Windows版の資料がほとんど無く、色々試行錯誤してみました。

 

 

解決方法

普通にビルドします。そのうえでTSは鍵をつける前のパッケージを作り、自動的に鍵を埋め込むのですが(この段階でSHA256で鍵を作るので失敗する)、鍵を埋め込む前のパッケージを取り出し、かぎをつけるオプションを変え鍵をつけます。


"C:\Program Files (x86)\Java\jdk1.7.0_40\bin\jarsigner.exe" "-sigalg" "SHA1withRSA" "-digestalg" "SHA1" "-keystore" "C:\Users\Nakamura\Desktop\keys" "-storepass" "ここに鍵のパスワード" "-signedjar" "C:\Users\Nakamura\Desktop\AP\build\android\bin\yamatoap.apk" "C:\Users\Nakamura\Desktop\AP\build\android\bin\app-unsigned.apk" "ここに鍵のエイリアス"

 

こんな感じです。 ~SHA1withRSA にするのがミソです

これで生成したAPKをアップすれば、成功です。

コンソールをメモ帳などに、一回全部突っ込み、そこから必要な箇所(SHA1化)するところから自動実行されることを行えば綺麗なAPKの出来上がりです。

 

WebViewの内部の横幅を強制的に変更する方法

 

iOSアプリはある程度作りやすいので困らないのですが、Androidさんは、ほんと機種・OSVerによって動きがコロコロ変わったりするので、どうしようかなと思っている、現在某病院様のiOSアプリ・Androidアプリの開発を行っているシステム部の中村です。

こんにちは

 

さてiOSをUniversal(ipad/iPhone共有)を作っていると、どうしても、iPhoneとiPadで動作等に差が出てきてしまい、それを限りなく近づける事に時間を割かれてしまいます。

今回の開発も同じようにiPadのWebviewで思った様な表示が出来ずに困っています。

いつもであれば、html側を変更して調整するのですが、今回は実際に動いているサイトを強制的に整形しないといけないという状況に陥りましたので、そのときの逃げ方を書きます。

 

・webviewのHTML表示領域をiPhoneと同じ320pxにしたい場合

通常ならhtml側のmetaで指定する事でしつけるのですが、今回は出来ないため、

webViewで読み込んだ後、JSで強制的にJavaScriptでmetaダグを適応させる方法で逃げたいと思います。

 

何はともあれ、まずはソースを

スクリーンショット 2014-02-18 21.04.24

<br />
#import &quot;ViewController.h&quot;</p>
<p>@interface ViewController (){</p>
<p>}<br />
@end</p>
<p>@implementation ViewController<br />
@synthesize wv;</p>
<p>- (void)viewDidLoad<br />
{<br />
    [super viewDidLoad];<br />
	// Do any additional setup after loading the view, typically from a nib.</p>
<p>    //iPhoneの場合は自動的に、スマートフォンページに移動する<br />
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {<br />
        // iPad<br />
        NSURL *URL = [NSURL URLWithString:@&quot;http://www.kantei.go.jp/&quot;];<br />
        NSURLRequest *URLreq = [NSURLRequest requestWithURL:URL];<br />
        [wv loadRequest: URLreq];<br />
    }<br />
    else {<br />
        // それ以外<br />
        NSURL *URL = [NSURL URLWithString:@&quot;http://www.kantei.go.jp/&quot;];<br />
        NSURLRequest *URLreq = [NSURLRequest requestWithURL:URL];<br />
        [wv loadRequest: URLreq];<br />
    }</p>
<p>    wv.delegate = self;</p>
<p>}</p>
<p>//webロードが正常に完了<br />
&#8211; (void)webViewDidFinishLoad:(UIWebView *)view {</p>
<p>    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {<br />
        // iPadのみWebの領域を320サイズにしてからフィットさせる。<br />
        NSString *js =[NSString stringWithFormat:@&quot;var meta = document.createElement(&#8216;meta&#8217;);var iniScale = screen.width / 320;meta.setAttribute(&#8216;name&#8217;, &#8216;viewport&#8217;);meta.setAttribute(&#8216;content&#8217;,&#8217;width=320, initial-scale=&#8217; + iniScale + &#8216;, minimum-scale=0.5, maximum-scale=3.0, user-scalable=1&#8242;);document.getElementsByTagName(&#8216;head&#8217;)[0].appendChild(meta);&quot;];</p>
<p>        [wv stringByEvaluatingJavaScriptFromString:js];</p>
<p>    }<br />
    else {<br />
        // それ以外</p>
<p>    }<br />
}</p>
<p>- (void)didReceiveMemoryWarning<br />
{<br />
    [super didReceiveMemoryWarning];<br />
    // Dispose of any resources that can be recreated.<br />
}</p>
<p>@end</p>
<p>

何をやっているかというと

webviewにurlを与えて表示して、ロード終わったあとにiPadのみにJavaScriptでメタタグを貼付け強制t系に、320pxで動かしているだけです。

 

これでレシポンシブサイト(首相官邸 :  http://www.kantei.go.jp/ )をipadでiPhoneで表示しているイメージで表示できます。

HTMLをいじれない場合使ってみてくださいませ。

表示サンプルをアップしておきます。

スクリーンショット 2014-02-18 20.10.49

iPadRetina表示(標準)

スクリーンショット 2014-02-18 20.10.24

iPadRetina表示(メタタグで強制320px表示)

IMG_3278

iPhone retina 4インチ