2024/09/10

html 要素を右に並べたい

 

とりあえず、メモ

    display: flex;

ーーーー


<html>
<style>
  .flex {
    display: flex;
  }
</style>
<body>
  <div class="flex">
    <p>社長</p>
    <p>部長</p>
    <p>課長</p>
  </div>
</body>
</html>

2024/09/05

【html】safariでvideoタグの上にかぶせてうまく表示できない件

Safariでvideoタグの上にかぶせてうまく表示できない件

HTMLでコーディングしていて、動画の上に別のタグを重ねるデザインを実装したところ、Safariでの表示に問題が発生しました。他のブラウザでは正常に表示されるのに、Safariだけ動画の裏側に要素が表示されてしまい、困っていました。

原因として、z-indexの問題か、Safariのレンダリング順序の問題かと考え、調べてみました。

その結果、以下のCSSを追加することで、重ねて表示できるようになりました。

----解決策----

transform: translateZ(1px); /* 回避手段 */

この方法で、Safariでも動画の上に要素を正しく重ねて表示できるようになりました。

2024/08/15

Guideline 4.3(a) - Design - Spam

リジェクトされた、しかもスパム扱い

これどうしたらよいだろうか・・・・

クライアントにこのアプリ作ってって言われて作成しただけなのに


Guideline 4.3(a) - Design - Spam

We noticed your app shares a similar binary, metadata, and/or concept as apps submitted to the App Store by other developers, with only minor differences.

Submitting similar or repackaged apps is a form of spam that creates clutter and makes it difficult for users to discover new apps.


Next Steps

Since we do not accept spam apps on the App Store, we encourage you to review your app concept and submit a unique app with distinct content and functionality.

----


ガイドライン4.3(a) - デザイン - スパム

あなたのアプリは、他の開発者がApp Storeに提出したアプリと、バイナリ、メタデータ、および/またはコンセプトが類似しており、わずかな違いしかありません。類似したアプリやリパッケージされたアプリの提出は、乱雑さを生み出し、ユーザーが新しいアプリを発見することを困難にするスパムの一形態です。


次のステップ

App Storeではスパムアプリを受け付けておりませんので、アプリのコンセプトを見直し、明確なコンテンツと機能を備えたユニークなアプリをご提出ください。


2024/07/26

放置していると、検索されない・・・。 AdSense収益全然ない・・・。 今月は1円です。

 とりあえず、

記事を書く。

記事を書く。

記事を書く。

記事を書く。

記事を書く。


これでいいか?

2024/06/12

【C#】C#でuser32.dllを使用してマウスカーソルを消す

C#でuser32.dllを使用してマウスカーソルを消すには、

P/Invoke(Platform Invocation Services)を利用してWindows APIを呼び出します。

以下の手順で、マウスカーソルを非表示にする方法を説明します。

user32.dllのインポート:user32.dllのShowCursor関数を呼び出すために、P/Invokeを使います。

ShowCursor関数の呼び出し:ShowCursor関数は、カーソルの表示状態を変更するために使います。

関数の引数にfalseを渡すことでカーソルを非表示にできます。

以下に、C#コードの例を示します。

using System;
using System.Runtime.InteropServices;

class Program
{
    // user32.dllのShowCursor関数をインポート
    [DllImport("user32.dll")]
    private static extern int ShowCursor(bool bShow);

    static void Main(string[] args)
    {
        // カーソルを非表示にする
        ShowCursor(false);
        
        Console.WriteLine("Press any key to show cursor again...");
        Console.ReadKey();
        
        // カーソルを表示する
        ShowCursor(true);
    }
}

ちょっと頑張ってかきなおした。

C#でマウスカーソルを非表示にする方法 (P/Invoke)

マウスカーソルを非表示にすることで、特定のアプリケーション(ゲーム、全画面表示のアプリケーションなど)の操作性を向上させたり、より没入感のある体験を提供したりすることができます。C#では、P/Invoke(Platfrom Invocation Services)を利用してWindows APIのShowCursor関数を呼び出すことで、マウスカーソルを簡単に非表示にすることができます。

