PC-asobi

Apr 2, 2019 - 1 minute read - Comments

node.jsでSeleniumを動かしたらエラーになった

node.jsでSelenium Webdriverを使って自動テストを書いてみようと思い、 適当に検索して↓のコードを書いたのですが、エラーになってしまいました。 Selenium Webdriverのバージョンは4.0.0-alpha.1です。 const {Builder, By, Condition, firefox} = require('selenium-webdriver'); const t = require('selenium-webdriver/testing'); const expect = require('expect.js'); const assert = require('assert'); let driver; t.describe('user name test', () => { t.before( () => { driver = new Builder() .forBrowser('firefox') .build(); }); t.after( () => { driver.quit(); }); t.it('username is required', () => { driver.get('http://localhost:8080/').then( () => { driver.wait(until.elementLocated(By.id('user_name')), 2000) .then( (usernameTextbox) => { driver.wait(until.elementLocated(By.id('user_name')), 2000) .then( (button) => { usernameTextbox.

Feb 28, 2019 - 1 minute read - Comments

Arch LinuxでHaskellをはじめる

Haskellは汎用の純関数型プログラミング言語です。 これまで入門書を読んだ程度で、あまりコードを書いたことがありませんでしたが、 最近また興味が出てきたので、Haskellを使ってなにかコードを書いていきたいと思います。 ひとまず今回は、Haskellの環境構築を行います。 ArchWikiでHaskellのページをみると、パッケージ管理の方法がいくつかあるようです。 依存関係でハマりたくないので、そのリスクが低そうなstackを選択することにしました。 stackは公式リポジトリに登録されているので、簡単にインストールできそうです。 $ sudo pacman -S stack これでstackのインストールが完了しました。 ghcも一緒にインストールされるので、基本的なインストールはこれで完了してしまいました。 次に、私はneovimを使っているので、neovimでHaskellを書くための設定を行います。 以前にHaskellを触ったときはghc-mod, deoplete, neco-ghcでコード補完していましたが、 いま見るとghc-modがdeprecatedになっているようです。 新しく環境を作る場合、haskell-ide-engineを使うのが良さそうなので、 LanguageClient-neovimとhaskell-ide-engineをインストールすることにしました。 まず、haskell-ide-engineをインストールします。 $ git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules $ cd haskell-ide-engine $ make hie-8.6.3 $ make build-doc-8.6.3 かなり時間がかかりますが、無事インストールできました。 容量もかなり食ってそうなので、ディスクの空き容量が少ない状態では実行しないほうが いいかもしれません。 続いて、LanguageClient-neovimの設定を行います。readmeのINSTALLの通りに進めます。 deinユーザーなので、deinからインストールを行います。 init.vimに次のように記述します。 call dein#add('autozimu/LanguageClient-neovim', { \ 'rev': 'next', \ 'build': 'bash install.sh', \ }) そしてneovimを再起動し、次のコマンドを実行します。 :call dein#install() これでインストールは完了しました。 キーマップの設定が必要なので、haskell-ide-engineのreadmeを参考に設定します。 let g:LanguageClient_serverCommands = { 'haskell': ['hie-wrapper'] } let g:LanguageClient_rootMakers = ['*.cabal', 'stack.

Feb 22, 2019 - 1 minute read - Comments

Arch Linuxでcoreutilsのソースを読む

プログラマならlsのソースくらい読むべきという言葉を耳にしました。 私は自分のことをプログラマだと思っているのですが、そういえば他人のソースコードを読むことはあまりしません。 良い機会なのでlsのソースコードを眺めてみることにしました。 $ uname -a Linux archvm 4.20.7-arch1-1-ARCH #1 SMP PREEMPT Wed Feb 6 18:42:40 UTC 2019 x86_64 GNU/Linux 私はArch LinuxをVirtualBoxで仮想化して使っています。 Arch Linuxには、Arch Build System(ABS)というパッケージ作成のための仕組みが用意されており、 これを使えば公式リポジトリやArch User Repository(AUR)に登録されているプログラムのコードを取得できそうです。 普段はpacmanで必要なプログラムをインストールするだけなので、ABSを使うのも初めてでしたが、 ArchWikiを頼りにコマンドを実行しました。 私はSVNよりもGitのほうが好みなので、aspを使用することにしました。 $ sudo pacman -S asp $ mkdir tmp $ cd tmp $ asp checkout coreutils 問題なくチェックアウトされ、coreutilsディレクトリが作成されました。 $ cd coreutils/trunk/ リポジトリの中にはPKGBUILDファイルがあるだけです。 makepkgコマンドを実行すれば必要なソースコードを取得し、ビルドが実行されるはずです。 $ makepkg ==> Making package: coreutils 8.30-1 (XXXXXXXXXXX) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources.