programing

fishでnvmを使う

すっかり英語にお熱な最近ですが、たまには開発的な活動もしようとNuxt.jsを触ってみることにしました。その事前の準備として、Node.jsのバージョン管理ツールとしてnvmをインストールしたいと思います。 nvm? nodebrew? Node.jsのバージョン管理ツールとい…

Raspberry PiにRaspbianをインストールしSSHをデフォルトで有効にする方法

最近のRaspbianではSSHではデフォルトで無効になっているんですね。多くの人がHDMIなどをつながずにコンソールだけでRaspberry Piを使っているのではないかと思います。そんな人のために、本日はRaspberry PiにRaspbianをインストールし、SSHをデフォルトで…

macをemacsキーバインドに設定変更する <JISキーボード編>

一時USキーボードに浮気したものの、結局JISキーボードに戻ってきたしろうまです。私的にキーは(特に最下段)多いほうが良いという結論に至りまして、これからはJISキーボードとともに生きていこうと思います。 そんな私のようなJISキーボードユーザーのた…

Azure PipelinesでappiumのE2Eテストを動かしてみた

先日久々にiOS Test Nightに参加させていただきました。 testnight.connpass.com その時の発表の中にAzure Pipelinesの発表がありまして、appiumも使えるらしいとのことだったので、実際に使ってみたときのことを、まとめてみたいと思います。 やりたいこと …

iOSアプリの設定画面にOSSのライセンスの情報とバージョンを自動で記載する

OSSのライブラリをiOSのアプリで利用している場合、使用したライブラリのライセンスをしかるべき場所に記載する必要があります。 ライブラリを追加する度にそれらを手動で更新すると手間になるので、それらをCocoaPodsの仕組みを使いながら自動で更新するよ…

初のiOSアプリのリリースとその道のり

初めてiOSアプリをリリースしました。 バレスコIkuma HayasakaSportsFree 内容はとーってもシンプルなバレーボールのスコアをカウントするだけのアプリです。 今回は最小機能でもリリースすることが目標だったので、まあ内容はどうあれ出せて良かったです。 …

ライブラリ管理ツール CocoaPodsのセットアップ

すでに多くの人が書いていますけど、自分の覚書として書き残しておきたいと思います。 iOS appを作っていて、「あー、このUIライブラリ使ってみたいかも。で、CocoaPodsってなにそれおいしいの。」がことの発端。 CocoaPodsって何? わざわざ説明するような…

「なっとく!アルゴリズム」を読んで

転職の面接などでコーディングテストが増えているということで、学生時代に習ったきりですっかり錆びついてしまっているアルゴリズムの勉強を兼ねて読んでみました。 なっとく! アルゴリズム作者: アディティア・Y・バーガバ,株式会社クイープ出版社/メーカ…

pytest + seleniumでfixtureを使って共通処理をまとめる

以前の記事でsetup_method/teardown_methodを使って共通処理をまとめました。今回はそれと同様のことをpytestのfixtureというものを使って実現したいと思います。 setup_method/teardown_method を使った方法は以下の記事をご覧ください。 siro-uma.hatenabl…

Gaugeのスクリプトを詳しく見てみる

前回の記事でGaugeを触ってみました。 siro-uma.hatenablog.com 今回は前回の記事の中で動かした実際のスクリプトを詳しく見てみましょう。 Specificationを見る .spec で定義されているものをGaugeではSpecificationと呼びます。名前のとおりですが、ここに…

ATDDなTest Framework GaugeをPythonで触ってみる

Markdownでテストスペックの記載可能+テストステップの実装を多くの言語で記載可能とのことで巷で話題のTest Framework GaugeをPythonで試してみたいと思います。 環境 macOS 10.14 Python 3.6.1 インストール macOSの場合はgaugeをhomebrewからinstall す…

pytestでsetup_method/teardown_methodを使って共通処理をまとめる

pytestで試験を書いていると共通の事前処理や事後処理が出てきたりすると思います。 その際の対処の方法について書いていきます。 環境 macOS 10.14 Python 3.6.4 Chrome 71.0.3578.98 pytest (4.0.2) selenium (3.141.0) 手順 今回は以前の記事で紹介したse…

macをemacsキーバインドに設定変更する <USキーボード編>

大学時代の先輩にemacs教に入信させられて以来、キーバインドに関してはemacsキーバインドでないとテキスト編集が激しく遅くなるしろうまです。 今更ながらmacでキーバインドをemacs風に変えるための設定手順を公開したいと思います。 環境 macOS: 10.14 Mac…

