Cucco’s Compute Hack

コンピュータ関係の記事を書いていきます。

リングバッファと計算

# -*- coding: utf-8 -*- class RingBuffer(): def __init__(self,bufferSize): self.size = bufferSize self.pc= 0 #次に使うバッファの番号 self.data=[None]*self.size #固定長さのリスト self.valid=False #リングバッファがいっぱいになったらTrueにす…

multiprocessingのサンプルコード

multiprocessingのサンプルコード。 マルチコア処理してほしい&処理には共通の情報を利用する、という条件あり。 メンバ変数の書き換えは、returnには反映されるが、実行のたびに1に戻っている感じ。 # -*- coding: utf-8 -*- from multiprocessing import …

Threadを使うときの"TypeError: function1() got multiple values for argument 'arg1'"

threading.Threadを使って引数持つ関数を実行すると、以下のようなエラーになることがある。 run()に直接関数を記述せず、すでにある関数をrun()の中で実行しようとすると起きる。 "TypeError: function1() got multiple values for argument 'arg1'" 原因は…

時刻ちょうどに実行する

プログラム # -*- coding: utf-8 -*- import threading import datetime from time import sleep """ 1秒ごとに交互に実行する。 時刻は現在時刻を取得して、1/100秒単位くらいでx秒ちょうどに開始したい。 →時刻取得の関数が重たいのか、精度が出ているかど…

ファイルの最後の1行を読む

ファイルの最後の1行を読みたい時。 # -*- coding: utf-8 file_name="some_file.csv" with open(file_name,'r') as f: num_lines = sum(1 for line in f) f.seek(0) for line in range(0, num_lines-1): f.readline() line = f.readline() print(line)

QueueをつかったPython マルチスレッド

