2022年8月27日土曜日

pythonで配列に含まれない文字列のインデックスを返す(NGワードを除く処理)

内包表記間違えて無駄に時間食ったのでメモ


title_list = ['aca', 'headサロンプリヴェfoot', 'baa', 'aaf', 'ccc']

ngword = "サロンプリヴェ"

clearn_index = [i for i, v in enumerate(title_list) if ngword not in v]


2022年8月26日金曜日

Doge Chain【仮想通貨】


https://foundation.dogecoin.com/


https://dogechain.info/


https://bridge.dogechain.dog/bridge




2022年8月25日木曜日

Conoha LAMP apache ssl uwf

Conoha LAMP
OS: Ubuntu 20.x
httpd: Apache
SSL: lets encrypto
証明書自動更新
SSLリダイレクト自動設定

<ファイアウォール開放>
ufw allow 443


<バーチャルホスト割り当て>
cd /etc/apache2/sites-available
cp 000-default.conf mydomain.shop.conf

nano mydomain.shop.conf

        ServerName mydomain.shop
        DocumentRoot /var/www/mydomain.shop/

a2ensite mydomain.shop.conf
a2enmod rewrite

<ファイルアクセス権>
cd /var/www/
chmod 777  -R mydomain.shop


<httpd再起動>
systemctl restart apache2

<Certbot 【Lets Encrypto SSL】>
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --apache


<PSD編集>
ブラウザベースのフォトショップ代替
https://www.photopea.com/


2022年8月19日金曜日

【midjourney】arch enemy vocal


1【Alissa White-Gluz from hell 】


https://discord.com/channels/662267976984297473/989268395302223913/1010162637776097442





2【Alissa White-Gluz from hell 】

https://discord.com/channels/662267976984297473/989268395302223913/1010162898900877353





おもろい、ナイスアイデア!

【Ethereum logo Rococo style】

https://discord.com/channels/662267976984297473/989268395302223913/1010163045319856138




ブラウザ上のjavascriptでxpathを操作する。XPathResult.resultType定数表示

 なんとなくchrome pluginを作りたくなった。


ブラウザ上のjavascriptでxpathの返値タイプ種別。

devtoolでやると結果が数字で帰ってくるので、定数を見やすくするため列挙。




<XPathResult.resultType>

0: XPathResult.ANY_TYPE

1: XPathResult.NUMBER_TYPE

3: XPathResult.BOOLEAN_TYPE

4: XPathResult.UNORDERED_NODE_ITERATOR_TYPE

5: XPathResult.ORDERED_NODE_ITERATOR_TYPE

6: XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE

7: XPathResult.ORDERED_NODE_SNAPSHOT_TYPE

8: XPathResult.ANY_UNORDERED_NODE_TYPE

9: XPathResult.FIRST_ORDERED_NODE_TYPE




<参考>

https://uhyohyo.net/javascript/10_2.html


devtoolコンソール上でザックリ見るにはmap使えばいいが、js経由で変数代入するとできなくなる。



<devtoolコンソール上での出力>

$x('//div[contains(@class, "roads") and contains(@class, "left")]//*[text()="B" or text()="P" or text()="T"]').map(function(el){return el.textContent}).join("");



<jsでの操作 テスト>

