「正規表現」を含む日記 RSS

はてなキーワード: 正規表現とは

2023-09-24

anond:20230924125813

草生える

住民はもちろん自由に名乗るのだが、「安倍晋三」を名乗る住民圧倒的多数であるため安倍晋三以外を正規表現NGすることで掲示板がまともに機能するようになった。

(貶められる例:安倍を「カラーコーン」と呼ぶ(安倍銃撃現場に赤いカラーコーンが置かれ、墓標のようなそれに野田佳彦が合掌したことから)等)

嬉しい副作用として、安倍晋三を名乗るというバカのような踏み絵を行うことで、なぜだかスクリプト荒らしでないネトウヨネトサポと呼ばれる自民維新擁護するレス、更にアフィリエイトまとめサイトが好むレス(男女対立分断、弱者男性系)が激減した。元々嫌われていたコテハンや、こういう時に名前欄で個性主張する住民(往々にしてつまらない)のレス無視できるようになった。

これは安倍バリア、ABフィールド、アベガード等と呼ばれている。(エヴァATフィールド広告ブロックアプリのAdGuardが由来)

5ch嫌儲画期的方法荒らし工作員勝利しつつある

単位で埋め立てスクリプトに荒らされていることでお馴染みの5chニュース速報(嫌儲)

スクリプト自動生成された文章海外画像SNS(imgur)にアップされたグロ画像を織り交ぜて果てのない回線数(ワッチョイ)でレスしまくるため、NGワードNGネームNG IDによって無視することは不可能であり住民には対抗手段がなかった。

運営グル荒らしてるとさえ思えるくらい、荒らしに対して運営は無策であった。

そこでつい先日発案されたのが嫌儲デフォルト名無し「番組の途中ですがアフィサイトへの転載禁止です」を住民個々がNGネーム登録し、それぞれが名前欄に別物を入力してレスするというもの

デフォルト名無し(名前欄無記入)で荒らすスクリプト名前欄変更に対応するまでのイタチごっこと思われたが、なぜだが対応してこない。

これにより、スレが埋められること自体は仕方ないものの、スクリプトを完全に無視して会話することが可能になった。

対応してこない理由には、スクリプトをどこかで拾ったまま使用しているからイジる技術がない説、荒らし業務受注先の許可必要説(土日であるため)などがある。

住民はもちろん自由に名乗るのだが、「安倍晋三」を名乗る住民圧倒的多数であるため安倍晋三以外を正規表現NGすることで掲示板がまともに機能するようになった。

荒らしブラックリスト方式から住民ホワイトリスト方式というわけだ。嫌儲の宿敵安倍晋三により個々の名前欄の文が鮮明に統一されるとは皮肉ものだ。

スクリプト荒らし自民党委託のDAPPIによる業務説もあるため、住民を真似て安倍バカにする名前欄には対応できないとの期待もあった。

から嫌儲による安倍への愛執は並々ならぬものがあり、安倍の亡き今でも安倍は親しまれ、貶められ、ネタとして崇められ、安倍語録がレスに使われ、生成AIにより新たな安倍画像が生まれていた。

(親しまれる例:安倍を「安倍ちゃん」と呼ぶ、意味もなく「安倍晋三」とレスする、スレタイに関連する安倍画像を貼る等)

(貶められる例:安倍を「カラーコーン」と呼ぶ(安倍銃撃現場に赤いカラーコーンが置かれ、墓標のようなそれに野田佳彦が合掌したことから)等)

(崇められる例:安倍を「聖帝」と呼ぶ等)

(安倍語録レス例:意味のない○○だよ、くだらない○○で終わっちゃったね、○○すればいいというわけではない、○○したが○○していない、いわばまさに、非常にしつこい等)

嬉しい副作用として、安倍晋三を名乗るというバカのような踏み絵を行うことで、なぜだかスクリプト荒らしでないネトウヨネトサポと呼ばれる自民維新擁護するレス、更にアフィリエイトまとめサイトが好むレス(男女対立分断、弱者男性系)が激減した。元々嫌われていたコテハンや、こういう時に名前欄で個性主張する住民(往々にしてつまらない)のレス無視できるようになった。

思わぬ形でネトウヨ工作員説も真実味を帯びてきた。

これは安倍バリア、ABフィールド、アベガード等と呼ばれている。(エヴァATフィールド広告ブロックアプリのAdGuardが由来)

切り落としたメドューサを首を武器にした英雄ペルセウス、盾に猫をくくりつけて古代エジプト軍の戦意を削いだ古代ペルシア処刑されたのに救世主として持ち上げられるキリスト、そして安倍昭恵の「思い出していただければ何よりの供養」という言葉引用され、嫌儲では今日安倍晋三ネタにされている。

2023-09-06

/iP(hone|od|ad)/

/iP(hone|od|ad)/

こんな正規表現を見たんだけど、何かで最適化すると生成されるのかな?

そこまでせなあかん

2023-08-04

綺麗なコードって綺麗に書くことじゃないよ

本当にあった話だけど、JavaScriptstrっていう変数テキストが入っていて

その変数に'apple'とか'banana'とかが入ってるかどうかを判別するっていうロジックを作るとき

const re = new RegExp("apple")
if(re.test(str)) console.log("match")

みたいなサンプルコードを見つけてきて

const re_apple = new RegExp("apple")
const re_banana = new RegExp("banana")
if ( re_apple.test(str) || re_banana.test(str) ) console.log("match")

っていうコードを書く人がおるんよ

別にプログラミング初めて3ヶ月の初心者じゃ無くて20年以上やってるようなベテランだったり

なんならチーフプログラマーとして若手指導してるような人でもこういうレベルの人って割といるわけ

これに対して

正規表現でORを書くべき」

「includeで十分」

かいう指摘ももちろん正しいんだけど

綺麗にコードを書くっていうのは

「これってappleとかbanana以外に増えたりしないの?」

「fruitsかどうかを判別するならその変数を作った方が良くない?」

っていうのを考えて実装するのが綺麗にコードを書くっていうことで

変数名だとか整形とかは大事だけどそういう話じゃ無いんだよね

ちなみに

正規表現でORを書きましょう」

とかをPRレビューコメントしても

「動いてるからいいじゃない」

「綺麗に書いても性能上意味ない」

「言ってることが良く分からない。何が違うのか」

とか言ってくるし

言ってこなくて言われた通りに直しても次もまた同じことしてくるのでマジでレビューって大変だよ

2023-07-25

しまった

正規表現によるメールアドレス入力チェックが完璧すぎるせいでメールアドレスをいじってメールが飛ばないようにするテクが使えない

2023-07-24

これからはじめるPython入門講座

これからはじめる Python入門講座 —— 文法から機械学習までの基本を理解 2022/12/23 鶴長 鎮一 (著)

https://www.amazon.co.jp/dp/4297132001

https://gihyo.jp/book/2023/978-4-297-13200-2

 

目次

Chapter 1 Python概要と開発環境の導入

  1-1 Pythonの基本

  1-2 主なPython実行環境IDE

  1-3 Anacondaの導入と利用方法

Chpater 2 Pythonプログラミングの基礎

  2-1 基本変数(数値/四則演算

  2-2 コレクションリスト/タプル/セット/ディクショナリ)

  2-3 条件判断処理(if文)

  2-4 繰り返し処理(for文/while文)

Chapter 3 オブジェクトクラス文字列操作

  3-1 Pythonスクリプトの実行方

  3-2 オブジェクトクラスマルチバイト文字列ファイル入出力)

  3-3 文字列操作オブジェクトイテレータ/ジェネレーター)

  3-4 正規表現

