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

Search Results

タイトル


執筆:2024.10.10
編集:2024.10.10

iPhoneとAndroidを同時に開発できるクロスプラットフォーム開発ツール

を Copilot 先生に相談してみた。

  1. .NET MAUI

    .NET MAUI はオープンソースであり、Xamarin.Forms を進化させ、モバイルからデスクトップ シナリオに拡張したものです。
    .NET MAUI アプリのサポート対象プラットフォーム LINK

    新規プロジェクトを実行しただけでファイルが数千個できる(ファイル数: 2,275、フォルダー数: 1,182)。android apk 140MB.
    🚫 ネットワークドライブに配置すると意味不明なエラーが表示されて実行できない。
    📌 実行しないとページをビュジュアル編集できない変な仕様。
    🚫[致命的欠陥] .NET MAUI XAML デザイナーは、Visual Studio 2022 ではサポートされていません。

    Xamarin:  [C#]
    「Xamarin」は2024年5月1日に終了、「iOS 17」「Android 14」に対応せず
    Xamarinは、C#を使用してiOSとAndroidの両方で画像の入出力を行うことができます。`System.IO`名前空間を使用してファイル操作を行い、`Xamarin.Forms`の`Image`コントロールを使用して画像を表示できます。
  2. React Native: [JavaScript]
    React Nativeも画像の入出力をサポートしています。`react-native-fs`パッケージを使用してファイルシステムにアクセスし、画像の読み込みや書き込みを行うことができます。

  3. Flutter: [Dart]
    Flutterは、画像の読み込みや書き込みを簡単に行うためのライブラリを提供しています。`Image`ウィジェットを使用して画像を表示し、`image_picker`パッケージを使用して画像を選択・保存することができます。

  4. Unity:  [C#]
    主にゲーム開発に使用されるクロスプラットフォームエンジンですが、
    iOSとAndroidのアプリ開発にも利用できます。3Dグラフィックスやインタラクティブなコンテンツに強みがあります。

» oneとAndroidを同時に開発できるクロスプラットフォーム開発ツール'">続きを読む

カテゴリー: ぷろぐらみんぐ
2024.10.10

タイトル

執筆:2023.10.23
編集:2023.10.23


[Delhi11 BUG] パス情報がない OpenPictureDialog1.FileName

再現方法
Windows11でAndoroidデバイスを接続して、AndoroidデバイスのSDカード内のファイルを選択する

OpenPictureDialog1は利用できないフォルダも表示されるので選択後に拒否する
    LFileName := OpenPictureDialog1.Files[0];
if Pos('\',LFileName) = 0 then
begin
ShowMessage('ドライブ情報が取得できないため操作できません。');
Exit;
end;
テキストなどを編集を選択すると
AppData\Local\Microsoft\Windows\INetCache\IE\**
に飛ばされる
エクスプローラーに表示されているドライブ情報自体が実在しないフェイクみたい


アンドロイドアプリ作ったことないので急遽Windowsアプリでしのごうと数時間で作ったのに
アクセスできない つかえなーい!!
いちいちAndroidからSDカード抜かないと操作できないので、どうしよう

・却下:ネットワークドライブに移動。 一番無難かもしれないが勝手にパケ食いされると困る。
・(めんどう):Andoridアプリ作る

とりあえず、電源切ってSDカードを移動して対応しよう。

昨日の夜 頑張って作ったのにショックだ!!

» 続きを読む

カテゴリー: General
2023.10.23

タイトル

執筆:2024.04.17
編集:2024.04.17


TrueNAS Scale 23 をインストールしてみた!

まとめ

  • インストールは数分で終わる。
  • Web UI 周りの不具合
    • 翻訳されていない部分が多い。
    • 設定値が途中で途切れているものが多く読み取れない
    • 設定値がはみ出して読めないので項目がわからない
    • スクロールに対応していないのでとんでもなく長くなってなんの項目化わからない。
  • ストレージ(HDD/SSD)周りの設定がZFS特有なので分かりにくい。
  • dataset名に日本語が使えない (かなり致命的)
  • インストール初期状態でも数時間放置するとシステムメモリをMAX食いつぶした
  • ディスクの暗号化に対応しているので、ディスク故障でも安心して故障ディスクを破棄できる。
  • aptコマンドが使えない
  • shell コピペができない
    コピーと貼り付け
    Context menu copy and paste operations are disabled in the Shell.
  • Firewallが設定できない
  • Appsに割り当てたpoolのスナップショットが勝手に毎日保存される。
  • Appsをリストからインストールしても [ Deploying ] のままで動作しない
  • openmediavaultよりアイドルでのディスクアクセスが激しい気がする
  • DHCP 1個のみ
    DHCP :Only one interface can be used for DHCP.
    なぜ?インターフェースごとに設定できない摩訶不思議。勝手に解除される。 複数インターフェースは、openmediavaultを使いましょう、。

なんでも自己解決できるならTrueNAS Scale。
軽量・設定に悩みたくない場合は、openmediavault。


手順

TrueNAS-SCALE-23.10.2.iso

仮想マシンにインストール

メモリ8GB, 仮想HDD最大値(動的)

GNU GRUB version 2.06-13

Start TrueNAS SCALE Installation
Start TrueNAS SCALE Installation (115200 baud)


選択を間違うと
Swapを16GB作成しますか?
Yes以降 error が大量に表示されて失敗する。
待っている間Virtualboxで試すとすぐに終わったので失敗と判定。



BIOS
レガシーBiosは、
1段目:Start TrueNAS SCALE Installation
EFI/UEFIのBiosは、
2段目:Start TrueNAS SCALE Installation (115200 baud)
を選択する

Hyper-V

仮想マシンの世代 第1世代
そのままインストール可能

仮想マシンの世代 第2世代
最初の選択で2段目の
Start TrueNAS SCALE Installation (115200 baud)
を選択するとインストールできました。

MACアドレスを固定にしたい場合は、
(1) 設定:ハードウェア:ネットワークアダプター:高度な機能
MACアドレス:静的
に指定する。
(2) 必要に応じてルーター側にも固定IPとしてMACアドレスを登録する。

MACアドレス可変でIPを固定したい場合は、
TrueNAS SCALE内のネットワークアダプターを固定IPで登録する

固定IPのためのインターフェース

パワーシェル(管理者)

New-VMSwitch -Name "Internal Switch" -SwitchType Internal

New-NetIPAddress -IPAddress 172.25.25.1 -PrefixLength 24 -InterfaceIndex (Get-NetAdapter -Name "*Internal Switch*").ifIndex

New-NetNat -Name "Internal Switch NAT" -InternalIPInterfaceAddressPrefix 172.25.25.0/24

truenas内部で appsの設定で、172.16.* 172.17.* が設定されているので避ける。

外部とつながらない場合はここを確認する
https://learn.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/connect-to-network

ノート

Hyper-vだと すぐにメモリをマックス食いつぶすので制限をかける必要あり。NAS内の表示ではMAX3GBいっていないのにホストのメモリを食いつぶす。



Virtualbox

仮想HDDの2TB制限がある

2,3分でインストール完了
Virtualboxでするとここはすぐに通過 The TrunNAS installation n sda succeded!
Please reboot and remove the installation media

初回起動

初回起動は時間がかかる。
2回目からは起動してしまうと気になるほどでもない

管理画面

画面に表示されたIPにブラウザで接続
つながらない場合はアダプターの設定でインターフェースを確認・変更して再起動する

管理画面にログイン

最初にすること

http://IPアドレス/ui/system/general
Localization Settings
にてとりあえず日本語に変更し、キーボードとタイムゾーンを指定する

http://IPアドレス/ui/system/general
GUI Settings : 利用情報の収集:オフにする

Vmware Player

Virtualboxで動くなら動くでしょ。ということで今回は未実施。


今回テストした構成

ミラー構成のため下記の容量の可変仮想ディスクを用意
boot-pool : 100GB *2
apps-pool : 500GB *2
data-pool : 3TB *2

boot-poolはインストール時に2個選択します。
残りはインストール後に pool作成からマウントします。

しばらくデータは入れないでテスト運用。

» 続きを読む

カテゴリー: NAS
2024.04.17

geanee ADP-921 アンドロイド デバッグ USB ドライバの設定

9インチ アンドロイド タブレット
geanee ADP-921   8GB   Cortex A7 1.5GHz

必要な物
Windowsパソコン

Android SDK

» 続きを読む

2015.01.05

au one net 「ホームページ公開代理」サービス提供終了について(2016/08/26 15:30:30)

Subject: 【重要なお知らせ】au one netホームページ公開代理サービス終了について
Date: Fri, 26 Aug 2016 15:30:30 +0900 (JST)

au one netホームページ公開代理サービスの終了について:
  https://hpkd.auone-net.jp/

サービス提供終了日時:2017年10月31日(火) 23:59

引っ越しツールで 継続したい人は、有料版(JimdoPro) 945円/月 らしいです。
HDD容量 5GB で 月1000円は、ちょっと高すぎでしょ

最近プロバイダ系の無料ホームページ終了が相次いでいますね。

月100円ちょいの さくらインターネット をお勧めします
cgiも設置できますし、さくらのブログも無料でついてきます。
ftpアプリでサーバー間 転送するだけで引っ越しできますからね。

カテゴリー: General
2016.08.31

Indy Cookie 2007


執筆:2007.01.05
編集:2007.03.19
編集:2007.07.09
編集:2007.07.18
編集:2007.07.21
編集:2007.11.23
編集:2009.10.16


追記:2009.10.16 IndyTiburon.zip(Indy 10.5.7)にて修正されているようです。
IndyTiburon.zipに移行して indy10.zip(10.2.3)は開発がとまったようですので注意が必要です。
このページの内容は古くなっています。
参考にする場合は注意が必要です。

10.0.52は、かなり古いので
cookieのドメインの最初が .で始まっていると処理できずエラーになります。
(IdCookie、IdCookieManager)
(10.1.6でも直っていませんでした。:2007.3、2007.7)
(10.2.3でも直っていませんでした。:2007.10)


他にも修正をみつけたので、この文書は
インストール方法と分離しました。(2007.7.21)
最新版のインストール方法は、こちらに書いてあります。


パッチ: クッキーのバグを修正します。

Indy10 Cookie bug fix(2007年3月中旬 時点、version 10.1.6)
Indy10 Cookie bug fix(2007年10月中旬 時点、version dev 10.2.3)
Indy9   Cookie bug fix(2007年7月中旬 時点、version 9.0.5.0(stable),indy9.0.18(stable), DevSnapshot)

【現象】
1.
   example.comがexample.comのcookieを渡し、ソフトウェアに保存したとします。
   .example.comでのcookieを、example.comで取得できません。

2.
   anywordexample.comにソフトウェアが接続するとexample.comのcookieをanywordexample.comに渡します。 
   example.com.anydomainにソフトウェアが接続するとexample.comのcookieをexample.com.anydomainに渡します。

 後者(2.)は、セキュリティ勧告ものレベルなのは容易に想像がつくと思います。

   サイトと同名の文字列を含んでる場合に限られますが、
   誘導によりクッキーの略奪が可能なので注意が必要です。

(3.)パス付き/で終わらないクッキーを保存した場合、同じ文字が並ぶパスにわたしてしまいます。
    firefox2ではわたさないことを確認しました。(違うパスへ保存はできるようです。)
 ※ IE7では、Indyと同様の現象が起きます。
    Netscpeの仕様書を見るとそうなると 最終パス名の部分一致になると書いてありました。
   ※ Cookieには、きちんとした規格が無いようなことがかいてありました。
    firefox2のような動作がいいと個人的に私は思いますのでそういう風に修正を加えます。

  /で終わらないクッキーを書いた方が悪いと思いますが、そういうミスはあるものです。
  (共有サーバーで問題になります。他人のアカウントにわたすので)
  例:   path=/tea; http/〜/tea/のものを  http/〜/team/ にもわたします。 
    

【対策】
※:適用した場合のコードの安全性はご自分で確認を取ってください。
  わたしは、一切責任はもちません。

コードが修正されている可能性も否定できませんので
まず、何もしない状態でセキュリティホールが残っているか確認をとることをお勧めします。
下の再現コードである程度確認できると思います

2007年3月でのdevコードなので、該当行が多少移動しているかもしれません。
関数名も書いているので探しやすいと思います。
 (delphi2005付属の10.0.52は、行数が違いますので関数名で探してください。)

Indy10
\Lib\Protocols\
IdCookie.pas
  単純に切り落とすと間違った判定をします。
TIdNetscapeCookie.IsValidCookie
Indy 〜 10.1.16 :
331: function TIdNetscapeCookie.IsValidCookie

begin
//....(省略)
   Result := FDomain = RightStr(AServerHost, Length(FDomain));
修正
  var ACookieDomain : String;
begin
//....(省略)
//  Result := FDomain = RightStr(AServerHost, Length(FDomain));
// bad code : FDomain = RightStr(AServerHost, Length(FDomain));
//   FDomain        AServerHost
//  xxxx.yyyy.com , zxxxx.yyyy.com : is not valid
//  xxxx.yyyy.com ,  xxxx.yyyy.com : is valid
// .xxxx.yyyy.com ,  xxxx.yyyy.com : is valid
// .xxxx.yyyy.com , yxxxx.yyyy.com : is not valid
      if (Copy(FDomain,1 , 1)='.') then
           ACookieDomain := FDomain
          else
           ACookieDomain := '.' + FDomain;
       Result := ( ACookieDomain = RightStr('.' + AServerHost, Length(ACookieDomain)) );
Indy 10.2.3 : 
-      Result := TextEndsWith(AServerHost, FDomain);
+       // bad code : Result := TextEndsWith(AServerHost, FDomain);
+       //    TextEndsWith('noexample.com',  'example.com') = true : is not valid
+        if (Copy(FDomain,1 , 1)='.') then
+            Result := TextEndsWith('.' + AServerHost, FDomain)
+         else
+            Result := TextEndsWith('.' + AServerHost, '.' + FDomain);
IdCookieManager.pas
  ドメインの比較にPos関数を使ってはいけません。
135: function TIdCookieManager.GenerateCookieList

begin
//....(省略)
  if IndyPos(LCookiesByDomain[i], URL.Host) > 0 then
修正
  TempCookiesDomain : String;
begin
//....(省略)
//  if IndyPos(LCookiesByDomain[i], URL.Host) > 0 then
    TempCookiesDomain := LCookiesByDomain[i];
    if (Copy(TempCookiesDomain,1 , 1) <> '.') then TempCookiesDomain := '.' + TempCookiesDomain;
    if (TempCookiesDomain  = RightStr('.' + URL.Host, Length(TempCookiesDomain))) then
注意
 Netscapeの仕様書では、/で終わらない場合、最後のパス名は部分一致になっています
 IE7もそういう動作をしているようです。
 firefox2では、部分一致にはなっていません。
 firefox2風に、/で終わるパスと同様の動作にするには以下のようにします。

function TIdCookieManager.GenerateCookieList

 if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
-->
// if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
 if (RightStr(LCookieList.Cookies[j].Path,1) = '/') then
  begin
    if Pos(LCookieList.Cookies[j].Path, URL.Path) <> 1 then continue;
  end
  else
  begin
    if Pos(LCookieList.Cookies[j].Path + '/', URL.Path) <> 1 then continue;
  end;
Firefox2では、Cookieのドメインに . がつくようなのでそうします。
Dev版(Indy 10.2.3)のIdGlobalProtocols.IsHostNameで
最初に . が付いているとFalseを返すようになってしまったので[ . ]が最初についていた場合取り除きます。

 .で始まるものを保存できるように修正をしましたので
 そのままでは最初の文字が . 付きと .がついていない物と混在してしまいます。
 以下のように修正します。
procedure TIdCookieManager.DoAdd

 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;
-->
 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;

  while (copy(LDomain, 1 , 1)='.') do LDomain := copy(LDomain, 2 , Length(LDomain));
  if (LDomain ='') then exit;
(省略)の部分は、ここでわかりやすくするために
省略しただけで誤解しないようにお願いします

Indy 9
IdCookie.pas
  単純に切り落とすと間違った判定をします。
function TIdNetscapeCookie.IsValidCookie

begin
//....(省略)
    if IsHostname(AServerHost) then
    begin
      if IsHostName(FDomain) then
        result := FDomain = RightStr(AServerHost,Length(FDomain))
       else
        result := FDomain = RightStr(DomainName(AServerHost),Length(FDomain));
    end
修正
  var ACookieDomain : String;
begin
//....(省略)
    if IsHostname(AServerHost) then
    begin
//      if IsHostName(FDomain) then
//        result := FDomain = RightStr(AServerHost,Length(FDomain))
//       else
//        result := FDomain = RightStr(DomainName(AServerHost),Length(FDomain));
      if (Copy(FDomain,1 , 1)='.') then
           ACookieDomain := FDomain
          else
           ACookieDomain := '.' + FDomain;
       Result := ( ACookieDomain = RightStr('.' + AServerHost, Length(ACookieDomain)) );
    end
IdCookieManager.pas
  ドメインの比較にPos関数を使ってはいけません。
function TIdCookieManager.GenerateCookieList

begin
//....(省略)
  if IndyPos(Uppercase(LCookiesByDomain[i]), Uppercase(URL.Host + URL.path)) > 0 then {FLX}
修正
  ACookieDomain : String;
begin
//....(省略)
//  if IndyPos(Uppercase(LCookiesByDomain[i]), Uppercase(URL.Host + URL.path)) > 0 then {FLX}
    ACookieDomain := LCookiesByDomain[i];
    if (Copy(ACookieDomain ,1 , 1) <> '.') then ACookieDomain := '.' + ACookieDomain;
    if (ACookieDomain  = RightStr('.' + URL.Host, Length(ACookieDomain))) then

注意
 Netscapeの仕様書では、/で終わらない場合、最後のパス名は部分一致になっています
 IE7もそういう動作をしているようです。
 firefox2では、部分一致にはなっていません。
 firefox2風に、/で終わるパスと同様の動作にするには以下のようにします。


 if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
-->
// if Pos(LCookieList.Cookies[j].Path, URL.Path) = 1 then
 if (RightStr(LCookieList.Cookies[j].Path,1) = '/') then
  begin
    if Pos(LCookieList.Cookies[j].Path, URL.Path) <> 1 then continue;
  end
  else
  begin
    if Pos(LCookieList.Cookies[j].Path + '/', URL.Path) <> 1 then continue;
  end;

 .で始まるものを保存できるように修正をしましたので
 そのままでは最初の文字が . 付きと .がついていない物と混在してしまいます。
以下のように修正します。

procedure TIdCookieManager.DoAdd

 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;
-->
 if Length(ACookie.Domain) = 0 then LDomain := AHost
  else LDomain := ACookie.Domain;

  LDomain := Sys.Trim(LDomain);
  if ((LDomain <> '')and(IsHostname(LDomain))) then
    if (Copy(LDomain,1,1) <> '.') then LDomain := '.' + LDomain;
(省略)の部分は、ここでわかりやすくするために
省略しただけで誤解しないようにお願いします

バグの確認のためのコード DOS版 FORM版  
     ※コピーは、IEのみ動作します
ダウンロード
indy_10_src_patches
indy_mytest

ブラウザで確認したい場合 【 .で始まるクッキーの場合】

asp.netだとサンプルを作りにくいのでphpをサーバーに置きます。
---サーバーに保存します----phpのファイルです--------
<?php
  // cookie_test.php
   $s = '';
   if (isset($_COOKIE['name1'])) { $s .= 'name1='.$_COOKIE['name1']."\r\n"; }
   if (isset($_COOKIE['name2'])) { $s .= 'name2='.$_COOKIE['name2']."\r\n"; }

   setcookie ('name1','value1' ,time()+60*60*24*30, '/', '.example.com');
   setcookie ('name2','value2' ,time()+60*60*24*30, '/', 'example.com');
   header('Content-type: text/plain');

   print $s;
?>
-----------------------------------------------
example.comは、適当に自分のドメインに置き換えてください。
このファイルにIEやFirefoxでアクセスしてください。
2回ほどアクセスすると2つクッキーが表示されると思います。

しかし、Indyでは、パッチを適用しない場合は、1つしか表示できません。

バグの再現コードです。 (上のphpとセットで使用します)
-----------------------------------------------
 example code
-----------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
  var i:Integer;
begin
  Memo1.Text := IdHTTP1.Get(Edit1.Text);
  Memo2.Clear;
  for i := 0 to IdCookieManager1.CookieCollection.Count-1 do
    Memo2.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieText);
end;

----------------------------------------------
サーバを経由しないで単体で確認したい場合は、上の DOS版を利用します




おまけ:
C:\WINDOWS\SYSTEM32\DRIVERS\etc\hosts

に、 127.0.0.数字  ホスト名[ドメイン名]
みたいに追加して、apache等のサーバーを起動すると
容易にローカルでデバッグできると思います。

-----------------------
ssl通信のはじめにエラー
最新版は、どうも一緒に配布してあるdllだと古くてエラーになるようです。
 ソースコードを見ると以下のようにありました。
 自分でコンパイル済みのdll最新版を入れるようにだと・・・

Indy OpenSSL now uses the standard OpenSSL libraries
for pre-compiled win32 dlls, see:
http://www.openssl.org/related/binaries.html
recommended v0.9.8a or later


バグ報告してあげようと思ったのですが、バグ報告ページに接続できないので、あきらめました。
(また海外のメーリングリストは、ウイルス・スパムメールの嵐に遭うので関わる気はありません。)

 ポカ。。。(((∂。∂)ン
あれ? 私は誰 いまなにしていました?
 あれれ・・・

追記:2007年7月でも修正されていなかったので、newsグループに報告しました。
追記:Snapshotをみても反応が無かったので、QualityCentralに登録しました。 openされたようです。
追記:2007.10 RightStrがTextEndsWithに変更されていることを確認しました。
           関数名が変わっただけで欠陥は直っていないようです。


Indyのバージョンの確認方法
(新規フォームにボタンを貼って、コードを置き換えてください)

uses IdAbout;

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdAbout.ShowDlg
end;

2007.07.23

Firebird upgrade 2.1 to 2.5


執筆:2011/03/02
編集:2011/03/05


【まとめ】
  • SQL-2003対応になった
  • UTF8とShift_JIS間でコンバートが発生すると
    コンバートエラーを起こしやすい( Ⅱ など)
  • Malformed stringと表示され、リストアなどができない
    全角が使えないわけではない。
    コードページの再確認:SJIS,CP943C,UTF8
    Firebird Language Reference Update
      Firebird-2.1-LangRef-Update.pdf
        New character sets
  • CHARACTER SET のチェックが厳しくなった。
    いままで適当なことをしているとgbakなどで返り討ちされる。
    DEFAULT CHARACTER SET NONE;
【考察】
 移行には、ある程度アプリケーションの修正が必要になると思います。
新しい構文を使いたい場合やUTF8アプリケーションの場合は、移行すると便利と思います。
Shift_JISでデータをやりとりしている場合は、移行する必要性が感じられません。手間など不利益のほうが大きいでしょう。
 どうしても移行したく、エラーで変換できない場合は、テーブルをSQLダンプできるツールを使用するか、新規にデータベースを作成して、テーブルをコ ピーするといいだろう。
 構造が複雑な場合以外は問題ないと思いますが、
Firebird Roadmapには、2.5は、当面バグふぃっすに重点をおくと書いてあるので
急ぐ必要がない場合は、ある程度バグができってしまってから2.5に乗り換えた方がいいように思います。

» 続きを読む

カテゴリー: General
2011.03.07

Pinyin IME を 無効化

Pinyin IMEを ○i までドロップ
または
設定→アプリ→すべて→Pinyin IME

Pinyin IME 「無効にする」をクリック

N78には不要なアプリがたくさん。
内蔵領域には、アンインストール・削除できないものがあり
無効化することで、勝手に起動できないようにすることができる

» 続きを読む

2015.01.05

タイトル


執筆:2024.10.10
編集:2024.10.10

Delphi12にアップグレードしたらAndroidのbuildができなくなった。

C++は13からサポート終了したそうですね。その終了理由がわけわかめですが?
過去にKylix, .net のサポート打ち切りで信用できない開発言語ですので、とうとうきましたね

C++Builder: 削除された iOS と Android
RAD Studio Athens は、iOS 64 ビット プラットフォームと Android 32 ビット プラットフォームを削除しました。

そろそろ Delphi androidを Visual Studioに移植したほうがよさそうです。幸い1プロジェクトでcoplilot先生に手伝ってもらえば数日あれば移植終わりそうです。
近いうちに .NET MAUI に移植したいと思います。

とりあえず復旧できたの手順を書いておきます

現象

標準インストールしただけでは、不具合があり
SDK 基底パス, avdmanager.bat または androud.bat の場所, SDK APIの場所
が無効になっていて利用できない。

» 続きを読む

カテゴリー: ぷろぐらみんぐ
2024.10.10

Windows ホストにDNSサーバーを立てる

執筆:2021.07.18
編集:2021.07.18
編集:2021.11.19
編集:2021.12.5


注)2021-11-19

DNSサーバーを立てると WSLサービス Ubuntu、docker が利用できません。
エラー: 0xffffffff
Press any key to continue...

参考:WslRegisterDistribution failed with error: 0xffffffff #4364
https://github.com/microsoft/WSL/issues/4364


DNSサービスは、別マシンに作ったほうがいいかもです


注)2021-12-5

Atermの上位機種のルーターにDNS機能がないので、まさかの買い替え前の低速の低価格のほうのルーターに「DNSルーティング設定」という簡易DNS機能が搭載されていました。

Aterm 買い替え前
のAterm
(脆弱性あり:
メーカー未対応)

脆弱性問題解決
と高速化のために
数年前に買ったルーター

Aterm WG1800HP4

簡易NAS ×
DNSルーティング ×
中継機能/子機モード ×
付属品:USB子機 ×
速度 WIFI
300Mbps
1300Mbps
450Mbps
速度 有線 1000Mbps 1000Mbps
WIFIバージョン WIFI4 WIFI5

WIFIの脆弱性があるのでセキュリティ的に問題がありますが、古いルーターから wifiを飛ばせば、簡単に名前解決でき、スマホ、タブレットでプライベートドメイン名でアクセスできました。

必要な時だけ電源いれて、出力を12.5%に絞っているので外にはほとんど漏れていないと思います。

いろいろ触ってわかったこと
中継機能/子機モードは、WIFIを使ったブリッジ接続で、中継機能/子機モードの違いはWIFIのアクセスポイントの有無だけ。
親機がスマホの場合、中継機能/子機モードは、DHCP機能がなくなるので、任意の固定プライベートIPを割り当てるには もう1個ルーターを挟む必要がある。

「DNSルーティング設定」がある最新のルーターに買い替えれば、脆弱性も含めて解決ですね
来年以降、WIFI6の安くていいのがあれば買い換えてみようと思います。

手持ちのルーターで解決できる問題でしたので
WSL2と競合するのでWindowsのDNSアプリは撤去しました。

Aterm WG1800HP4は、先日解約したトリオモデムと相性が悪く、NECサポートに問い合わせて教えてもらった設定にしないと 不定期にインターネット未接続になる(WAN端子切断)現象があったので、
また次のプロバイダでAtermでデフォルト設定で接続できないとか発生すると、目から涙になるので
WIFIルーターは脆弱性問題で長く使える製品ではないし
今度は、お試しで 他のメーカーにしようと思います!



C:\WINDOWS\SYSTEM32\DRIVERS\etc\hosts
/etc/hosts
に設定を加えていましたが管理が面倒です

https://www.nic.ad.jp/ja/newsletter/No22/080.html
> HOSTS.TXTからDNSへ
なるほど私は原始的なことをしていたわけですね 😅

ホストOSのほうは、コメントを入れたりしているので、手書きでいいのですが
ゲストOSにもドメインと固定IPを割りあてているため毎回入力更新はとても面倒です。

ゲストOSは、ホストのDNSサーバー指定するだけで解決するので
アプリで管理したほうがいいかも
ということで、検討に入りました。

アプリで対応する場合
・Windows付属のDNSサーバー
 (Windows Serverを持っていないので詳細不明)
・WSL2のゲスト内のDNSサーバー
・仮想マシンのゲストOSのDNSサーバー
・DNS専用 Windowsアプリ

機材で対応する場合
・DNSサーバー機能のあるなんらかの端末
ルーター、NAS、パソコンなど


フリーアプリは、余計な機能があると思うので、自前で調達。

さて、3分クッキングで完成できるのがありますよね。
TIdDNSServerを貼り付けて、入力して、Buildしたら完成。
カップラーメンより早い出来。

設定値をディスクに保存する場合は、書き込み権限などセキュリティを意識しないといけないし面倒。
設定値を変更したい場合は、コードを直接修正してアプリを再構築すればいいでしょう。

とにかく複数のこまかい管理は したくないのです.
取り合えず、下記の仕様で暫定運用してみようと思います
・アプリの多重起動を禁止しておく
・一定周期で、ホストOSのhostファイル更新時刻を確認する
・ホストOSの hostファイルを読み込んで、192.168.* の設定を取り込む
# private IP address
# 10.0.0.0 10.255.255.255 10\.
# 172.16.0.0 172.31.255.255 172\.(1[6-9]|2[0-9]|3[01])\.
# 192.168.0.0 192.168.255.255 192\.168\.
・不足分のドメインリストをアプリで設定する

一度構築してしまえばアプリは、ほぼ無管理で運用できそうな予感
セキュリティ対応のDNSにしないとよくないらしいですが、ルーター管理のローカルネットワーク内だから大丈夫でしょう。

» 続きを読む

カテゴリー: General
2021.07.18

Sanei N78 アンドロイド デバッグ USB ドライバの設定

7インチ アンドロイド タブレット
SANEI N78 双擎  8GB RK3066 1.6GHz

必要な物
Windowsパソコン

Android SDK

» 続きを読む

2013.10.29

Indy IPv6でアクセスできない (indy10)

執筆:2018.07.22
編集:2018.07.22

IPv6のアドレスに
IdHTTP1.Get
すると
Socket Error # 10061
Connection refused.
と表示される

原因
  URIでIPv6の形式でない場合は、IOHandlerの設定にかかわらず Id_IPv4 として扱われるため。

原因のコード部分
IdHTTP.pas : procedure TIdCustomHTTP.CheckAndConnect
if not Connected then try
  IPVersion := FURI.IPVersion;

この行を適切に修正することで、IPv6でアクセスできるようになります。

テストコード
(1) ipv6でサーバーを立ち上げ準備をする
  php -S localhost:8000 Unit1.pas

(2) テストコードを実行する
IdHTTP1.Get('http://localhost:8000/');

2018/07/22でのリポジトリ最新バージョンでもこのバグは健在でした。

IdHTTP1.Get('http://[localhost]:8000/');
とすると ipv6でアクセスするが実用的ではない。

最後に
Indyのhttpは昔からバグだらけなので
バグ報告したところで修正してくれるものでもないでしょうから
  • 自前でWinのapiでhttpアクセスするとか
  • HTTP クライアントが実装されているらしいのそれを使ったコードに移行するとか
他のツールを使ったほうがいいですね。

Dlephiをやめて C# や vb.net にいったほうが開発ツールのバグがなくていいですよ

キーワード:
indy indy10 IPv6 Socket Error # 10061
Socket Error # 10061 Connection refused.

» 続きを読む

カテゴリー: General
2018.07.22

fossil-scmのバグや不具合リスト : メモ

執筆:2015.12.08
編集:2015.12.02

このページの更新は 今後ありません。
リスト作成 2015年12月

» 続きを読む

2015.12.02

AVR の作り方~焼きこみ方(激安)

準備
(1) 書き込み機を購入する
(1-1) avr isp programmer : ebayで200~300円で入手する
(1-2) AVR Minimum Development Board : あると便利.
avr isp programmer ebayで200~300円
(送料込み)
必要
AVR Minimum Development Board ebayで200~300円
(送料込み)
あると便利

Atmel Studioで直接「書き込み」または「デバッグ」したい場合は
純正または互換品を買ったほうがいいです
AVRISP mkII
純正品がほしい場合は、偽物つかまされるといけないので国内で購入するほうがいいです
AVR ISP mkII - Atmel 国内のお店で3000-4000円くらい
AVR ISP Programmer MKII Clone ebayで1000-1300円
(送料込み)


(2) マイコンチップやブレッドボードなどを準備する

書き込みの概要
(1) Atmel Studio(AVRStudio)をインストールする。
(2) プロジェクトを作る
AVRGCC C++ Executable Project C/C++

(3) コードを書いてビルドする。

(4) できたHexファイルを avrdude経由で usb接続したispに書き込む

(5) (4)で書き込んだチップをブレッドボードに挿して動作テストする

以上です


avrdude


libusb


Atmel Studio

» 続きを読む

カテゴリー: General
2016.10.09

PR

[PR]