bussorenre Laboratory

bussorenre Laboratory

Gem を作る

今更ながらRuby について真剣にやり直そうと思う。理由はまぁ色々有るのだけど。。。どうもRuby は苦手だ。

さて、gem を作る。今までとりあえずgem install していたけど、gem ってそもそもどうなっているんだろうか??

bundle gem gemname

これで雛形を生成することが出来る。おそらくデフォルトのままで問題ないと思う。生成されるgem のファイル構成は以下のようになっている。

├── CODE_OF_CONDUCT.md
├── Gemfile
├── LICENSE.txt
├── README.md
├── Rakefile
├── bin
│   ├── console
│   └── setup
├── lib
│   ├── testgem
│   │   └── version.rb
│   └── testgem.rb
├── spec
│   ├── spec_helper.rb
│   └── testgem_spec.rb
└── testgem.gemspec

4 directories, 12 files

testgem と言うのは私が書いた名前なので、各自の環境で変えていただきたい。ruby でrequire が呼ばれた時、このlig/testgem.rb が呼ばれる。また、このgem を呼び出すにはどうしたら良いのか。

このディレクトリとは別に、'callgem'というディレクトリを作成し、Gemfile を作成する。ローカルのgem を呼び出す時は、path属性を指定してあげる。具体的には以下のようになる。

gem 'testgem', :path => '../testgem'

さて、これでbundle install しようとするとエラーが起こる。どうやらspec ファイルがまだvalid じゃない(テストが通ってない)と言われるので、コレをアレコレ書く所から始めようと思う。

早速gemspec ファイルを開けるよく見ると中にToDo という文字列が見つかるので、そのへんを適当に改良する。以下のようになった。

# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'testgem/version'

Gem::Specification.new do |spec|
  spec.name          = "testgem"
  spec.version       = Testgem::VERSION
  spec.authors       = ["bussorenre laboratory"]
  spec.email         = ["mailaddress@bussorenre.com"]

  spec.summary       = %q{おためしで作ったgem}
  spec.description   = %q{こんなんでいいのか}
  spec.homepage      = "http://localhost:3000"
  spec.license       = "MIT"

  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
  # to allow pushing to a single host or delete this section to allow pushing to any host.
  if spec.respond_to?(:metadata)
    spec.metadata['allowed_push_host'] = "'http://mygemserver.com'"
  else
    raise "RubyGems 2.0 or newer is required to protect against " \
      "public gem pushes."
  end

  spec.files         = `git ls-files -z`.split("\x0").reject do |f|
    f.match(%r{^(test|spec|features)/})
  end
  spec.bindir        = "exe"
  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
  spec.require_paths = ["lib"]

  # ココに依存しているgem を追加する
  spec.add_development_dependency "bundler", "~> 1.14"
  spec.add_development_dependency "rake", "~> 10.0"
  spec.add_development_dependency "rspec", "~> 3.0"
end

本当にToDO のところを書き換えただけです。

さて、肝心のこのgem ですが、ping というメソッドを実装し、呼び出されたらpong と返す。たったそれだけのgemを作成します。

まずspec

require "spec_helper"

RSpec.describe Testgem do
  it "has a version number" do
    expect(Testgem::VERSION).not_to be nil
  end

  it "response pong if ping" do
    expect(Testgem.Ping).to eq('pong')
  end
end

実装

module Testgem
  def self.Ping
    'pong'
  end
end

これで、rspec が通った! というわけで、さっき作ったcallgem から呼び出してみる。

まずはbundle install する。すると問題なくbundle install 出来たので、コードを書く。

require 'testgem'

puts Testgem.Ping

これをbundle exec ruby main.rb で実行すると、無事pong と表示される。

結論

gem が出来た。所謂有名所のgem も基本はこういう原理になっているはずなので、コードリーディング等に役立てていきたい。

当事者になってわかったこと

ネガキャンするつもりはないんだけど、

確かに、自分が住んでるマンションでAirbnb されると嫌だなって思った。

今はまだ問題が表面化してないけど、いずれ表面化するんだろう。

一度失った心は二度と治らない話