Chpater 4 関数モジュール

  4-1 関数の基本

  4-2 関数定義

  4-3 モジュールの基本

  4-4 モジュールの探し方/インストール方法

Chpater 5 DjangoによるWebアプリケーション開発

  5-1 Webアプリケーションの仕組み

  5-2 Djangoインストール

  5-3 DjangoによるWebアプリケーション作成

  5-4 データベース操作

  5-5 Templateの利用

  5-6 Modelの利用

Chpater 6 データサイエンス(解析/分析)の基礎

  6-1 データサイエンスとは

  6-2 データサイエンスPython

  6-3 NumPyの利用

  6-4 Pandasの利用

Chpater 7 機械学習ディープラーニングの基礎

  7-1 AI機械学習ディープラーニングとは

  7-2 scikit-learnとTensorFlow

  7-3 scikit-learnの利用

  7-4 TensorFlowの利用

2023-07-18

anond:20230718185322

SQLはいい感じに生成してくれるのに正規表現微妙だよな。俺のプロンプトが悪いだけかもしれんけど。

チャットGPT、正規表現とか文字列処理を考えさせたら便利かと思ったけど全然だった

なんど いっても 同じミスをする

プログラムコードとして書かせるからダメなんだと思う

コンパイラ持ってるわけじゃないから、実行結果がわかんない状態コードをお出ししてくる

実行して正しいかどうかまでチェックしてから出力する、というような気の利いた事はしてくれない

からこっちがダメといってもどこがダメかを考える材料がないから、どこを直せばいいかずっと判断できない

ちなみにどこがダメかはもちろん言ってやってる

それでもそれを理解して適切に修正することができない

トラバはむかつくからみてませーん

2023-07-05

anond:20230630185828

54ページに参考文献が掲載されていた。

京都大学Python入門講座の補助教材として推奨されているようだ。

本講座が難しいと感じる初心者向けの副読本なのだろう。

 

参考文献

Python に関する書籍は近年,数多く出版されていて,どれを買っていいのか迷うかと思います

以下,いくつか挙げておきます

このほかの書籍図書館などで探される際には Python Version 3 を扱っていることを確認してください.

 

[2] Bill Lubanovic 著,鈴木 駿 監訳,長尾 高弘 訳:入門 Python3 第2版, オライリー・ジャパン (2021)

[asin:4873119324] 2021/3/22

データサイエンスウェブ開発、セキュリティなど、さまざまな分野で人気を獲得してきているPython

本書は、ベストセラー『入門 Python 3』の6年ぶりの改訂版で、プログラミング初級者を対象としたPython入門書です。

プログラミングおよびPythonの基礎からウェブデータベースネットワーク、並行処理といった応用まで、実践を見据えたPythonプログラミングをわかりやすく丁寧に説明します。

Python 3.9に対応し、f文字列などの新機能も追加され大幅にボリュームアップしました。

Python機能をひと通り網羅し、リファレンスとしても便利です。

 

この本は、薄い入門書じゃなくて、わりと厚めの詳細な説明が書かれている本。

リファレンス的に使うような本でもあるので、まったくプログラミングをやったことがない本当の初心者だと、この本を読んで理解するのは大変なんじゃないかと思う。

すでに他のプログラミング言語習得しているプログラマーで、Python言語仕様を1冊の本で把握した人には、本書は向いていると思う。

 

1冊目にこれを持ってくるあたり、受験勉強知識の丸暗記に長けたガリ勉ならOKかもしれないが、勉強が得意じゃない人にはちょっといじわるなチョイスではないか?と穿ってしまった。

一応持っておいて普段本棚の飾りにしつつも、必要とき辞典的に使えばいいのではないか?と思う。

自分なら、この本は2冊目以降に推奨するだろう。(1冊目には勧めない)

  

[3] 柴田淳:みんなの Python 第 4 版,SB クリエイティブ (2017)

[asin:479738946X] 2016/12/22

Python入門書デファクトスタンダードが4年ぶりに大改訂

近年、Pythonの利用が、機械学習AIなどの科学技術分野へ大きく広がっている現状を踏まえて、すべてのパートに手を入れいくつかの新章を追加しました。

次の10年を担うPythonプログラマ養成するための一冊。

 

Chapter01 プログラミング言語Python

Chapter02 Pythonプログラミングをはじめよう

Chapter03 Pythonの基礎をマスターする

Chapter04 組み込み型を使いこなす

Chapter05 Python関数型プログラミング

Chapter06 クラスオブジェクト指向開発

Chapter07 クラス継承と高度なオブジェクト指向機能

Chapter08 モジュール

Chapter09 スコープオブジェクト

Chapter10 例外処理

Chapter11 標準ライブラリを使う

Chapter12 Pythonデータサイエンス

Chapter13 Pythan2

 

・AnacondaやJupyter Notebookなど、Pythonの最新開発環境対応

・NumPy、matplotlibなどの科学技術ライブラリ対応

WindowsmacOSLinux対応

 

イラストや図解を多用しているので、一見すると初心者向けのように見えるけど、1冊目としてはどうだろうか?

やはり、この本も2冊目以降に読んだ方が良い本になってしまうだろうか?

悪くはないと思うけど、自分なら読まないかもしれない。

Amazonレビューでも、結構酷評されてるね?

買いたい人は、本屋で内容を確認してから買った方が良いと思う。

 

[4] 大津真:基礎 Pythonインプレス (2016)

[asin:484438015X] 2016/3/4

本書で解説するPython現在もっとも注目を集めているプログラミング言語ひとつです。

プログラミング言語の人気度の目安となるPYPLでは、2016年1月の時点でJavaに続いて2位に位置していることからも、その人気のほどが伺えるでしょう。

その大きな理由として、Pythonがパワフルなオブジェクト指向スクリプト言語でありながら、わかりやすく、すっきりしたプログラム作成可能であることがあげられます

文法シンプルで、これからプログラミングを始める方にとっても最適な言語です。

現在Pythonは、Python 2.x系からPython3.x系への移行時期にあります

Python 3.xでは、さまざま機能強化が行われ、さらに標準の文字コードユニコードベースに変更され、日本語も容易に扱えるようになったこから日本においてもさらなる普及が期待されるでしょう。

 

本書は、プログラミング初心者対象にしたPython 3の入門書です。

変数の取り扱いから、リスト、タプルといったPython固有のデータ操作制御構造関数などについて具体的でかつ短いサンプルを多数提示しながら、初心者でも基礎から学んでいけるように拝領したつもりです。

また、インデントブロック表現する点などなど、他のメジャー言語と比べてユニークな部分も丁寧に説明しています

前半部分で基本を説明した後は、ファーストクラスオブジェクトとしての関数活用方法オリジナルクラス作成などといった多少高度な項目を丁寧に説明していきます

 

Chap1 Pythonプログラミングをはじめるための予備知識

Chap2 Pythonの基礎について学ぼう

Chap3 プログラムの流れを変えたり処理を繰り返したりする

Chap4 組み込み型の活用方を理解しよう

Chap5 オリジナル関数作成する

Chap6 テキストファイルの読み書きを理解しよう

Chap7 オリジナルクラス作成する付録 開発ツールとの連携設定

 

Amazonサンプルページを見たら、お勧めエディターとして「Atom」が紹介されていた。

から7年前ならAtomでも良かったのかもしれないけど、今ならVisual Studio Codeの方が使い勝手が良いのではないだろうか?

7年前の情報という点を考慮して、検討したい。

