日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

アーカイブ

2023年08月 のアーカイブ

2023年 旧Delphi(Borland時代) を捨てる!?

執筆:2023.08.18
編集:2023.08.18


Windows10で表示不具合を起こすので旧DelphiのアプリをDelphi11にアップグレードすることに決定。

アップグレードによるコード修正が大変なんだろうなぁとずっと敬遠していて
問題になったプロジェクトをリポジトリに入れてバックアップして、フォルダもコピーして
試しに実験してみると、 無修正でバージョンアップ完了。
表示不具合も同時に解消。

もー 旧Delphi(Borland時代) のアプリはゴミでしかないです。

生成アプリの動作OS
Delphi2 : Win 95 以降
Delphi6 - : Win 98 以降
Delphi11 : Win vista 以降

現在 サポートされているOSは、Windows10,11しかないので
これって、実害ないですよね。あと2年でWin10も終了です。
というかいろいろな不具合を持っている旧Delphiの生成アプリはデメリットしかないです。

修正の必要が発生したら、バックアップとプロジェクトアップグレードをすればいいだけなので、旧Delphiは必要ないです。

Delphi最新版の無料版だと
・生成されるEXEが超デカイ
・最短1年程度で再インストールになるのが欠点。
・無料でつっておいて、気まぐれで昔のように無償版終了とかいうのもあるかもしれない。
そういうリスクも含めてアップグレードしよう。

ヘルプファイルが昔のは例文も同梱されていてみやすかったりするので、捨てがたい状況でしたが
2023年技術革新により時代は変わり、BING先生やCHATGPTでコード聞けば解決するので もういらないでしょう。

今日は、さっそく Delphi2 - Delphi6無料版をパソコンからアンインストールすることにします。

Delphi2005は、Delphi.Netのアプリ(小規模)がいくつかあるので C#に移植してからアンインストールする予定です。

ちなみに、Lazarusという まがい品があるようですが、UTF8KeyPressで絵文字の場合イベントが発生しないなどの不具合、その他もろもろあるようなので、使わないほうがいいですよ。開発⇒バグ足止め⇒バグ足止め⇒バグ足止め(ループ) と  時間をどぶに捨てるだけです。

Delphi11 [CE]
新しいファイル
移行後不要
プロジェクト
ファイル
.dproj .bdsproj
.bdsproj.local
.dof
.cfg
制限で使えないので不要

バージョン情報とか正しくインポートされていないので、手動確認後に不要なファイルは消去しましょう

Windows 10は、 2025 年 10 月 14 日 にサポート終了を迎えます。

Windowsのサポートは9~10年と既成事実は変化ないので、
Windows11は、推定終了日: 2032年1月13日か2031年10月14日 じゃないかと思っています。

» 続きを読む

タイトル

執筆:2023.08.16
編集:2023.08.16


Borland時代のDelphiで作ったアプリはWindows10で表示の不具合などいろいろ問題を起こすので
Delphi11へサクッと移行したほうがいいです。
普通にコード書いてるだけなら無修正でコンパイル通って移行できると思います。
プロジェクトオプションの PEのバージョンを 既定値の6.0から 5.0 にするとXPでも動作します。
PE 6.0 vista以降
PE 5.0 XPなど

JCL 2.8 [master] JCL 2.1
Delphi6 OK OK
Delphi2005 Error ❌
(Delphi内部バグ)
- jvcl3_39 jcl2_1
Delphi 11 OK


Windows ME,XP, VISTAなんて使わないでしょ。
古いDelphiはプロジェクトアップグレードして
古いDelphiと すっきり お別れしよう!!

Delphi 無料エディション1年だからと敬遠しているあなた。
生成したexeもリポジトリにいれておけば問題なし。

新規プロジェクトは断然 Visual Studio をお勧めします!!

それいけ ドット ネット

» 続きを読む

タイトル

執筆:2023.08.04
編集:2023.08.04


公開サーバーへ設置する危険性
  • ハッキングされる危険性
  • 未公開リポジトリを誤って公開して情報流出してしまう危険性
  • 放置していて使っていないうちに消滅する危険性

githubでいいのかもですが、アカウントジャック、突然のアカウントロック、規約変更による継続困難、サービス終了とかの不幸に見舞われた場合目も当てられない。
そこで大事なコードは単独でgithubには置きたくない。

そこで活躍するのが セルフホスト

セルフホストできるものをいくつかみてみよう

応答速度
一般的にスクリプトアプリは、バイナリアプリに比べて10倍遅い。

