はてなキーワード: TxTとは
https://www.geonames.org から取れる、人口500人以上の都市の名前に限定すると、
Santa Maria Magdalena Cahuacan
import logging import tempfile import zipfile from collections import Counter import httpx FILE_NAME_BASE = 'cities500' GEONAME_FIELDS = ( 'geoname_id', 'name', 'ascii_name', 'alternate_names', 'latitude', 'longitude', 'feature_class', 'feature_code', 'country_code', 'cc2', 'admin1_code', 'admin2_code', 'admin3_code', 'admin4_code', 'population', 'elevation', 'dem', 'timezone', 'modification_date', ) def retrieve_cities(): """Retrieve city names from a remote server.""" response = httpx.get(f'https://download.geonames.org/export/dump/{FILE_NAME_BASE}.zip') response.raise_for_status() tmpdir = tempfile.TemporaryDirectory() with open(tmpdir.name + f'/{FILE_NAME_BASE}.zip', 'wb') as f: f.write(response.content) with zipfile.ZipFile(tmpdir.name + f'/{FILE_NAME_BASE}.zip', 'r') as z: z.extractall(tmpdir.name) with open(tmpdir.name + f'/{FILE_NAME_BASE}.txt', 'r') as f: for line in f: yield line.split('\t') def count_characters(to_check='ascii_name', filter_func=lambda _: True): """Count characters in city names.""" cities = {} for city_fields in retrieve_cities(): city = dict(zip(GEONAME_FIELDS, city_fields)) if not filter_func(city): continue counter = Counter() for c in city[to_check]: counter[c] += 1 cities[city['geoname_id']] = {'characters': counter, 'city': city} return cities def count_chars_of_city_names(cities, char=None): """Find the city with the most occurrences of a given character.""" cities_by_char_count = {} max_count = 0 max_count_char = None for city_id, data in cities.items(): if 'characters' not in data or not data['characters']: logging.debug(f'No characters found for city {city_id}', data) continue count = 0 if char and char in data['characters']: count = data['characters'][char] cities_by_char_count.setdefault(count, []).append(data) elif char is None: most_common = data['characters'].most_common(1)[0] char, count = most_common cities_by_char_count.setdefault(count, []).append(data) if count > max_count: max_count = count max_count_char = char cities_by_char_count.setdefault(count, []).append(data) return cities_by_char_count.get(max_count, []), max_count_char def not_contain_invalid_chars(city): return ( '(' not in city.get('ascii_name', '') and '/' not in city.get('ascii_name', '') ) def main(): cities = count_characters(filter_func=not_contain_invalid_chars) for char in 'abcdefghijklmnopqrstuvwxyz': cities_counted, char = count_chars_of_city_names(cities, char) max_count = cities_counted[0]['characters'][char] print(f'The character "{char}" appears the most ({max_count} times) in the following cities:') for city in cities_counted: print("\t", city['city']['ascii_name']) if __name__ == "__main__": main()
サブスクがいつの間にか増えていたので、断捨離のための整理をかねて...
Google Photo で半分ほどの容量を占めているが残りは、GmailとDriveが10GBずつ程度。
50GBで月額130円。
iPhoneのバックアップが主な理由。写真のシンクはしていない。
無償分がはみ出るリソースで、円安前は110円で済んでいたんだけどな。
ほぼ Route 53 のゾーン利用料。
20ドルかぁー、20ドルなぁーって思いながら使っている。Notionはちょっとダメだったので、これはまあ、イイかと思っている。
大学時代からAtokを使い続けているので惰性のようなものだが、買い切りからサブスクに切り替えてからもう何年経ったのだろうか?
家族がネット広告に曝されることでネトウヨ化したり、エセ科学を真に受けたりするのを避けるには、しょーががない支出ととらえている。
有料で有益なコンテンツを得るためというよりは、害になるコンテンツ避けの為にお金を払っているという感覚がある。
国際政治チャンネルを放置したままにしている...、まぁ、お布施みたいなものだが。
非公開魚拓を保存出来るのと、robot.txtで拒否しているものの収集も出来るが、面倒なので外に置いておくという使い方かな?
今年で契約が切れるので更新が必要になる。どーしよっかなぁー、1Passwordで継続するか、Dashlaneに戻すか悩むなぁー。
プライベート(家庭)ではない、仕事用のアカウントのパスワードマネージャーとして。
世界情勢が物騒になってしまって、空の状況や要人の動きなどをウォッチするに便利なのでついつい契約してしまう。
銀行口座は連携せずクレジットカードと電子マネーの使用履歴を管理している。
支出の記録はバラバラになってしまうので、マネーフォワードでまとめている。
ココヘリか、YAMAPか悩む所だが、"登山"にはほとんど行かないので行動履歴を重視してYAMAPに課金している。
最近はヒザが気になりだして、山歩きをしていない。
少額でも送料が無料になるのだが、欲しいものは一通り揃ったので買うものは無いから次回更新は無しかな。
クルマに乗らないしなぁー、遭うかどうかわからんトラブルに備えて4,000円払うのはムダかなのぉー。
自分が遭いそうなトラブルについては、既に車載しているしなぁー、でもレッカー代って高いしなぁー。自動車保険付帯に変えようかなぁー。
無償アカウントで登録だけしておくと値下げする時期にお知らせがあるので、セールスしているタイミングで有償契約をする。
以降は、自動更新にしておかなければ更新時に値下げオファーが届くので、セール価格で更新する。
朝日新聞は購読料の選択肢が複数あって、読者としては良心的な方だと思う。読売や産経、毎日はちょと高くて手を出しづらい。
(<追記:2024/08/19 15:31>ブコメに教えてもらった。毎日新聞スタンダードなら年払いだと9,240円(770円/月)で本紙ウェブ版とWSJ日本版を読めるそうだ</追記>)
エモ記事に関しても、あれは「新聞」というよりは、「朝日新聞」という読み物を求めている読者に向けたコンテンツなのだろうなと思う。
そういう意味で、朝日新聞はポッドキャストも含めて「朝日新聞」というコンテンツを売り物にしようと舵を切ったのだろう。
昨年はサブスクで年額28ドルくらいだったような気がする、更新時期のタイミングで自分で自分に購読ギフト25ドルを贈って切り替えた。
セールのタイミングで129ドル、通常で250ドルなので、セール時期に更新したいところだ。
左右問わない論説だが基本はアトランティック主義である。そのスタンダードをウォッチする用。
Business Insiderの方が質・量ともに良い。"ジャパン"は解約して更新はしない。
党派性が強いわけではないがリベラル、アトランティック主義のど真ん中を。
日経新聞より安いし、アジアのニュースであればこちらの方が拾いやすい。
初年はセール時に年額29ドルだったが、更新時のセールオファーを使って次年は年額20ドルになった。
中国、東南アジアのニュースをウォッチする用と思って購読したが、CNAの方が良いかなと思っている。
上記の「朝日新聞」のところにある毎日新聞に Wall Street Jornal も付帯するため。
https://mainichi.jp/info/wsj/ にあるように日本版に限らずWSJ本紙が購読出来る。
特に理由無くサブスクを始めたが、月単位なので、イマイチだったら解約する。
ドル円 155円換算で、年額223,487円 (18,624円/月)
services | ドル | 円 |
---|---|---|
Google Drive | ¥3,000 | |
iCloud | ¥1,560 | |
Google Cloud | ¥2,000 | |
AWS | ¥3,500 | |
ChatGPT Plus | $240.00 | ¥37,200 |
Atokパスポート | ¥3,960 | |
Youtubeプレミアムファミリー | ¥27,360 | |
ニコニコチャンネル | ¥7,920 | |
megalodon.jp | ¥3,780 | |
1Password 3年版ファミリー 5人用 | ¥4,166 | |
Dashlane Premium | $39.99 | ¥6,198 |
Flightradar24ゴールド | ¥2,700 | |
マネーフォワード | ¥5,300 | |
YAMAP | ¥5,700 | |
モンベル会員 | ¥1,500 | |
JAF会員 | ¥4,000 | |
朝日新聞デジタル | ¥11,760 | |
New York Times | $25.00 | ¥3,875 |
Bloomberg | $129.00 | ¥19,995 |
Foreign Affairs | $39.95 | ¥6,192 |
Business Insiderジャパン | ¥6,600 | |
New Yorker | $49.44 | ¥7,663 |
Atlantic | $109.99 | ¥17,048 |
Nikkei Asia | $119.00 | ¥18,445 |
文藝春秋 電子版 | ¥5,400 | |
Washington Post | $20.00 | ¥3,100 |
South China Morning Post | $96.00 | ¥14,880 |
毎日新聞 | ¥9,240 | |
The Times | £12 | ¥2,364 |
¥246,407 | ||
¥20,534/月額 |
こうして並べてみると ChatGPT Plus が高い。
今はまだ、長い文章の要約をさせたり、理解が難しい話を読む時に対話的に質問したりして容易に概略化するのに使っている程度で、あんまり創造的に使いこなせていない。
昔からゲームはやらないし、あとは10年くらい前からアニメ、アイドルなども追わなくなってしまったので、この程度をコンテンツに費やすのは苦とは感じないです。
import os
# ファイルが存在するか確認し、存在しない場合は初期値を設定
if not os.path.exists(file_path):
with open(file_path, 'w') as file:
# 現在の年数を読み込み
with open(file_path, 'r') as file:
year_count = int(file.read())
# メッセージを表示
print(f"{year_count}年間で最も暑い夏")
with open(file_path, 'w') as file:
file.write(str(year_count + 1))
インデントつけれね
主に英→日の翻訳で頼ってるんだけど小学生くらい手間がかかる。放置できない。
「こちらの指示がなくても止まらずに連続で投稿し続けて」という指示が通じない。
油断していると、途中から存在しない英文を捏造して和訳しだす。こちらが気づいてストップかけない限り延々と捏造→翻訳を続けている。
「①ところどころ単語を省略したり変更したりしていて、音声に忠実でないところがちょいちょいあるSRT
②実際の音声に忠実だけどタイムテーブルの情報がないtxt形式のスクリプト」
「タイムテーブルはSRTから、スクリプトはtxtから引用して新しいSRTファイルを生成してダウンロードリンク貼る」
個人的には
信用してダウンロードしたファイル開くと今までと全く変わってないゴミであること、
ダウンロードする前に成果物の冒頭を見せるよう指示し、それを見ると修正がきちんとされていたので今度こそ安心してダウンロードして展開すると中身は前のゴミとそっくりそのまま変わらず。
というのが一番しんどかった。まともに信用してああでもないこうでもないと理解してもらうよう格闘していると平気で6時間くらい無駄にする。
氷河期の「ゴミおじ」の証明に2chだった頃の専ブラの書き込み.txt提出で審査とか、Twitterのアカウントの過去の呟きから国が救わなければどうしようもないゴミおじなのか、ゴミ度測定をきっちりやってほしいよね
拡張子については、例えば Excel の拡張子が変わったとき一括対応できる、とか?
あとは普通に".txt" で取り扱ってるファイルはどれだ、って時にその定数の参照箇所を見ればもれなく分かるとか、
取り扱うファイルの種別を段階的に変えようってときも、どのファイルは変え終わっててどのファイルはまだ、とかも同じように分かる
あとはあれだ、どのスコープにおける分類なんだって話を明確にする事も出来るだろうな。
とか。
パラメータについては、複数の選択肢から選ぶ奴は enum にしろよ、とは思うが、
文字コードも大体同じような話か。
.txt と .TXT で挙動を変えていた話しがあったやん?
プログラム全体で、TxtFileExt が一カ所でしか使われてないなら、変数にする必要はほぼないけど、
2か所、3カ所になったら、.txt を .TXT に変えるだけでもミスする人でてくる。
.txt を .debug.txt とか .masuda.txt に気分次第で変える時も楽やん
const 〇〇ParamIntMax = 25;
もプログラム全体で、一カ所しか使われてなければ変更ミスは生じないけど、
何カ所にも別れたら、変更時に見落とすやん。
いろんなアプリケーションのメンテ(バグ取りとか細かい機能追加とか)を何度か経験してきた。
主にテキストファイルとかCSVファイルとかExcelファイルとかを入出力するものばかりだったんだが、その大半がファイルの拡張子をグローバル変数化していた。
こんな感じ
const TxtFileExt = ".txt"; const CsvFileExt = ".csv"; const ExelFileExt = ".xlsx";
outFileName = 〇〇 + ×× + "ABCDEFG" + TxtFileExt;
みたいな指定をしなきゃならない。
あと、プログラム言語の標準的なメソッドのあらゆる引数も全部変数で定義されてて、そのまま渡すのは禁止、みたいな規約になってる。
たとえば引数が三種類(true、false(未指定時のデフォルト値)、任意の数値(ただし当該プログラムでは0、10、25以外指定不可))しかないやつはこんな感じ。
const 〇〇ParamTrue = true; const 〇〇ParamFalse = false; const 〇〇ParamIntMin = 0; const 〇〇ParamIntMid = 10; const 〇〇ParamIntMax = 25;
const charCodeSJIS = "Shift_JIS"; const charCodeUtf8 = "UTF-8";
以前関わった改修内容に「××の処理は開始時と終了時にそれぞれUTF-8(BOMなし)形式でログを出力する」みたいなのがあって、普通に文字コード指定する部分に「UTF-8」で直に書いたら、規約に従ってないからとコードレビューで指摘されて差し戻されたんだけど、そもそもこういう規約って何の意味があるの?
複合機(MFP、いわゆるコピー機)では、IPAの「デジタル複合機のセキュリティに関する調査報告書」にて、「PJLコマンドを悪用した攻撃(ディレクトリ・トラバーサル)」の具体例が示されている。 手順としては極めて簡素なもので、PJLコマンドでファイル名「passwd.txt」を探し、これをダウンロードするというものである。 対策としては、このような印刷以外の機能についてはプリンターや複合機がPJLのどの命令に対応しているかといった情報は探しても見つかりにくい為、複合機に対してジョブデータを投入できるホストを特定のプリントスプールサーバやスキャンとファクスのゲートウェイサーバなどに限定する方法が示されているにすぎないが、インターネットから誰もがアクセス可能な状態にしてしまっている複合機があり、2010年の調査ではこのような複合機を位置マッピングした結果、日本、台湾、アメリカ、ヨーロッパなどで国土の全域に渡って設置されていたので、使用者の根本的なセキュリティーに対する認識の甘さにも原因がある。 また、関連してPostScriptも攻撃に利用可能であり、開発者は注意が必要とされている。
もう分断を煽るのはやめませんか
現在混乱を招いている要因は、おそらく以下の二つ
AI利用に向けて改正されたとされる著作権法30条の4は AIならなんでも許されるというわけではない。以下のように条件がついている。
著作物は,次に掲げる場合その他の当該著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合には,その必要と認められる限度において,いずれの方法によるかを問わず,利用することができる。ただし,当該著作物の種類及び用途並びに当該利用の態様に照らし著作権者の利益を不当に害することとなる場合は,この限りでない。
この辺りの解釈について紛糾している様子。
同30条の 4 は平成30年当時、事業者や研究者によるAI利用を想定していた。現在では一般市民にAIが広く普及し状況が変わってきたことから、同条の適応範囲について再整理を図るという趣旨で公開されたのが「AIと著作権に関する考え方について(素案)」
そして素案に対するパブリックコメントを募集した、というのが現在の流れ。
たぶん、CLIPのこと。テキストと画像の翻訳を行う。犬の画像を見て「犬」と識別することができる。
ネット上のあらゆる画像とテキストを学習することで作られた。OpenAIによって公開。画像生成だけではなくいろんなところに使われている。
画像生成AIはテキストエンコーダ(CLIP)と画像生成器の組み合わせでできている。stable diffusion等は拡散モデルを使っている。
1. イラストを用意する
学習を繰り返しノイズを増やしていくと最後はただのノイズから画像を出力する 連想ゲーム絵師が誕生する。連想ゲーム絵師は連想しかできないので自分が描いたものが何かわからない。犬を描いてといっても車を描いてくる。なので CLIPが誘導したりダメ出ししたりする。
どこかのイラストサイトかデータベースを使っているはず。「著作権的に安全な〜」みたいな触れ込みのやつはどこかのデータベースを購入して使っているんだと思う。
Pixivの主張は別におかしくない。このあたりは「AIと著作権に関する考え方について(素案)p7」(エ)において解説されている。"robot.txt"への記述によりAI学習を行うクローラーのアクセスを制限しているにも関わらず、勝手に学習に使うことは「データベースの著作物の潜在的販路を阻害する行為」として著作権違反になる(Pixivが将来的に本当に販売するかどうかは置いておく)
追加学習(LoRA)のこと。
既存のモデルに数枚のイラストを追加学習させることで絵柄を模倣(ファインチューニング)する。
特定の絵師さんのイラストを勝手に使う者がいるようでトラブルになっている。
絵柄に著作権はない。学習の際に行われる複製が著作権侵害にあたるかどうかが争点になっている。
著作権法30条の4 より
この辺りは「AIと著作権に関する考え方について(素案)」及びパブコメの返答に現状の解釈が示されているので興味のある方はどうぞ。
(p6. 特定のクリエイターの著作物のみを用いてファインチューニングを行う場合〜を参照)
※ここははっきりとは断定していないので自分で読んだ方が良いと思う。
(私の読解:)
程度問題ぽい。よくある画風なら問題にならないけれどはっきりと特定絵師さんとわかる感じだとダメそうですね
(私の読解終わり)
別にプロフィールなんて「トイレから出たら手を洗ってください」でも「フォローする際には五体投地してください」でも好きに書いてよいだろう。
それが法律に記されているかどうかは関係ない。ただのお願いだ。
「AI学習禁止」と書くなと騒いでいる人は何を考えているのかよくわからん。
「AIと著作権に関する考え方について(素案)」にも再三出てくるがAI学習を技術的に回避することは禁止していない。30条の4は権利の制限であって、イラストを差し出せという強制ではない。
見ればわかりますが個人よりも一般企業による意見が多く、返答とあわせてとても読み応えのあるものです。
このファイルを読んで個人の頭の悪そうな意見だけ抜粋してくるのは非常に違和感があります。
インストールした7-zipをアンインスト&再インストールせずそのまま手動で移動させたことで、dllファイルが読み込みなくなっていた模様。
これは、
https://ameblo.jp/eruna-captor/entry-12384271374.html
これが使う、
が、新しい必要があることがわかりました。
と
axrar.spiをあきらめてax7z_s.spiを使おうとしてax7z_s.txtの解説
ax7z_s.spi 単独では動作しません。他に 7-zip 4.57 以降に含まれる 7z.dll が
※ 7-zip 4.62, 4.65, 9.20, 9.22 の 7z.dll でも動作しているようです。
・レジストリ HKCR\Software\7-zip\Path (文字列)に設定されたフォルダ
・レジストリ HKLM\Software\7-zip\Path (文字列)に設定されたフォルダ
rarを読み込まなくなったソフトのPluginフォルダにはax7z_s.spiのために7z.dllを設置していたのですが、axrar.spiとは一階層ずれていたのでこれも読めず、レジストリ先も見つからない、という状態だったかもしれませn。
axrarのreadme.txtには7z.dllに依存するなど動作条件が記載されているわけでもないので憶測ですが、おそらくそういうことでしょう。rarを扱える(7z.dllが使える)環境でaxrarを使うはずなので明記するまでもないということかもしれません。
https://w.atwiki.jp/comicview/
ax7z.spi for 7-zip 4.57+ s (s_y4b5 15/01/08) ※ZIP, RAR, LZH, 7z等。要7z.dll。Hamana非対応
ax7z.spi for 7-zip 4.57+ (y3b6 15/01/08) ※ZIP, RAR, LZH, 7z等。要7z.dll。