var res1 = document.evaluate('//html', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

console.log(res1.singleNodeValue);


var res2 = document.evaluate('//span', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

console.log(res2.singleNodeValue);



var res3 = document.evaluate('//div[contains(@class, "roads") and contains(@class, "left")]//*[text()="B" or text()="P" or text()="T"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

console.log(res3.singleNodeValue); //type:9



<まともに使える書き方>

  var nodesSnapshot = document.evaluate('//div', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)

  for ( var i=0 ; i < nodesSnapshot.snapshotLength; i++ ){

    alert( nodesSnapshot.snapshotItem(i).textContent );

  }


2022年8月15日月曜日

pythonのトランスパイラerg-lang

日本人が作ってる。

プリプロセッサとしてpythonに型チェック(型推論)をさせる。


<雑感>

☆コンパイル時関数が使えたりと便利!

☆スライス構文があまりしっくりこない(pythonなのにrust構文、いつもの言語障害になりそう)



<日本語版doc>

ドキュメントのNextリンクは扱いずらいので、カーソルキー(←→)を使うか矢印アイコンをクリックする事!

http://mtshiba.me/TheErgBook/

<英語版doc>

https://erg-lang.github.io/

<プロジェクト>

https://github.com/erg-lang/erg/blob/main/README_JA.md



変数の再代入が効かないって気になったのでチェック。

rustの所有権管理みたいな事をやるのだろうか?

i = 1

i = i + 1

↑これダメ

気力が無く「可変な状態を保持する機能」を探すのに疲れてしまった・・・



2022年8月12日金曜日

【AI画家】midjourneyでアヘ顔ダブルピースを作ってみる

スタイル一覧

GitHub - willwulfken/MidJourney-Styles-and-Keywords-Reference: A reference containing Styles and Keywords that you can use with MidJourney AI. There are also pages showing resolution comparison, image weights, and much more!


かっこいい作例

【Wanderer above the sea of fog, Bloodborne Hunter from back, gnarly trees, Painting, Concept Art, Artstation, Cinematic, Dramatic, Panorama, Cinecolor, 8K, Sunlight, uplight, --q 2 --s 4000 --chaos 13 --w 76】





【a majestic throneroom, at the dawn of time, Glass Paint, Overglaze, Ornament, Time-Lapse, Photojournalism, Wide Angle, Perspective, Double-Exposure, Light, Tones of Black in Background, Ultra-HD, Super-Resolution, Massive Scale, Perfectionism, Soft Lighting, Ray Tracing Global Illumination, Translucidluminescence, Crystalline, Lumen Reflections, in a symbolic and meaningful style, symmetrical --q 5 --s 4975 --chaos 15 --ar 21:9】






【darkness held within a glass sphere】






真似して作ってみた。

地獄から来た和楽器バンドが宇宙にいる。

【wagakki band from hell with 8,into the cosmic】



地獄から来たHIKAKIN

【hikakin from hell,cyberpunk,blue,red】

眼鏡を指定し忘れた。




そしてアヘ顔を作ってみると・・・

流石!!世界的ワード、AHEGAO!

NGワードだった。

Banned word!

The word ahegao is banned. Circumventing this filter to violate our rules may result in your access being revoked.


ahegaoを自作してみる。

【Only her  eyes look up, Laughing and drooling with his mouth wide open,shedding tears. making a peace sign with both hands.】

大失敗


追記:ドワーフとレッドドラゴンを戦わせようとしたら、大失敗。

どっかにカッコいい例で、神に立ち向かう戦士みたいなのがあったから、それを参考にしないと・・・

【A dwarf with an axe confronts a red dragon】


重みづけしないとダメだな・・・

red dragon::1,dwarf::0.5とかやればいいのか?

ドワーフとドラゴンがまざっちゃってるので、完全に分離しないと・・・

あとドラゴンを見せたいので、一番最初に指示するべき。


次はまぁまぁうまくいった。

気に入られて、誰かが勝手に高解像度化したw

【A warrior challenging God】

4パターン



高解像度1


高解像度2






画像を与えて、カッコよくする例

【https://s.mj.run/j94H525sQ-Q star wars dark lich】




失敗例、ハローキティ―はわかるけど、クロミを知らない。

何パターンかやったけど、sanrio kuromiは人間になってしまう。

【hello kitty playing with sanrio kuromi, cartoon style】


【hello kitty horror realistic】




失敗例、坂本冬美を知らない、無駄にカッコいい画像。

【sakamoto fuyumi,dancing,cinematic lighting,cyber punk】



まぁまぁうまくいった例

【Steampunk,4K,sky,city,art deco,airship,skyscraper,16:9,vertical,Super meticulous,Girl with short white hair】



失敗、クロミの画像を与えてみたが、指示が雑過ぎ、自分でも何やりたいか決まってないw

かわいい=猫になるのか・・・

【https://s.mj.run/vbr8G10bJh8 kawaii 】


失敗、クロミの画像を与えて画風しか指示しないと画像を使ってくれない。

【https://s.mj.run/vbr8G10bJh8 cinematic light, 8k hyper detailed, high detail, octane render 】







ソーラー人感LEDライトの電池を変える

<もの>

こいつが充電出来なくなった。

中身ニッカド電池。

https://www.amazon.co.jp/%E3%83%A4%E3%82%B6%E3%83%AF-SL1LEDS-1WLED%E3%82%BD%E3%83%BC%E3%83%A9%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%88/dp/B0071T6ZWK

 


<ニッカド電池の代わりにエネループ>

パナの公式見解だと、とりあえず大丈夫。

https://jpn.faq.panasonic.com/app/answers/detail/a_id/18079/~/%E3%83%8B%E3%82%AB%E3%83%89%E5%85%85%E9%9B%BB%E5%BC%8F%E9%9B%BB%E6%B1%A0%E3%81%AE%E3%81%8B%E3%82%8F%E3%82%8A%E3%81%AB%E3%80%81%E3%83%8B%E3%83%83%E3%82%B1%E3%83%AB%E6%B0%B4%E7%B4%A0%E9%9B%BB%E6%B1%A0%E3%81%AF%E4%BD%BF%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F-pz18079


過放電に弱そうな気もするが、とりあえず動けばよし。


2022年8月11日木曜日

PHPでIPv6の逆引きみたいな事をする

昨今のレンタルサーバもモバイル回線キャリアもデフォでIPv6になってきた・・・

ホスト判定してる物が、正しく動かないので困る。


IPv6は事実上、逆引きできない。

10年以上前に逆引きできるようにするってアメリカ人が言ってたのに・・・


https://www.radb.net/


<案1 上流でwhoisしてみる>

IPv6のアドレスから地域別のapnicとかianaに問い合わせる。

https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml

国の割り当てが変わる度に、問い合わせ先が変わるので注意。


正にこれ!

https://blog.ver001.com/php-ipv6-whois-gethosrbyaddr/


descrに会社名が入るので、それで判別。

地域別のwhoisに問い合わせる手段もあるが、それだとASNが判らない。

ASN2527:So-net

https://www.nic.ad.jp/ja/ip/as-numbers.txt

googleとか複数のASN持ってるので、ASNで判断するのは無しで!


<案2 辞書を持つ>

GeoLite2のCSVから判定する。

1ヶ月に1回データ更新の必要があるけど、無駄な通信しないのは良い。

ただし、辞書が23Mぐらいあって意外と大きい。

これ走査させるのか・・・どうなんだろ・・・

参考

https://blog.jtc-i.co.jp/2022/04/ssb-csvexport-geoip2lite.html




2022年8月10日水曜日

【VBA】定数でオブジェクト名を指定して使う

シート名だと不安要素しかないのでオブジェクト名で出来るように解決したい。

定数としてオブジェクト名を無理やり実装した。

どうしてもシートモジュールに定数を書く必要があった。


その定数は文字列で別のシートモジュールのオブジェクト名を表している。

挙動はSheetType1Inputシートでボタンを押すとSheetType1Logに出力される。

要するに、SheetType1InputとSheetType1Logを関連づける必要があるが、グローバル変数で関連性を定義したくない。

文字列をVBAコードとして実行する必要がある。

下記を参考にしたが、モジュールの追加削除でウィンドウフォーカスが外れて使いにくい。

https://tooljp.com/language/VBScript/faq/E8380BA06EBCCF4E492582E700517660.html


ので改良した。

空のモジュール(ModuleTemp)を先に追加しておく事。


<Excelのセキュリティ設定>

エラー400または以下が出るとき

実行時エラー 1004「プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性欠けます」


ファイル>オプション>トラストセンター(またはセキュリティ)>トラストセンターの設定>マクロの設定

・すべてのマクロ にチェック

・VBAプロジェクト オブジェクト モデルへのアクセスの信頼 にチェック




<SheetType1Input シートモジュール内>

Const LOG_SHEET = "SheetType1Log"

Function asdasd()
    code = "Set target_sheet = " & LOG_SHEET        'target_sheetはグローバル変数
    Call ExecuteStringAsCode_kai(code)
    target_sheet.Cells(2, 2).Value = "ASD"
End Function



<標準モジュール内>

Public target_sheet '定数代入用

'===== 文字列変数の内容をコードとして評価して実行する関数です。

Public Sub ExecuteStringAsCode_kai(code As String)

    Dim vbComp As Object

    Set vbComp = ThisWorkbook.VBProject.VBComponents("ModuleTemp")

    '===== 関数を定義 =====

    vbComp.Codemodule.AddFromString "Sub tempFunc" & vbCrLf & code & vbCrLf & "End Sub"

    '===== コードを実行 =====

    Application.Run vbComp.name & ".tempFunc"

    Dim line_head, line_foot

    line_head = vbComp.Codemodule.ProcStartLine("tempFunc", 0)

    line_foot = vbComp.Codemodule.ProcCountLines("tempFunc", 0)

    vbComp.Codemodule.DeleteLines line_head, line_foot

End Sub


2022年8月4日木曜日

golang generics memo

go1.19になったので、ジェネリクス(go1.18から)をおさらい。

微妙に忘れそうなのでメモ。


<型違いの足し算>

演算子オーバーロードではないけれど、便利

type Addable interface{

    int64 | float64

}

func add[T Addable](a, b T) T {

    return a + b

}


<type set 派生型(近似)の雑な使い方>

・ダメな例(使い方が厳密)

type struct1 interface{

    int64 | float64

}

func func1[T struct1](v T){

    fmt.Println(v)

}

func1(int64(v))    //型が厳密


・雑に扱える例

type struct1 interface{

    ~int64 | ~float64

}

func func1[T struct1](v T){

    fmt.Println(v)    //型があいまい

}

func1(v)



<インターフェース定義を楽にする>

下記のパッケージに

package constraints

型が用意されてる

type Singed interface{}

type Unsinged interface{}

type Integer interface{}

type Complex interface{}

type Orderd interface{}









2022年8月2日火曜日

ボタン電池で動く日本製の小型Arduino【Leafony】

・ボタン電池で動く
・wifi版は乾電池
・モジュール基盤積層

巷じゃ全然人気ないな・・・Basic Kit2が16,800円だからか?
全部まとまってるので扱い易いのだが・・・

Basic Kit2で付いてくる基盤
・STM32マイコン
・AVRマイコン
・Bluetooh
・温湿度、照度、加速度センサー
・電源ユニット(ボタン電池)
・拡張インターフェースボード
・USBボード






ついでに、Seeeduino xiaoで組むといくらになるのか調べてみた。

秋月で850円、公式から買うと(多分2週間ぐらいかかる)500円ぐらい。

Seeed XIAO BLE nRF52840bluetooth内臓モデル) \1980


Seeed Studio XIAO nRF52840 Sense さらにIMC内臓(6軸センサー) \2937



電池で動かすメモ

温度センサー(MCP9808)    ¥1089



あらためてRaspberry Pi Pico Wってすごいんだなと思った・・・ \1199


Leafonyがオールインワンで小さくまとまってて扱い易そうだが、高価すぎる。
もしかして耐久性と堅牢性が高いのか?