日記帳
本ページはプロモーションが含まれています
カテゴリー
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

タイトル

執筆:2024.08.07
編集:2024.08.07


スクリプト言語で書くのが定番なんでしょうが、
バイナリスクリプトなら1個や数個で済むようなことが
スクリプト言語のフレームワーク使うと数千から数万個のファイルになるので嫌なんですね。

rustはCGIライブラリが貧弱で切り替え無理と判断しました。
CGIで運用するにはCGI全盛期に存在した言語でないと無理のようです。(1からごろごりかくならできますけどね)
Go言語は切り替えできるのとGoはrustより格段にコードが読みやすいのでGoで書いたほうがバグがなくメンテナンスしやすいように思います。

いくつかフレームワークのソースを確認しましたが
Ginは、動作できることをローカルサーバーで確認しました
他のフレームワークはできそうもない。

Gin でCGIするには?

本番運用はしていないので、非公式方法なのでなんらかの不具合がでるかもですが・・・、
その時は、素の http.cgi使うしかないですね。

DebugモードだとGinが余計な情報を出すので、インターナルサーバーエラーになる

対策
  リリースモードフラグを立てておく。
 デバッグは、CGIではなくセルフサーバーモード(デフォルト)で行う

gin.SetMode(gin.ReleaseMode) // リリースモードに設定



CGI環境かどうかを判定するには

対策
 CGI環境かどうかをCGI環境変数の有無で判定してコードを切り替える
 独自の判定ルールを追加する。本番でCGIで実行したいのにセルフサーバーモード(デフォルト)になると困りますからね。

CGI環境変数は規格で決まっています。なので判定は簡単です。仕様書に記載の変数を全部定義されているのかを確認するのが確実ですが
代表的なものだけでたいていは問題ないかと思います。

func main() {
// CGI環境変数が設定されているかで分岐する
if strings.HasPrefix(strings.ToUpper(os.Getenv("GATEWAY_INTERFACE")), "CGI/") {
// main_cgi() // 標準機能
main_cgi_gin() // 外部ライブラリ
} else {
// command line
if os.Getenv("REQUEST_METHOD") == "" {
main_serve_gin() // 外部ライブラリ
}
}
}



» 続きを読む

2024.08.07

タイトル

執筆:2024.04.15
編集:2024.04.15


「2036年問題」

コンピュータの時刻を同期するためのプロトコルであるNTP(Network Time Protocol)が、西暦2036年に時間計測機能のオーバーフローを起こしてしまう現象で、対応していない古いシステムが時刻が過去に戻り誤動作するおそれがある。

» 続きを読む

2024.04.15

タイトル

執筆:2024.02.11
編集:2024.02.11


Google Fonts

雑誌読み放題でWEBの雑誌をパッと見たら
webで使える無料フォント(Google Fonts)というのを発見したので
アクセスしてみた

大半は書体が好きでなかったので、使ってもいいかなっていうのは次の2個だけだった。
・Noto Sans JP
・ニコモジ

使い方はいたって簡単、リンクコード貼るだけ。
だけど、これブラウザにキャッシュしてもらわないと低速回線だとサイト重くなるよね。

» 続きを読む

2024.02.11

タイトル

執筆:2023.06.05
編集:2023.06.05



PHP8.3 リリース
タイムスケジュール
https://wiki.php.net/todo/php83

Nov 23 2023


9.0ではなく 8.3がでるのですね。

8.1か8.2だったか?クラス関数内static変数,プロパティ仕様が違うから今後かかわりたくない製品。

PHPは、他の言語のメジャーバージョンで行う仕様変更を平気でマイナーバージョンで互換性無視してつっこんでくる。
この悪習慣は何十年たってもやめようとしないので意図的ですね。

PHPで書いたコードは製品寿命(2~3年程度)が短いので関わりたくない。
2023.06.05

Delphi2.0を64ビットWindowsにインストールするには?

執筆:2019.05.14
編集:2019.05.14


インストーラーが 16ビットアプリのため 64ビットのWindowsでインストーラーを起動すると
このアプリはお使いのPCでは実行できません
と表示されます

スタートアップと圧縮を展開するためのアプリが16ビットのため起動できません。
しかし、32ビット用のインストーラーは圧縮して同梱されているので、それを取り出して呼び出すことでインストールが可能になります。


作業手順
  1. インストールメディアから32ビットインストーラーを取り出します
    • CDROMにINSTALLというフォルダーがあるのでUSBなどにそのままコピーします
    • 32bitのWindowsINSTALL\setup.exeをクリックします
    • 次へを押すと、インストールに必要なファイルのコピーが始まるので、少し待ってから
      CTRL + TAB で フォーカスをエクスプローラーに切り替えます
    • エクスプローラーのアドレスに %temp% と入力しリターンキーを押します
    • %temp%フォルダー内に「_INS0432._MP」というファイルがあるので
      (1)の 「install」フォルダーにコピーし、名称をsetup32.exeに変更します。
      _INS0432._MP」→「setup32.exe
    • インストーラーに戻り、インストールの中止をクリックし終了します。
      これで 64ビット対応のセットアップ準備ができました。

  2. 64ビットWindowsにDelphi2をインストール
    • インストールしたい64ビットWindows で
      (1)のフォルダーの setup32.exe をクリックします。
★ 64ビットWindows10で
インストールとアンインストールを行い正常に動作したことを確認しました

★ BDEも動作することを確認しました
デモのFISHFACTをコンパイルし実行

スタートメニューへの登録は、失敗するため、Delphi2.0へのショートカットは自分で作成する必要がある

Delphiに限らず、同様のエラーが発生するインストーラーに対しても有効な方法です。

» 続きを読む

2019.05.14



PR

[PR]