社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

2019-01-01から1年間の記事一覧

AtCoder Count Triplets

atcoder.jp競技プログラミングはあまり得意ではないですが、たまに挑戦しています。 上の課題については、最初に書いたのが、すべての数字を一つずつチェックする方法です。 以下のようにすぐに書けた(Java)のは良かったですが、for を3重で回しており、処理…

Docker mysql8.0 コンテナ作成した後

mysql に root でログイン $ docker-compose exec mysql8-db bash -c 'mysql -uroot'新しいユーザーの作成 grant コマンドで一気に作成しようとするが失敗。mysql8では許されていないらしい。 mysql> grant all privileges on *.* to 'blueskyarea'@'localho…

Docker mysql8.0 Could not open file '/var/log/mysql/mysql-error.log' for error logging: Permission denied

Ubuntu18.04 上で発生した問題(Macでは発生しない?) 権限の問題であるようには見えるので、無理やり権限を変更してみる。 下記の変更で動作するようになりました。変更前 docker-compose.yml version: "3" services: mysql8-db: image: mysql:8.0 volumes…

docker-compose 環境ファイル .env

docker-compose では、.env という環境ファイルを通して、デフォルトの環境変数を定義できる。 http://docs.docker.jp/compose/env-file.htmlたとえば、mysql の docker コンテナを docker-compose で構築しようとしている場合、以下のような .env ファイル…

正規表現での実例パート1

