Yura YuLife

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

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からも使…

Ubuntu 12.04上でCaffeを動かすまでの手順

Ubuntu 12.04(LTS) 64bit GPU: NVIDIA Quadro K2200 GPUモードONで利用 基本的にはCaffeのページの手順にしたがってインストールを進めればOK。 http://caffe.berkeleyvision.org/install_apt.html 必要ライブラリのインストール $ sudo apt-get install lib…

Dell Precision Tower 5810 でUbuntu Desktop 12.04を動かす

まともに動く所までの環境構築手順。 Dell Precision Tower 5810 Intel® Xeon(R) CPU E5-1650 v3 @ 3.50GHz × 12 Mem 64GB HDD 2TB GPU NVIDIA Quadro K2200 Ubuntu 12.04のインストール まずはUbuntuをDVD/USBドライブから普通にインストールする。 パーテ…

Gitのリポジトリ更新時にメール通知するスクリプト

git

Gitのリモートリポジトリに、以下のスクリプトを作成する。 hoge.git/hooks/post-update #!/bin/bash # リポジトリ更新時にメール送信するスクリプト # ブランチ名を取得 branch=$(git rev-parse --symbolic --abbrev-ref $1) # 送信先アドレス mailaddr="ma…

PythonでWikipediaの圧縮ファイルから記事毎にXMLツリーを取り出す

PythonでWikipediaの全記事の圧縮ファイル(jawiki-YYYYMMDD-pages-articles.xml.bz2)から、各記事を取り出してそのXMLツリーをパースするスクリプトを作成しました。 使い方: 引数にWikipediaの圧縮ファイルを指定 $ python parse_wikipedia.py ~/hoge/jawik…

shell checkでexpr is antiquated.というエラーがでる

シェルスクリプト内で変数をインクリメントしようとして以下の様なコードを書きました。 COUNT=$(expr ${COUNT} + 1) すると、shell checkで以下のようなワーニングが表示されます。 expr is antiquated. Consider rewriting this using $((..)), ${} or [[]…

Djangoの環境構築(Ubuntu Server, Apache, PostgreSQL)

以下の環境でDjangoを動作させるまでの手順をまとめました。 Ubuntu Server 14.04 LTS 64bit Apache 2.4.7 PostgreSQL 9.3 Django 1.8 (Python 2.7) Django 1.7, PostgreSQL 9.Xでも同様の手順で構築が可能です。 パッケージのインストール Python $ sudo ap…

Djangoでフォーム内でクリックされたボタンによって異なる処理を行う

タイトルの通り、同一フォーム内でクリックしたボタンによって異なる処理を行いたい場合は以下のように書きます。 hoge.html <form action="{% url 'hoge.views.some_view' %}" method="post"> {% csrf_token %} <input type="text" name="hoge" value=""> ... <input type="submit" name="button_1" value="ボタン1"> <input type="submit" name="button_2" value="ボタン2"> </form> v…

Djangoで特定のページのみBasic認証をかける

やり方は、以下のページの通りです。 djangosnippets: view by view basic authentication decorator スニペットの保存 まず、上記サイトのスニペットをコピー&ペーストして、プロジェクト内に保存します。 basic_auth_view.py import base64 from django.h…

DjangoのQuerySetでランダムに要素を取得

例えば、SomeModelというモデルクラスのインスタンスを10個取得する場合。 random_query_set = SomeModel.objects.order_by('?')[:10] QuerySet API reference | Django documentation | Django ただし、リファレンスによるとバックエンドで利用しているDBに…

Pythonでmd5やsha256などのハッシュ値を求める

Pythonで引数に入力された文字列のハッシュ値を求めるスクリプトを作成してみました。 hash.py #!/usr/bin/python # -*- coding: utf-8 -*- import hashlib def calc_hash(string): u'''入力文字列のハッシュ値を求めて辞書型で出力する''' hash_dict = { 'm…

Django 1.7ではmimetypeではなくcontent_typeを利用する

DjangoでJSON形式のレスポンスを返すビューを作っていたのですが、Djangoを1.6から1.7にアップグレードした際にエラーが発生しました。 views.py import json from django.http import HttpResponse def some_view(request): some_dict = {'hoge': 'hogehoge…

Apache2でディレクトリ内のファイル一覧を非表示にする

Apache2でディレクトリ内のファイル一覧を非表示にしようと思って検索をかけると、2005年の記事が上位にヒットします。 @IT:Apacheでファイル一覧を表示させないようにするには で、この記事内の設定をコピペすると、Apache2.4ではエラーが出ます。 /etc/a…

はてブロを初めてみた

今まではBloggerを使っていたんだけど、はてブロに乗り換えてみる。 早速気づいたことをレポートしてみる。 Markdownが使える Markdown記法が使えるらしい。 お仕事でもMarkdown記法でREADMEを書いたり、Redmineに記事を書いたりするのでこれは便利。 デフォ…