facebookページの利用解除・削除(Androidスマホ)
スマホでfacebookページを削除(利用解除)したい。Androidのスマホアプリではできないのだろうか。Facebookアプリの設定を調べてしらべてみたがメニューがみつからない。
パソコンではMeta Business Suiteで削除(利用解除)できたので、さっそくアプリをインストールして設定を探したが、このアプリでも削除設定のメニューは見つからなかった。
とりあえず、AndroidアプリではFacebookの削除ができなかったのでメモとして残します。
また、パソコン(Windows)でのFacebookページ削除もたどりつくのが大変だった(見つけにく)ので、アクセス手順をメモにまとめました。dounan.hatenablog.com
ビットでログを記録する
(見たままモードで記事を作るとはてな記法に変更できなかったので書き直しました)
ビットでログを記録するロジックを作ってみた。
C言語だが、少しだけオブジェクト指向っぽく。
typedef uint32_t LOG_VALUE_TYPE; #define HL_BIT_LOG_NUM (sizeof(LOG_VALUE_TYPE)*8) typedef struct T_HL_BIT_LOG_INF { uint16_t log_no_max; /* cvr log max */ uint16_t buf_size; /* buffuer size */ LOG_VALUE_TYPE *p_bits; /* bits data address */ } hl_bit_log_inf;
static LOG_VALUE_TYPE bit[HL_BIT_LOG_NUM] = { 0x00000001, 0x00000002, 0x00000004, 0x00000008, 0x00000010, 0x00000020, 0x00000040, 0x00000080, 0x00000100, 0x00000200, 0x00000400, 0x00000800, 0x00001000, 0x00002000, 0x00004000, 0x00008000, 0x00010000, 0x00020000, 0x00040000, 0x00080000, 0x00100000, 0x00200000, 0x00400000, 0x00800000, 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, }; /** * @brief 初期化 * * @param p_bit_log_inf ビットログ管理構造体アドレス * @param p_bits ログバッファ * @param buf_size ログバッファサイズ * @param log_no_max ログNo最大値 * @return int 0:OK -1:NG */ int hl_bit_log_init(hl_bit_log_inf *p_bit_log_inf, LOG_VALUE_TYPE *p_bits, uint16_t buf_size, uint16_t log_no_max) { if (p_bit_log_inf != NULL) ; else return -1; if (buf_size < (log_no_max / (sizeof(uint8_t)))) ; else return -1; p_bit_log_inf->log_no_max = log_no_max; p_bit_log_inf->buf_size = buf_size; p_bit_log_inf->p_bits = p_bits; return 0; } /** * @brief 終了処理 * * @param p_bit_log_inf ビットログ管理構造体アドレス */ void hl_bit_log_del(hl_bit_log_inf *p_bit_log_inf) { p_bit_log_inf->log_no_max = 0; p_bit_log_inf->buf_size = 0; p_bit_log_inf->p_bits = NULL; } /** * @brief ログセット * * @param p_bit_log_inf ビットログ管理構造体アドレス * @param no ログNo * @return int 0:OK -1:NG */ int hl_bit_log_set(hl_bit_log_inf *p_bit_log_inf, uint16_t no) { int ret; if (no < p_bit_log_inf->log_no_max) { int y = no / HL_BIT_LOG_NUM; int x = no % HL_BIT_LOG_NUM; p_bit_log_inf->p_bits[y] |= bit[x]; ret = 0; } else { ret = -1; } return ret; } /** * @brief セットチェック * * @param p_bit_log_inf ビットログ管理構造体アドレス * @param no ログNo * @return int 1 : on セット 0 : off 未セット -1 : noが範囲外 */ int hl_bit_log_is_set(hl_bit_log_inf *p_bit_log_inf, uint16_t no) { int ret; if (no < p_bit_log_inf->log_no_max) { int y = no / HL_BIT_LOG_NUM; int x = no % HL_BIT_LOG_NUM; if ( (p_bit_log_inf->p_bits[y] & bit[x]) == 0 ) ret = 0; else ret = 1; } else { ret = -1; } return ret; }
フリーランタイマー(カウンター)を使った時間計測
よくフリーランカウンターを用いて時間計測をするが、カウンターが一周したことを判定したくなるが、符号なしの場合、単純に引き算してよいとのこと。
現在時間-スタート時間
計算しやすいので8ビットで確認する。
以下、計測開始時間が0xffで現在時間が0x01だと経過時間は2になることがわかる。
計算式 | ||||||||||||
現在時間 ー スタート時間 = ラップタイム | ||||||||||||
1周しないときの計算 | 9 - 7 = 2 | |||||||||||
BO | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||||
現在時間 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0x09 | ||
スタート時間 | ー | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0x07 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0x02 | |||
1周したときの計算 | 1 - 255 = 2 | |||||||||||
BO | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||||
現在時間 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0x01 | ||
スタート時間 | ー | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0xff | |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ||||
BO:ボローフラグ | ||||||||||||
経過時間 | ||||||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 |
GmailでGmail以外のメールアドレスで送受信する
Gmailで他のプロバイダーやメールサーバーのメールを送受信できると便利ですよね。
モバイルでもメールが見たかったため、Gmailで送受信することにしました。
詳しい設定は他の方に譲るとして、要点だけ纏めました。
- Gmailのアカウントを取得する
- 取得したアカウントでログインする
- Gmailの「設定」→「アカウントとインポート」で送受信したいメールアドレス(メアド)の設定をする
- 「名前:」の欄に表示されているメアドのデフォルトを送信したいメアドに変更する
※これをしないと取得したGmailのアドレスでメールが送信されるので要注意です。
POPを使用する際、メールサーバーにコピーを残すかどうするかなど細かい設定は利用状況によりますね。