・Gitlab
uiの日本語: あり
巨大すぎるプロジェクト。設定も大変。
スクリプトなので動作が遅い。
すごいセキュリティ脆弱も過去にあったようだし、
どうしても使うなら、ホームネットワーク dockerで運用って感じでしょうか?

・Forgejo (ドイツ) ← gitea (china,Gitea Limited) ← Gogs (china 個人)
uiの日本語: あり
バイナリでよさそうなのですが、フォークが多い感じ。gitea,Gogsは国際情勢からしてインストールには勇気がいりますね。わたしはテストもしません。

(2023-08-04) 公式サイト apt pkg
forgejo 1.20.2-0 なし なし
gitea 1.20.2 なし 1.20.1
gogs 0.13.0 なし 0.12.11_2

apt search パッケージ名

pkg search パッケージ名

go言語で現役のプロジェクトがいまだにあったのが超ビックリ。

・gitbucket
検索するとたくさんヒットする。日本語なし、 javaなので却下。

・NASなどのソースコード管理アカウントに sshで直接接続して bareリポジトリにpush
初期設定が面倒なだけで、アプリの更新も必要ないので一番手軽で何十年たってもそのまま動作する。
何が入っているかなどがわかりにくいので、そういう面では、gitlab、Forgejoのようなアプリ経由で管理したほうが便利です。
リモート保存先: bareリポジトリの初期化 : git init --bare
リモートの登録1: git remote add ssh://user@host[:port]/path
リモートの登録2: git remote add ssh://user@host[:port]/path/.git


迷ったのなら、中途半端に利用すると時間の無駄です。
単純バックアップ、NASにSSHで同期しておく または 何もしない(様子見)がおすすめです。


ホームネットワーク運用
hostファイルにオレオレドメインと、オレオレ証明書の設定すればurlを固定化できる。

dependabot
動作安定性重視なので、dependabot[bot]を採用するようなプロジェクト持っていないので、必要になったら考えます。

それにしても gitはなぜ個人情報無視のメールアドレス項目があるのだろう。メーリングリスト文化の名残だろうか?
guidのようにユニークidで管理すればいいのに
タイトル

執筆:2023.08.03
編集:2023.08.03


まとめ

gitは、(UTC時間)
1970-01-01 00:00:00  ~ 2099-12-31 23:59:59
の範囲で使えます。

gitの通常使用で問題は発生しませんが、ほかのバージョン管理システムから移行する際は注意が必要です。


コマンドラインから日本時間で日付指定したい場合は、
'2023-08-03 00:00:00 +0900' のようにします。

【gitで扱える最大日付】

32bit
  2038-01-19 03:14:07

  コミットの日付指定は2099-12-31 23:59:59までできるが、2038年1月19日03:14:07(UTC)を超えた場合、オバーフローで自動的にDate: Thu Jan 1 00:00:00 1970 +0000になる。

32ビットの符号付き整数で表されるUnix時間の最大値は、2038年1月19日03:14:07(UTC)です。この時刻を超えると、32ビットの符号付き整数がオーバーフローして負の値になります。これは「2038年問題」として知られています。

64bit
  2099-12-31 23:59:59


【gitで扱える最小日付】

 1970-01-01 00:00:00 +0000


入力として受け付ける最大日付は、
ソースコードのgit/date.c:time_t tm_to_time_t(const struct tm *tm)にコメントとして書かれています

if (year < 0 || year > 129) /* algo only works for 1970-2099 */


確認方法 その2(人海戦術)
空フォルダを用意してコミットするだけ。

手順

1. フォルダを用意する
   mkdir test

2. フォルダをshellやgitシェルなどで開く
   cd test

3. コミットする

$ export GIT_AUTHOR_DATE="2100-01-01 00:00:00"; export GIT_COMMITTER_DATE={$GIT_AUTHOR_DATE}; git commit -m "$GIT_AUTHOR_DATE"

  問題ない場合は、
$ export GIT_AUTHOR_DATE="2099-12-31 23:59:59"; export GIT_COMMITTER_DATE={$GIT_AUTHOR_DATE}; git commit -m "$GIT_AUTHOR_DATE"
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)
と表示される。

コミットできない場合は
fatal: invalid date format: 指定した日時
と表示される

ほんとうにコミットしたい場合は、 --allow-empty を加える。
今回はテスト目的なのであえてつけていない。

コミットとgit logすると実際の日付がわかる。

» 続きを読む



PR

[PR]