マルチスレッドのテストプログラム。 Listをもらって、加算して、結果をグローバルのリストに書き込む。 import threading import queue import time commonList=[] q=queue.Queue() def worker(): """ マルチスレッドで走らせる関数 Queueからデータをもら…

DBに特定のデータがあるかどうかを確認する

DB内にデータがあるかどうか確認する。 あった時は更新(update)、なかった時は挿入(insert)するように処理すればよい。cur.execute(sql,data)に渡した時にSQL文がうまく展開されない?問題で困った。 # -*- coding: utf-8 import mysql.connector import dat…

pythonのunittestのコード

ちょっと前に書いた記事compute-cucco.hatenablog.comのテストコード。というか抽象クラスは関係ないので、ただのテストコード。 raiseに対するテストコードの書き方が分からない。。。 # -*- coding: utf-8 -*- import unittest import movingCalcs from mo…

Jenkinsのインストール(CentOS on raspberry pi3)

インストール手順は以下にアリ。 RedHat Repository for Jenkins追記:Javaがない、といってJenkinsの起動に失敗します。動作確認はまた後日。 # sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo: wget…

Raspberry Pi3にCentOS

CentOSが入るらしいのでやってみた。 wi-fiのドライバを別途ダウンロードする必要があるので、Raspberry Pi3に有線LANが必要。 ダウンロード Download CentOSMore download choicesへ。 http://wiki.centos.org/DownloadAltArch Releasesの中に、RaspberryPi…

Abstract Base Classのテスト

Abstract Base Classのテスト。 メソッド名が同じで、引数が異なるオブジェクトの生成と実行のサンプルです。 メソッド名を共通で固定したいので、Abstract Base Classを使ってみました。変数名にnameを使っていたら、「TypeError: 'str' object is not call…

Failed to create session. CUDA_ERROR_INVALID_DEVICE

古いGPUがついていると、こんなエラーになることがある。 $cd /usr/local/lib/python3.5/dist-packages/tensorflow/models/image/mnist $/usr/local/lib/python3.5/dist-packages/tensorflow/models/image/mnist$ python3 convolutional.py I tensorflow/str…

CUCA Toolkitのインストール (network deb)

Ubuntu 16.04にCUCA Toolkitのインストールした時のメモ。 CUDA ToolkitCUDA 8.0 Downloads https://developer.nvidia.com/cuda-downloadsSelect Target Platformから Operating System:Linux Architecture:x86_64 Distribution:Ubuntu Version:16.04Install…

Enterキーが押せない

Ubuntu16.04のインストールの話。 最後に、メディアを抜いて、Enterキーを押せ、と出る。 Please remove installation media and close tray and press enter.しかし、それまで使えていたUSBのキーボードは認識しない様子。 困り果てて、しばらく(10分くらい…

CUCA Toolkitのインストール

CUCA Toolkitのインストール Ubuntu 16.04にCUCA Toolkitのインストールした時のメモ。 CUDA ToolkitCUDA 8.0 Downloads https://developer.nvidia.com/cuda-downloads[Select Target Platform]から Operating System:Linux Architecture:x86_64 Distributio…

Ubuntu 16.04 NVIDIA driver Install

Ubuntu16.04インストール直後は、GPUのドライバがないので、ドライバを更新する。 ログイン画面が開かない場合は、仮想コンソールを開く。Ctrl + Alt + F1。 次のようなエラー(LVMの場合)?の場合も対象。 lvmetad is not active yet; using direct activati…

SQL操作で列の最大値を得る

ある列が最大の列の値を取ってくる場合、以下は間違い。 mysql> select id,time from table_sec where time=max(time); ERROR 1111 (HY000): Invalid use of group function列名に対してMAXを適用するなんて不思議な感じ。 mysql> select id,max(time) from …

mysqlでのテーブルの1対多のjoin。

mysqlでのテーブルの1対多のjoin。TABLE_SECには、5秒ごとのデータが入っている。 TABLE_HOURには、1時間ごとのデータが入っている。10:00:06の時点では、10:00:00からの5秒間のデータは確定しているが、 10:00:00から1時間のデータは確定していない。 その…

pythonで逐次入力に対して移動平均を計算するためのクラス

pythonで、逐次入力に対して移動平均を計算する。 移動平均幅は、コンストラクタの引数に与えておく。以下、ソース。 # -*- coding: utf-8 -*- class MovingAverage: """逐次入力に対して移動平均を計算するためのクラス""" def __init__(self,size): # コン…

Matlab 2016bのwebreadがおかしい

Matlab 2016bのwebreadの動きがおかしかったのでメモ。 問題 Matlab 2016aでは正しく動いていたのに、Matlab 2016bにあげたらbad requestが返ってくるようになった。 原因? URLの中にある時刻の表現の中で%3Aのエンコードがおかしなことになってることが判…

PythonからMatlabの関数を呼び出す

matlab.engineのインストール 管理者権限で起動したコマンドプロンプトで以下を実行 cd "C:\Program Files\MATLAB\R2016a\extern\engines\python\" C:\Python34\python.exe "C:\Program Files\MATLAB\R2016a\extern\engines\python\setup.py" install なぜか…

Matlabで1×Nのサイズのベクトルを2次元配列に変換

まずは変換のルールを確認 3×4の2次元配列を用意。 >> a=[[1 2 3 4]; [5 6 7 8]; [9 10 11 12]] a = 1 2 3 4 5 6 7 8 9 10 11 12reshape()で1×Nに変換。列方向に拾って1×Nを作る様子。 >> b=reshape(a,1,[]) b = 1 5 9 2 6 10 3 7 11 4 8 124列の形にしてほ…

PythonからMySQLを操作する

構築 Python3.4とMySQL5.7を利用。Pythonを先に入れておく。Python のバージョンは、Connectorの対応バージョンと合わせておく。MySQLのインストール時には、rootユーザのパスワードの設定が必要。ここでは、passwordとします。 Connectorhttp://dev.mysql.c…

移動平均

移動平均を返す関数movingAverage。 function [ output_args ] = movingAverage(dataNx1,AverageWindowSize ) filterfunc=ones(1,AverageWindowSize); output_args = filter(filterfunc,AverageWindowSize,dataNx1);end テストコード。yとして、sin関数の値…

行列の重複排除

uniqueを使って、複数の行列から、同じ行列を削除する。 2×4の行列をいくつか作っておく。a4とa5が重複。 >> a1=[1 2 3 4; 5 6 7 8]a2=[2 3 4 5; 6 7 8 9];a3=[3 4 5 6; 7 8 9 0];a4=[1 2 3 4; 5 6 7 8];a5=[2 3 4 5; 6 7 8 9]; a1 = 1 2 3 4 5 6 7 8 reshap…

redmineのアップデート

redmineのアップデートします。 新しいパッケージのダウンロード。URLは以下で取得。 Download - Redmine cd /usr/share/sudo wget http://www.redmine.org/releases/redmine-3.2.2.tar.gzsudo tar zxvf /home/pi/Documents/msqlback/redmine-3.2.2.tar.gzrm…

Rasberry PIでのapacheとredmineのインストールメモ

raspbianにredmineを入れたときのメモ。 わけわからなくなりそうだったのでapacheとredmineまとめ。 apache2のインストール sudo apt-get install apache2 mysqlのインストール。1個目を入れた時に、mysqlのrootのパスワードを聞かれるので用意しておく。2個…

Rasberry PIでのApacheのメモ

Rasberry PIでApacheを動かす時、設定ファイルがどこにあるかわからなかったのでメモ Apache 設定ファイル sudo nano /etc/apache2/apache2.conf 再起動のとき sudo /etc/init.d/apache2 restart apacheのプロセスのユーザ設定? sudo nano /etc/apache2/env…

ブラウザを使った手軽なカウントダウンタイマー

e.ggtimer.com E.gg Timer - a simple countdown timerは、きまった時間を計るのに便利です。 5分休憩とか、10分だけ集中して考えるときとか、15分のプレゼンの時間計測の代わりなどに使えます。3分のカップラーメンの時間計測はこちら。 カウントダウン中が…

WOLによる仮想マシンの電源ON-VMwareの場合

VMware vSphere ESXi 6.0の場合 vSphere 仮想マシン管理ガイド[リンク]より。電源OFF状態の仮想マシンは起動できない模様。 仮想マシンの電力管理設定の管理電源オプションを設定すると、ゲスト OS をスタンバイ状態にしたときに、仮想マシンをサスペンドす…