Hirony Blog

またーりと

#落合陽一 さんの講演を聞いてきた@神フェス

こんにちはひろにぃです。今年の学園祭に落合陽一さんが来られて講演されました。その時に感じたことや心に残ったことなどを私の持論を交えて綴っていきます。
長い文章は苦手なのでそこは許してにゃん。


目次

  • 落合陽一とは
  • 東洋文化いいぞ〜
  • 脱近代化
  • 3種類以上のポーフォリを作れ!
  • 0から1を作るには
  • オブジェクト思考と投資で差をつけろ!
  • おわり

それでは各項目について噛み砕いていきます。


落合陽一とは

コスプレイヤーです。


東洋文化いいぞ~

この講義では松尾芭蕉の「古池や 蛙飛び込む 水の音」を例にしていました。 我々はこれを聞いてなんとなく「あー池に蛙が飛び込んでぽちゃんって音がしてるんだなぁ。古いけど命感じるわ〜。マジ卍」って連想すると思いますが西洋文化圏だと「so what」だそうで。 こんな感じで、短文から物事を連想できる能力は凄いとのこと。たしかに現状のAIは俳句を作ることはできるが俳句から連想できるとは考え難い。 東洋的な思考に切り替えよう。


脱近代化

人が人のために働くのではなくコンピュータを使って刷新していくことです。 もっと言うと「既存の社会システムをぶっ壊し新しい考え方で新しいシステムを作る」ってことですかね。 既存の社会システムってのは「中央集権的で統一、標準化されたもの」です。 ちなみに我々の使う現代日本語もそれらしいです。 最近は、AIと暗号通貨がどんどん既存システムを破壊していってるので見ていてとてもワクワクしています。


3種類以上のポーフォリを作れ!

何かひとつだけ専門性に特化したところでAIとバトルなんかできないわけです。なので手に職増やしましょうね〜〜ってこと。 これは日本ではみずほ銀行が証明してくれました。金融界ではIT企業など巻き込んで競争が激化する見込みがあり、みずほ銀行では今後10年かけて2万人減らしていくそうです。


0から1をつくるには

簡単です。いろいろなこと学べば良いのです。この「いろいろ」というのはと一見関係ないような分野のことです。 落合氏を例にすると「アート、デザイン、サイエンス、エンジニアリング」ですかね。 様々な分野を学ぶことでリサーチ力が上がり”1”を創りだすのが容易になると思います。 もし、知人に中学、高校とスポーツでも芸術でもいいので全国大会に出場したことがある人がいれば聞いてみるといいでしょう。絶対にその競技だけを練習してたと言いませんから。 そして思いついたアイディアを実現するためにプログラミングは最高のツールだと感じます。


オブジェクト思考と投資で差をつけろ!

オブジェクト「指向」じゃないよオブジェクト「思考」だよ。これ今ボクが考えた造語w モノ中心に考えることと抽象的思考と聞いてキュピーンと来ました。
つまり、モノの価値判断能力と抽象的思考力ね。これらを向上させ金融投資能力を鍛えることで圧倒的成長ができる。あ、他には問題解決力と話されてました。これについてはプログラミングをすれば身につくでしょう。


おわり

僕も波を起こすエモ味溢れる一人になれたらいいな〜と思いました(小並感)

パスワードジェネレーターを作ってみた

hirony.hatenablog.jp 上の記事を元にブラウザから使えるパスワードジェネレーターを作ってみた。
パスワード変更を強いられた際に使ってみてください。
↓リンク

https://www.hirony.jp/passgen

Nginx + Puma + Rails5 本番環境メモ

実行環境


ローカルマシーンでの作業

  • config/puma.rbに追記
# ファイルの先頭に追記
_proj_path = "#{File.expand_path("../..", __FILE__)}"
_proj_name = File.basename(_proj_path)
_home = ENV.fetch("HOME") { "/home/ubuntu" } # homeディレクトリ
pidfile "#{_home}/run/#{_proj_name}.pid"
bind "unix://#{_home}/run/#{_proj_name}.sock"
directory _proj_path 

さくらやAWSなどでの作業

  • git nginxのインストール
    $ sudo apt-get install git nginx -y

  • rbenvのインストール

