Yura YuLife

ITエンジニアの覚え書き。

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

シェルスクリプトで日付が有効かをチェックし、開始・終了日間でループする

シェルスクリプトで、特定の日付間のログのみを抽出する等の処理をする際に、日付でループするコードの例です。 サンプルコード loop_date.sh #!/bin/bash # 有効な日付ではない場合は終了する関数 function check_date() { date -d "$1" || exit 1 return 0…

CSSで等幅フォントの指定

CSS

ウェブサイトやブログ記事でソースコードなどを掲載する場合の、等幅フォントの設定例です。 はてなブログの<pre class="code"></pre>に適用されるCSSに、日本語にも強いソースコード向けの等幅フォントRicty Diminishedを追加しています。 pre.code { font-family: 'Ricty Diminishe…

シェルスクリプトで正規表現マッチ

シェルスクリプトで引数による条件分岐をする際にif文の列挙やcase文を利用する場合は多々あると思いますが、 単純に引数のチェックのみを行いたいときはbashの正規表現マッチで調べるのが簡単です。 bashでの正規表現マッチ 例えば、第一引数が正規表現^h.+…

Rundeckでユーザの追加とプロジェクトへのアクセス権限の設定

Rundeckのデフォルトユーザはadminのみです。管理者が1人の場合はadminのみで十分ですが、複数人で管理する場合は適切な権限を付与するべきです。 そこで、特定のプロジェクトのみ閲覧・編集できるユーザを作成する場合は、設定ファイルを追加・編集すること…

Redmineのトップメニューにリンクを追加する

検証環境 Redmine 2.6 Ruby 1.9.3 Redmineのトップメニューにリンクを追加 Redmineの上部には、ホーム、マイページ、プロジェクト等のメニューが並んでいますが、ここに任意のメニューを追加する方法です。 プラグインを用いる方法が一般的だと思われますが…

ペパボWiMAXでWX02(とクレードル)を買った

タイトルの通り、WiMAXのWX02とクレードルのセットを購入しました。買ったのはホワイトの方です。 WiMAXっていうと各社色々キャンペーンをやっていて、どこで買うか色々悩みました。 キャッシュバックは高額だけど手続きが面倒だし、本家は割引率が悪いしで…

Djangoでユーザがグループに所属しているかを判定する

Djangoで、特定のグループに所属しているユーザのみにリンクやページを表示する場合に、以下のような方法があります。 テンプレートタグを用いる方法 テンプレートタグを用いると、ユーザの所属するグループによってページ内の情報やリンクを出しわけること…

バンドのウェブサイトを作りました

タイトルの通り、バンドのウェブサイトを作りました。 cosmic time scale そんなに更新頻度も高くないので、BootstrapベースのHTMLページ1枚だけですが、 テンプレートが優秀なので、それなりには見栄えがするかなーと。 趣味でやっているバンドのウェブサイ…

crontabでscpを使うとPermission deniedされてしまう

scpをするようなシェルスクリプトを作った時に、コマンドラインから実行するとちゃんとscpでファイルコピーできるのに、crontabに登録して実行するとPermission denied(publickey)と怒られてしまう、という事象で結構ハマりました。 なぜ動かなかったかとい…

Django 1.8にAxesを追加する

連続ログイン失敗時にアカウントをロックする機能を追加できるプラグインdjango-axesのインストール手順です。 環境 Django 1.8 django-axes のインストール $ pip install django-axes settings.pyの編集 vi settings.py INSTALLED_APPS = ( # 以下の1行を…

UbuntuのApacheにmod_dosdetectorをインストール

Ubuntu上で動かしているApacheに、DoS攻撃対策用のモジュールmod_dosdetectorをインストールする手順です。 環境 Ubuntu 14.04 64bit Apache 2.4.7 下準備 $ sudo apt-get install apache2-dev mod_dosdetectorのインストール $ git clone https://github.co…

djangoのペジネータで、現在のページの前後数ページのみをリンクとして表示する

Djangoのペジネータを使ってリンクを表示するときに、Google検索みたいに前後数ページのリンクを表示する方法です。 Googleの場合は前5ページ、後4ページを表示していますね。 環境 Django 1.8 ペジネータで前後数ページを表示 views.py from django.core.pa…

ライブをやりました

渋谷のTAKE OFF 7というライブハウスのイベントに参加させていただきました。 キーボードが僕です。 演奏するのにいっぱいいっぱいでかなーり下を向いちゃっていたので、次のライブではもっと前を向けるよう頑張らないとなー。 www.youtube.com

Ubuntuにgit 2.5をインストール

環境 Ubuntu 14.04 64bit Ubuntuに最新のgitをインストール apt-getでインストールできるgitのバージョンが1.9.1なのですが、最新バージョンを利用したかったのでgitのPPAを追加してインストールします。 $ sudo add-apt-repository ppa:git-core/ppa $ sudo…

Ubuntuでサービスの自動起動の設定

環境 Ubuntu 14.04 64bit サービスの自動起動の設定を変更する Ubuntuでサービスの自動起動の設定を変更するならsysv-rc-confを使うと便利です。 sysv-rc-confのインストール $ sudo apt-get install sysv-rc-conf 設定の変更 $ sudo sysv-rc-conf 画面上で…

Windows 10のストアでアプリのダウンロードが進まない場合はWindows Updateを

まとめ Windows 10にアップグレード後、ストアでアプリのアップデートを行おうとしても、ダウンロードが進まなかった Windows Updateで更新プログラム KB3081444を適用したら、無事ダウンロードとインストールが行われるようになった Windows Updateの方法 W…

MeCabとUNIDICをUbuntu 14.04にインストール

環境 Ubuntu 14.04 MeCab 0.996 UNIDIC 2.1.2 MeCabとUNIDICのインストール手順 下準備 必要なライブラリをインストールしておく。 $ sudo apt-get install libiconv-hook-dev MeCabのダウンロード 以下の公式サイトから、mecab-0.996.tar.gzをダウンロード…

MongoDBのダンプファイルを作成して圧縮するスクリプト

タイトルの通り、MongoDBのダンプファイルをzipで1ファイルにまとめるスクリプトで、定期的なバックアップの作成に利用しています。 $ vi dump_mongodb.sh #!/bin/bash MONTH=$(/bin/date '+%Y%m') DATE=$(/bin/date '+%Y%m%d-%H%M') LOGDIR="/バックアップ…

MongoDBで WARNING: You are running on a NUMA machine. というワーニングが出る場合

環境 Ubuntu Server 14.04 MongoDB 2.4.9 MongoDBの起動時にワーニングが出る apt-getでインストールしたMongoDBを起動すると、起動時に以下のようなワーニングが表示された。 MongoDB shell version: 2.4.9 connecting to: test Server has startup warning…

Djangoの初回マイグレーション時に relation "auth_user" does not exist というエラーが発生する場合

環境 Ubuntu 14.04 PostgreSQL 9.3 Django 1.8 初回マイグレーション時のエラー Djangoのプロジェクトをコピーしてきて、$ python manage.py migrate しようとすると、以下のようなエラーが発生した。 Synchronizing apps without migrations: Creating tabl…

MediaWikiのデータ移行と、エラー対処方法

Wikipediaでも利用されているWikiエンジンのMediaWiki。XML形式で出力することで、データのエクスポートやインポートが簡単にできるのも特徴です。 動作環境 Ubuntu Server 14.04 Apache 2.4.7 PHP 5.5.9 MediaWiki 1.25.1 MediaWikiのデータ移行方法 データ…

xargsで超簡単に並列処理ができるという衝撃

あるフォルダ内の画像をImageMagickで切り抜いて別のフォルダに保存するシェルスクリプトを動かしていたのですが、何万枚という画像を処理すると結構計算時間がかかります。 シェルスクリプトで簡単に並列処理できないかなーと思ったら、xargsで超簡単に並列…

Pythonでマルチプロセス処理

例えば、ファイルを1行ずつ読んでその1行1行に対して何か重い処理(データベースへ登録、自然言語処理など)をする場合、マルチプロセスで並列処理を行うと早くなることがあります。 以下のようなサンプルプログラムを動かしてみました。 マルチプロセスの処理…

Ubuntu 14.04にPhantomJS 2.0をインストール

Ubuntu 14.04にPhantomJSをインストールする時の手順です。 動作環境 Ubuntu 14.04 PhantomJS 2.0 基本的には公式サイト(http://phantomjs.org/)の手順にのっとるだけ。 リポジトリのクローン $ git clone git://github.com/ariya/phantomjs.git ソースコー…

Windows 10のVirtualBox上のUbuntu 14.04でQtCreatorを動かすとVirtualBoxが落ちる

タイトルの通り。 Windows 7でVirtualBoxを動かしていたときは問題なかったのですが、Windows 10にアップグレードしてから、VirtualBox上のUbuntu 14.04でQtCreatorを起動すると、なぜかVirtualBoxが落ちてしまいます。 エラーメッセージは、「メモリが"writ…

AtomでDjangoのテンプレート編集時にEmmetを有効化

AtomのEmmetは、デフォルトでHTML, CSS, Sass/SCSS, LESSの編集時のみ、タブキーで補完ができる設定になっています。 そのため、django-templatesのように、HTML以外のシンタックスでEmmetを利用する場合には別途設定が必要です。 インストール済みパッケー…

Windows 10へのアップグレードに手こずった

簡単にまとめると 自作PC(Windows 7 SP1)をWindows 10にアップグレードしようとすると、インストール途中の31%のところで止まった 一旦電源を落としたらWindows 7に戻った ウィルス対策ソフト(Kaspersky)を最新版にしてみた Windows 10にアップグレードでき…

AtomのMarkdown Previewで日本語が文字化けする

Ubuntuで利用していたAtomでMarkdown Previewを利用すると日本語が文字化けして表示されなかったので、スタイルシートを修正しました。 要はフォントの設定がマズいだけみたいです。 スタイルシートの修正 AtomのメニューのEdit > Open Your Stylesheetを選…

Ubuntu 14.04 にGitbucketを入れてみた

Ubuntu ServerでGitbucketが動く環境を作ってみました。 Ubuntu Server 14.04 Gitbucket 3.4 Apache 2.4 必要なライブラリのインストール $ sudo apt-get update $ sudo apt-get install openjdk-7-jre Gitbucketのダウンロード 今回は、/gitbucket/ にwarフ…

HP PCIe IOアクセラレータ G2をWindows 7で利用する

HP 1205GB MLC G2 PCIe IOアクセラレータというPCI Express接続のSSDを貰ったので、ワークステーションに入れて、Windows 7から利用してみました。 基本的にはサーバ向けのパーツですが、普通のWindowsでも問題なく利用できています。 Ubuntu 12.04からも使…