Ano-Hacienda

長文が書きたい時の落書き帳。

【バイト】仮想マシン環境を構築するのに穴にハマりまくった

PHPエンジニアのアルバイトの話

Macを買う以前はWindowsで、sshVPNで作業をしていた。
仮想マシン立てるのが面倒すぎる&当時の社員がMACerしかおらずWinでのやり方ようわからんということでそうなった経緯があり

Mac買ったから仮想マシンで作業できる!!
「Gitに書いてある通りにやればできるよ」と言われたけど

「分かってる前提」のものが多過ぎて結局勤務中に上司に聞きながらやっても上手くいかなかったので
結局今、今までとほぼ同じ状態で作業している。
台風で大学にも行けないし今リトライ


書いてある通りにやってもできない原因①: リポジトリ上でやってなかった

多分エンジニア初心者にも「お前それはバカだろ」と思われそう
Vagrant も、作業に必要なAnsibleも全部ルートディレクトリでインストールして作業していた。
これを上司に指摘されて「じゃあもう今日は仮想マシン諦めよう」となって今日に至るのですが


原因②: git clone だけじゃ必要なファイルが揃っていなかった

これも今考えると当たり前だった

$ php composer.php
Could not open input file: composer.phar

composerをインストールしてなきゃそりゃそうだわ…

$ curl -sS https://getcomposer.org/installer | php

これでできるらしいので、実行。以下

All settings correct for using Composer
Downloading 1.2.0...

Composer successfully installed to: /Users/[username]/febe2/composer.phar
Use it: php composer.phar

$ php composer.phar
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.2.0 2016-07-19 01:28:52

はい無事できました。


原因③: the requested PHP extension gmp is missing from your system.

これだよこれ

$ php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for openid/php-openid dev-master -> satisfiable by openid/php-openid[hoge].
    - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system.

なるほどこのgmpってのをインストールすればいいのかな?

$ brew install gmp
Warning: gmp-6.1.1 already installed

は????入っとるやんけ???と思ったけどこれじゃなく

$ brew install homebrew/php/php56-gmp

こっちらしい。おお、インストールされていく

が、解決せず。

とりあえず、lockファイルに"Provide"ってのを書くとスルーしてくれるという情報があったので
composer 導入をまじめに考える - Qiita
GIt cloneしたlockファイルを書き換える時点で100%間違っているけどやってみる。


おお!!comopser installが始まったぞ!!

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

    Now trying to download from dist

んん???
これは勝手にリトライしてどうにかなった模様

Creating the "app/config/parameters.yml" file
Some parameters are missing. Please provide them.

で大量の項目で入力を求められる
待って??わからないよ??

そしてエラー、warningが出る。

長くなりそうなので次回に続く。

ちなみにこの後

$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
    - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
    - Installation request for openid/php-openid dev-master -> satisfiable by openid/php-openid[hoge].

やっぱりだめじゃないですかー

ポインタを理解する

苦しんで覚えるC言語、通称「苦C」を最近読んでいる。
道中「はいはい他の言語でやった」と飛ばして、今Cの代名詞とも言えるポインタに入った。

今までやってきた言語(javascript,PHP)ではメモリなんて一切考えたことがなかったから、なかなか興味深い。
要するに、メモリの住所を指定するサムシングなのね。と何となーくの認識で読んでたら(ちゃんと理解せずに読み進めてたら意味ないぞ)この節で
引数による情報の受け渡し

C言語では、関数へ情報を渡す場合、必ず元の変数の値のコピーを渡します。
この様な方法を値渡しと呼び、元の変数の値が変更されないことが特徴です

えっそうなの!!?

ということで試しに簡単なコードを書いてみた。
関数で変数に10を足して表示させるだけ。

#include <stdio.h>

void func(int num);

int main(void)
{
    int num = 1;
    printf("%d\n",num); //実行結果1行目
    func(num); //↓の関数を実行。numに10足して結果表示
    printf("%d\n",num); //実行結果3行目

    return 0;
}

void func(int num)
{
    num += 10;
    printf("%d\n", num); //実行結果2行目
    
    return;
}

実行結果

1
11
1

わ、本当だ!mainの中の変数は変わってない!!

次に、上の苦Cの通り変数をポインタ変数に変えてみた。

#include <stdio.h>

void func(int *num); //引数宣言時にポインタ変数を宣言

int main(void)
{
    int num = 1; //ここは普通の変数でいい。らしい
    printf("%d\n",num);
    func(&num); //変数の”アドレス"を代入することでポインタ変数を代入になる。らしい
    printf("%d\n",num);

    return 0;
}

void func(int *num)
{
    *num += 10; //ポインタ変数を通常変数にして10足す
    printf("%d\n", *num); //通常変数を出力
    
    return;
}
1
11
11

おおー、ちゃんと上書きされてる。
ポインタの必要性わかってきたぞ。ポインタを制すればCを制すって聞いたことある(多分ない)し行ける気がするぞ。


と、思って読み進めたら配列だとまた挙動が変わってくるとか、、、
まだ道のりは長そうだ、これはまた次回

とりあえずやったことをGit管理するようにする

小生眠い!!小生食後がどうしても眠い!!

いよいよ本編に、、、まだちょっと入らない感じ
これからやることを系統立ててまとめたり、やったことを管理するためにGitを使う

続きを読む

テレビとPCをまとめてスピーカーで出力させるついでにスイッチャーを作る(製作・前編)

小生遅刻したくないでござる!!小生時間を守る人間になりたいでござる!!

先日、山の日(8/11)に内定者懇親会があり
交通費を浮かせるために高速バスで行こうとしたら、お盆休み初日の大渋滞に巻き込まれて1時間半の大遅刻。
つらい



さてこの続き
halfrighter.hatenadiary.jp

続きを読む

テレビとPCをまとめてスピーカーで出力させるついでにスイッチャーを作る(構想編)

小生社会人デビューしたい!!小生すべらずに社会人デビューしたい!!

こんばんは、

早速滑った上に、一発目の記事からジャンルが「その他」
はじめにで書いたC言語の勉強とは何だったのか、気にせず投稿していきます。

まず、我が家のデスク環境の写真をご覧ください
f:id:halfrighter:20160810233509j:plain

続きを読む