日に日に分からんことが増えていく…

プログラマー初心者としての日々を学んでいることを記録していく。

djangoの管理画面より、カレンダーの入力を引っ張ってくる。

stackoverflow.com

MySQL5.6から5.7にしたときに発生するエラー

SQL

djangoでMySQLを使ってやっていると、5.6から5.7に移行する必要があった。 group byの使用方法で問題があるらしい。 this is incompatible with sql_mode=only_full_group_by" 以下でMysqlのバージョンを調査して、テーブルを確認。 mysql > select version(…

ApacheのアクセスログからURLを作成する方法。

xargsの使い方を学ぶ cut -d " " -f 7 access_log |xargs -I{} echo "http://[ドメイン名]{}" | grep -v "http://[ドメイン名]{}" | head -10000 > accesslog.txt qiita.com

AtomのCaskで管理する方法とパッケージ一覧を見る方法

AtomをCaskで管理する方法。 ## Homebrewをinstall $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ## HomebrewCaskをセットアップ $ brew tap caskroom/cask ## Atomをインストール $ brew cask i…

SQLを複数起動する

SQL

my.cnfを何個か持てばその分SQLを違うソケットにたてられる。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.3.3 Unix 上での複数の MySQL インスタンスの実行 tweeeety.hateblo.jp

SQLのInsert INTOの方法

SQL

How to write flexible INSERT and UPDATE statements in MySQL · Baron Schwartz's Blog

tarのコマンドについて

tarの -vはverboseの略で、展開したファイル一覧を表示したりする。 qiita.com qiita.com

yumとrpmと違い

MeCabがインストールするときにrpmを使った。 よくわかんない。 $ tar jxvf juman-7.01.tar.bz2 $ cd juman-7.01/ $ ./configure --prefix=/usr/local $ make # make install nzigen.com hayashikun.hatenablog.com blog.inouetakuya.info qiita.com qiita.c…

Solr4のcoreの削除

Solr4のcoreの削除を行う。 curl 'http://localhost:8983/solr/admin/cores?action=UNLOAD&deleteIndex=true&core=[core名]' CoreAdmin - Solr Wiki

SolrのJoinについて確認せな...

Solrの使い方で、SQLみたいにcoreをcoreにjonできるっぽい。 あとで見てみる。 Other Parsers - Apache Solr Reference Guide - Apache Software Foundation

load data infileをパイプから流し込む

課題 load dataは、STDINを入力にできるから、一時ファイル書き出しを省略して、subprocessで起動したload dataプロセスのSTDINにレコードを流し込んでinsert 上の、load dataのパターンそれぞれで、1万レコード単位で、PKでソートしつつインサートPK 解答 c…

gitリポジトリはgitoliteをごちょごちょすることでできる

Git

gitサーバに新しくプロジェクトを追加するのはこうするってのを知った。 ## gitolite-adminをpullする。 $ git clone ssh://git@[hostname]/gitolite-admin ## conf/gitolite.confを編集する $ vim conf/gitolite.conf repo gitolite-admin RW+ = username r…

git pushやgit pullをtrackingする(git branch --set-upstream-to=...)

Git

git pushやgit pullをtrackingする方法。 $ git pull There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull <remote> <branch> If you wish to set tracking information </branch></remote>…

SolrにPostするcurlの内容メモ

手動だとこんな感じ $ curl http://localhost:8983/solr/[core名]/update -H "Content-Type: text/xml" --data-binary @./xxxxx.xml <response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">10264</int></lst> </response> $ curl http://localhost:8983/solr/[…

MySQL5.7が立ち上がらないエラーが出た。

SQL

mysqlが立ち上がらないエラーが出た。 #service mysql start Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details. #systemctl status mysql.servic…

Python3の四捨五入

Pythonの四捨五入は思った挙動をしないことがある。多分、丸め込みが原因。 In [1]: round(2.5, 0) Out[1]: 2.0 In [2]: round(2.0, 0) Out[2]: 2.0 In [3]: round(3.5, 0) Out[3]: 4.0 四捨五入はDecimalを使用したほうがいい。 from decimal import Decima…

cookieについて

HttpOnlyがtrueの場合、そのcookieはクライアントサイドでjavascriptによる取得ができない。 行動履歴ログをタグ埋め込みで取得する際は要注意。 qiita.com

AWS(Red Hat)にpython3.6をインストールしてpipやvirtualenvを作成する方法。