P/Invokeとは

P/Invokeは、マネージドコード(C#など)からアンマネージドコード(C++で記述されたDLLなど)を呼び出すための仕組みです。これにより、C#からWindows APIなどの既存の機能を再利用することができます。

ShowCursor関数の利用

ShowCursor関数は、Windows APIの一部であり、マウスカーソルの表示/非表示を制御するために使用されます。この関数を呼び出すことで、アプリケーションの動作に合わせてマウスカーソルを動的に制御することができます。

実装手順

  1. user32.dllのインポート: DllImport属性を使用して、user32.dllShowCursor関数をC#コードにインポートします。
  2. ShowCursor関数の呼び出し: ShowCursor関数を呼び出し、引数にfalseを渡すことでマウスカーソルを非表示にできます。trueを渡すと、マウスカーソルが再び表示されます。

C#コード例

以下に、マウスカーソルを非表示にするC#コードの例を示します。


using System;
using System.Runtime.InteropServices;
class Program
{
   // user32.dllのShowCursor関数をインポート
   [DllImport("user32.dll")]
   private static extern int ShowCursor(bool bShow);
   static void Main(string[] args)
   {
       // カーソルを非表示にする
       ShowCursor(false);
       Console.WriteLine("マウスカーソルを非表示にしました。");
       Console.WriteLine("何かキーを押すとマウスカーソルを再表示します...");
       Console.ReadKey();
       // カーソルを表示する
       ShowCursor(true);
       Console.WriteLine("マウスカーソルを再表示しました。");
   }
}

コード解説:

  • [DllImport("user32.dll")]: user32.dllをインポートし、ShowCursor関数をC#から呼び出せるようにします。
  • private static extern int ShowCursor(bool bShow);: ShowCursor関数のシグネチャを定義します。bool bShowは、カーソルを表示するか非表示にするかを指定する引数です。
  • ShowCursor(false);: カーソルを非表示にします。
  • ShowCursor(true);: カーソルを表示します。

注意点

  • 権限: このコードを実行するには、適切な権限が必要です。
  • ユーザーエクスペリエンス: マウスカーソルを非表示にすると、ユーザーが混乱する可能性があります。適切な状況でのみ使用するように注意してください。
  • アプリケーションの終了: アプリケーションを終了する前に、必ずマウスカーソルを再表示するようにしてください。

まとめ

P/Invokeを利用することで、C#からWindows APIのShowCursor関数を呼び出し、マウスカーソルを簡単に非表示にすることができます。この機能は、特定のアプリケーションの操作性を向上させたり、より没入感のある体験を提供したりするのに役立ちます。ただし、ユーザーエクスペリエンスに配慮し、適切な状況でのみ使用するように注意してください。

2024/06/11

iOS 18 対応予定 機種一覧

iOS 18対応予定機種一覧

機種
iPhone 15
iPhone 15 Plus
iPhone 15 Pro
iPhone 15 Pro Max
iPhone 14
iPhone 14 Plus
iPhone 14 Pro
iPhone 14 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone XS
iPhone XS Max
iPhone XR
iPhone SE(第2世代)
iPhone SE(第3世代)

2024/06/10

【android】android OSの割合

android のOSのバージョンの分布が気になったので確認してみました。


2024年の5月の段階で10以上で80%を超えているので、

新規に作成する人は10以上で作成を行えばよいのでは?と思います。

ちなみに、android studioで確認が可能です。


 

2024/06/06

else は使わない。

どっちのコードがお好き?

ソースコードレビューしていて、ふと気になった点があります。条件分岐の書き方について、どちらのスタイルが多いのか、あるいはどちらが読みやすいと感じるか、といったことです。

私は後者の書き方が好きで、ソースコードの最初に「ダメな条件」を記述し、最後に「問題ない時の処理」を記述するのが好みです。これは、コードの意図が明確になり、可読性が向上すると思ってます。

-------------


if (aaaaaa == 1) {
  // 問題ない時の処理
} else {
  print("エラーだよ");
}

------or-------


if (aaaaaa != 1) {
  print("エラーだよ");
  return;
}
// 問題ない時の処理

-------------

上記2つのコードは、どちらも同じ処理を行います。しかし、書き方によってコードの理解しやすさが変わってきます。前者では、条件が真の場合と偽の場合の両方を記述する必要があり、コードが少し長くなる可能性があります。一方、後者では、エラー条件を最初にチェックし、エラーの場合はすぐに処理を中断するため、コードが簡潔になり、可読性が向上します。この「エラー条件を最初にチェックする」という書き方は、「早期リターン」と呼ばれ、多くのプログラミングコミュニティで推奨されています。

早期リターンを採用することで、ネストされた条件分岐を減らすことができ、コードの複雑さを軽減できます。また、エラー処理が明確になり、デバッグが容易になります。もちろん、どちらの書き方が正解というわけではありません。チームのコーディング規約や個人の好みに合わせて選択することが重要です。しかし、早期リターンは、可読性、保守性、デバッグの容易性を向上させるための有効な手段の一つと言えるでしょう。

2024/05/28

X (旧 Twitter) センシティブ 解除 方法

x センシティブ 解除 方法

x センシティブ 解除 方法

このガイドでは、X( 旧 Twitter) センシティブの設定を解除する方法を説明します。

手順

  1. 設定メニューを開きます。
  2. プライバシーオプションを選択します。
  3. センシティブ コンテンツの項目を見つけます。
  4. チェックボックスをオフにします。

上記の手順に従えば、x センシティブの設定を解除できます。

2024/05/24

【iOS】reject  Guideline 2.3.10 - Performance - Accurate Metadata

Guideline 2.3.10 - Performance - Accurate Metadata

よくやらかすので、メモがてら。
マルチプラットフォーム対応等で、アプリ内のヘルプにiOSとは関係のない、
プラットフォームの表記が有るとNGがでます


最近は、ちゃんと指摘してくれるので良いですよね。
ーーーー
Revise the app's description to remove Android references. 
ーーーー

Androidの表記があるから、消せと言われます。

2024/05/20

テレビでYouTube見る時、チャットは別画面でみたいよね

最近、テレビでYouTubeを見る機会が増えていませんか?多くのの人が、好きなYouTuberの動画やライブ配信を楽しんでいることと思います。ライブ配信では、コメントだけでなくチャット機能を使って、演者とリアルタイムなやり取りが可能です。

しかし、テレビでYouTubeを見ると、チャットが画面の右半分ほどを占めてしまい、動画を全画面で楽しむことができません。チャット部分を別画面で表示できないだろうか、と疑問に思う方も多いでしょう。

チャット部分を別画面で表示する方法は?

実は、チャット部分を別画面で表示する簡単な方法があるのです。以下のURLに、配信中のビデオIDを「v=」の後に追加するだけで、チャット部分を別画面で表示することができます。

チャット別画面表示URL: https://www.youtube.com/live_chat?v=配信ID

使い方

  1. テレビでYouTubeのライブ配信を開きます。
  2. 配信URLの「v=」の後に配信IDを追加します。
  3. 例:配信ID「123456789」の場合、URLは「https://www.youtube.com/live_chat?v=123456789」となります。
  4. 修正したURLをスマホなどのブラウザで開くと、チャット部分が別画面で表示されます。

注意事項

  • GoogleはこのURLの仕様を頻繁に変更する場合があるので、注意が必要です。

まとめ

テレビでYouTubeチャット別画面表示機能を使えば、動画を全画面で楽しむと同時に、チャットも快適に閲覧することができます。ぜひ試してみてください!

2024/05/14

ChatGPTに自分のサイトを要約してもらった

ブログ「一生ヘタレプログラマ」では、iOSやAndroidの最新情報、プログラミングのヒント、個人的な経験談を紹介しています。最近の記事では、iOS 17.5の更新、Android 15のベータ版、Rocky Linux 9のインストール手順について触れています。また、SwiftのUIViewControllerライフサイクルの詳細な説明や、技術業界での体験談も共有されています。 


ーー

とのこと。

2024/05/09

iOS 17.5 がもうすぐ

iOS 17.5がもうすぐリリースする様子


最近あった、iPadにも関連しているのか?


とにかく、バージョンアップ多すぎです。 

2024/04/15

android 15 (beta)が公開された



beta板ですが公開された様子
android 15で今のところ対応しているのは下記
おそらく、pixel 6は最後のOSアップデートになると思います

  • Pixel 6/6 Pro
  • Google Pixel 6a
  • Google Pixel 7/7 Pro
  • Google Pixel 7a
  • Google Pixel Fold
  • Google Pixel Tablet
  • Google Pixel 8/8 Pro

スマホ業界も成熟期後半に差し掛かっていると思うので、今後どう進んでいくのか楽しみ。

個人的には、apple Visionがでたので。
google Visionもでてくれないかな?と。 おもいました。

2024/03/11

Rocky Linux 9

Rocky Linux 9 最小構成インストール後の設定手順

Rocky Linux 9を最小構成でインストールした場合、よく忘れがちな初期設定手順をメモとして記載します。

1. システムアップデート

# dnf -y update

まず、最新の状態に更新します。

2. ネットワーク設定

# nmtui

IPアドレスを固定化する場合は設定してください。(すでに設定済みの場合 は不要です。)

3. 再起動

# shutdown -rf now

アップデート内容を反映させるために再起動します。

4. IPアドレス確認

# ip addr

再起動後、IPアドレスが正しく設定されているか確認します。

上記コマンドで、自分のIPアドレスを確認してください。


補足:

  • # はroot権限でコマンドを実行することを意味します。
  • nmtui はテキストベースのネットワーク設定ツールです。GUI環境がない場合でも利用できます。
  • 上記は基本的な設定手順です。必要に応じて、ファイアウォール設定、SSH設定、ユーザー作成などの設定を追加してください。

2024/02/08

2024年4月29日以降からはXcode15が必須の様子。

Xcode15が必須になります。

また、この季節が来ました。

AppleStoreにアップ可能な要件が代わります。

皆さん注意をしてください。

----

2024年4月29日以降、

App Store Connectにアップロードするアプリは

iOS 17、iPadOS 17、tvOS 17、

またはwatchOS 10向けにXcode 15 でビルドする必要があります。

----



引用:https://developer.apple.com/jp/news/upcoming-requirements/?id=04292024a




2024/02/06

【iOS】今更聞けない UIViewControllerのライフサイクル その2 (Swift)

【iOS】今更聞けないUIViewControllerのライフサイクル その2 (Swift)

過去に書いていたのですが、意外と観ていただいている人がいたので、更新版です

忘れやすいですよね

もう少し、細かいイベントを追加しました

表示する時

  • awakeFromNib
  • loadView
  • viewDidLoad
  • loadViewIfNeeded
  • viewWillAppear
  • viewLayoutMarginsDidChange
  • viewSafeAreaInsetsDidChange
  • updateViewConstraints
  • viewIsAppearing
  • viewWillLayoutSubviews
  • viewDidLayoutSubviews
  • viewDidAppear

別ページ表示する時

  • viewWillLayoutSubviews
  • viewDidLayoutSubviews
  • viewWillDisappear
  • viewWillLayoutSubviews
  • viewDidLayoutSubviews
  • viewDidDisappear

import UIKit

class ViewController: UIViewController {
    override func awakeFromNib() {
        super.awakeFromNib()
        print("awakeFromNib")
    }
    
    override func loadView() {
        super.loadView()
        print("loadView")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        print("viewDidLoad")
    }
    override func loadViewIfNeeded() {
        super.loadViewIfNeeded()
        print("loadViewIfNeeded")
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print("viewWillAppear")
    }
    override func viewLayoutMarginsDidChange() {
        super.viewLayoutMarginsDidChange()
        print("viewLayoutMarginsDidChange")
    }
    override func viewSafeAreaInsetsDidChange() {
        super.viewSafeAreaInsetsDidChange()
        print("viewSafeAreaInsetsDidChange")
    }
    override func updateViewConstraints() {
        super.updateViewConstraints()
        print("updateViewConstraints")
    }
    override func viewIsAppearing(_ animated: Bool) {
        super.viewIsAppearing(animated)
        print("viewIsAppearing")
    }
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("viewDidAppear")
    }
    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        print("viewWillLayoutSubviews")
    }
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        print("viewDidLayoutSubviews")
    }
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        print("viewWillDisappear")
    }
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("viewDidDisappear")
    }
}

