静かなる名辞

pythonとプログラミングのこと


雑記

ブログで直帰率が高いことは問題ではない。満足して帰っていれば

はじめに ブログをある程度真面目に運営している人は、googleアナリティクスなんかを入れて色々な指標を日々確認していると思います。指標が悪いと、なんか問題があるのではないかと思いがちです。 当ブログは直帰率が高いです。8割以上といったところです。…

記事の寿命から考える、1記事で1日に得るべきPVとブログの収益性

はじめに 当ブログは見ての通りたくさん広告を貼っていますが、こういうことをしていると「どれくらいPVを稼げば、記事を書く労力に対して儲けが割に合うのかなぁ」ということが気になってきます。そこで常日頃から考えていたことを軽く書いておきます。 テ…

ブログのSearch Consoleでの平均CTRや平均掲載順位が下がるのはオッケー。クリック数と表示回数が大切

はじめに 当サイトは見て分かる通りの零細プログラミングブログです。大したアクセスを稼いでいないので、ぶっちゃけPVのこととか気にしても仕方ありません。考える暇があったら記事書いた方が良いというやつですね。 が、実を言うと中の人は割と頻繁にアク…

ロジスティック回帰が線形分離不可能な分類問題を解けないことの説明

はじめに ロジスティック回帰が線形分離不可能な分類問題を解けないことは有名な話です。だけど、「いや解けるだろ」「なんで解けないの???」と言われてしまうことがあるので*1、それができないことを説明しておこうと思います。 なお、この記事はこちら…

コサイン距離は距離じゃないんだから、勘違いしないでよねっ!

自然言語処理などでお馴染みのコサイン類似度。これを1から引いたものを「コサイン距離」と称している文献も散見されますが、この「コサイン距離」は距離としての性質を満たしません。それがどういうことなのかをこの記事で説明していきます。

AIでプログラマーが失業するとか、気にしなくていいと思うよ

はじめに 昨今のAIブームで、AIへの過剰な期待からか「プログラマー」が失業するのでは? ということが囁かれるようになりつつあります。人工知能によってプログラマーは失業する?AIに仕事を奪われる前にAIエンジニアになる? | アトオシ プログラマーとい…

今あえて書く、目的別Pythonを使うメリット・デメリット

はじめに ここ数年間、日本国内のPython事情は急速に変わったと思います。私が使い始めた4年前と比べても、ずいぶん垢抜けた感じになったというのが正直な感想です。 Python2からPython3への移行が(ようやく)進み、扱いやすくなった ライブラリも良いもの…

はてなブログで自動生成されるゴミページをnoindexにする