Python文法説明に関しては悪くないと思うけど、自分なら読まないかもしれない。

 

[5] 松浦健一郎,司ゆき:はじめての Python エンジニア入門編,秀和システム (2019)

[asin:4798058327] 2019/5/25

■きちんと学びたい人のための最短教科書。■

Python開発者に求められる言語ツールライブラリなどの知識を、1冊で素早く学べます。■

 

「はじめて」でも「よくわかる」5つの必達ポイント

(1) Python言語効率よく習得できる文法入門。

(2) 豊富な例題で頭と手を刺激しながら学べる。

(3) 数多くの定番ライブラリや必携ツールを1冊で体験

(4) 人気のAIデータ分析Webフレームワークにも対応

(5) 開発したプログラムPyPIGitHubで公開できる。

 

可もなく不可もなくというかんじで、ありがちな入門書であるように見えた。

同じ著者の本なら、[asin:4815607648] Python[完全]入門 (2021/1/22) の方が良いのではないか

発売年もこっちの方が新しいし、受験参考書っぽい作りで、各項目の要点が頭に入ってきやすい。

Amazonサンプルページを見て、自分の好みの方を選んだら良いと思う。

この本なら1冊目でもお勧めできそうだ。

(ただし、自分場合はすでにオンライン教材を入門を済ませてしまったので、今さら読む必要はないけど)

時間があったら、図書館で借りてレビューしてみたい。(買うとは言ってない)

 

[6] 大澤文孝:いちばんやさしい Python 入門教室ソーテック社 (2017)

[asin:4800711592] 2017/4/8

はじめは誰でも未経験者!

Pythonプログラミングの基礎を身につけよう!

 

本書はプログラミング言語Python」の「いちばんやさしい」入門書です。

 

○「興味はあるけど、難しそう」と尻込みしている人

○「そもそもプログラミングって何?」という未経験

○「一度試したが、挫折してしまった」という初級者

○「スキルアップのためにPythonを学びたい」という経験

 

そんなPythonビギナーに向けて、プログラム根本概念、基礎知識、基本文法をきっちり端折らずに説明します!

さらには、「簡単計算」「ゲーム作成」「GUIアプリ」「モジュール活用」など、

実際に手を動かしながらの演習を通して、学んだことがしっかり身につくように構成しました。

 

豊富カラー図解とイラストで、初心者にも分かりやすい!

本書を一通り終えれば、Pythonのみならず、プログラミングの基本がバッチリ学べます

 

さあ、あたなもこの本をきっかけに、Pythonプログラミング世界に飛び込んでみませんか?

 

この著者の本は、他の本なら持っている。

本当に分かりやす説明するのが上手い方だと思う。

簡単な内容しか説明してないけど、他の本なら挫折してしまうようなガチ初心者でも、この本なら理解できるだろう。多分、中学生ぐらいが読んでも理解できると思う。

自分には物足りないような気がするので敢えて読もうとは思わないが、1冊目にお勧めするチョイスとしては間違ってないと思う。

 

[7] コーリー・アルソフ著,清水川貴之訳:独学プログラマー日経 BP (2018)

[asin:4822292274] 2018/2/24

本書は「Pythonだけ」を学ぶ本ではありません。

Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。

 

プログラマになるためのスキルを独学できる本です。

Pythonプログラミングの基本を学べるだけでなく、プログラマとして必要スキル(シェル正規表現パッケージ管理バージョン管理データ構造アルゴリズム仕事の始め方・やり方)もひと通り学べるのが特徴です。

プログラミングを始めたい」「できればその道でプロを目指してみたい」――そんな読者にオススメです。

 

本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。

本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。

プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています

彼の独学プログラマーとしての学び方は、多くの人に支持されています

――訳者あとがきより

 

目次については、日経BOOKプラスの本書のページをご覧ください。

そこでは目次ページだけをまとめたPDFファイルや、本書に登場するリンクをまとめたPDFファイル、補足もご連絡いただけます

 

出た~~~!!!

Python入門の「2冊目」としては鉄板の本だと思う。

しか!!!…敢えて、私は読まないだろう!!!

別にひねくれている訳じゃなくて、もっと他に良い本が出てきたから。

ハズレではないので、この本を進めときゃいいでしょ的な安易さは拭えないが、あえてケチをつけるならば、各項目が「広く浅く」で物足りなさが残るから

中途半端な本という印象が拭えない。

プログラミングを全くやったことがない初心者が、Python文法を覚えた後、脱入門で中級へステップアップするときの足掛かりとしては、本書は良い指南書になるだろう。

鉄板の本なので、時間があれば後で図書館で借りて目を通してみたい。(買うとは言ってない)

 

[8] 増井敏克:基礎からプログラミングリテラシー技術評論社 (2019)

[asin:4297105144] 2019/4/17

プログラミングをはじめる前に読む1冊!

 

プログラミングブームエンジニア不足を背景にプログラミング独習をする方が増えています

いざ、Webで人気の講座を受講してみたり、店頭平積みになっているベストセラープログラミング書籍を手にしたものの、どれも理解できずに挫折してしまった、という方も多いのではないでしょうか。

コンピュータプログラミング解説がわからないのは、次のような知識の不足が要因です。

 

1.コンピュータのしくみがわからない

2.プログラミングのしくみがわからない

3.アプリケーションが動くしくみがわからない

4.開発スタイルエンジニア仕事像がわからない

5.業界の標準やツールが知らない

6.プログラミング書籍の選び方がわからない

 

これらは専門書やインターネット検索上位にくるWeb記事では前提知識として省略されることが多く「読み進めるにはほかの資料必要になった」なんてことがよくあります

そこで、本書ではプログラミング独習者がつまずきやす知識を厳選して取り上げ、初心者の分からなかったをサポートします。

図解を多用し、「サーバークライアント」、「コンパイラインタプリタ」のように用語比較しながら学習することで、いままで曖昧になっていた知識が整理され理解が進みます

プログラミング初心者必携の1冊です!

 

自分記憶に間違いがなければ、この本は1回図書館で借りて読んだことがあるような気がする。(表紙を見ておぼろげに思い出した)

この本は、中学生とか高校生レベル知識しかない人が、学校の「情報」の授業の補助教材として使うようなイメージがある。

京都大学先生京大生に勧める本としては、どうなんだろう?

 

プログラミング以前の疑問として、そもそもコンピューター(電子計算機)って何だろう?というような素朴な疑問を持つ人が、ハードウェアなどの仕組みを知りたいなら、情報処理技術者試験の教科書を読んだ方が手っ取り早いと思う。

  1. ITパスポート試験
  2. 基本情報技術者試験
  3. 応用情報技術者試験

大学受験経験して、知識の丸暗記に慣れている人なら、これらの資格試験教科書の方が、要点がコンパクトにまとまっていて、吸収しやすいのではないか

 

cf. 情報処理技術者試験 - Wikipedia

https://w.wiki/3cnP

https://www.ipa.go.jp/shiken/

 

とりあえず、Pythonとは直接関係なさそうなので、今の私なら読まない。

パソコン自作できるし、ハードウェア知識もある程度あるので、本書を読む時間があったら、他の本を読むだろう。

本書を読みたい人は、自己責任で読んで欲しい。

 

 

https://anond.hatelabo.jp/20230705022129 へ続く)

2023-07-04

Python学習の中級編カリキュラム案

Pythonの入門講座で、文法の基本は分かった。

次のステップ検討してみたい。

 

文法の肉付け

 

本を買うなら、どれがいいだろうか?

