昔感じたスーツとギークのすれ違い

昔書いて消してしまったブログから再掲。読み返したらちょっと面白かったので。
当時この記事を書いて先輩からスーツとギークという言葉を教わりました。
なので文中では営業ネイティブ、技術ネイティブという変な言葉を使ってますが、そのままに。
文章が乱暴だったので多少修正加筆を加えました。

——–以下過去の記事——–

タイトル:技術4ヶ月目の記録
投稿日: 2011年4月26日

会計事務所での営業職を退職し、PHPを始めて運良く技術の現場で働くことができ、思うことがあったので記録。
ただいま技術経験4ヶ月でわからないことだらけ、日々戸惑いを隠せません。
しかし、今後自分が技術をある程度習得したら、今の感覚を忘れてしまいそうなので言葉にしたいと思います。

営業の人と技術の人があるシステムを設計するためにミーティングをしていて、
その現場に自分もいて、会話のずれを感じました。ぼんやりとすれ違ってるなぁと思いつつ、両者は気付いていない様子。

技術専門の人と営業専門の人は、そもそも持っている文化も言葉もまったく違う人種なのに、
なまじお互い日本語を使っているので表面上の意味は通じてしまっているような、そんな感じがしました。

営業ネイティブは、システムを作るにあたって、どこがどう難しいのか、システムをどのような段取りで作るかわからず、
技術ネイティブは、お客さんの顔が見えず、お客さんがどうしたいか、何がしたいかがわからない。

営業ネイティブの人はお客さんから聞いた要望を、技術ネイティブに伝えますが、そこですれ違いが生まれているように感じます。
かといって技術ネイティブがお客さんのところに行けばいいと思いますが、それは難しいのです。
お客さんは別の仕事をなりわいとしているので、IT会社の営業職よりも当然システムに疎いからです。
意思疎通が難しくなります。

それと、気質として、営業ネイティブはモノを売る人で、「人を説得する」ことを大切にし、
技術ネイティブはモノを作る人で、「自分が納得する」ことを大事にしているように感じます。どちらが優れているという話ではありません。

例えば、

「仕様」という言葉があります。技術ネイティブと営業ネイティブではニュアンスが違います。
技術ネイティブにとって、仕様とは設計図のようであり、開発過程に入ってからの仕様変更というのは、家を建てているときに、まるで机や椅子でも動かす感覚で、やっぱ柱はこっちがいいなぁ、と言われるくらいの衝撃があります。
営業ネイティブにとっては、仕様とはお客様の要望を聞き取ったもので、開発過程でミーティングを重ね都度柔軟に書き換えるものです。

営業ネイティブが技術ネイティブに車を作ってくださいと言ったとして、
技術ネイティブは車の設計から始め、製作工程を見極め、段取りを取り、実際に開発作業にとりかかります。

そんなとき、仕様の変更。

営業ネイティブはプログラムをちょっと書き換えるだけだと思っています。プログラム=何でもできる、と思っているからです。自分もそう思っていました。
ところが、技術ネイティブにとってタイヤをキャタピラにしてくださいと言われたくらいの衝撃を受けます。
システムは目に見えないので、ちょっとした変更なのか大規模な変更なのか分かり辛いのです。
場合によっては設計からやりなおしなのです。

そして、タイミングや予算によっては、最初から作る余裕や時間もなくなって、
無理矢理組み上げた、キャタピラの上に車が乗っただけの、ギアをバックに入れるとキャタピラが逆回転して結果前に進む、みたいな謎のシステムが出来上がります。
ギリギリのラインで希望通りの動きをします。お客様にとっては一応思い通りに動くのでなんとか納品できますが、
営業ネイティブにとっても技術ネイティブにとっても満足のいくものが出来上がりません。

これがすれ違いが生む悲劇なのではないでしょうか。

自分は元営業なので、当初は、
プログラムは書けばその通りに動くと思っていましたし、「PHPをインストール」なんてまるで意味がわかりませんでした。
プログラミング言語なんて書けばどこでも動くと思っていました。
PHPはサーバーサイドで動くものだということを理解するのに時間がかかりました。インストールしないとサーバーがPHPを使えないということも理解するのに時間がかかりました。
JavaScriptはブラウザで動くものということも理解しずらかったです。
デザインと言われてもどこからどこまでがデザインで、どこまでがシステムなのかもわかりませんでした。
それはJavaScriptやPHPがどこで動いてどんなことができるのか、CSSは何ができるのか、システムがどのように開発されてゆくのかを見て、やってみて初めて理解しました。