2024/02/01

【bard】15日後に風邪をひくプログラマ

2024年2月1日、東京・品川区のオフィス街。

28歳のプログラマ、佐藤は、いつものようにオフィスで仕事をしていた。

佐藤は、新しく開発中のゲームのプログラムを担当していた。

ゲームは、プレイヤーが巨大なモンスターと戦うアクションゲームだった。

佐藤は、ゲームのグラフィックやサウンドも担当していた。

佐藤は、ゲームの完成に向けて、日々懸命に取り組んでいた。

しかし、その日、佐藤はいつもと違う違和感を感じていた。

頭がぼんやりするし、体がだるい。

「風邪かな?」

佐藤は、心配になって、体温を測ってみた。

37.5度。

「やっぱり風邪だ。」

佐藤は、残念そうにため息をついた。

佐藤は、風邪をひくと、いつも仕事に支障をきたす。

頭がぼんやりして、集中力が続かない。

そのため、いつもより多くのミスをしてしまう。

「今日は、早めに帰ろう。」

佐藤は、上司に報告して、会社を後にした。

家に帰ると、すぐに布団に潜り込んだ。

「早く治れよ。」

佐藤は、そう呟いて、目を閉じた。

翌日、佐藤は、さらに体調が悪くなった。

頭痛がひどくなり、熱も38度を超えていた。