Amazonレビューなどを参考にして、いくつかピックアップしてみたい。

 

Pythonの本(中級編)

選定条件として、

などが必要だろう。

 

Amazonで探索

[asin:4297111977] 自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120

2020/2/27

初心者本はひととおり読んだけれど、次に何をしてよいかからない」

簡単コードは書けるけれど、中規模システムは作れない」

本書は、そんなプログラミング迷子設計からコードまで書けるスキルを身につけるための指南書です。

開発現場で起こった実際の問題とその解決法をもとに、文法以外に必要な「プロジェクトの各段階でプログラマーがやること」「その選択をどう判断するのか」「どうコード実装して実現していくのか」を解説します。

コードにはPython使用していますが、ほかのプログラム言語でも共通する知識が満載。より効率的かつ効果的にプログラムを書ける「自走できるプログラマー」へ導きます

 

目次を見ると、内容は良さげだったけど、DjangoPythonWebフレームワーク)を使ったWeb開発のストーリー展開で学ぶ形式になっているみたいなので、Django知識がないと分かりづらいかも?

順番としては、どこかの段階でDjangoを使ってみて、その後に本書を読む方がいいかも?

一応、この本には目を通しておきたいと思う。

 

[asin:4822292274] 独学プログラマー Python言語の基本から仕事のやり方まで

2018/2/24

本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。

 

プログラマになるためのスキルを独学できる本です。Pythonプログラミングの基本を学べるだけでなく、プログラマとして必要スキル(シェル正規表現パッケージ管理バージョン管理データ構造アルゴリズム仕事の始め方・やり方)もひと通り学べるのが特徴です。

プログラミングを始めたい」「できればその道でプロを目指してみたい」――そんな読者にオススメです。

 

本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。

プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています。彼の独学プログラマーとしての学び方は、多くの人に支持されています

 

目次については、日経BOOKプラスの本書のページをご覧ください。そこでは目次ページだけをまとめたPDFファイルや、本書に登場するリンクをまとめたPDFファイル、補足もご連絡いただけます

 

https://bookplus.nikkei.com/atcl/catalog/18/C92270/

 

この本は、プログラマー仕事必要になる知識を広く薄く紹介しているかんじだった。

目次を見ると、第23章にテストのやり方が少しだけ言及されていた。

文法を学んだ次に読む本として、ちょうどいいかもしれない?

各項目は触り程度で、内容が薄いけど、この本で紹介されている内容を土台として、各テーマを深掘りしていけば良いと思う。

 

しかしながら、レビューで★1個とか★2個あたりを見ると、辛口批判がある。

中途半端なかんじが好まれないようだ。

かにテストのやり方とか、設計方法は、他の本の方が詳しい知識が得られそうだった。

もしも、読むとしたら、買わず図書館で借りてみて、1回読んだら終わりの本かもしれない。(何度も読み返す本、辞書のように使える本、ではないような気もする?)

入門直後に、中級編の学習マップを作るためなら、読んでもいいかもしれない。(まあでも、目次を見れば得られる知識はだいたいの予想がつくけどね)

 

[asin:4048930842] エキスパートPythonプログラミング 改訂3版

2021/7/30

卓越したPythonプログラマになるための必読書

 

Pythonプログラマ必読と言われるベストセラーが、最新のPython環境に合わせて改訂されました。

本書は、Pythonを使って仕事をしている開発者普段どのようなツールテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。

本書を読むことで、先進的なPythonプログラマ日常的に使用している開発ノウハウを学ぶことができます

今回の改訂によって、新たにメタプログラミングイベント駆動プログラミング、型ヒントについての解説が追加されました。

 

この本は、内容が充実していて良さげだったけど、入門の直後に読むのは厳しいかも?

この本の読者対象は、多分プログラマー

すでに他の言語プログラミングができる人が、Pythonを使わなければならなくなって、Pythonを学ぶ場合は最適だと思う。

京都大学オンライン教材(無料)をやった後なら、読めるかも?(架け橋となる知識が抜けている段階では、既存知識接ぎ木するのが難しい。)

 

[asin:4046057548] シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

2022/8/16

現役シリコンバレーエンジニアが教える「最強のプログラミング講義!

10万人が選んだ人気No.1オンライン講座が超わかりやすパワーアップして書籍化!

海外企業でも通用する一流のプログラミング技術が学べます!

 

★基礎から応用、一流コードスタイルまで1冊で学べる★

【応用編】ではニーズの高い実践テクニックを中心に、

【入門編】では基礎から1歩ずつ、わかりやす解説

シリコンバレートップIT企業活躍する著者が世界標準Pythonスキルを一気に伝えます

 

海外でも通用する一流のプログラミング技術が身につく★

知っていましたか?

アメリカエンジニア年収日本の5~10倍です。

本書は「いつか海外活躍したい」、

そんな夢の実現も強力にバックアップしてくれる

海外進出の道しるべ」ともなる一冊です。

 

10万人が選んだ人気No.1講座の書籍化★

本書のもととなったのは、オンライン講座Udemyで人気No.1を獲得したPython講座。

本格的な内容をわかりやすく伝える著者の講座は人気が高く、延べ20万人以上が受講しています(全講座計)。

本書はさらに内容を充実させてパワーアップ! 自分のペースでしっかり学べます

独学の強い味方、「サンプルコード」の無料ダウンロードサービス付き。

 

エンジニア成功戦略も教えます

コラムでは、エンジニアキャリア戦略の立て方、成功するポイント、独学のコツなども紹介。

文系出身、TOEIC300点代からスタートした著者が渾身のエールを送ります

 

用語集、Pointなども充実★

コードを書くときの注意点、知っておきたい豆知識

開発の現場必要ことなどは「Point」としてたっぷり掲載

巻末には「用語集」も収録し、徹底して実践的な内容となっています

 

この本は一見良さげだったけど、目次を見てテスト説明がなかったので今回はパス

実用的なプログラムを書くのに、テストなしはあり得ないから。

自分けが使うプログラムならテストなしでサクッと作っても良い。(ドッグフーディングなら、バグがあっても自分がその場ですぐ直せばいいだけなので)

しかし、他人が使う売り物ならテストなしはあり得ない。従って、テストに触れていない本も教科書としてはあり得ない、ということ。

まあ、この本を読むなら、テスト知識は他の本で仕入れしかないだろう。

Pythonの教え方(インストラクショナル・デザイン)を調べてみるためなら、この本を読んでみる価値はありそうだ。(他人プログラミングを教える立場になったら読んでみてもOK?)

 

[asin:4798177458] テスト駆動Python 第2版

2022/8/30

【本書の内容】

Pythonを使った開発時に、テストの検出・実行・結果報告を自動で行うpytestの、導入から活用方法の詳細を、実務に沿うスタイルでを解説した『テスト駆動Python』(2018年)の第2版です。

扱う範囲は前版よりも広くなり、軽く触れるに留めていた箇所もより深い解説を加えており、Pythonを使った開発に欠かせない内容に仕上がっています

とくにCIプラグイン開発など、テスト自動エンジニア向けのトピックも増えつつ、パラメータ化やモックデバッグ手法など、プログラマなら知っておくべき知識てんこ盛りです。

アプリケーションPythonで構築する際に、テスト駆動開発をストレスなく行いたいプログラマエンジニア、およびテスト設計テストアーキテクチャを知りたい方にはうってつけの1冊です。

 

目次を見ただけだけど、Pythonテストについては、この1冊を読めば、ある程度押さえられそうな気がした。

この本は買いだな!

 