python3.6をインストール。 ##いるものをインストール。 $ sudo yum install yum-utils make wget $ sudo yum install zlib-devel -y $ sudo yum install gcc libffi-devel python-devel openssl-devel $ cd ~ ## wgetよりpython3.6をゲット $ wget https://…

CentOS7とかにPython3.6.1をinstallする方法

この方法だと /usr/local/bin配下にインストールしてくれる。 tecadmin.net https://stackoverflow.com/questions/38913502/how-do-i-install-a-python-package-to-usr-local-bin unix.stackexchange.com

hostnameというよりプロンプトを変える方法(AWS)

bashのプロンプトを変更するには qiita.com

AWSにアカウント追加するときに苦労したこと

AWSに自分のアカウントを追加するときにやったこと。 www.task-notes.com qiita.com

SQLでテーブルを大量削除する方法

SQLで_tmp_を含むテーブルを大量に削除する方法を教えてもらったので、メモする。 echo 'show tables;' | mysql -uroot [table名] | grep '_tmp_' > list for x in `cat list`;do echo "drop table $x;" ;done > drop.sql cat drop.sql cat drop.sql | mysql…

where句で"OR"を使いたい場合(index)

SQL

MySQLで"OR"を用いる時のインデックスがわからない。 結局、UNIONでがっちゃんこするしかなさそう。 mysql> SELECT COUNT(*) FROM table WHERE columnA = value1 OR columnB = value2; +----------+ | COUNT(*) | +----------+ | 1616 | +----------+ 1 row …

git tagのいろいろについて

Git

git tagを使う。 git flow release start rev20170620_1 git flow release finish rev20170620_1 git push --tags git tag | grep rev20170620_1 # git tagで見れる。 qiita.com buchi.hatenablog.com

AWSのサーバにSFTP通信を行う。

AWSのインスタンスのセキュリティグループからどのIPアドレスを弾いているか確認している。 AWSにSFTPで接続するサーバを管理するために見たが、SFTPコマンドって受送信できるんだっけということで確認した。 ちなみに、公開鍵の登録も必要。 webkaru.net セ…

インフラエンジニアがよく使うコマンド

インフラエンジニアがよく使うコマンドをまとめたページ。 貼っておいて後読もう。 qiita.com

grepとかawkとかsortとかuniqueとか(niceも)

アクセスログのファイルに「/content」含まれないばあいにのIPアドレスだけ出力して、 ソートした後に集約して件数出して、その件数でソート(降順)して上位10件を出す。 にたいして、処理が重いので優先順位を下げる。 知らないコマンドとgrepの知らないオ…

classにタグを埋め込んでクリック数を分析するのはGTMってのでやるらしい。

HTMLのclass属性に何かしら値をいれて、クリック数を計測する方法がある。 www.trass.co.jp

行動履歴の取得方法について

行動履歴のログ取得、つまり、アクセスの解析には以下のやり方があるらしい。 ‘'アクセス解析ツールの測定方式は時代とともに変遷してきた。まず、一番古くからあるのが、Webサーバーのログを解析する「サーバーログ取得型」だ。それから、HTMLファイルにJav…

scikit-learnとかいうライブラリ(機械学習)

pythonのSVMにはこれを使うらしい。 qiita.com

データベースのテーブル数算出とSolrグルーピングの仕様について

データベースのテーブル数算出する。 mysql> select count(*) from `information_schema`.`tables` where `table_schema` = 'database名'; +----------+ | count(*) | +----------+ | 34 | +----------+ 1 row in set (0.00 sec) teratail.com また、Solrに…

7zのファイルについて解凍

圧縮ファイルで「… .7z」というものがあった。 macのデフォルトのコマンドでは対応していないので、p7zipをinstallする必要がある。 # ディレクトリの圧縮 $ 7z u -r [ディレクトリ名].7z [ディレクトリ名] # 解凍 $ 7z x [ファイル名].7z yuyunko.hatenablo…

SFTPサーバに接続

sftpで実行するためには以下のようにする。 $ sftp -P port user@domain ## historyの時間確認 $ export HISTTIMEFORMAT='%F %T ' $ history | less ## lsコマンドで時間確認 $ ls -alt

git flowでdevelopが更新されていた場合の処理

Git

一旦featureをpushしてdevelopにマージさせる。 $ git checkout feature/[name] $ git push $ git checkout develop $ git diff $ git diff origin/develop $ git pull $ git merge origin/feature/[name] $ git checkout feature/[name] ## git pullする前…

踏み台サーバなどを用いて、多段階接続をするとき(ssh -W)