佐藤は、仕事を休んで、寝込むことにした。

3日後、佐藤の体調は少しずつ回復し始めた。

しかし、まだ頭痛や倦怠感は残っていた。

佐藤は、仕事に復帰するかどうか迷っていた。

「早く仕事に戻らないと、プロジェクトが遅れる。」

佐藤は、そう考えて、仕事に戻ることにした。

しかし、佐藤の体調は、まだ完全には回復していなかった。

仕事に集中できず、ミスを連発した。

上司は、佐藤の様子を見て、心配そうに言った。

「佐藤、まだ無理をしないほうがいいよ。」

しかし、佐藤は、仕事にこだわりすぎていた。

「大丈夫です。もう大丈夫です。」

佐藤は、そう言って、仕事を続けた。

しかし、佐藤の体調は、さらに悪化した。

頭痛がひどくなり、熱も39度を超えた。

佐藤は、とうとう倒れてしまった。

佐藤は、病院に運ばれ、入院した。

佐藤は、入院して2週間、ようやく退院することができた。

しかし、佐藤は、まだ完全には回復していなかった。

佐藤は、仕事に復帰することを断念した。

佐藤は、自分の過ちを反省した。

「もう、仕事に無理をしない。」

佐藤は、そう心に誓った。

佐藤は、しばらくの間、ゆっくりと休養をとることにした。