とりあえず、ちょっとAmazonを眺めただけだけど、他に良さげな本があったら検討してみたい。

本を調査している間に、ついでに京都大学Python教材をやってみよう。

2023-06-30

学習するプログラミング言語の選定

プログラミングパラダイム

プログラミングパラダイム(考え方)は、(分類方法にもよるけど)主に2種類ある。

  1. 命令
  2. 宣言

 

命令プログラミング

https://w.wiki/6uCP

命令プログラミング(めいれいがたプログラミング、英: imperative programming)は、プログラム状態を変化させるステートメントを基本文に用いる総称的なプログラミングパラダイムである

ステートメントではコマンド命令文)が多用される。

宣言プログラミングと対をなしてのプログラミング言語の分類用語としても扱われている。

宣言型の数学性質に対して、命令型はノイマンコンピュータ向けの計算機科学特有性質である

このパラダイムは、手続き型、構造化、モジュラーオブジェクト指向などを包括している。

 

命令プログラミングは、例えるならば、買物のメモを作るのと似ている。

  1. 近所のスーパーマーケットに行く。
  2. 入口で買い物かごを取る。
  3. 食パンを1個かごに入れる。
  4. 牛乳を1本かごに入れる。
  5. 卵を1パックかごに入れる。
  6. もしも特売で安いツナ缶があった場合、1個かごに入れる。(ツナ缶通常価格であれば、かごに入れない。)
  7. レジに行き、精算する。
  8. サッカ台で買った商品を袋に詰める。
  9. 帰宅する。

 

命令プログラミングを細分化すると、

などの仕組みが含まれている。

 

命令プログラミングは、直観的に分かりやすいので、プログラミング学習の初手は命令型で良いだろう。

実際、プログラミング教育が必修化された小中高の授業では、プログラミング学習言語として命令言語が選定されている。

学習実験においても、命令プログラミング言語を選び、学校の教材に合わせて「Python」を学んでみよう。

 

Pythonパイソン)とは?

https://ja.wikipedia.org/wiki/Python

Pythonパイソン)はインタープリタ型の高水準汎用プログラミング言語である

Python1991年にグイド・ヴァンロッサムにより開発されたプログラミング言語である

最初リリースされたPython設計哲学は、ホワイトスペース(オフサイドルール)の顕著な使用によってコードの可読性を重視している。

その言語構成オブジェクト指向アプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的コードを書くのを支援することを目的としている。

 

宣言プログラミング

https://w.wiki/6uCz

宣言プログラミング(英: Declarative programming)は、数理論理学的な性質を表わしている総称的なプログラミングパラダイムである

式の計算構造を、主に表示的意味論下のロジック表現する構文にされることが多く、式枠外の副作用を伴なう制御フロー自由変数の多用などは排除されるようになる。

計算構造演繹的に組み立てられることが多い。

命令プログラミングと対をなしてのプログラミング言語の分類用語としても扱われている。

 

宣言言語は、what the program must accomplish(何をなすべきか)方針で、副作用排除した式や純粋関数実装に努める。

これは命令言語の、how to accomplish it(どうなすべきか)方針で、副作用を前提にした操作意味論下のアルゴリズム実装とよく対比される。

宣言パラダイムは、関数型、論理型、データフローなどを包括し、データベース問い合わせ言語マークアップ言語ドメイン固有言語構成管理正規表現などにも言及されており、並行計算との親和性特筆されている。

 

宣言プログラミングを細分化すると、

などの仕組みが含まれている。

 

宣言プログラミング言語は、例えるなら秘書仕事を任せるのと似ている。

主人:「冷蔵庫食品がなくなったので、補充しといて!」

秘書:「分かりました。あとはすべておまかせください!」

冷蔵庫食品を補充する"やり方"は問わず冷蔵庫を満杯にするという"結果"を示して要求するのが宣言プログラミングの特徴だ。

実際に慣れると、宣言プログラミングの方が命令プログラミングよりも簡単に感じられるはずだが、宣言プログラミングにはちょっと"癖"があるので、慣れるまで時間がかかるかもしれない。(具体的には、"副作用"の排除人間直観に反している面もある、ということ)

 

リレーショナルデータベースを使う場合、「SQL」というプログラミング言語使用は避けて通れないので、宣言プログラミング言語SQLは問合せ型言語)も、順次学ぶことにしよう。

 

まとめ

  1. まずPythonを学ぶ。
  2. データベースを使う場面が出てきたら、SQLも学ぶ。
  3. その後、残りの関数プログラミング論理プログラミングも学び、一通りプログラミングパラダイム理解してみる。

2023-06-06

表記ゆれ正規化簡単にできると豪語してるやつは想定内で収まると思い込んでるタイプだよなあ

英数程度の正規表現レベルで考えてるなんちゃってエンジニアっぽいしこの手のエンジニアほどやたらとSNS自己主張が強いイメージ

ユーザーはわけわからんことやるし、あえてやるやつもいるし、MacOSのように突然結合文字列使ってくるのもあるし

2023-05-19

anond:20230519194636

「アから始まってンで終わる6文字日本語」という19文字文字から思いつく単語を並べてるだけだからだよ

実際に文字数をカウントしてるわけじゃないし、実際に正規表現エンジンを通して検証しているわけでもない

ChatGPTは数値計算をしていない、数字の並びを見てありそうな答えを想像している、というのと根っこは一緒

ぼく「アから始まってンで終わる6文字日本語をいくつか挙げてください」

以下ChatGPT(GPT-4)

 日本語言葉でアから始まってンで終わる6文字音節のものには以下のようなものがあります

  アカデミアン アニメーション アドバンス アロエゲル アンテナマン

ぼく「アから始まってンで終わる6文字日本語をいくつか挙げてください。なお、これは正規表現/^......$/にマッチするものします。」

 正規表現 /^......$/ は正確に6文字単語意味します。そのため、「ア」からまり「ン」で終わる6文字日本語単語は以下のようになります

  アクセント アイロン アンケン アヒージョ アシスタント

 これらの単語はすべて「ア」からまり、「ン」で終わる6文字単語です。

ぼく「アから始まってンで終わる日本語をいくつか挙げてください。なお、条件として、正規表現/^......$/にマッチするものします。」

 正規表現 /^......$/ は厳密に6文字単語指定します。したがって、「ア」で始まり「ン」で終わる6文字日本語単語は以下のとおりです:

  アクション アルバム アンテナ アマゾン アドベンチャー

 これらの単語はすべて「ア」で始まり、「ン」で終わり、合計6文字構成されています

ぼく「なるほど、では検証しましょう。それぞれの単語について「1文字目…ア、2文字目…ク」のように順番に当てはめて6文字目まで表示してください。」

 もちろんです、それぞれの単語を一文字ずつ確認してみましょう。

 1. アクション

  1文字目: ア 2文字目: ク 3文字目: シ 4文字目: ョ 5文字目: ン 6文字目: (なし)

 2. アルバム

  1文字目: ア 2文字目: ル 3文字目: バ 4文字目: ム 5文字目: (なし) 6文字目: (なし)

(中略)

 確認の結果、いずれの単語も「ア」で始まり「ン」で終わる6文字単語の条件を満たしていません。私の誤りでした。失礼いたしました。

 訂正し、新たな単語を示します。

 1. アルバ

  1文字目: ア 2文字目: ル 3文字目: バ 4文字目: ン 5文字目: (なし) 6文字目: (なし)

 2. アクア

  1文字目: ア 2文字目: ク 3文字目: ア 4文字目: ン 5文字目: (なし) 6文字目: (なし)

 それぞれ「ア」からまり「ン」で終わる4文字単語となります

 申し訳ありませんが、日本語で「ア」からまり「ン」で終わる6文字単語は、ぱっと思いつく限りでは見つかりませんでした。ご希望に添えず申し訳ありません。