1. Java Integer の変数名を含む行にマッチさせる src 内にあるすべてのファイルを検索させている。 $ egrep -hr 'p(rivate|ublic|rotect) +Integer +[a-zA-Z_0-9]+' src private Integer speed; private Integer speed; public Integer generateNumber() { …

重複 typo を正規表現の後方参照でチェック

以下のように、不要な重複が含まれるテキスト (typo.txt) があるとする。 A typo is a mistake made in the typing process. A typo typo is a mistake made in the typing process. A typo is a a mistake made in the typing process. A typo is a mistake…

正規表現 HTML <HR> を例にいろいろマッチ

以下の3行が含まれるテキスト hr.txt があるとする。 # hr.txt <HR SIZE=16> <HR SIZE=16 > <HR SIZE=8> <HR> &ltHR SIZE=16> にマッチさせるには? HRとSIZEの間に1つ分の空白スペースを設けるために、+ を使う。 $ egrep -i '<HR +SIZE=16>' hr.txt <HR SIZE=16> &ltHR SIZE=16 > にもマッチさせるには? 16の後に0個以上の空</hr></hr></hr></hr></hr></hr>…

正規表現で単語でマッチ

以下のようなテキストがあった場合。 My name is blue. I like mystery.普通に "my" でマッチさせようとすると、"My" と "mystery" がマッチする。 egrep -i 'my' words.txtもし、”My" だけをマッチさせたい場合は、\ と \> のメタ文字が使える。 egrep -i '\<my\></my\>…

正規表現を使うなら、ターゲットテキストをよく理解する

2019年11月15日を表現する場合、以下のように色々なパターンが考えられる。file.txt 2019/11/15 2019-11-15 2019 11/15これらを含む行を正規表現で検索するとなった場合、どのような方法があるか。 $ egrep '2019[-/" "]11[-/" "]14' file.txt 2019/…

正規表現の解釈について

文字どおりに解釈する習慣を身につけるべきらしい 以下の正規表現を見てみると ^cat”行頭が cat の行にマッチする”と解釈できる。ただ、文字どおりに解釈すると”行頭がある場合、その次が c その次が a その次が t になっている行にマッチする” となる。では…

python クロージャ

忘れた頃にまたやってくるクロージャ。 def charge(price): def calc(num): return price * num return calc child = charge(1000) adult = charge(1500) price1 = child(2) price2 = adult(2) print(price1) print(price2) クロージャでは関数の中に関数を…

なぜ、sudo rm でワイルドカード指定できないのか

sudo rm でワイルドカード指定したのに動かない。 $ sudo rm /var/log/elasticsearch/elasticsearch.*.log rm: cannot remove `/var/log/elasticsearch/elasticsearch*log': No such file or directoryワイルドカード拡張は、rmではなくシェルによって行われ…

JUnit DataPoint によるテストパラメータ定義

例えば、文字列を引数に取るメソッドをテストするにあたり、色んな文字列でテストしたい場合。 テストする文字列ごとにテストケースを作成するのは大変。 DataPoint を使うことで、それらのパラメータを配列で管理することができ、文字列一つずつを一つのテ…

Python CUIで迷路生成(3)

スタートとゴールの場所を指定するところまで。 set_start_goal ランダムに座標を指定し、そこが通路ならスタート”S”、またはゴール”G” をそこに設置する。 import sys import random class Maze(): PATH = 0 WALL = 1 START = 2 GOAL = 3 def __init__(self…

JUnit Enclosed によるテストケースのグループ化

既に存在しているテストクラスに新しいテストケースを追加するとき、どの位置に入れようか迷うときがあります。 出来れば、後で見たときに分かりやすい位置に入れたいですが、そもそも整理されていなければそれも難しいです。そこで Enclosedを使うことで、…

Python CUIで迷路生成(2)

内壁を生成するところまで。 棒倒し法により生成するが、その手順は 1. 迷路全体を構成する2次元配列を、幅高さ5以上の奇数で生成する 2. 迷路の外周を壁とし、それ以外を通路とする 3. 外周の内側に基準となる壁(棒)を1セルおき(x, y ともに偶数の座標)に配…

Java 例外(Exception) テスト

例外(Exception)のテストの書き方でよく知られているもので、Ruleアノテーションを用いた ExpectedException を使う方法があります。 例外のメッセージまで評価してくれるのがいいですね。 public class RuleTest { @Rule public ExpectedException expected…

Python CUIで迷路生成(1)

外壁を生成するところまでのステップ。 __init__ 1. Maze(迷路) クラスを生成し、maze, width, height の変数を定義する ※第一引数で縦のサイズ(height)、第二引数で横のサイズ(width)を与えるset_outer_wall 2. row という配列にそのセルが壁なのか、通路な…

プログラマーとしてアルゴリズムを学ぶべきなのか

アルゴリズムとデータ構造 並び替え・検索はシステムのプログラムを書く上で基本的な動作に挙げられると思います。 それらには色んな種類があります。ここで挙げるまでもないですが 並び替え バブルソート ヒープソート マージソート クイックソートなど 検…

人の拘りをただ単に受け入れること

ITエンジニアはプライドが高い集団 先日も書きましたが、ITエンジニアには拘りを持っている人が多いように思います。 エンジニアなので、職人気質なところが大いにあると思います。 それはまた、プライドが高い人が多いという意味になるかもしれません。プラ…

ITエンジニア 仕事への拘り

仕事への拘り 皆さんは仕事に自分なりの拘りを持っているでしょうか。 自分の周りには、ITエンジニア(自分を含め)がたくさんいます。 彼ら(自分を含め)を少しだけ注意深く見てみると、彼らには何らかの(人によっては強い)拘りがあるように思います。仕…

勉強会は大切なインプットの場

ITエンジニアに限った話ではないですが、勉強会によく参加されている方っていますね。 私の周りはITエンジニアだらけなので、参加者募集してるよー、何ならスピーカーも募集してるよーなんて話が聞こえてきます。 connpass.comとは言え、忙しい仕事の合間、…

WordPress にログインできないのはディスク使用量が100%になっていたからだった

久しぶりにVPSサーバ上で構築しているWordPressにログインしようとすると、ログインできませんでした。 状況としては、 パスワードは合っているはず(しばらく考えた後にエラー無しでログイン画面に戻るだけ) ※もし意図的にパスワードを間違えると”違います…