プログラミング原人の進化ログ

プログラミング原人の進化論

オレ プログラミング ベンキョウ スル。マナンダ コト カク。

Atomのファイル検索を便利にしてくれるパッケージ

やること Atomにadvanced-open-fileをインストールを導入します。 環境 macOS 10.14.6 Atom 1.40.1 動機 fuzzy検索したい。キーボードから手を離したくない。 方法 インストール ターミナルで以下のコマンドを叩きます。 $ apm install advanced-open-file …

Atomで1単語削除のコマンドを作る

Atom上でカーソル位置にある単語をまるまる削除するコマンドが欲しくて、探してみたがなかったので自作します。 単語の一部を削除するコマンドはあったのですが、個人的には全体を削除する方が好きなので。 環境 macOS 10.14.6 Atom 1.40.1 方法 単語の前方…

pythonでOpenWeatherMapのweatherAPIを叩く

環境 Mac OS X 10.14.5 python 3.7.1 OpenWeatherMapに登録 ここにアクセスして"Weather APIs for developers"の下の"Try free APIs"ボタンを押下します。 すると次のようなページが表示されるので、 sign up から必要な情報を入力して"create account"ボタ…

【Python】リストの要素を独立に変化させたときの全ての組み合わせを求める

何をするのか わかりにくいタイトルですが、例えばリスト[x1, x2]を考えたときにx1, x2がそれぞれ0, 1, 2のいずれかの値を取るとします。この時、組み合わせの総数は3^2 = 9通りです。 こういった場合に、全ての組み合わせを列挙する方法を考えます。 方針 …

MySQLのユーザ・データベースの操作コマンドをまとめておく

何度やっても忘れるので、メモ。よく使うものをまとめておきます。 適宜、追加していきます。 環境 Mac OS X 10.14.5 MySQL 8.0.16 ユーザ 最初にサーバを起動してログインしておきます。 ユーザ名とホスト名の一覧を表示 mysql> select user, host from mys…

空のndarrayに列ベクトルや多次元配列を結合させる

最初に空の配列を作っておいて、後からそこに色々くっつけたい時があります。行ベクトルだと簡単に結合させられますが、このたび列ベクトルや多次元配列を結合させる方法を発見したのでメモ。 行(横)方向に連結する場合、hstackを使います。結合させたいも…

SpringBootでLombokを使えるようにする

SpringBootで開発しているときにlombokを使いたいと思って、SpringToolSuitにlombokをインストールしたものの、importできなかった時の解決メモです。 lombokを利用するとアノテーションをつけるだけでsetterやgetterを勝手に実装してくれるらしいです。他に…

Emacsでhtmlのリアルタイムプレビュー

Emacsとブラウザを使って、htmlファイルをリアルタイムでプレビューしながら編集する方法です。 プレビューを開始 次の手順でリアルタイムプレビューを行う。 サーバを起動:M-x httpd-start プレビューしたいバッファを開いてimpatient-modeをONにする:M-x…

MySQLのrootパスワードの設定・ユーザ登録

初期設定で、rootパスワードを設定するときにつまったので、メモを残しておきます。 結論から言うとMySQLのバージョンが原因でした。 MySQLをインストールしてから、rootのパスワード設定および新しくユーザを登録するところまでやります。 環境 Mac OSX 10.…

Javaのtime APIでよく使いそうなクラスとメソッド一覧

今までサボってきた時間情報の取り扱いを勉強したが、忘れそうなのでまとめておきます。自分用のチートシート的な位置付けです。 記事の内容 Dateクラスとかよりも新しい方法が登場しているらしいのでそちらをまとめておきます。 具体的には、java.timeパッ…

Emacsでelpyを使ったPython開発環境を設定した

elpyを入れたので、インストール方法と設定を書いておきます。ちょっとつまったのででそれの解決法のメモを兼ねてます。 環境 Mac OS X 10.14.5 Emacs 26.1 elpyとは? Emacs用のPython開発環境です。これ一つで必要なパッケージが一通り揃います。 elpyを使…

【Python】suptitleでグラフ全体と個別のグラフに別々にタイトルを与える

matplotlibで1つのfigureに複数のグラフを配置する時に、個別のグラフのタイトルだけでなく全体のタイトルをつけることができたら便利だなと思ったのでやり方をメモしておきます。 タイトルの付け方 全体のタイトルを設定するにはplt.suptitle('タイトル')…

【Java】スレッドの基本

Javaのスレッドについて基本的なことをまとめておきます。 スレッド Javaでは複数の処理を同時に並行して行うことができます。それぞれの処理の分岐のことをスレッドと言います。 スレッドの作り方 処理を分岐させてスレッドを作る方法は2つあります。 スレ…

Javaのインターフェース(確認用)