そして、体調が完全に回復したら、もう一度、仕事に挑戦することを決意した。

佐藤の物語は、仕事に熱心すぎるあまり、自分の体を壊してしまうことの危険性を警告する物語です。

仕事は大切ですが、健康も大切です。

仕事と健康のバランスをうまく保つことが、大切なのではないでしょうか。

2024/01/18

【Bird】14日後に風邪をひく小学校教師

2024年1月18日、神奈川県横浜市にある一小学校で、担任教師の田中由紀は、いつものように授業を行っていた。由紀は、3年生の担任を務め、生徒たちから慕われていた。


授業が終わり、生徒たちが下校していくと、由紀は息を切らせながら机に座った。最近、少し体調がすぐれない気がしていた。


「やっぱり、風邪ひいちゃったかな」


由紀は、自分の額に手を当てた。熱は、まだそれほど高くはない。


「でも、明日も授業があるし、なんとか乗り切らないと」


由紀は、無理をしながらも、翌日の授業に備えて準備を始めた。


翌日、由紀は、いつも通りに学校に向かった。しかし、授業が始まると、頭痛や倦怠感、鼻水などの症状がひどくなってきた。


「もう、無理だ」


由紀は、担任主任に連絡し、休ませてもらうことにした。


由紀は、自宅で療養することにした。しかし、熱はどんどん上昇し、咳や鼻水もひどくなった。