# 段取り
sudo apt-get install -y git autoconf bison build-essential \
libssl-dev libyaml-dev libreadline6-dev \
zlib1g-dev libncurses5-dev libffi-dev \
libgdbm3 libgdbm-dev libsqlite3-dev

# install
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

vim ~/.bashrc
# 追記
export PATH=${HOME}/.rbenv/bin:${PATH}
eval "$(rbenv init -)"

source ~/.bashrc

# ruby install
rbenv install 2.4.1
rbenv global 2.4.1
ruby -v
  • yarnのインストール
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn

  • Nginxの設定ファイル、APP_NAME.confを作成。
# APP_NAMEを各々のRailsアプリケーション名へ変更

upstream APP_NAME {
    # railsのアプリケーション名とhome/ubuntuを編集
    server unix:/home/ubuntu/run/APP_NAME.sock fail_timeout=0;
}
 
server {
    listen 80;
    server_name 127.0.0.1;  # 本番環境のipアドレス、またはホスト名に変更
 
    root /home/ubuntu/APP_NAME/public;
 
    try_files $uri/index.html $uri @APP_NAME;
 
    location / {
        proxy_pass http://0.0.0.0:3000/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }
 
    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}
  • mkdirコマンドでホームディレクトリにrunディレクトリを作る
    $ mkdir -pv ~/run
  • githubからRailsAppをクローン
    $ git clone Railsアプリのリポジトリ名.git
  • Gemfileを編集し以下の項目を有効
    gem 'therubyracer', platforms: :ruby
  • インストール
    $ bundle install
  • Nginxを再起動
    $ sudo service nginx restart
  • pumaを起動し動作確認
    $ puma -w 4

  • 本番環境用にassetsをコンパイル
    $ RAILS_ENV=production rails assets:precompile
  • 本番環境用にデータベースをマイグレーション
    $ RAILS_ENV=production bundle exec rails db:migrate
  • 本番環境用にPumaをデーモンで起動
    $ RAILS_ENV=production RAILS_SERVE_STATIC_FILES=true SECRET_KEY_BASE=$(rails secret) puma -w 4 -d

終わりに

次はこれをDockerでどっか〜んと、セットアップできるようにする。 これは最適解ではなく「とりあえず」動くって感じです。あーもっと勉強しなきゃ。

Javaでパスワード生成器を作った

コーヒーと言えばすなば珈琲のひろにぃです。 プログラムの勉強をしたもののコードを書かない生活をしていたのでこれはやばいと思い簡単に書いてみました。

ソースコード

github.com

使い方

リンク先のREADME参照

補足

文字列の連結をたくさん行う際はStringBuilderクラスを使うと速く処理ができるんだって〜!

パスワード生成処理では、ランダムで生成された値を文字セット配列の要素番号として使い、生成結果用の配列変数に1文字ずつ入れてます。しかし、このままだと存在しない要素を参照する可能性があるので、割った余りを代入することでこれを防いでいます。

最後

次は何作ろうかな〜。

MacOS Sierraで内臓キーボードを無効にする

Macbookのキーボードの上にお気に入りの外付けキーボードを乗せると既存のキーボードを押してしまい意図しない入力が発生してしまう。 今回はこれを防ぐためにMacbook内臓キーボードを無効にする。

実行環境

参考サイト

ビルド&インストール

先にxcodeとboostをダウンロードしておく(boostは参考サイトにダウンロードURLが貼ってあるよ)

$ cd ~/Download
$ tar -xvf boost_1_64_0.tar

$ cd boost_1_64_0
$ sudo mkdir -p /opt/local/include
$ sudo mv boost /opt/local/include

$ git clone --depth 1 https://github.com/tekezo/Karabiner-Elements.git
$ cd Karabiner-Elements
$ make

すると.dmgファイルが出来上がるのでダブルクリックしてインストールする。

設定

  1. LaunchpadにKarabiner-Elementsがあるのでクリックして起動しdeviceタブに移動。
  2. modify events from this deviceの内臓キーボードのチェックを外す。
  3. disable the built-in keyboard while one of the following selected device is connectedの外付けキーボードのチェックを入れる。

すると外付けキーボードが接続されてる状態だと内臓キーボードを無効にし接続されてない状態だと内臓キーボードを有効にしてくれる。

おわり

HHKB pro2 type-Sが欲しい!!