Selenium + pytestを使ってUI自動テストを書いてみる

環境 macOS 10.14 Python 3.6.4 Chrome 71.0.3578.98 準備 pipモジュールのインストール まずは今回必要な最低限のpipモジュールをインストールします。 $ pip install pytest selenium $ pip list pytest (4.0.2) selenium (3.141.0) ChromeDriverの準備 続…

Amazon EchoからSynology DiskStationを起動する

家でDiskStation DS216jを使っているのですが、保存の用途がメインで積極的にアクセスはしていません。なので、基本電源をオフにしていて、必要なタイミングでWake on Lan or 電源ボタンを使って起動していました。 ただ、これが微妙に面倒で、PCで作業つい…

emacs向けPlantUML環境構築

最近シーケンス図を書く機会ができたので、セットアップしてみました。 環境 macOS 10.11.6 emacs 25.3 セットアップ PlantUMLのインストール graphvizがPlantUMLに必要なので、まずインストール。 $ brew install graphviz 続いてPlantUML $ brew install p…

pyenvとpyenv virtualenvを使った環境構築

結構pyenv周りの使い方を忘れがちなので、覚書として最低限のセットアップ方法を書いておこうと思います。 環境 macOS 10.12.6 セットアップ pyenvを入れる gitコマンドがある前提ですが、githubから落としてきましょう。 $ git clone https://github.com/py…

macOS + emacsでmarkdownを書く

何番煎じかわかりませんが、markdownをemacs + macOSで書く環境について書きたいと思います。 環境 macOS 10.12.6 emacs 25.3 セットアップ markdownコマンドのインストール brew install markdown *3月17日現在で1.0.1が最新のようです。 emacsにmarkdown m…

pytest向けのpluginを書く

以前紹介したpython pluginの作り方に続いて、今回はpytestのpluginの作り方を紹介したいと思います。 そもそもpytestって何 pytest is a mature full-featured Python testing tool that helps you write better programs. 公式サイトの引用ですが、pytest…

はじめてのKerasと深層学習

先日、MeetupでKerasと深層学習の勉強をしてきました。 参加したのはこのMeetup: www.meetup.com 内容 Meetupとして以下の3つのTutorialを用意していて、そのうちの1つのDeep learningに関するTutorialを受けてきました。 Working with Binary Data Sqlit…

Selenium + Safari

SeleniumでSafariを動かすときの覚書です。 SafariDriver extensionのインストール Safariのwebdriverはextension形式です。SafariDriver.safariextzからextensionをダウンロードしてインストールしてください。 #以前はSafari Developer Programへの登録が…

C++ template

c++でtemplateクラスの中で自らの関数を呼ぶ場合、this->を指定しないといけないようだ。前方宣言すれば、そんな問題は起こらない。

JavaのScannerを使うときの注意

Javaファイルの文字コードをUTF-8にしているときにScannerを使うとうまく読み込めません。 読むときは Scanner scan = new Scanner(file, "MS932"); と"MS932"(各自の環境)と指定してScannerを使いましょう。

Javaのフォーマッター

%8dと指示しても、大きな整数で9桁以上の場合は8を無視する。 %.8sと指示すると文字列の最大幅を8として後半の文字は切り落とされる。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Formatter.html

C++の参照

C++ではコピー生成を避けるため、関数の引数では参照を使うことが多い。 ただintやdoubleなどの組込型のコピーはオーバーヘッドは無視できるほど小さなものらしい。 なので値渡しで行うのが普通とのこと。 参照とする場合は、ユーザー定義の型である構造体や…

if __name__ == '__main__':

Pythonのはなし。 Pythonでよく見かける下の1行。 if __name__ == '__main__': if以下はscriptファイルとして動作した場合のみ呼び出される。

c++の文字列処理(分割)

文字列の分割(sscanf) #include <iostream> #include <string> using namespace std; int main() { std::string str( "A:B" ); char lhs,rhs; sscanf(str.c_str(), "%c:%c", &lhs, &rhs); cout << lhs << ":" << rhs << endl; return 0 } 文字列の分割(sstream) #include <sstream> #inc</sstream></string></iostream>…

Qt コンパイル 実行

$ qmake -project //projectを作る(ディレクトリに対して行う) $ qmake hello1.pro // $ make $ ./hello1

Qtインストール

gcc,g++,makeを事前にインストール (sudo apt-get install g++ など)http://trolltech.com/downloads/opensource#qt-open-source-editionから"Qt Open Source Edition for C++ Developers: X11 Download"をダウンロード$ tar zxvf qt-x11-opensource-src-x.x…