おサラミログ

パズルの話とか、メモとか

Haskellで.ghciファイルを編集しても反映されなかった件

Haskellインストール

$ stack ghc -- --version
The Glorious Glasgow Haskell Compilation System, version 8.6.3

下記を参考にHaskellお触り中
employment.en-japan.com

日本語化対応の手順で戸惑ったのでメモ

環境:CentOS7
~/.ghciファイルが見当たらなかったので、新規作成し、記事の通り.ghciファイルに記載

import qualified Text.Show.Unicode
:set -interactive-print=Text.Show.Unicode.uprint

しかし、日本語を入力しても日本語が出力されない。

GHCiを起動時に下記のようなメッセージがでている。

[vagrant@localhost ~]$ stack ghci
(中略)
Configuring GHCi with the following packages:
GHCi, version 8.6.3: http://www.haskell.org/ghc/  :? for help
*** WARNING: .ghci is writable by someone else, IGNORING!
Suggested fix: execute 'chmod go-w .ghci'
*** WARNING: /home/vagrant/.ghci is writable by someone else, IGNORING!
Suggested fix: execute 'chmod go-w /home/vagrant/.ghci'
Loaded GHCi configuration from /tmp/haskell-stack-ghci/2a3bbd58/ghci-script

なのでとりあえず「chmod go-w /home/vagrant/.ghci」を実行したところ、日本語出力ができた。
※chmod go-wは、自分以外が書き込めないようにするコマンド。

書き込み権限の問題っぽい

vagrantの共有フォルダにファイルをぶちこんでも共有できなかった件

vagrantでCentOS7環境を作った。

共有フォルダ(Vagrantfileがあるローカルのディレクトリ)にファイルを配置したが、

vagrant sshでログインし、/vagrantの中身を見ても反映されない。

 

結論、仮想マシン再起動で解決。

vagrant reload

競技プログラミング入力メモ(Java)

友達の影響で競技プログラミングにちょっとばかりハマっている
Javaで挑むに当たり入力でよく戸惑うのでメモ(随時更新)

入力

原則nextを用いて、パースする。
nextIntとかよりnextからのパースのほうが早い。

Int

Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.next());

char[](文字列を1文字ずつ分割)

Scanner sc = new Scanner(System.in);
char[] c = sc.next().toCharArray();

Scannerは実行速度が遅いらしいが、
今のレベルでscannerがボトルネックになるような問題には出くわしていない。
自作で入力用ライブラリを作成するのが一番早いが、
そこまでガチ勢じゃないのでそういう問題に出くわしたら、またちゃんと勉強する。

参考:
入出力 - てきとーな日記
↑の記事を少し噛み砕いた記事
Javaで競技プログラミングをするときの罠とテク - Qiita

なお、Scannerをよくcloseし忘れるので、入力の最後にちゃんとcloseする

sc.close(); 

ぼやき

競技プログラミングの問題がうまく解けないとき、
アルゴリズムの問題だったら納得できるんだけど、
こういう初歩的な技術要素による問題だともったいない気がする。
そういうのを少なくしていきたい。

localhostでつながらない?

Dockerを体験しようと思い導入。

wdpressの記事をもとにDocker上のコンテナでApacheを起動、

ブラウザからアクセスしようとするとつながらない

 

試しに172.0.0.1でつなげると違うエラーが出る

 

 

まったくわからん。

 

 

 

Vagrantfileを編集しIPアドレスを明示的に設定してみる。

config.vm.network "private_network", ip: "192.168.33.10" 

 vagrant再起動

vagrant reload 

 

あらためてdockerコンテナのプロセスを起動し、

指定した192.168.33.10でアクセス。

 

 

 

できた。

 

何が原因でこうなっているのかさっぱりわからん。

こういうのが解析できるような技術者になるべきなんだろうけど。

 

 

Vagrant上でroot権限を持ちたい等

仮想化マシンの自動作成・管理ツールであるVagrantを体験中

詰まったところをメモしていく

 

Vagrant上でroot権限を持ちたい

Vagrant上のsu実行に関するメモ

上記サイトを参考

# sudo su 

 

Vagrantとローカルでファイル共有したい

/vagrant/がローカルのvagrantフォルダ(vagrant up とかするディレクトリ)とリンクしている

 

VirtualBoxを導入したら VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED).エラー

VirtualBoxを導入し、OVAファイルを読み込み起動しようとしたら下記のエラー

 


VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED). 

 

VT-xとはインテル バーチャライゼーション・テクノロジーというインテルによって開発された仮想化支援技術のことらしい。

これが無効になっているから起動しないということ。

 

VT-xを有効にするためにはBIOSの設定をイジる必要がある。

 

PC起動したときの最初の画面あたりで指定のキーを押すとBIOS設定画面に移動できる。

毎回タイミングを逃す。

 

自分のPCの場合は「Del」キーでBIOS設定画面に行けた。

調べるとF10とかF12とか、筐体によって千差万別。

 

BIOS画面でそれっぽいところが無効になっていたため、有効に。

再起動したら無事VirtualBox上で仮想OSが起動した。