FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


iPhone XS Maxで撮影した動画はTwitterに投稿できないかも



↑先ほど動画を添付してツイートしたんだけど、この動画はiPhone XS Maxのフロントカメラで撮影したのがベースで、そのままだとTwitterに投稿が成功しなかった。その時の動画のサイズは
横888 ×縦 1920
だった。

Twitterで動画を共有および視聴する方法
↑Twitterのヘルプページで確認する。

Twitterのヘルプの一部

↑これによると
最大解像度は1920 x 1200(および1200 x 1900)
とある。
縦長動画だと高さは1900まで!?横長だと1920なのに!
それで投稿できなかったのか。もう20ピクセル伸ばして欲しい、、、

ちなみにXS Maxのリアカメラだと
1080 × 1920 
のサイズになるのでこちらも縦長動画はダメじゃないか😩


なお、結局動画は
iPhone XS Maxで撮影 → Macに送信 → ffmpegでクロップ → iPhoneに送信 → 投稿
した。
クロップだけでも面倒なのに、ブラウザのTwitterはmovファイルはサポートしていないのでiPhoneに戻してから投稿なんて、ホントめんどくさすぎる。


iPhone 7 PlusからiPhone XS Maxへの機種変更時にやったこと

iPhone XS Maxの外箱

↑いろいろと検討した結果、新しいiPhoneはXS Maxにした。注文した日の翌日に届いた。
7 Plusのサイズがいいんだよね。気に入ってた。そうなるとXSの横幅はちょっと小さいかなあって。
7 Plusにしてからは片手でiPhoneを操作しようとは全く思わず、すっかり両手で操作するのに慣れてるし。


ということで機種変更についてやったことのメモ。
なお今回の機種変更では電話番号もSIMも変わらない。

SuicaとLINEの移行は? iPhone機種変更の前にやるべきこと (1/2) - ITmedia NEWS
↑主にこちらを参考に。


【旧機種でやったこと】

1)Suica

Suicaの詳細画面スクショ

↑Suicaアプリで、念のためにスクショを撮影し、すぐに見えるようにMacに送っておいた。
Walletアプリ(Suicaアプリではない!)で「カードを削除」。

【機種変更】Apple PayからApple Payへ(iPhone/Apple Watch→新しい | Suica Apple Pay よくあるご質問
↑こちらも参考に。

2)LINE

LINEのスクショ

↑LINEってあまり使わないのだが、とりあえず電話番号だけで登録しているのかな?
参考記事にもLINE公式ビデオにもメールアドレスとパスワードを登録って書いてるけど旧機種は手元にあるから何もしないことにした。

3)iCloudバックアップ
一応最新のにしときたいよねってことで、

iCloudのスクショ

↑移行作業直前にバックアップ。



【新iPhoneのアクティベート】

旧iPhoneのSIMを抜いて、新iPhoneに入れて電源オン、iCloudのバックアップから復元したのだが、古いiPhoneを近づけるとクイックなんとかとかで設定が楽になるとかなんとか?すごいねえ、本当に楽になったのかどうかよくわからんけど。
アクティベート時にiOS12.1のアップデートをやったので妙に時間がかかってしまった。



【新機種でやったこと】

1)Suica
(Suicaアプリではなく)Walletアプリで再登録なんだが、すんなりいけた。何もしなかった?少なくとも事前に撮影したスクショを使うことはなかった。
Suicaアプリではログイン作業が必要だった。

2)LINE
すんなりだったな。そもそも電話番号が変わらないので新iPhoneで電話番号入れたらSMSでパスコードみたいなの送ってきてそれを入力したら終わった。

3)電話
4G回線はb-mobileを使ってて移行時にはたいていプロファイルを再インストールしてたと思うのだが、、、どういうわけかその作業をしなくても電話使える、、、なぜだ?
追記
電話回線は使えたけどデータはダメだったので、結局プロファイルをインストールしたらデータもいけるようになった。


4)ポケモンGO

ポケモンGOのスクショ

↑なぜか位置情報がつかめない。他にもそのようなアプリがあったのでGPSの不具合なのか?とあせったが
ポケモンGOが「GPSの信号を探しています(11)」エラーで操作できない不具合と対策
↑こちらを参考にiPhoneを再起動したが、、、直後にはやっぱりエラーが出てたがその数分後に直った。なんだかよくわからない。

5)音楽
音楽はいつもMacのiTunesから入れ直すのは覚えてた。聞かないのは入れなければいいので見直すにはいい機会なのかも。

6)その他
ログインし直しアプリは多数あり。めんどくさいけど難しくはない。


NSTableViewに置いたNSPopUpButton等の変化時にどの行のボタンなのか得る

NSTableViewにNSPopupButtonを置く
↑これの続き。
NSTableViewに置いてるcheckboxやpopup buttonを変更した時(popup buttonだと変更しなくても)、メソッドがコールされるようにしてるけど、実はどの行に対するアクションなのかがわからない。
bindingで全ての状態がわかるので、調べればわかるといえばわかるのだけど、、、なんとも面倒だ。
やっぱりどの行のNSPopUpButtonオブジェクトやNSButtonのチェックボックスが変更されたのかを知りたい。

調べるとNSTableViewクラスに
- (NSInteger)rowForView:(NSView *)view;
というメソッドがあってこれを使えばよい。

storyboardでNSTableViewに置いたボタンからコード側にactionをつなぐとすると、そのメソッドはこれらのような感じになる↓
-(IBAction)tappedCheckbox:(id)sender
{
    NSButton *checkbox = (NSButton *)sender;
    NSInteger row = [tableView rowForView:checkbox];
    NSLog(@"row=%ld",row);
}

-(IBAction)tappedPopUpButton:(id)sender
{
    NSPopUpButton *button = (NSPopUpButton *)sender;
    NSInteger row = [tableView rowForView:button];
    NSLog(@"row=%ld",row);
}
これでどの行に対するアクションなのか知ることができる。

なお
IBOutlet NSTableView *tableView;
↑このようにtableViewはNSTableViewオブジェクトで、storyboardから参照を持ってきてる。


符号なしcharと浮動小数点数を持つバイナリファイルをObjective-Cで保存しPythonで読み込む

浮動小数点数を持つバイナリファイルをPythonで読み込む
↑この続き、というか変化球というか。

macOSアプリ(Objective-C)で機械学習のデータセットを作成する時に入力と正解ラベルをセットにして1ファイルにするとなにかと都合がいい(いろんなケースがあるだろうけど、自分の場合は)。
ということで、macOSアプリ側で画像データ(unsinged char)の後に正解ラベル(float値)を付けて一つのバイナリファイルとし、それをPython側で読めるようにしたい。
今回はそういうことが可能か確認した。

最初に5個のunsigned char値を入れ、その後に5個のfloat値があるとし、そのバイナリファイルを扱う。

まずmacOSアプリ側で作成し、保存する。
{
    // unsigned char値の作成
    NSUInteger nofCData = 5;
    unsigned char *cData = calloc(nofCData, sizeof(unsigned char));
    for (NSUInteger ite=0; ite<nofCData; ite++) {
        cData[ite] = ite*10;
    }
    for (NSUInteger ite=0; ite<nofCData; ite++) { // チェック
        NSLog(@"data[%ld] = %hhu",ite,cData[ite]);
    }
    // float値の作成
    NSUInteger nofFData = 5;
    float *fData = calloc(nofFData , sizeof(float));
    for (NSUInteger ite=0; ite<nofFData; ite++) {
        fData[ite] = (float)ite/10.0;
    }
    for (NSUInteger ite=0; ite<nofFData; ite++) { // チェック
        NSLog(@"data[%ld] = %f",ite,fData[ite]);
    }
    

    // 保存
    NSString *filePath = …
    NSFileManager *fileManager = [NSFileManager defaultManager];
    [fileManager createFileAtPath:filePath contents:[NSData data] attributes:nil];//カラを新作
    NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];

    NSData *nsCData=[NSData dataWithBytes:cData length:nofCData*sizeof(unsigned char)];
    [fileHandle writeData:nsCData];
    
    NSData *nsFData=[NSData dataWithBytes:fData length:nofFData*sizeof(float)];
    [fileHandle writeData:nsFData];

    [fileHandle synchronizeFile];
    [fileHandle closeFile];
}
↑コードはこんな感じで、NSFileHandle使って順番にunsigned char値を保存し、次にfloat値を保存する。
あらかじめ
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
でカラのファイルを作成しておく必要がある。でないと落ちないけどファイルができない。
{
    //これだとダメ
    NSData *nsCData=[NSData dataWithBytes:cData length:nofCData*sizeof(unsigned char)];
    [nsCData writeToFile:filePath atomically:YES];
    NSData *nsFData=[NSData dataWithBytes:fData length:nofFData*sizeof(float)];
    [nsFData writeToFile:filePath atomically:YES];
}
↑なお、このように以前と同じようなNSDataの
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
メソッドで保存すると後の方しか保存されないのでダメ。

macOSアプリ側での実行結果

↑チェックした値の確認。

作成・保存したファイルの情報

↑計算通り 1バイトx5個 + 4バイトx5個 = 25バイトのファイルができた。


次にPython側でこのファイルを読み込む。
{
    fid = open(FilePath, "rb")
    for ite in range(5) :
        r = struct.unpack('B', fid.read(1))
        print("data[%d]=%d"%(ite,r[0]))
    for ite in range(5) :
        r = struct.unpack('f', fid.read(4))
        print("data[%d]=%f"%(ite,r[0]))
}
↑こちらもopenしたファイルを順番に読み込んだらいけた。

読み込んだ結果

↑実行後の結果。めでたし、めでたし。


(参考)
Objective-cでファイル書き込み - 備忘録 〜プログラミング〜


MacでPHPを動かす時のメモ

久しぶりにMacでPHPを動かす必要があったんだがすっかり忘れていたのでメモ。

MacでPHPを使う時の設定
↑ここにもあるが、、、


sudo vi /etc/apache2/httpd.conf
↑ターミナルからviでファイルの編集をする。これで起動。


LoadModule php7_module libexec/apache2/libphp7.so
↑ここがコメントになってるので有効にする。
え?今のMacで動かしていなかったのか?!動かしていたはずだと思い込んでた。


DocumentRoot "/Library/WebServer/Documents"

↑この2行を書き換えて作業フォルダを指定する。

/Users/yama…/Dropbox/website/
↑phpファイルはDropboxに置いてるのでこのようにして書き換えた


vi コマンドリファレンス
↑viの操作はこちらを参考に。
カーソル移動は矢印キーを使う(普段のショートカットだとダメ)。
iで入力モードに入り入力できる、escで元のコマンドモードに戻る。
ZZで保存して終了。


sudo apachectl start
↑これで起動できる。
ブラウザにlocalhostでOK。


地味にPHPって7まで行ってたの?と驚いた。



macOS Mojave 10.14




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad