読者です 読者をやめる 読者になる 読者になる

雑多なノート

プログラミング初心者がメモとかを書きます。基礎的なこともメモとして。偏食系のアニオタ。

リリースモードでもデバッグで変数の値を確認する方法

学校ではVisual studioC++を使って研究を行っているのだが,デバッグモードでエラー起こすライブラリのせいで常にリリースモードで実行している.
リリースモードだからブレークポイントで止めたときに見れない変数が多いのは仕方ないと諦めていたのだけど,見る方法があったらしい.

#pragma optimize("", off)

先頭にこれを書くことで最適化が無効になりブレークポイントでほとんどの変数の中身を見ることができるようになる.
半年前に知ってたらもっと卒研楽だったのになー
まぁデバッグモードでエラーになる時点で私のミスだとは思うんだけどね

SSHの公開鍵認証が失敗する

急にSSHでログインできなくなった.

普段使ってるSSHクライアントが認証に失敗すると何も表示されずにウインドウ閉じるから問題の切り分けに時間がかかった.
公開鍵認証が無効になっていたのが原因らしい.

takuya-1st.hatenablog.jp

Apacheシンボリックリンク経由でホームディレクトリ下のディレクトリにアクセスできるようにホームディレクトリに対してchmod 777をやったのがまずかったらしい.
自分しか使わないサーバーだからって権限で問題があったら何も考えずにchmod 777をやる癖は治した方がいいかもしれない.

chmod 755 ~

これで解決.
何でもかんでも権限緩めれはいいわけじゃないのね.

sudo: ホスト PC-NAME の名前解決ができません

bash on windowsのインストールをしたときのこと.

なんかsudoするたびに

sudo: ホスト LAVIE の名前解決ができません

とのエラーが出てくる.

動作に問題はないのだがsudoの度に出てきて鬱陶しいので直した.

いろいろ試してみた結果/etc/hostsにホスト名とIPアドレスの対応を追加したらエラーでなくなった.

127.0.0.1 localhost
127.0.0.1 LAVIE   <--これを追加
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

前にCentOSでホスト名で苦しめられたときにこのファイル弄ったら治ったので今回もやってみたら上手くいった.
理解せずにやってるのでこれで合ってるのか分からないけど.
前にやったときはもう一つファイル弄ったきもするけどまぁ動くからいいや.


bash on windowsに関してはインストールして満足してしまった.
そもそもそこまでCUI好きでないし常にVPSSSHしてるからあまり必要なかったかも.

Visual Studio Codeの背景画像変更

精神安定のためにVisual Studio Codeの背景画像を設定することにした.

調べてみたら内部CSSの変更でできるらしい.
そういえばHTMLとCSSで出来てるんだっけ.
正直ファイル弄ったりするのは面倒だったのでVSやEclipseみたいに拡張機能でできないか探してみたらちょうどいいのを見つけた.

marketplace.visualstudio.com

中国の方が作った背景画像を設定する拡張機能らしい.
設定は特に特殊なこともなく簡単.

 // Plugin background enabled.background 插件是否启用
  "background.enabled": true,

  // Custom style.自定义样式.
  "background.style": {
    "background-position": "100% 100%",
    "background-repeat": "no-repeat"
  },

  // Use default images.使用默认图片
  "background.useDefault": true,

  // Your custom Images(Max length is 3). 自己定制背景图,最多3个
  "background.customImages": [
      "C:/Users/KobayashiKazuki/Pictures/megumin.png"
    ]

インストールして設定してみたが何もおこらず.

拡張機能の説明ページを見たら管理者権限で動かさなきゃいけないらしい.

Q:It seems that nothing happens after installing the extension?
Q:安装完插件后,似乎没有反应?

A:Make sure to have the administrator authority!!
A:如果不能使用,请确保你有管理员权限!!

管理者権限で実行するのは気が進まないがソースも公開されているので心配ないだろう.

管理者権限で実行するとVSCodeの再起動を要求されたので再起動したら無事適用された.
f:id:vayacico:20170501203131p:plain
デフォルトの背景かわいい.
1回管理者権限で実行すれば後は大丈夫らしい.

うまくいったのだが1つ問題が.
f:id:vayacico:20170501204221p:plain
f:id:vayacico:20170501204421p:plain
なにやらファイルが壊れているとのこと.
あとサポート対象外だの言われた.

メッセージ出るだけで特にどこか悪いように感じないからいいかな.
サポートなんか最初からないですし.

github.com

ソースコードを見る感じ内部のCSSファイルを書き換える力技で実装しているっぽい.
だから管理者権限必要なのかも.
変なファイル弄ってるような感じはしないし特に問題なさそう.
サポート対象外の表記もなんかカッコイイからいいとしよう.


オプションで自分でCSS書けるのでopacityで透過してみたけどエディタ全体が薄くなってしまった.
画像を加工するしかないっぽい.


いろいろ弄った結果こうなった.
画像はこのすば原作からキャプチャーしためぐみんパワポで加工したもの.
最近のパワポは背景除去とかもできて画像処理ソフトとしても優秀.
f:id:vayacico:20170501215616p:plain

Pythonのエラー:UnicodeEncodeError: 'ascii' codec can't encode characters in position~

Pythonでお馴染みのエラーらしいけど解決に手間取った&予想外のところに原因があった.
出力設定やら文字列の扱いの問題かと思ったらシェルの設定だった


~/.bashrcに以下を書いて再起動(sourceコマンドでもいい?)

export LANG=ja_JP.UTF-8
export LANG

文字コード周りはいつも悩まされてる気がする

pyenvのインストール

Pythonのいろんなバージョンを簡単に入れられるpyenvという素晴らしいものがあったので入れた

CentOS6 にpyenv でPython の複数バージョン環境を構築する – 極上の人生に従ってインストール

特に手間取ることなく入れられたが,肝心のPythonのインストールでエラー.

[kazuki@rabbit ~]$ pyenv install 3.5.2 
Downloading Python-3.5.2.tar.xz...
-> https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz
Installing Python-3.5.2...
patching file Lib/venv/scripts/posix/activate.fish
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems


BUILD FAILED (CentOS release 6.9 (Final) using python-build 1.0.10-10-g19e70e3)

Inspect or clean up the working tree at /tmp/python-build.20170428113454.12560
Results logged to /tmp/python-build.20170428113454.12560.log

Last 10 log lines:
(cd /home/vayacico/.pyenv/versions/3.5.2/share/man/man1; ln -s python3.5.1 python3.1)
if test "xupgrade" != "xno"  ; then \
                case upgrade in \
                        upgrade) ensurepip="--upgrade" ;; \
                        install|*) ensurepip="" ;; \
                esac; \
                 ./python -E -m ensurepip \
                        $ensurepip --root=/ ; \
        fi
Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS
[kazuki@rabbit ~]$ pyenv global 3.5.2
pyenv: version `3.5.2' not installed

調べたら事前にインストールしなきゃいけないものが沢山あるらしい.

sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite3 sqlite-devel openssl-devel

これで成功した.

本当いちいち一筋縄ではいかないな.

Pythonで日本語を使うためのおまじない

毎回ググってる気がする
Pythonで何も考えずに日本語を使うと怒られる
コメントでもダメらしい

SyntaxError: Non-ASCII character '\xe3' in file get_tweet.py on line 9, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

コードに以下を追加で解決
先頭じゃないとダメみたい

# coding: utf-8

他の書き方もあるらしいけどとりあえず動いたのでこれで