はてなブログを利用していると、様々なページが自動生成されます。よくあるのは?pageのようなURLパラメータの付いた、よくわからないページでしょうか。 (アーカイブの絡みで出ているのがわかることもありますし、完全によくわからないけど存在するページと…

teratailでのプログラミング初心者の質問の仕方

はじめに teratailはプログラミングで生じた疑問を投稿すると、他のユーザーに回答してもらえる、便利でプログラミング初心者の方にとってはとても心強い味方になり得るサービスです。 一方で、「使い方がわからない」「どんな質問をすればいいの?」「こん…

技術ブログを書く意味について考えてみる。250記事目なので。

はじめに 当ブログが250記事に達したので、振り返りを書こうと思いました。 といっても別に書くこともそれほどないので、ついでにこれから技術ブログを書こうと思っている人向けに、「なんのために書くのか」「書く意味あるのか」みたいなふわふわした話につ…

emacsでpythonを書くための設定 2019年版

概要 emacsライトユーザーの私が、新規環境にemacs25を導入してpythonを書くにあたってやった設定を書いておきます。目的はpythonを書くことだけです。 前提として、以下の記事のように環境を作っています(読まなくてもなんとかなります)。Ubuntu 18.04 LT…

UbuntuのFirefoxでWebページが英語で表示されるのを直す

UbuntuにはデフォルトでFirefoxが入っているので、特別な理由がなければこれを使う人が多いと思います。しかし、ネットを見ているとたまに英語で表示されてしまうページがあることに気づいたりします。 これはFirefoxが「こいつは英語ユーザだ」という情報を…

Ubuntu 18.04 LTSにvenvでミニマムなPython3.7仮想環境を構築

概要 まっさらなパソコンを開発環境として立ち上げることになり、表題の通りのことをやる必要があったのでまとめておきます。 venvを使うつもりなので、作業量としては少ないはずです。 Python3.7の導入 Ubuntu 18.04はデフォルトでpython2が導入されていま…

もう参照の値渡しとは(無条件では)言わせない

注意:この記事では「参照の値渡し」がどういうものか、という点については説明しません。あくまで「参照の値渡し」を理解している方が対象読者です。 概要 「参照の値渡し」という言葉がありますが、この言葉に関してはずっとモヤモヤ感を抱いていました。 …

はてなブログの独自ドメイン化でカバレッジが切り替わらないときの対処

はじめに 去年の秋頃、このブログを独自ドメイン化しましたが、今年に入ってもSearch Console上で古いサイトのインデックス・カバレッジが大量(数百件とか)に残ったままでした。 思いついた方法を試したところ、さほど重要でないページ数件*1を残してカバ…

TechAcademyのその後

はじめに 以前このような記事を書きました。TechAcademyがteratailの質問・回答を盗用していた件 - 静かなる名辞 TechAcademy盗用事件 公式発表と深まる疑念 - 静かなる名辞 TechAcademyに問い合わせたところまでで終わっていましたが、その後すこし私生活が…

TechAcademy盗用事件 公式発表と深まる疑念

TechAcademyマガジンで、teratailの質問・回答の盗用疑惑があり、前回の記事で取り上げました。私が書いたその記事はTwitterやはてブ経由で拡散して多くの方に見ていただき、TechAcademyマガジンの運営上の問題が多くのインターネットユーザに共有されました…

TechAcademyがteratailの質問・回答を盗用していた件

はじめに 私はteratailというQAサイトで回答をしていて、pythonカテゴリ総合一位だったりします。あちこちのサイトを見ていたら、TechAcademyというサイトがteratailの質問と回答を盗用しているという話を見つけました。図々しいと思いながらも情報をまとめ…

multiprocessing.Poolがやたらメモリを消費するときの対策

概要 multiprocessing.Poolは原理的にプロセスをforkさせるので、メインプロセスに大きなデータが残っているとそれが丸々コピーされてメモリ領域を食います。 グローバル関数限定ですが、initializerを使って必要ないデータを消すことができます。また、Pool…

【python】numbaを使ってライフゲームを書いてみた

概要 ライフゲームを書きました。 素のpythonだと何をやっても激遅だったので、numbaで高速化しました。 方針 まず実装の方針を決めます。主要な関数としては以下のものがあればできると思いました。 update_cell 1セルの状態を更新する update_field フィー…

プログラミングのブログにアドセンスを貼る話

はじめに 一ヶ月ほど前から当ブログはGoogle Adsenseを導入しています*1。 このブログはいわゆる「技術ブログ」と呼ばれるようなプログラミングのブログですが、プログラミング関連のジャンルでアドセンスを貼った場合の収益性についてはネット上にもあまり…

C言語でshellの多段パイプを実装

はじめに 学校の課題でCでshellもどきを書きました。 今後、同じ目にあう人のために、「shellの多段パイプをどうやって実装したら良いのか」を記事としてまとめておきます。 目次 はじめに パイプの概要 使用する関数 int pipe(int pipefd[2]) int close(int…

pythonのスコープは静的に決まる。だから・・・

概要 少し疑問に思うことがあったので、書き留めておきます。 目次 概要 前提 確認したかったことと結果 まとめ 前提 まず以下のようなコードについて考えます。 >>> def f(): ... print(a) ... >>> a = "hoge" >>> f() hoge ここでf()の中のprint()でaを参…

アドレス変更のおしらせ

本日、本ブログを独自ドメイン化しました。それに伴い、アドレスが変更になりました。 旧URL https://hayataka2049.hatenablog.jp/ 新URL https://www.haya-programming.com/ 旧URLからも301リダイレクトされますが、ブックマーク登録等はお早めの更新をおね…

pythonで変数のswap(入れ替え)について考えて検討してみた

はじめに 変数の入れ替えは、C言語の教科書などにも書いてある古典的な話題です。 一番古典的な方法では、こうやります。 >>> a = 10 >>> b = 20 >>> a 10 >>> b 20 >>> tmp = a >>> a = b >>> b = tmp >>> a 20 >>> b 10 ただ、このコードは……あまり書きた…

オブジェクト指向の教育にPythonが向いていると思うこれだけの理由

はじめに オブジェクト指向は今となっては常識である。 常識であるがゆえに、いかに初心者にわかりやすく教えるかが課題になる。 世の中でオブジェクト指向の「教材」として使われている言語は、 Java Ruby の二択くらいだと思う。が、あえて僕はPythonを推…

共有渡しと参照の値渡しと

はじめに 関数やメソッドに引数を渡す方法は、一般的には 値渡し 参照渡し の2通りがあると認知されている。 ところで、『参照の値渡し』という言葉も(ほぼ日本語Web圏限定で)存在する。これは「いわゆる『参照渡し』は参照自体を書き換えるんじゃなくて、…

VMware Playerでキャッシュを削除して仮想ディスクの容量を空ける(linux)

VMware Playerはホストとゲスト間で、ドラッグ・アンド・ドロップやコピ・アンド・ペーストによってファイルを移動できる。 便利な機能なのでつい頻繁に使ってしまうが、これは腹立たしいことにゲストの仮想ディスク上にキャッシュを生成する。 そしてこのキ…

有意水準5%の論文が100本あったら

この記事は思いついたままに書いたポエム。 有意水準5%とは、その判断(主張)の妥当性が95%である、ということを意味する。 よって、有意水準5%で検定したら、100回に5回は第1種の過誤を犯す。 有意水準5%の論文が100本あったら、(いちおうすべての論文が…

【python】# coding: utf-8はもうやめる

pythonのプログラムは先頭行(あるいはシェバンの次の二行目)でファイルの文字コードを指定することができます。エンコーディング宣言といいます。 こんなのとか # coding: UTF-8 こういうのもありますね。これはemacsに自動認識させるための書式らしい*1。…