「これは、マズイ」


由紀は、病院に行くことにした。


病院で診察を受けた由紀は、肺炎と診断された。


「肺炎って、重症になることもあるんですよね?」


由紀は、不安でいっぱいだった。


「心配はいりません。早めに治療すれば、大丈夫ですよ」


医師の言葉に、由紀は少し安心した。


由紀は、入院して治療を受けることとなった。


入院中、由紀は、生徒たちのことを心配していた。


「早く退院して、みんなに会いたい」


由紀は、退院の日を待ちわびた。


そして、2週間後、由紀は退院することができた。


退院した由紀は、すぐに学校に向かった。


「先生、おかえりなさい!」


生徒たちは、由紀の帰りを心待ちにしていた。

14日後に風邪をひく小学校教師由紀は、生徒たちと再会し、嬉し涙を流した。


「先生、お大事にしてください」


生徒たちは、由紀を気遣って声をかけてくれた。


由紀は、生徒たちとの再会に、心から安堵した。


由紀は、改めて、教師という仕事の大切さを実感した。


「これからも、生徒たちのために、頑張ろう」


由紀は、そう心に誓った。

【Bird】13日後に風邪をひく3DCGデザイナー

13日後に風邪をひく3DCGデザイナー


2024年1月18日、神奈川県横浜市に住む30歳の3DCGデザイナー、佐藤は、いつものように仕事に励んでいた。


佐藤は、大手ゲーム会社に勤務するベテランデザイナーで、これまでに数々のヒットゲームの3DCG制作に携わってきた。彼は、仕事に熱心で、常に完璧な作品を目指して努力していた。


しかし、佐藤にはひとつだけ、悩みがあった。それは、なぜか13日ごとに必ず風邪をひいてしまうことだった。


佐藤は、最初は単なる偶然だと思っていた。しかし、13日ごとに風邪をひくという現象は、何度繰り返しても変わらなかった。


佐藤は、風邪をひくと、仕事に支障をきたすこともあった。また、体調が悪いと、いつものパフォーマンスを発揮することができず、ストレスも溜まっていた。


佐藤は、風邪をひかないように、いろいろな対策を試してみた。しかし、どれも効果はなかった。


ある日、佐藤は、風邪をひく理由を占ってもらうことにした。占い師は、佐藤の守護霊から、次のようなメッセージを受け取った。


「佐藤さん、あなたは、13日ごとに、自分の人生を振り返る機会を与えられています。それは、あなたが、これまでの人生で、何か大切なことを忘れていないか、確認するための機会です。もし、何か大切なことを忘れていたら、それを思い出し、人生をより良いものにするために、行動を起こしてください。」


占い師の言葉を聞いた佐藤は、自分の人生を振り返ってみることにした。


そして、佐藤は、あることに気づいた。それは、彼が、仕事にばかり没頭していて、家族や友人と過ごす時間を、大切にできていなかったということだった。


佐藤は、占い師の言葉を心に留め、家族や友人と過ごす時間を、もっと大切にしようと決意した。


そして、13日後に風邪をひくという現象は、その後、起こらなくなった。


佐藤は、自分の人生をより良いものにするために、大切なことを思い出すことができた。そして、風邪をひくことで、彼は、人生の大切さを学んだのだった。