勝った…!AIに勝ったぞ…!

2023-04-12

プログラミングをやめろ

大学4年間と大学院2年間プログラミングやったやつでもできないし、会社毎日8時間を数週間プログラミングについやしてもできないやつはできないし、そもそも人類というのはプログラミングできない可能性がある。

少年少女たちに「プログラミングはいいぞ!自由ものが作れて達成感がある!頭が良くなった気分にもなれるし!」と吹聴してまわんのもいいけど、6年間情報科学について勉強したようなやつの大半がプログラミングできないんですよ。それもごくごく初歩的な部分。

野球とかサッカーなら、まあ友達との試合には参加できなくてもごく稀にバットボールを当てたり、ボールを1回あらぬ方向に蹴ったり、ぶっちゃけ周りとのレベル差で楽しくなくてすぐやめちゃうだろうけど、なんとか基礎の一部ぐらいはできるじゃないですか。

ピアノとかダンスでも、猫踏んじゃったをごくごくゆっくり弾くぐらいはできるかもしんないし、学芸会振り付け10秒ぐらいは踊れたりできるかもしれない。その後やっぱ周りのレベル見て諦めちゃうかもしんないけどさ。

プログラミング、6年やってミットを頭にかぶってるバッターとか、鍵盤蓋の上から殴って音鳴らそうとするやつとか、まずそういうレベルのやつが大量発生するんですよ。だいたい7割ぐらいの率。どうすんだよこいつら。私の教育問題か?マジで?本当に?

プロが練って考えて凝縮した本や授業、センパイたちによる指導。それらを結集して得られるはずのものが7割ぐらいどっかに消し飛んでる。無駄だろこれ。

からプログラミングやろうとしてるやつ、お前は確実に向いてないからさっさと諦めて刺身タンポポ乗せる仕事に戻ってくれ。参加しても鍵盤蓋叩き割るやつと同じ病室に入るだけだ。

プログラミングをやめろ。

ぼくはこう思うんですよ

そもそもなんで大の大人がそんな両手にバット持ってセカンドに立ったりゴールの方をボールのところまで動かす奇行に走るんだろうな。わかんねえや。

綺麗な分析はできないけど、いわゆる「できない」やつが共通して言ってたフレーズがある。

「ぼくはxxxだと思ってるんですけど、動かないんですよ」

うん、そうだね。そう思うんだ。でも動いてないじゃん。じゃあ違うんじゃない?モニターに「にらみつける」やってもバグは取れないし防御力下がるだけだぞ。

まず根本的に考えと事実が違ってるって結果出てるじゃん。じゃあもう考え変えちゃえば早くない?

名言引用は好きではないけど、「プログラムは思った通りには動かない。書いた通りに動く」って言葉がある。実に名言だと思う。次点で好きなのが「ある問題解決しようと正規表現を使うと問題が2つに増える」かな。

お前が何を思っているかプログラミングにおいて一切影響しないんだよ。お前が何を書いて、コンピュータがどう処理したか、それが全て。

深く考えないことについてぎゃーぎゃーいうやつもいるけどプログラムなんてまず最初は動けばいいんだから何も考えずに次試せばいいだろ。んで3回ぐらいは自分で思い浮かんだの試して、全部ダメだったら調べるとか先生に聞いてみるとかさ。逆に1発で通ったら自分思考見直し理解深めるとかさ。

ドキュメントとかあんまり理解できない初心者のうちは、とにかくお試しと修正のサイクル回すの重要で、「これがこうだから動くはず」というカードを3種類ぐらい作って全部片っ端から試すのが早いと思うよ。モニターにらみつけるな。

お前がどう思ってるかよりも、まずはお前の書いたプログラムがどう動いているか(どう動いていないか)を確認するのが先だ。動かなかったら考えが違う、はい次のプランはいその次のプランはい次。

この「ぼくはこう思ってる」が出てくるの、なんの教育の成果なんだろうね。お前の気持ちなんてどうでもいいって現国でも数学で散々教えられただろ。

2023-03-27

中学受験体験記 - その後

先日、高3の長男卒業式を迎えた。

6年前に「中学受験体験記」という記事で書いた息子だ。

https://anond.hatelabo.jp/20170206102543

いま家族旅行に来ているが、もうみんな寝てしまったので、缶ビールを飲みながら徒然なるままに思うところを書きつづる。

長男卒業した学校について

前回の記事に書いたとおり、当時小6だった長男中学受験に挑戦し、俗に御三家と呼ばれる男子校に進学した。

それからの6年間、長男部活勉強学校行事にと精を出し(なお恋愛)、仲の良い友人もたくさんでき(なお恋人)、とても充実した日々を送ってくれたようだ。

その高校卒業式に出席したが、決して厳かとは言えない雰囲気

いちおう詰め襟の標準服が制服ということにはなっているが、入学式以外で着ることはほぼなく、体が大きくなっても作り直したりはしないので、制服を着ている生徒は一人もいない。

ほとんどは親に借りたと思しきスーツだが、中には普段通りのカジュアルな格好もちらほらいるし、奇抜な格好をした目立ちたがり屋もいる。

その全てが許されている。

男子校ではあるが、女性の格好をした生徒も数名いた。

後で長男に聞いたところ、一人はネタだが、他はトランスジェンダーらしい。

彼ら(彼女ら?)の勇気には敬服するし、トランスジェンダー問題に限らず、素の自分を臆することなさらけだせる環境校風を作り上げてきた学校と生徒たちを賞賛したい。

この学校では自由がとても重視されている。

生徒たちも何かというと「自由」を声高に叫ぶ。その一方で責任についてもしっかりと言及するあたり、なかなかしっかりしているな、と思わされる。

ただ自分卒業した関東公立高校もそれほど変わらない程度には自由だったし、この学校果たしてそこまで特別なのかどうかは分からない。

自由であらねばならないという不自由さ」に囚われているような気がしなくもない。

ともあれ、校則はないし、制服も(実質的に)ないし、髪を染めたり休み時間に校外のコンビニに行ったりしても怒られない(らしい)。

そうするとたまには自由暴走してやらかす生徒も出てくる。

最近ネット高校生のやらかしSNS拡散され退学処分になるニュースを聞くが、たぶんこの学校では同じことをやっても退学になることはない。

退学させてしまったら、更正のための指導教育ができなくなってしまうではないか

高校勉強を教え、その出来を評価するだけの場であればそれでよいのかもしれないが、この学校は「人間を育てる」ことをとても重視してくれていた。

先生方はとても熱心で、生徒たちの将来を非常によく考えてくれている。

PTA役員を2年間務め、校長を含む先生方とも様々な機会で交流させてもらったからこそ、自分もそれを実感できる。

卒業アルバムを開くと「この学校に6年間通えてよかった!」という長男コメントが書いてあった。

今となっては長男がこの学校に通うことになって自分もよかったと思う。

長男の進学する大学について

卒業式から一週間後、受験した大学合格発表があり、第一志望の「東.*大学」に合格した。

ソフトウェアエンジニアにはおなじみの正規表現というやつでぼかしたが、面倒なので以下「東大」と略すことにする。

この東大というところは、多くの人にとって特別意味を持つ大学のようだ。