事故で足とか腕とかを失うと、しばらく立てば新しく腕が生えてくる。なんて事はない。一度失った四肢は二度と復帰しない。

心もそうで、一度、致命的な損傷を受けると、一生治らない。 例えば虐待とか。いじめとか。DVとか。ネグレクトとか。

例えば足のない人は見たら分かる。ああ、この人、足無いんだなって。 でも、心の一部が欠けた人を見分けることは難しい。

周囲への理解を求める事は簡単だが、協力を得るのはほぼ不可能です。 あらゆる手段を使って、欠けた心を埋めないと、社会的に生きていけない。

精神科に行って薬をもらったり、パチスロやタバコに依存したり、恋人に依存したり。 あまり良くないことかもしれない。でも、生きていくためには仕方がないのです。

今日は4月5日。

社会人になったばかりで、前後左右よくわからないけど、とにかく頑張ろう!って意気込んでいる新人は多いと思います。

大いに頑張って欲しい。大いに活躍してほしい。

でも、絶対に心身を壊してはいけない。

一度壊した心や体は二度と元に戻らない。 これだけは忘れないでほしい。

壊れる前に必ず手を打つこと。 程よく頑張ってね〜

サーバーを可視化しよう!その1. cacti

@bussorenre です。

この記事ではcacti にトライした時のメモを残していきます。OS はCent OS 6.6 です。実際に試した環境はsakura VPS 2G プランのインスタンス上です。

また、「私の勝手な主観」が入る事が多いので、「そこは違うで」って指摘していただけるとすごい助かります。

cacti 概要

依存するソフトウェア - Apache web server... データを確認するのに使用 - MySQL...

# rootユーザーに切り替え。
su -

# root ユーザーに切り替わった後
yum install -y cacti mysql-server

# cacti が利用するユーザー、MySQL DB などを準備してあげる。
mysql -u root -p

mysql> CREATE DATABASE cacti;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON cacti.* TO cacti@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>bye;

# cacti にdbの設定を記述 (emacs でも)
vi /etc/cacti/db.php
$database_type = "mysql"; //使用するデータベース種別. MYSQL以外も使えるっぽい。
$database_default = "cacti"; 
$database_hostname = "localhost"; 
$database_username = "cacti"; // データベース接続に使用するユーザー名
$database_password = "password"; // データベース接続に使用するパスワード
$database_port = "3306"; // データベース接続に使用するポート番号
$database_ssl = false;
:wq

# 初期データベースの作成(0.8.8b はcacti のバージョン。)
mysql -u cacti -p cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql

# cacti をapache から確認出来るように設定をいじる(特にいじることがなかった\(^o^)/)
vi /etc/httpd/conf.d/cacti.conf
:wq