Javaのインターフェースを勉強したので、そのメモです。 書式を確認するためのものです。 インターフェース インターフェースは実体化することはできない。 インターフェースの宣言 次のように宣言する。 interface インターフェース名 { ... 型 フィールド…

Emacs上のシェルでコマンドを再利用する方法

ターミナルのC-pでと同じようにEmacs上で立ち上げたシェルでもコマンド履歴を遡れることを発見しました。Emacs使いの方々の間ではすでに常識かもしれませんが...。 シェルモード shell, eshell, multi-term で確認しました。 挙動は若干違いますが、基本的に…

【Java】クラスの基本メモ

Javaのクラスの基本的な内容を備忘録としてまとめておきます。 見やすさのために、具体例なしで各概念の簡単な説明と書き方を羅列します。 クラス クラスの定義 クラスを次のように定義する。 class クラス名 { // フィールドやメソッドを定義 } ファイル名…

【JavaScript】クラスの基本

JavaScriptのクラスについてまとめておきます。 具体例を交えず構文だけ書いていきます。忘れたときに見返す用です。 クラス 次のようにクラスを定義する。 class クラス名 { ... } インスタンス インスタンスの生成は次のように行う。 const インスタンス名…

CSSで余白を指定する方法メモ

CSSで余白を指定する方法をすぐに忘れてしまうので、メモしておきます。 ボックスモデル 要素を取り囲む領域にはmargin, border, paddingがある。余白の確保にはmargin, paddingを使う。 余白の指定方法 margin, paddingはそれぞれCSSでmargin, paddingプロ…

Common Lisp で乱数を生成する

乱数を生成するには、random関数を使います。 random 引数より小さい非負の整数の乱数を返してくれます。例:0から9の整数乱数を生成します。 CL-USER> (random 10) 6 CL-USER> (random 10) 8 CL-USER> (random 10) 3 参考 コンラッド・バルスキ(2013)「…

「プログラミング言語の基礎概念」のためのEmacsメジャーモードを書いた

「プログラミング言語の基礎概念」の演習システムのためのメジャーモードを作ってみました。 ソースコードと、実際に利用するまでの流れを書いておきます。 環境 GNU Emacs 26.1 動機 「プログラミング言語の基礎概念」(五十嵐淳著)という、とても良い本が…

数列の転倒数をマージソート で求める

転倒数を求める問題を解きました。バブルソートの交換回数を数えることによっても求めることができますが、より高速なマージソート を用いた解法を実装します。 問題 次の問題を解きます。 反転数 | アルゴリズムとデータ構造 | Aizu Online Judge 考え方 マ…

Emacsで右かっこの自動挿入

かっこが勝手に閉じるのがあまり好きではなかったのですが、ちゃんと使ってみると以外と悪くないかもしれないと思い、自動挿入を導入することにしました。 環境 Mac OS Mojave バージョン 10.14.4 GNU Emacs 26.1 手順 init.elなどに (electric-pair-mode 1)…

C++の標準ライブラリでソート

C++のソートを、標準ライブラリを使って行う方法のメモです。 主要なソートをだいたい勉強し終えたので、そろそろ車輪の再発明のフェーズを脱しようという意図です。 安定でないソート sortを使います。ヘッダファイルで定義されています。sortはクイックソ…

【OCaml】Graphicsモジュールが読み込めなかった時の解決策のメモ

先日OCamlをインストールして、チュートリアルをやっていたんですが、Graphicsが読み込めない...という事態に陥りました。解決策を記録しておきます。 環境 Mac OS Mojave バージョン 10.14.4 問題 open Graphics;;と書いたファイルをコンパイルしようとする…

【C++】コンストラクタのオーバーロード

プロコンの本を読んでいたら、1つのクラスの中にいきなり2つのコンストラクタの定義が出てきたので、なんぞこれと思って調べてみました。勉強した内容をまとめておきます。 コンストラクタのオーバーロード 一般的にオーバーロードとは同じものに対して複…

【C++】フレンド関数

フレンド関数の勉強メモです。基本的な使い方についてです。 フレンド関数 C++ではクラスの外部で定義した関数をクラスのprivateメンバにアクセスできるようにすることができます。 そのような関数をフレンド関数と呼びます。friend修飾子を使ってフレンド関…

APSchedulerの使い方(初心者向け)

APSchedulerの使い方のメモです。 APSchedulerはPythonのライブラリで、ジョブの自動実行のスケジュール管理を行なってくれるものです。この記事ではインストールから、基本的な使い方までを見てみます。 動機 日本語で使い方を体系的に説明した資料が少ない…

【Common Lisp】loopマクロの使い方まとめ

Common Lispでループ処理に使われるloopマクロの使い方です。網羅的にまとめた資料が少ないので、備忘録的にまとめておこうと思います。 loopマクロには多くの機能があります。なので、最初から全てを抑える必要はないと思います。 この記事の内容 loopマク…

Common Lisp のインクリメント・デクリメント

Common Lispでインクリメントやデクリメントを行う方法です。紹介するマクロはインクリメント・デクリメントだけでなく色々できます。 incf, decf incfは第2引数に指定した分だけ、第1引数の変数の値を大きくします。 (incf 変数 数字) decfは第2引数に指…

Disjoint SetsとUnion Find

データ構造の一つであるDisjoint Setsと、それを管理するUnion-Findアルゴリズムについて勉強した内容のまとめです。 この記事の内容 Disjoint Sets とは何か Disjoint Sets の実装のアイディア 例題を解く Disjoint Sets とは? 複数の集合を考えたとき、そ…