Proxycommandをssh configに登録して、 ssh -Wから対応することができる。 dev.classmethod.jp

svnのあれこれをvimの折りたたみ解除

svnをgitでいうpushする時、svnはcommitで完了する。 $ svn add [ファイル名] $ svn commit -m "[コミット文言]" svnでgit pull的な挙動は、 $ svn stat # fileみてMや!などの表記がある。 # ファイルを変更前に戻す。 $ svn revert [ファイル名] # git pull…

Python3とsystemd-tmpfiles.dの便利なサイト

Python3ではsendとthrowについてわからなかったので参考にしたサイト。 iteratorについてはこんな使い方があるのかと感動した。 あと、systemd-tmpfiles.dにて /tmp/ or /var/の定期的削除に関して、 systemd-tmpfiles-clean.serviceで削除をしている。その…

ファイルが置かれた瞬間にimport開始する

課題 (1) ファイルが置かれた瞬間にimport開始する(今回は空処理)仕組みの作成 /var/data/xxx.logみたいな場所に元ファイルが複数存在する。 db_importerバッチが、複数同時動作しても大丈夫なように(同じ元ファイルを重複してimportしないように)する。…

サブバージョンのgit clone的なやつ

以下でなんのブランチ舞があるか確認できる。大概trunk、branches、tagだけ。 $ svn ls svn+ssh://svnserve@[ドメイン名など]/ $ svn checkout svn+ssh://svnserve@[ドメイン名など]/branches/ . 以下で変更点が確認できる。 $ svn log [file名] $ svn diff …

Gitの変更履歴確認(ファイル指定)

Git

以下のコマンドでGitの変更履歴(ファイル指定ができる) git log -p [file名] 行指定する場合は以下。。 git log -L start,finish:[file名] qiita.com

Djangoのソースを見るにはGithubを確認

githubのコードを確認すればいい。 github.com

WebアクセスSQL挿入について考える(課題)。

(1) webページへのアクセスを、mysqlに保存するとしたら、どんなcreate tableにするか。 principal的なのものはcookie、対象はurl、あとはアクセス時間が、このドメインで必要な情報 アクセステーブルには、この3つの情報とテーブルへのinsert日時を保存。あ…

サイトマップについて

WebサイトをGoogleにうまく検索結果として出力させるために、 サイトマップを作る必要がある。 サイトマップにはHTMLサイトマップとxmlサイトマップがあって、 前者は人用で後者はロボット(crawl)用なのかな。。知らんけど。 良さげな記事があったので、メ…

マルチインデックスという考え方

SQL

MySQLで大量データに対してクエリを投げる時、WHERE配下のカラム名にマルチインデックスを適応すればサクサクいく。 これ関してはEXPLAIN句で確認すればいい。 mysql> ALTER TABLE landing_pages ADD INDEX index_name(user_id, created) qiita.com phpjavas…

Gitで戻したい時

Git

Gitのmasterにマージしたいけど戻したい時、 $ git revert --hard HEAD $ git diff HEAD..HEAD^ とすると、一個まえに戻る。ちなみにHEAD^の帽子の数だけ前に戻っていく。

処理中のプロセスをバックグラウンドで回す

「Ctr + z」で一時停止をし、jobsで確認し、bg %~で対応する。 $ zcat db.sql.gz | mysql -u root db ^Z [1]+ 停止 zcat db.sql.gz | mysql -u root db $ jobs [1]+ 停止 zcat db.sql.gz | mysql -u root db $ bg %1 [1]+ zcat db.sql.gz | mysql -u root db…

Solrの最終更新日時の確認

これだけ。。admincommandは覚える必要がある。 $ curl 'http://localhost:8983/solr/admin/cores?action=STATUS&core=[core名]&indent=on'

PackerとAnsibleはめちゃ便利

dev.classmethod.jp

BOLB/TEXTでインデックスを貼る。

SQL

最初の100文字のみインデックスとして使うみたいな指定が必要。 ERROR 1170 (42000): BLOB/TEXT column 'text_field' used in key specification without a key length create index new_index on table_name(text_field(100)); www.deftrash.com

Solrのelevate.xmlを確認する方法

elevate.xmlへの変更をtsvに出力。 import xml.etree.ElementTree as ETにて処理。 最初urllib2でとってきていたが、socketのエラーとかでデータが飛ぶので、requestsに変更。正規表現とかも意外に苦労した。 # -*- coding: utf-8 -*- # vim:tabstop=4:shift…