bussorenre Laboratory

hoge piyo foo bar

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

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

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

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

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

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

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

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

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

若い人が多い

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

話がそれました。

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

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

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

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

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

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

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

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

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

まとめ

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

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

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

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

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

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

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

CentOS 7 困ったこととその解決策まとめ

多分RHEL beta に触れている人とか、エンタープライズRHELを使っている人はもうすでに知っている情報なのかもしれないけれど。ぼくなりに困ったことと解決した方法なので一応載せておきます。

ifconfig が無い

解説記事はここ http://d.hatena.ne.jp/enakai00/20140712/1405139841

大本のiproute2はここ http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2

eth0 が無い or インターネットに接続出来ない。

  • ip a してみるとわかるけど、eth0とかが無い
    • enps0 に任意の数字 が有線LANの識別子
    • wlps0 に任意の数字 が無線LANの識別子
  • 昔ながらのeth0とかにする方法
[root@localhost ~]# vi /boot/grub/grub.conf
# 最下行に追加
net.ifnames=0
biosdevame=0

システムをリブート

  • 起動時に有線LANを自動的にDHCPに割り当てる。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
#以下の設定になっているか確認する。
BOOTPROTO=dhcp
ONBOOT="yes"

なお、ifcfg-eth0 がない可能性があるので、ifcfg-enp*s0などがアレばそちらを修正する。

詳細記事はココ。どうやら多くの人がハマっているらしい。 http://wiki.centos.org/FAQ/CentOS7#ethernet

iptablesが無い

mySQL がインストール出来ない

yum install mysql ってすると、なぜかmariadbがインストールされている。

  • wgetmysql をインストールしてもいい。
    • いいけれど、mysql自体がwikipediaが捨てるわgooglemariaDBに加担するわでてんやわんや。
    • 長い目で見たらmysqlが終わりそうなので別のDBを使うしか無い。
  • sqlite or PostgreSQLを使う
  • コレを期にmariadb に移行する

nginxがyum install nginx でインストール出来ない。

$ sudo vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

これでyum install nginx でインストール出来る。

その他

  • 何か発見し次第修正します。

CentOS7 をラップトップに入れた時のメモ

そもそもifconfig コマンドがなかった……( ゚д゚)ポカーン

こんばんは。@bussorenre です。なんか最近こんな書き出しが多い気がします。

とあるノートパソコンにCentOS7 をインストールした時に困った事をメモしました。

有線でインターネットに接続出来ない。

冒頭にもある通り、最小限の構成でインストールするとifconfigコマンドが存在しません。yum で入れ用にもネットワークが接続出来てないので詰んでます。色々ぐぐった所、"ip a" ってコマンドがあるらしいので、それを代用してネットワーク構成を確認。enp4s0 っていう構成がどうやら、NICMACアドレスを持っているっぽいので、それの設定をいじります。

$ sudo vi /etc/sysconfig/network-script/ifcfg-enp4s0
#ONBOOT=no
ONBOOT=yes    yesに書き換える。

$ sudo service network restart

以上。コレで、無事DHCPでインターネットに接続出来ます。

蓋を閉じた時にサスペンドしない

蓋を閉じた時にサスペンドされてしまうとサーバーとして詰んでいるので、やめさせます。なお、設定ファイルをいじった後にシステムの再起動が必要なので再起動します。

$ sudo vi /etc/systemd/logind.conf
HandleLidSwitch=ignore  ← 最下行に追加
$ sudo reboot

ssh は最小限の構成でインストールされていたので、後は無事遠隔で操作出来ます。

またねー!

envp - main関数3つ目の引数

昨日の俺 「知らんかった……( ゚д゚)ポカーン」

C言語のmain関数には引数が”3つ”存在する。

大体Cの入門書は int main() とかだし、ちょっと毛が生えてきて、引数を取って挙動を変えましょうとかだと、argc, argv を取るだけだと思うし、sublime TextのCのsnippet もargv までしか補完してくれないし、envp ってなんやねんΣ(゚Д゚)

crt1.cには以下のように書かれている。

extern int main (int, char **, char **);

この3つめの引数が いわゆるenvp で、"環境変数へのポインタ"らしい。 環境変数bashzsh

$ set