技術ネイティブは、それが日常なので、それがわからない人の感覚がわからないのです。
自分はその両者の気持ちがわかる貴重な体験をしているような気がします。

今はそんな風に考えています。
半年後に読み返したら自分はどんな風に思うのでしょうか。きっと恥ずかしくて削除するかもしれません。

現在、ミーティング中にぼんやりしたすれ違いを見つけても言葉にできなくて、結局何も発言せずで終わってしまいます。
もう少し感覚を研ぎ澄ませて、営業ネイティブと技術ネイティブの通訳ができたらなぁと思います。
以上、散文でした。

noVNCでパスワード入力を省略する

ブラウザから他PCを操作できる面白vnc、『noVNC』
使い勝手は通常のvncクライアントと比べちゃうと痒いところに手が届かない感は否めないが、ブラウザで動かせるのはやっぱり楽しい。無駄にブラウザで操作したくなる。
が、毎回パスワードを入力するのがとにかく面倒なので省略する方法はないかとソースを眺めていました。

まずnovncがインストールされている場所探しから。
自分の場合は
/usr/share/novnc
にありました。

その中の
/usr/share/novnc/include/ui.js
の600行目前後、
connect: function() {
の中身を編集。

connect: function() {
    ~省略~
    password = $D('noVNC_password').value;

↓直接パスワード書きこんでしまえ。

connect: function() {
    ~省略~
   password = 'パスワード';

novnc起動

/usr/share/novnc/utils/launch.sh --listen 80 --vnc 192.168.1.2:5901 -- web /usr/share/novnc

もっとスマートな方法がある気がするけども・・・

raspberrypiなどの更新系コマンド

apt-getなになに、がいつも混乱するので簡単にメモ。

普段Ubuntuを更新するときは下記のようにしてる。

sudo apt-get update
sudo apt-get upgrade -y
sudo reboot

raspberrypiを更新するときは下記のようにすると良さそう。

sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt clean
sudo reboot

そして

sudo rpi-update

このコマンドはプレリリース版へ更新するコマンドのよう。

それと

sudo apt-get dist-upgrade

dist-upgradeはDebianのバージョンを更新するコマンドのよう。

使いどころを気を付けなくては。

参考にさせて頂いたサイト
apt-get dist-upgradeとapt-get upgradeの違い
raspberrypiのOSを更新する方法
Raspberry Pi の OS を最新の安定版にアップデートする(2020年7月版)

昔パソコン自作したときのメモ

かれこれ10年前にパソコンを自作したときのメモを発掘。
当時のブログに書いたけど出来心でブログごと消しちゃいましたので。
読み返したらちょっと面白かった。恥ずかしいけど。

投稿日: 2011年3月5日
パソコンを初めて自作しました。

必要なもの
・CPU
・マザーボード
・メモリ
・ハードディスク
・DVDドライブ
・ケース

必要に応じて買うもの
・グラフィックボード(マザーボードにくっついているときはあってもなくても良し)
・サウンドカード(マザーボードにくっついているときはあってもなくても良し)
・電源(ケースにくっついているときはいらない)

あってもなくてもいいもの
・ファン
・グリス

気をつけること
・マザーボードとメモリの相性
・マザーボードにあるソケットにCPUが入るかどうか
・グラフィックボードの幅とケースの幅

OS、モニタ、キーボード、マウス等は別途必要です。

手順
・ケースにマザーボードを設置。
・マザーボードにCPUを接続。
・マザーボードにメモリをさす。壊れるんじゃないかというくらいの力がいる。
・ケースにHDDやDVDドライブと電源を取り付ける。
・HDDとDVDドライブをマザーボードに接続する。
・HDD、DVDドライブ、マザーボードと電源をつなぐ。
・モニタやキーボードを付け電源を入れる。

緊張の瞬間!初機動!!

画面真っ暗!!!音も鳴らず!!

マザーボードは、P7P55DーE EVOです。
ファンは回ってるけどビープ音は鳴らず。
CPU_LEDはちゃんと赤く光っている。

と、思いきや、点いているのが正常だと思い込んでました。点いてはいけないランプでした。
CPUと電源が繋がっていませんでした。

繋げたらちゃんと起動しました。安心しました。

サービス追加・停止

昔ローカルにメモしていたものをこっちに移動。
今のバージョンでも使えるのか。。。

サービスのリストをGUI風に表示。

sudo sysv-rc-conf --list

サービスの自動起動に追加

sudo update-rc.d サービス名 defaults

サービスの停止

sudo update-rc.d -f サービス名 remove

新しいUbuntuで試してみよ。



できないorz

改めてインストールする。

wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sysv-rc-conf/sysv-rc-conf_0.99.orig.tar.gz
sudo tar -zxvf sysv-rc-conf_0.99.orig.tar.gz
cd sysv-rc-conf-0.99
sudo make
sudo make install

参考にさせて頂いたサイトはこちら

Codiadでログインを省略する

ブラウザベースのIDE、「Codiad
インストールも手軽でとても気にってます。

が、raspberrypiなどローカルでメモ帳代わりに使ったりするときにいちいちログインするのが面倒だったので
省略できないかなぁと思って色々やってみました。

シュッとしたやり方が見つからなかったのですが(汗)

〇やり方その1

codiad/data/users.phpの中にあるユーザーデータを見る。


codiad/components/userclass.user.phpに上のログイン情報を追記

public function Authenticate()
{
    $pass = false;
    $this->EncryptPassword();
    $users = getJSON('users.php');

    /* --- 追記 --- */
    $this->username='ユーザー名';
    $this->password='ハッシュされたパスワード';
    /* --- /追記 --- */
 

こうするとログイン画面で何も入力せず、ログインボタンを押すだけでログインできる。

〇やり方その2
カッコ悪いけど・・・
codiad/index.phpのformにログイン情報を書いて、jQueryで自動サブミットしてしまえ。
下記の部分を






・
・
・

↓のように書き換え






・
・
・



これで0.5秒で自動ログインしてくれます。
スマートなやりかたではありませんが(汗)

Ubuntu20.04でipアドレスを固定する

Ubuntuを新しくインストールしました。
今まで/etc/network/interfacesで固定ipの設定をしていましたが、ない!!

調べたところ、こちらのサイトに掲載されていました。

ついでにsoftetherのvpnで繋いだところにも固定ipを振ってみました。

/etc/netplan/99_config.yamlを作成し、↓のように書きました。
一応うまく動いてますが、間違ってるかも。

network:
  version: 2
  renderer: networkd
  ethernets:
   eth0:
    dhcp4: false
    dhcp6: false
    addresses: [192.168.1.100/24]
    gateway4: 192.168.179.1
    nameservers:
     addresses: [192.168.1.1]
   tap_vpn:
    dhcp4: false
    addresses: [192.168.2.100/24]

wake on LANをオンにする

WOLを使って電源を入れたいけど、うまくいかなかったのでメモ。

まずマジックパケットを送る側のPC(自分の場合はraspberrypi)でwake on lanをインストール。

sudo apt-get install wakeonlan

そこから電源を入れたいPCのMACアドレスに向けて

wakeonlan 00:00:00:00:00:00

と送っても電源が入らない・・・
BIOSの設定も問題なし。何故だろう。。。

マジックパケットを受け取る側のPCにethtoolをインストール。

sudo apt-get install ethtool

WOLが有効か確認

sudo ethtool eth0(←ifconfigで確認)

ぶわぁっと出てくるので下記を確認
『Wake-on: g』gなら有効なので問題なし
『Wake-on: d』dなら無効なので有効にする必要あり

有効にするには下記のコマンドを打つ

sudo ethtool -s eth0 wol g

これを起動時に実行して欲しかったので、/etc/rc.local
に書きました。
そしたらうまくWOLできるようになりました!

参考にさせて頂いたサイトはこちら

bashで日付を扱う

.shファイルで日付を使いたいときのメモ

日付をフォルダ名にする。

#!/bin/sh
DIR=`date +%Y%m%d-%H%M%S`
mkdir /home/user/$DIR

一週間前の日付をフォルダ名にする。

#!/bin/sh
DIR=`date --date "7 days ago" +%Y%m%d`
mkdir /home/user/$DIR

参考にさせて頂いたサイトは
こちら

インストールされているphpのパッケージを調べる

新年始まりました。
おうちのraspberrypiにnextcloudをインストールしようと思ったところ
——
This version of Nextcloud requires at least PHP 7.2
You are currently running 7.0.33-0+deb9u10. Please update your PHP version.
——
と出てしまいました。PHPのバージョンが古いようです。

最新バージョンを入れるにあたり、とりあえずPHP関連のパッケージ?ライブラリ?は何がインストールされてるのかなぁと思い、調べ方を調べました。

apt list --installed | grep php

参考にさせて頂いたサイトはこちら