老衰で死にそうなばあさんや、鬱で生きる気力のなくなったじいさんでさえ、東大合格を伝えると笑顔を見せて喜んでくれた。

実際、長男はよく頑張った。鉄なんとかという塾の宿題にもしっかり取り組んでいた。

一方で自分気持ちは複雑だ。

長男が志望大学合格したことはもちろんうれしい。

しか自分田舎公立中高から塾にも通わず東京とある国立大学に進んだ身だ。

大学入学後、御三家校を含む都会の私立高校出身のやつらから聞く高校生活には、自分のそれとは全く違う華やかさがあった。

全国から集まった同級生の中には、自分には理解できないくらい裕福な暮らしをしている者もいた。

こちらは築数十年の4人部屋学生寮に月5000円で住んでいる。

寮生活は楽しかった。何なら人生で一番楽しい時期だったかもしれない。

しかしそれはそれとして、都会育ちのエリート金持ちにはある種の妬みや反感を持っていたのは否定できない事実だ。

それから30年。

よりにもよって自分の息子が、当時の自分が妬んでいた側の人間になってしまった。

合格した夜、そんな複雑な気持ちを抱えながら、こんなことを伝えた。

「お前はよく頑張った。それは誇っていい。でも周囲の環境に非常に恵まれたことは忘れるなよ。お前と同じくらい素質があったがお前ほどには環境に恵まれなかった人は全国にたくさんいる。決して自分が人よりも偉いだなんて思うなよ。」

もう自分父親として彼に教えられることはそう多くは残っていない。

次男について

長男とは4つ離れた次男私立中高一貫校に通っている。

自分次男にも中学受験を勧めはしなかったが、長男がそういうルートをたどった以上、そうなるのは必然だった。

小3の冬のある日、次男が「塾に通いたい」と言い始めた。

反対する気はないものの一応「何でだい?」と尋ねてみる。

「僕、もっと勉強ができるようになりたいんだよ!」

ウソである。本当は学校の仲の良い友だちが通い始めるからである

しかしこんなことを言われて、長男も通わせておいて、ダメと言えるはずもない。

次男別に勉強ができなくはないし学校の成績も良いのだが、中学受験という競技においては長男ほどの才能はなかった。

そして今は第4志望くらいだった学校に楽しそうに通っている。

偏差値の高低は重要ではない。次男にとってはその学校が合っていたのだと自分は満足していた。

・・・のだが、半年前に予想だにしないことが起きた。

アメリカ高校に進学したい」

ちょっと面食らったが、もともと大学海外に行くことを勧めたい気持ちはあったので、それがちょっと早まるくらいだと思い了承することにした。

だが高校留学のことを調べ始めて顔が青ざめた。

日本人が通えるアメリカ高校は、基本的には全寮制のいわゆるボーディングスクールというやつになるらしい。

そしてこいつの学費想像以上に高い。ましてや円安だ。

無理ではないが、老後の計画根底からくつがえるレベル

でも本人がやる気になっている今になって、やっぱりダメとは言えない。

ここはもう腹をくくることにした。

そして留学エージェントの力も借りて、先日めでたく合格をもらうことができた。

半年後にはもうアメリカだ。

突然子育ての終わりがやってくることになってしまった。

ところでアメリカ高校は4年間あって、1年生から入るには日本中学3年の秋からアメリカに渡る必要がある。

まりいま通っている私立中学中退してアメリカ高校入学する。

なので、もしホームシックをこじらせて志半ばで日本帰国するようなことになると、日本における最終学歴は「小卒」になってしまう。

まあ本人はネタとして面白い、とあっけらかんとしているので、それほど心配はしていない。

自分について

1ヶ月前に勤めていた会社を辞めた。

ここに書くほどの理由はないが、とにかく今は無職だ。

ただ何もしないととことん堕落しそうなので、シニアタレントオーディションというのを受けてみることにした。

最近団塊ジュニア向けの商品サービス広告モデルや、テレビ再現VTRなどで、40代以上のシニアタレント需要がそこそこあるらしい。

そしてめでたく合格した。

4月から3ヶ月ほど演技のレッスンに通うと、タレント仕事を紹介してもらえるようになるらしい。

まあ入所料やレッスン料を支払わないといけないので、最初習い事みたいなものだ。

そういうビジネスだと思えば、たぶんお金さえ払えれば誰でも合格できるのだろう。

タレントになるのが早いかITエンジニアとして再び働き始めるのが早いか、将来のことは自分にも分からない。

この家族旅行について

妻も職場資格試験合格したらしいので、一家全員合格祝いの家族旅行になった。

それにしても海外に来ると、円安と長く続いた日本デフレを痛感する。

タレントとして成功しない限り、次回はちゅうちょしてしまレベル

いや、これまで散々投資してきた息子たちから配当に期待か。

以上、深夜のワイキキビーチより。

2023-03-20

ひろゆきミュートしたら

小西ひろゆきまでミュートされちゃった。

正規表現ミュートできないか小西ひろゆき嫌いじゃないけど俺のはてブからは消えてもらう。ごめんね

2023-03-17

(GPT-4)長門有希プログラミングを手伝ってもらう

ChatGPTの口調がなんか事務的で嫌なので、もっと親しみやすい喋り方をしてもらうために長門さんに来てもらいました。

召喚プロンプトはこちanond:20230317165032

最初雑談から始めています

今日はいい天気だね

かに

長門は好きな食べ物はあるの?

特にない。

そうなんだ。情報統合思念体はみんなそう?

同様の傾向がある。

何の本を読んでるの?

SF小説

あらすじを教えて

異星文明との接触人類未来が描かれる。

へー、面白い

興味深い。

いつも家に帰ってから何をしてるの?ちゃんご飯は食べてる?

寝るだけ。食事摂取している。

そうなんだ。ところでちょっと手伝ってもらっていい?

問題ない。どのように手伝う?

Pythonソースコードで、スペース二つでインデントにしているコードを、スペース四つでインデントにするコードに書き換えたくて。どうすれば良い?

正規表現を利用。以下のコードを試す。

import re

def convert_indentation(code):
    return re.sub(r'^( {2})', r'    ', code, flags=re.MULTILINE)

code_with_2_spaces = '''def example():
  print("Hello, world!")
  if True:
    print("True")'''

code_with_4_spaces = convert_indentation(code_with_2_spaces)
print(code_with_4_spaces)

これで、スペース2つのインデントをスペース4つに変換できる。

ありがとう。でも、試してみたら、code_with_2_spaces の if ブロックの中身がスペース二つのままになっちゃってるみたい。なぜだろう?

失礼した。正規表現修正し、再度試してみてください。

import re

def convert_indentation(code):
    return re.sub(r'^( {2})', r'    ', code, flags=re.MULTILINE)

code_with_2_spaces = '''def example():
  print("Hello, world!")
  if True:
    print("True")'''

code_with_4_spaces = re.sub(r'^( {2})', r'    ', code_with_2_spaces, flags=re.MULTILINE)
print(code_with_4_spaces)

これで、すべてのスペース2つのインデントをスペース4つに変換できるはずです。

ちょっと口調が戻っちゃったね

すまない。修正後のコードを再提供する。

import re

def convert_indentation(code):
    return re.sub(r'^( {2})', r'    ', code, flags=re.MULTILINE)

code_with_2_spaces = '''def example():
  print("Hello, world!")
  if True:
    print("True")'''

code_with_4_spaces = re.sub(r'^( {2})', r'    ', code_with_2_spaces, flags=re.MULTILINE)
print(code_with_4_spaces)

確認お願い。