というコマンドで確認できる。いわゆる$PATHとかの事。 実際に引数を確認するプログラムを作成してみましょう。

#include <stdio.h>

int main(int argc, char *argv[], char *envp[])
{
    int i = 0;

    /*  argc の確認 */
    printf("argc = %d\n", argc);

    /* argv の確認 */
    printf("argv = [");
    for (i = 0; i < argc; i++)
    {
        printf("\'%s\' ", argv[i]);
    }
    printf("]\n");

    /* envp の確認 */
    printf("envp = [");
    for (i = 0; envp[i]; i++)
    {
        printf("\'%s\' ", envp[i]);
    }
    printf("]\n");

    return 0;
}

で、実行結果ですが、

./a.out
argc = 1
argv = ['./a.out' ]
envp = ['TERM_PROGRAM=iTerm.app' 'TERM=xterm-256color' 'SHELL=/bin/bash' 'CLICOLOR=1'......(非常に汚い環境変数なのでお見せできません笑

となりました。環境変数は必ず hoge=piyo foo=bar という文字列で格納されているので、strtok関数などで分解してやると扱いやすいと思われます。

これは便利だ!!

PWDやHOMEなどの環境変数も入っているので、HOMEフォルダにアプリケーションの設定ファイル.ore_rcみたいなのを置けます。また、envpはfork/execしても変更されず引き継げますので(※要調査。変数をそのまま引き継ぐわけではなく、envpが格納されているメモリがexecにより書き換えられない?)

8年近く、Cのmain関数は引数2つだと思い込んでいたので、非常に勉強になりました。というか、反省しています。常識を疑うって大事(白目

openFrameworks 自分用まとめ

おはようございます。@bussorenre です。 ちょっと野暮用でopenFrameworksを使うことになり、それについて調べていた次第であります。

openFrameworks とは

  • メディア処理のライブラリを集めたC++ のToolkit
  • OpenGLやrtAudioなどのライブラリのラッパーライブラリ
  • MIT media Laboratory が中心となって開発しているオープンソースライブラリ
  • Mac OS X / windows / Linux / Arm Linux / iOS / Android に対応
  • 最新版は0.8.1 で、過去バージョンの後方互換性は無い。(2014年6月8日現在) です。

製品用のソフトウェアに使用するのに便利なのかどうかはわかりませんが、プロトタイプやちょっとした実験目的に使用するには非常に強力なライブラリだなーと思います。

元々Direct3D を全速力で追っていた人間としては、非常に扱いやすくシンプルなライブラリだなーと感じています。メディア処理を扱うため、使用言語は闇とかなんだとか言われるC++ですが、特別闇な事を感じること無く使うことが出来ます。(今のところは

日本語の入門記事とか

日本においては 田所 淳 (tadokoro) on Twitter という方が第一人者らしく、公式サイトの日本語版 http://openframeworks.jp も管理されておられますし、非常に役に立つスライドもslideshare で公開されています。非常に勉強になりました。多謝多謝m(_ _ )m

メディア・アート II 第1回: ガイダンス openFrameworks入門

メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション

メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF

Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム

Media Art II 2013 第5回:openFrameworks Addonを使用する

Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv

Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL

授業用のスライドだと思うのですが、それをslideshare で公開されている多摩美術大学は先進的で素晴らしいと思います。一個人の強行かもしれませんが……笑

これを勉強するとどういうプロダクトが創れるようになるのか

kinect との連携

Interactive Puppet Prototype with Xbox Kinect on Vimeo

テッセレーション技術の応用と、3Dプリンタを用いたファッションジェネレーター。これは凄い。

Kinematics on Vimeo

プロジェクションマッピング

" chair " 3D projection mapping by Masaru Ozaki - YouTube

プロジェクションマッピングって普通のプロジェクターじゃ出来ないのかな???出来るなら気軽に試せて面白いと思うのでぜひやってみたい。

既存のグラフィックツールとどう違うのか

DirectX

おなじみMicrosoftDirectX こちらはゲームに特化しているというイメージが根強く、windows 系列以外での動作が非常に難しい。しかしwindows系で、強力なグラフィックカードを積んだパソコンに3D処理をさせるのには非常に強い。Kinectとの連携も強いらしい。

OpenGL

色々勉強したけれど、OpenGLそのものを直接叩くのは難しい(ぶっちゃけめんどくさい)ので、ラッパーライブラリを使うのはいいかもしれません…(どうせあとでOpenGLの知識が必要になってくるだろうし)

Unity 等のツール

完全にゲーム作成に特化しています。今回openFrameworksを選択した理由はゲームを創りたいという特化した目的ではないので、パスしました。

まとめ(というか感想)

デジタルとアートとの融合 なんてカッコイイことが言われていますが、その実態はまだまだ未知数です。今まで画面の中で閉じていたコンピュータグラフィックが、現実世界と交わり合うようになったら面白い事ができるかもしれない。というのは誰もが感じていることなので、その概要だけかじってみてもいいかもなーーって思いました まる

自分用 Swift 暫定まとめ(1)

ついにニュースでも取り上げられるようになった 若者のObjective-C離れ(笑)に対応するかのごとく、出てしまったSwift について、ある程度まとめました。

より詳細なドキュメントはiTunesストアにただで置いてあります。

実際にコンパイルして動作を確認するための Xcode 6 Beta は iOS Dev Center - Apple Developer から、「規約を更新したから同意してください」的なボタンを押すと、ダウンロード出来るようになります。

f:id:bussorenre:20140603102806p:plain

Hello World

println("Hello, Swift!!")

以上です。main関数などのエントリーポイントはありません。セミコロンで終わるステートメントでもありません。import も特に必要ありません。 組み込み関数??

変数宣言

var myInteger = 42
myInteger = 100
let myConstant = 0
var myDouble:Double = 0

test = 100  // エラー
myConstant = 100 // エラー

変数宣言はjavascript に似ています。 変数は先頭にvar、 定数は先頭にlet を明治します。varやletのない変数宣言はエラーとなります。当然ながらletで宣言した定数を変更するコードもエラーになります。

明示的に型を宣言する場合は、変数名の後にコロン(:)型名をつけます。Goっぽいですね。また、一度宣言した変数は型を変えることが出来ないようです。型キャストは出来ます。

var myInteger = 100
// myInteger  = 100.0  エラー
myInteger  = Int(100.0) // 型キャスト

配列と辞書型( array & dictionary)

var fruits = ["apple", "banana", "cherry"]
fruits[0] = "Orange"

var languages = [
    "C" : "old",
    "C++" : "too complex",
    "Python" : "too slow",
    "Objective-C" : "dead"
]
println(languages["Objective-C"])

文字列にシングルクォーテーションは使えない模様。Pythonjavascriptを足したような構文。また、辞書のキーにはあらゆる型が使える。

var floats = [
    1.0 : 100,
    2.0 : 200,
    3.0 : 300
]
floats[1.0] = 10000

C++のtemplate っぽい。と思っていたら空の配列、辞書宣言が以下のような感じだった。

let emptyArray = String[]()
let emptyDictionary = Dictionary<String, Float>()

非常に型が大事。Dictionary は、Dictionary という型(クラス?オブジェクト?)なのか、キーワードなのかまだわかりません(汗)

制御文

var individualScores = [43, 75, 100, 87, 23]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}

var n:Int = 100
while n > 1{
    n--
}
do{
    n++
} while  n < 100

var firstForLoop = 0
for i in 0..3 {
    firstForLoop += i
}

var secondForLoop = 0
for var i = 0; i < 3; ++i {
    secondForLoop += 1
}

ブロックはお馴染みの {}で作ります。Pythonのようコロンとインデントで識別ではありません。rubyのようなbegin end でもありません。while もdo-whileも、従来型のforもpythonっぽいforも使えます。

関数

func getGasPrices(item:Double) -> (Double, Double, Double) {
    return (3.59, 3.69, 3.79 * item)
}

複数の戻り値を返せる模様です。

クロージャ

swiftのクロージャーの表現は非常に写像っぽくていいと思いました。

func makeIncrementer() -> (Int -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}
var increment = makeIncrementer()
increment(7)

Int -> Int でINT型を引数にとってInt型を返す関数が創れるそうです。便利。

体力が尽きた/(^o^)\

研究の発表が明日じゃなかったらもうちょっとswiftやりたかった……木曜日くらいに続き書きますー。