もじょえんじにあ……共感できる?

日常のメモ。日々これ共感。へたれでしょほてきなIT?

超絶テキトーなSolver....

まぁ

動くか動かないかで言えば動くと思いマスが……ウルトラいいかげんです。6回はやっぱり85%くらいデスね。最大9回で解けてマス。

#!/bin/env python3
from random import seed, choice
import sys
from string import ascii_lowercase

def main():
  with open("./dict.txt") as f:
    wdic = [x.strip() for x in f.readlines()]
  freq = dict(zip(ascii_lowercase,[0,]*26))
  for w in wdic:
    for c in w: freq[c] += 1
  sdic = dict()
  for w in wdic:
    l = len(set(w))
    sc = sum([freq[x] for x in w])
    sdic[w] = l * sc
  seed()
  ans =choice(wdic)
  adic = sorted(sdic.items(), key=lambda i:i[1], reverse=True)
  print('ANS:', ans)
  for i in range(99):
    print(i, len(adic),adic[:10])
    a = adic[0][0]
    if i == 0: a = 'trace'
    k = ''
    for b,c in zip(ans, a):
      m = '_'
      if b == c: m = 'G'
      elif c in ans: m = 'Y'
      k +=m
    print('\n'.join([k, a]))
    if k == 'GGGGG':
      print(i+1, "times. You win!")
      break
    for j in range(len(k)):
      if k[j] == '_': adic = [x for x in adic if a[j] != x[0][j]]
      elif k[j] == 'G': adic = [x for x in adic if a[j] == x[0][j]]
      elif k[j] == 'Y':
         adic = [x for x in adic if a[j] in x[0]]
         adic = [x for x in adic if a[j] != x[0][j]]

if __name__ == "__main__": main()

いまさらWordleにハマる

とりえあずソルバーもどきの練習デス

あくまで習作なのでこれでは解ききれまセン。というか遊ぶほうデス。

でも、2300語くらいしかないみたいなので文字の出現頻度と単語中の文字種数で点数リストにして残ったうちの一番大きいやつみたいなダメアルゴリズムでも真面目に深さ優先検索とかしたのの85%くらいの成績でるかもデス。

#!/bin/env python3
from random import seed, choice

def main():
  #print("hello")
  with open("./dict.txt") as f:
    wdic = [x.strip() for x in f.readlines()]
  #print(wdic)
  seed()
  ans =choice(wdic)
  adic = list(wdic)
  print(ans)
  for i in range(9):
    print(i, len(adic))
    print(adic)
    a = input()
    k = ''
    for b,c in zip(ans, a):
      m = '_'
      if b == c: m = 'G'
      elif c in ans: m = 'Y'
      k +=m
    print()
    print(k)
    print(a)
    if k == 'GGGGG': break
    for j in range(len(k)):
      if k[j] == '_': adic = [x for x in adic if a[j] != x[j]]
      elif k[j] == 'G': adic = [x for x in adic if a[j] == x[j]]
      elif k[j] == 'Y':
         adic = [x for x in adic if a[j] in x]
         adic = [x for x in adic if a[j] != x[j]]

if __name__ == "__main__": main()

円安で苦しいけど、それでも安いWindowsのキー

以前、Consogameというところで「安い」Windows 10 Proのkeyを売っている記事を書きました。$10程度、当時1100円、今だと1400円程度でしょうか。

しかしもっとすごいのあった。

おーい、安いぞ。

3ユーロしない。つまり500円しないのDEATH!
Consoよりも普通にクレジットカードの認証も通ります。

サブドメインで、Google Workspaceを使う

タイトル通りdeath!

Google Workspace Admin画面

一般的にはGoogle Workspaceはそれ用にドメインを一つ用意するのがベストプラクティスですが、試験的に使うくらいなら、自分のドメインがあればサブドメインで使えます。

ジツはGoogle Workspace Professional Administrator という資格をとろうとしていて、必要になった、ということです。

吉例に従って、example.comサブドメイン、gws.example.comで説明しますね。

といってもDNSを設定するだけなのでとってもカンタン!

$TTL 3600
$ORIGIN example.com ;このあたり省略。既存のzoneに追加でOK
gws IN A 1.2.3.4; 別のエントリで使っているIPでもOK
gws IN MX  1 aspmx.l.google.com
gws IN MX  5 alt1.aspmx.l.google.com
gws IN MX  5 alt2.aspmx.l.google.com
gws IN MX 10 alt3.aspmx.l.google.com
gws IN MX 10 alt4.aspmx.l.google.com
gws IN MX 15 xxxxxxxxxxxxx.mx-verification.google.com
;ここは申し込みの途中で指示される長~い文字列を入力

これで、GWSの無料トライアルに申し込めmath!

移譲してzoneファイルを別に作る必要もないdeath!

もうbindの書式忘れちゃったというひとはこの際、どこかのフリープランに移行してもいいかも。

postfixの運用をやめたいのです

さくらのメールボックスというサービスがあります。

相当お安い。容量は数人~2,30人で使うのであれば普通は問題ないと思います。

IaaS、仮想マシンで運用するのは、立ち上げはそれほど大変じゃないのですが、長い運用は正直めんどうです。ClamAVならOpen Sourceですがそれ以上のセキュリティが必要な場合にはお金も相当かかります。サーバ用は急激に高くなりますし。

このサービスはさくら以外のリジストラで登録している場合DNSをさくらに向けろ、ということになってますが、向けなくても運用は可能っぽいので試しています。

具体的にはNSをns1, ns2.dns.ne.jpに向けろということを指示されますが、そうしなくても動作します。そういうのがわかんない人向けですね。そうしたほうがQA工数も減るし合理的だと思います。

よそのリジストラでさくらに移管しないモードで設定したあとに、自分のbindやリジストラのDNSで、TXT, MX を向けてあげるだけです。

具体的には、設定すると、さくらのns1.dns.ne.jpが設定されるので、

dig @ns1.dnx.ne.jp mx your.domain.name
dig @ns1.dnx.ne.jp txt your.domain.name

あたりをして、今のレジストラDNSで同じになるように設定すればSPFまではOKです。

要は@ns1のさくらのDNSとそれが無しの普通のDNSのdigの結果が同じになればさくらのマニュアルにそわなくてもいいみたい。

popよりimapにして暗号化デフォルトにするとThunderbirdでも設定が簡単みたい。

安定させるために使うのが、imapなので、ユーザが消さないとダメな場合があるっぽい。まぁ、そのへんはしかたないかもdeathね。