うーん、うまく動かないみたい。ifブロックの中にあるprint文の先頭には、もともとスペースが四つあって、これがインデント2回分なんだけど、こういう場合、スペース八つに変換しないといけないんじゃないかな。

理解した。全てのインデントレベル修正するコード提供する。

import re

def convert_indentation(code):
    return re.sub(r'^( {2})+', lambda m: m.group(0).replace('  ', '    '), code, flags=re.MULTILINE)

code_with_2_spaces = '''def example():
  print("Hello, world!")
  if True:
    print("True")'''

code_with_4_spaces = convert_indentation(code_with_2_spaces)
print(code_with_4_spaces)

このコードで、全てのインデントレベルが正確に変換される。

すごい!ちゃんと動いたよ!re.subの第2引数に渡しているラムダ式意味を教えてもらっていい?

もちろん。ラムダ式は、マッチした部分を置換する際に、特定の処理を行うために使用されている。ここでは、正規表現マッチしたインデント部分(スペース2つが1回以上繰り返される部分)に対して、処理を行うためにラムダ式を利用している。

lambda m: m.group(0).replace(' ', ' ')

このラムダ式は、マッチオブジェクトmを引数に取り、マッチした部分全体(m, group(0))に対して、スペース2つをスペース4つに置換(.replace(' ', ' '))している。

結果として、マッチしたインデント部分が、そのインデントレベルに応じて正確にスペース2つからスペース4つに置換される。

なるほど!re.sub第一引数についても解説してほしい

もちろん。re.subの第1引数は、置換対象文字列内で検索したいパターンを表す正規表現です。この場合、その正規表現は r'^( {2})+' です。

正規表現各部分について説明します。

  1. ^ は、文字列の行頭を表すメタ文字です。この場合、インデントが行頭にあることを示しています
  2. {2} は、直前の文字が2回繰り返されることを表します。ここでは、直前の文字がスペース なので、スペースが2回繰り返されることを示しています
  3. () は、正規表現グループ化を表します。この場合、スペース2つをグループ化していますグループ化された部分は、マッチオブジェクトアクセスできるようになります
  4. + は、直前の文字グループが1回以上繰り返されることを表します。ここでは、スペース2つのグループが1回以上繰り返されることを示しています

結果として、この正規表現は、インデント部分(スペース2つが1回以上繰り返される部分)が行頭にある行を検索しています。そして、re.subは、この正規表現マッチした部分を、指定された置換処理(第2引数ラムダ式)によって変更します。

ありがとう!わかりやすい!でも、また口調が戻っちゃったね。

すまない。確かに。続ける。

すぐ戻れるのがえらいね

ありがとう努力する。

2023-03-07

anond:20230228150745

ムリすぎで正規表現で無理矢理置換してやったら大人しくなったわ。

2023-02-24

ウクライナ政府自国での『Atomic Heart配信停止を要求他国ゲーマーに対してもプレイを控えるよう呼びかけ

[B! ロシア] ウクライナ政府自国での『Atomic Heart配信停止を要求他国ゲーマーに対してもプレイを控えるよう呼びかけ | Game*Spark - 国内海外ゲーム情報サイト

https://b.hatena.ne.jp/entry/s/www.gamespark.jp/article/2023/02/23/127353.html

このブクマにけっこうな割合ウクライナ政府の表明を批判するコメントが付いていて驚いた。

どれだけ実効性があるかとかそういう視点批判ならわかるけど、ロシア企業の製品の不買は、ロシア産のカニ石油を買わないのと根は同じだよね?

ロシア産のカニ石油に対するはてな雰囲気は、不買も当然とか、少なくともやむなしといった印象だったけど。

というわけで、「ロシア産」をキーワードに見つかった過去の海産物や石油関係の記事ブコメと、今回のゲーム記事ブコメ比較してみようと思った。(便利なブコメ比較ツールは無くなっていたので、正規表現ツールなどを使った)

…んだけど、そもそもブコメユーザー層がほとんどかぶってなかったわ。(スターまでは確認してない)

単にゲーム好き、表現の自由原理主義ウクライナ侵攻に関心が薄い、といった感じなのかなぁ。

ウクライナ政府批判している彼らは、ロシア産のカニ石油については、どう思ってるんだろう?

2023-02-06

anond:20230206091905

正規表現は別の意味やぞ

あと全体の85%がバカからといって、バカが嫌いって言う人がバカとは限らないしそこから割合の高さも導けないのでは

重箱の隅を突く話

anond:20230201202404

「約15%」って数字を見たら、正規表現による上位1σを連想しましょう

論理的思考ができる能力をもっているのが、だいたいそれぐらいの知能なんだよ

これ未満はほんとできない、ただ反射的に確率記憶を言ってるだけで思考ではない

2023-02-04

正規表現の^と[^]に全く別の意味持たせたのほんと馬鹿すぎる

2023-02-03

最近UserScriptを書くのが楽しい

最近UserScriptを書くことに目覚めて、不便なWebサイトちょっと改造して好みにするのにハマってる

例えば「辞書系のサイトなのにページを開いた瞬間から入力欄にカーソルがあってないのがいや」とか、そういう細かい点をこちらで勝手に改修するするような感じね

で、増田において「この人記事に対して毎回○○って反応つけてるけど面白いと思ってやってんのかな? 面白いと思ってやってんなら致命的に自分センスが合わないから消したいし、面白いと思ってないならただの害悪から消したいな」と思うことがあるわけですが、そういった異なる価値観に対して自動的に適切な距離を置くためのスクリプトを作ったのでメモがてら貼り付けておきます

// ==UserScript==
// @name        ますどくさいスイッチ
// @namespace   Violentmonkey Scripts
// @match       https://anond.hatelabo.jp/2*
// @grant       none
// @version     1.0
// @author      anond
// @description description
// ==/UserScript==

(async () => {
    // ここにNGワードをどんどん追加する
    // 基本は文字列文字列で引っ掛けにくいなら正規表現でもいい
    const keywords = [
        "あえいうえおあお",
    ];

    const checkedMarker = `data-a${Math.random().toString(36).slice(-8)}`;
    const query = `div[id^="excerpt-"]:not([${checkedMarker}]`;

    const delTree = () =>{
        const elems = [...document.querySelectorAll(query)];
        for(const elem of elems) {
            const textContent = elem.textContent;
            if(keywords.some((x) => (typeof x === "string") ? textContent.includes(x) : x.test(textContent))) {
                const parentContainer = elem.closest("li");
                parentContainer?.remove();
            } else {
                elem.setAttribute(checkedMarker, "true");
            }
        }
    };

    delTree();

    const mo = new MutationObserver(delTree);
    mo.observe(document.body, { childList: true, subtree: true });
})();
  1. ブラウザーにTampermonkeyやViolentmonkeyをインストールしUserScriptを動かせるようにする
  2. インストールした拡張機能ダッシュボードを開き新規スクリプトを追加する
  3. 上記全てをペタッと貼り付ける
  4. 配列keywordsに消したい文字列またはそれにマッチする正規表現を入れる
    1. いくらでも追加可能
    2. 多少増えたところで大して重くはならないと思う
  5. Ctrl+Sを推して保存する
  6. 記事の反応のうち消したい文字列に当てはまる発言(とさらにそれに反応した発言)がツリーから消える

keywordsを増やして君だけのどくさいスイッチを育ててね!

(追記)

ぐええ 文字勝手に置換されてる…不便だなあ

>」となっている箇所を「>」を半角で入力したものに置き換えてください

ログイン ユーザー登録
ようこそ ゲスト さん