静かなる名辞

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

2019/03/22:TechAcademyがteratailの質問・回答を盗用していた件
2019/03/26:TechAcademy盗用事件 公式発表と深まる疑念



雑記

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

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

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

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

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

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

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

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

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

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

TechAcademyのその後

はじめに 以前このような記事を書きました。www.haya-programming.com www.haya-programming.com 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を推…

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。…

【python】気持ち悪いリスト内包表記のサンプルたち

最終更新:2018-4-21 この記事は思いつく度に加筆していこうと思う。 目次 二回評価されるのを避けたかった numpy配列がなんだ!俺がやってやる! forのよさを殺していくスタイル 2018/3/30 追記 リスト内包表記でファイル出力 無限ループ リスト内包表記で…

【python】一定の確率で違う選択をする

※注意! この記事の内容も間違ってはいませんが、もっと良さそうな方法を後から見つけました。 こちらの記事も参照してください。【python】複数の選択肢から確率で選ぶ - 静かなる名辞 本文 タイトル通りのものが強化学習の実装で必要になった。 の確率で処…

はてなブログでうっかり付けちゃったカテゴリを外す方法

やったこと はてなブログで、記事の管理画面でカテゴリを整理してたら、うっかり間違えてカテゴリを貼ってしまった。チェックボックスを外し忘れたまま操作すると簡単にそういうことが起こる。 カテゴリを記事の管理画面から外す方法を探したが、どうやって…

なぜpython使いは単純なfor文より醜悪なリスト内包表記を好むのか

煽りっぽいタイトルだが、この記事は真剣である。リスト内包表記にはpython哲学の本質に関わる問題が潜んでいる。 python使いはリスト内包表記を好む。他の言語の使用者なら「for文で書きゃ良いのに」と思うような処理を、リスト内包表記で書くことを好む。 …

wifiアダプタのないlinux PCを無線LANに繋ぐ

先日新しくPCを組みましたが、家庭の事情で無線LANしか繋げない状況でした(無線LANルータとか全部1階にあるのに2階にPC置かざるを得ない、みたいな状況だと思いねぇ)。しかし、使うマザーには無線機能などありません。こういうとき、windowsはどうにでもな…

xubuntuをcliモードで起動する

わかるようなわからないような感じだったのでメモ。 まず、基本的なやり方としては下ので良い。 Ubuntu日本語フォーラム / CUIでの起動、ログインについて $ sudo systemctl set-default multi-user.target ただし、このコマンドを打ってrebootしてみたら起…

【python】pythonでボゴソートしてみる

みんな大好きボゴソート。愚直に実装するならそんなに面倒なことはない。 import random def bogo(lst): while True: random.shuffle(lst) xb = lst[0] flag = True for x in lst[1:]: if xb > x: flag = False break xb = x if flag: return None 色々イケ…

【python】numpyの型の違いによる計算速度差を見てみる

はじめに 前回の記事で「なんとなくnp.float32が速い気がする」とか書いたので、実際に測ってみる。 予め断っておくと、計算速度なんて環境によって違うし、どの型が速いかもCPUのアーキテクチャに依存する。numpyはバリバリにSIMD命令を使って最適化する(…