# crond で定期実行
vi /etc/cron.d/cacti (# 行頭コメントを外して有効化)
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

:wq

service crond restart

ここまでできたらhttp://localhost/cacti/install/ にアクセスして初期設定を行う。

個人的に感じたこと * 何度も見たことのある憧れの画面で感動\(^o^)/ * 監視用のマシンを1代別途用意して、そこにmySQL を用意して監視するという選択肢は考えたけど、それならsensu のほうが今どきでよさ気かもしれへんって思った。

参考にした記事 * モニタリングツール「Cacti」でのリソース監視 - さくらのナレッジ

サーバーの状態を可視化しよう!その0. 概要

こんばんは。夏!暑い!けどオフィス寒い!社畜なんてやってる場合じゃねええ!@bussorenre です。

さて、仕事で使うサーバーも趣味(minecraft)で使うサーバーも、「もっと楽に状態管理したいなー」って思ったので、例によって今回自分用に記事を書き残します。勉強中なので「これ違うで」「こんなんもあるで」みたいな事があれば共有していただけると幸いです。

現状の選択肢

らしいというのは、詳しい方の一言コメントです。

Graphite

今度書く

Cacti

今日書く

Munin

今度書く

Sensu

今度書く

情報に価値がある時代は、いつの間にか終わってた

お久しぶりです。ぶっそれんれです!

大学を無事卒業し、東京に出てきて社畜してます。まだ研修期間なので、非常に丁寧に扱われていますが………

この記事は、東京に出てきて、社会人になって思ったこと、感じた事、そしてこれから大事にしていきたい姿勢を、個人的にまとめる記事です。

要約すると、以下の三つです。

  • 大都会東京すげええ
  • 情熱は、インターネットでは伝わらない
  • リア充の事をリア充と蔑むのをやめる

この見出しだけだと、すごいネガティブベースな思想に聞こえますが、そうで無いのでご了承を……。

大都会東京すげええええ(ry

今までイベントや就活で東京に来ることは何度もありましたが、大学を出て実際に上京して「住む」と、色々な事が見えてきてびっくりします。

若い人が多い

人が多すぎて、通勤電車ヤバいとか思ったんですが、それよりも驚いたのが若い人の多さ。休日に知り合いが経営するカフェに遊びに行くために吉祥寺まで出かけたのですが、若い人が多い。子どもが多い。ついでに美人も多いしイケメンも多い。どうなってるんだ。

スウェーデンに出かけた時に思った事ですが、若い人(特に子育て層)が多くて、公園とか商店街とかにすごい活気があって良いなって思っていました。「あー日本にはこんな所ないわー」って思っていただけに、「日本にも若い人が多くて活気がある街があったんだ」って思いました。だって、昼間から外で酒飲んで騒げる場所、大阪にはあんまり無い。

大阪に漂う「未来無い感じ」が、東京にはそれほど感じられない。

滋賀の草津市は関西唯一の人口増加地域で、若い世代がすごい多くて、活気があって好きなのですが、古くからの地主が、よそからやってきたよそ者からお金などを搾取する構図が、どうしても拭いきれません。若い人を主役にしようという動きはあるのですが、本当の意味で若い人が主役になっている場所というのは、本当に少ないのが実情です。

在住している外国人が多い

京都も、それはそれは物凄い勢いで外国人が訪れます。しかし、それはあくまで観光。東京は「実際に住んでいる」人が非常に多い。色々なバックボーンがあれど、日本に来て、日本で働き、程度の差はあれど日本語を喋る彼らを「外国人」と呼ぶのはすごい失礼な気がしてくるくらい、溶け込んでいる。

神戸はそうではないのですが、やはり京都は外国人は「お客様」だし、大阪の一部地域は「在日差別」がすごく今もなお激しく残る地域で、とても彼らが住みやすい土地ではないんだろうなっって痛感します。(まぁ、だからこそ、ヘレンさんとかがすごい注目されるのですが)

プロフェッショナルが多い

これは今日の秋葉原で思ったのですが、メイドさんすごい。秋葉原に観光で訪れてた人に英語で全力でご主人様を口説いてる姿はマジですごいと思いました。最近JKリフレとか変なのが増えてきたので、全員が全員そういうわけではないんでしょうけど……。

まぁ、何が言いたいかというと、「私は世界にこういう価値を与えていく」って意識を持っている人が、多い気がします。「東京クッソ人多いのに、人手が足りへんとか言うのいみわからへんわww」って思っていたのですが、「人手が足りない」って言うのは「プロ意識を持てる人材が需要に見合ってない」って置き換えるとすごい納得しました。

かたや、大阪。仕事ありません。無くはないですが、それは昔ながらの歯車になれ精神です。歯車も大事ですが、車輪の再発明は時間の無駄ですし(勉強にはいいですが)、どうせなら歯車じゃなくて動力になりたい。

わけわからんIT系のスタートアップなんかより、その辺にある飲食店や美容院のほうが、よっぽど尊い。よっぽど世界に価値を与えている。そう思えるところが、少なくないです。

東京は活気があって、多様なプロフェッショナルが多い。
そんな土地だなって思います。

情熱は、インターネットでは伝わらない。

そんな東京ですが、本やネットやテレビで、「どんな場所か」って言うのは毎日のように、伝わってきてましたが、唯一インターネットで伝わりづらかったものがありまして。それは「情熱」です。

多くの先進国もそうですが、日本は、高度経済成長を経て、モノに困らない豊かな世界になりましたし、95年のwindows 95 を境目あたりに始まったIT革命によって、どこに居ても世界中の情報を手に入れることが出来る世界になりました。

伝わらないものは情熱。そして、人を動かすのは情報ではなく情熱であると。

今まで情報が人を動かすと言われていましたが、それは「元々情熱持つ人」が「情報を手に入れた」から実際の行動につながったんじゃないかなと思います。けれど、世界は、物凄い勢いでうつの人が増えていて。体は元気なのに、自分でご飯を食べようとすることすらできない人が居ます。個人的には「心の格差」とか呼んでいますが……。

大学時代、動機付けの研究をしていましたが、結局の所、心のエネルギーが、内発的であれ、外発的であれ、エネルギーが満たされれば人が行動できるんです。教育界隈、自発的な学習がいいとか、興味を引き出して〜とか言われてい居ますが、それは教師が上手に情熱を子どもに伝えることができなかった言い訳に過ぎないと思っています。当然、自発的な興味を引き出す事が出来れば、それは本当に素晴らしいことですが、それが難しい子どもが世の中には五万どころか数千万と居ます。そういう子たちに、背中を押すという事をしなかった大人の責任は非常に大きいと思います。

話がそれました。

大事な事は、「情熱が人を動かす」

東京は、確かに、人もお金もモノも情報も溢れているけれど、それよりも、情熱が溢れてる。そしてそれは、インターネットでは伝わりづらかった。少なくとも私は、実際に住むまで、情報と情熱の違いが分かってなかった。

リア充リア充と蔑むのとやめる。

そもそも、情熱ってなんやねんって話になるんですけど、日本語通りに解釈するなら、「心(性格には感情)が持つ熱量」じゃないかなって思っています。

私は体も心も熱いのは苦手です。所謂リア充とか、うぇい系のような人たちみたいな、あっつあっつの空間に打ち込まれると、湯だってへとへとになってしまいます。ですが、寒いのはもっと苦手です。誰も相手にしてくれない、鬱々しい、寒くてくらい世界は、もっと苦手です。

正直、私はうぇい系の人を暑苦しい奴らだと思って、蔑んでいました。

しかし、近年、エンジニアリングが重視される時代になった事もあってか、私みたいな奴の事を、キモいオタクだと蔑んでいたうぇい系の人たちが、寄り添ってきた。どういう考えを持って、どういう熱量で接すればちょうどいいのかとか、すごい考えてくれてます。

なのに私は、正直まだ「必要な時だけ寄り添ってきやがって」って、心のどこかで思っています。実際そうなのかもしれません。

けれど、私も所謂うぇい系の人を、うぇい系と蔑むんじゃなくて、人に情熱を伝えたり、場を創ったりするのが得意な、ファシリテーターと呼んで、寄り添っていきたいって思っていきます。オタクと呼ぶのをやめて、ギークであったり、エンジニアであったり、好意的な呼び方をつけてくれたように。

まとめ

一ヶ月間、社会人になって「私はこれから何になるんだろう?何がしたいんだろう?」って、必死に考えていました。

東京に来て一週間で、情報なんかよりも情熱に価値がある事は分かりましたし、それが出来る人(例えば営業の人とか)って本当にすごいなって思いました。

そして出た答えが「一緒に居て楽しい人になろう!」って事でした。やっぱり人間「楽しい」って思うことに対してはすごいポジティブで、最もエネルギーを持っている時だと思うので、「楽しい」のサポートがしたいなって。

そしてそのために「色々なプロフェッショナルの情熱を知ろう」って決めました。今までパソコンに甘えすぎました。自分の世界にこもりすぎました。反省。色々な人に会いたい!

明日でGW終わって、明後日からまた社畜生活始まるけど、「一緒に居て楽しい人」目指してがんばります。\(^o^)/\(^o^)/\(^o^)/

そうそう、秋葉原で、すっごい安いのに、それなりにいい音が出るギター発見したんですよ。ちょっとした宴会でコーラスマスター出来るくらいにはギター引けるといいなって事で、明日パーチェイスします(゚∀゚)

またね!駄文に付き合ってくれてありがとうございました!