時計を壊せ

駆け出してからそこそこ経ったWebプログラマーの雑記

情熱と仕事と休息

仕事をやっていると、無条件で楽しいときもあれば、苦しいときもある。 苦しいときに、めげずに前向きに仕事をするためには情熱が必要だ。 情熱があれば、苦しいときでもがんばれるし、ときにはすごい力を発揮出来るかもしれない。

人はそれぞれ、違うところに情熱を燃やしている。 ときには、情熱を燃やすところががチームや組織の目指すところと衝突することもある。 そんな状況が続いてしまうと、疲れてしまい、情熱はやがて枯れてしまう。 人によっては、情熱を枯らさないために、環境を変えるという選択もするかもしれない。 一度枯らした情熱に再度火を灯すためには、とてもエネルギーを使うから。

だから、情熱を枯らさないように、疲れたら気軽に休むのが大事だと思う。 気軽に休めない環境を作ってしまうとみんな不幸になると思う。 だから、みんな気軽に休んで、気軽に休める環境を作っていくと、みんな幸せになれるんじゃないかな。 逆に、休みにくい環境を作ってしまうと、最終的には、情熱が枯れても逃げられない人だけが残った無気力な組織になってしまうと思う。

情熱を枯らしてしまうまえに、疲れたら臆せず休んで、情熱が回復したら、また仕事に打ち込む。 そんな働き方をしませんか。だれとなく。

きょうは会社休みます。 1 (マーガレットコミックスDIGITAL)

きょうは会社休みます。 1 (マーガレットコミックスDIGITAL)

っていうアフィ記事でした。

追記: ※自分や自分の環境の話じゃないです。自分の環境は気軽に休めていい感じなので、そんな環境がもっと一般的になればいいなと思って書きました。

JavaでDH鍵交換の初期化ベクトルを生成する

20億のデバイスでDH鍵交換の初期化ベクトルを生成できます。
以下のような具合のJavaコードをCreateDiffieHellmanIv.javaとして保存しましょう。

import java.security.AlgorithmParameterGenerator;
import javax.crypto.spec.DHParameterSpec;

public class CreateDiffieHellmanIv {
    public static void main (String[] args) throws Exception {
        int bitlen = 1024;
        if (args.length == 1) {
            bitlen = Integer.valueOf(args[0]).intValue();
        }
        System.out.println("Generating DiffieHellman initialization vector... " + "bitlen:" + String.valueOf(bitlen));

        AlgorithmParameterGenerator gen = AlgorithmParameterGenerator.getInstance("DH");
        gen.init(bitlen);

        DHParameterSpec spec = (DHParameterSpec)gen.generateParameters().getParameterSpec(DHParameterSpec.class);
        System.out.println("P: " + String.valueOf(spec.getP()));
        System.out.println("G: " + String.valueOf(spec.getG()));
    }
}

コンパイルします。

javac CreateDiffieHellmanIv.java

実行します。

java CreateDiffieHellmanIv

生成されます。

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Generating DiffieHellman initialization vector... bitlen:1024
P: 145092357773036288785759831358363532457242150558361433565637207115514679411584100914869369530346476337051157705709858973344162440367967367833131503361926409583294585834757269998763188665426891871955393171079827134223234474237577100562967866893704671731464827466258191400928247383857555225260521584462646243757
G: 12076877650358872723433720596980214708516091408794486767543845481119286250958515342123571307476546309975921911735092979287081062213826767342459759424622360942234980320288127473825416480708591619721965721848952913500501787074997260325092958513471288533670082527450298168344704575797601113639175082590501897125

べんり。

YosemiteでAndroid StudioがJVMを見つけられずに起動出来ない問題の対処法

こういう具合のlaunchctlで読む用のplistを書いておいて、launchctl loadしてやるとよいっぽい。

setenv STUDIO_JDK on loaded.

いちいち全部の環境でsetupするのめんどくさいのでこんな具合で簡単に入るようにした。 launchctlの仕様よく分かってないのでなんか間違ってるかも。

curl -fsSL -o $HOME/Library/LaunchAgents/karupanerura.startup.android-studio.plist https://gist.githubusercontent.com/karupanerura/2bcf574f2ea514c92393/raw/78808e08270bb5fd23e79b81d4f8d52f8b617846/karupanerura.startup.android-studio.plist
launchctl load $HOME/Library/LaunchAgents/karupanerura.startup.android-studio.plist

参考:
http://qiita.com/neiraza/items/fdde2f922daa47b85bcd
java - Android Studio was unable to find a valid Jvm (Related to MAC OS) - Stack Overflow

2014年のKPT

昨年のKPT: 2013年のKPT - 時計を壊せ

技術と関係ないこと: 技術以外で2014年を振り返ってみる - あふれだす

KEEP

続けたい事、良かった事。

新しい分野に挑戦した

新しい言語に挑戦した

  • C++11
  • Go
  • Coffee Script
  • Ruby
  • XS(PerlのCバインディング用のマクロ言語/Perl C API)
  • Swift
  • Objective-C

といいつつ、まともにコード書いたのはCoffee ScriptとXSだけ…。(PROBLEM)

ISUCON4出た

  • 予選敗退

エンジニアのコミュニティにより深く関われた

  • YAPC::Asia 2014参加/ボランティアスタッフ/40min話した
  • YAPC::Asia Reject Con 2014参加/LTした
  • Ruby Kaigi 2014参加
  • PyCon JP 2014参加/パネルディスカッション出た
  • MySQL Casual Talks参加/LTした
  • Yokohama.pm参加/20min話した
  • Gotanda.pm発足/運営/20min話した
  • Hachioji.pm参加/たぶん
  • Perl入学式おてつだい
  • ドワンゴC++勉強会参加/LTした

ワークライフバランスよかった

  • 1年通してほぼ定時過ぎたら帰るか遊んでるかしてた
  • 昨年のPROBLEM(デスマった)を引きずらなかった!

PROBLEM

問題であること、よくないこと。

モチベーションの枯渇

英語の勉強が捗らなかったり、タイムゾーンを適切に処理するための良いインターフェースの研究が捗らなかったり、積ん読の消化が捗らなかったり。モチベーションを上げるの難しい…。

ISUCON4予選敗退

はい…。

IT芸人になりつつある

自分が作った代表的なプロダクト的なものが無いまま名前だけそこそこ知られてるって状況になりつつあってエンジニアとしての危機を感じている。(1年ぶり2度目) かといって、焦って変なもの生み出してしまうのも良くない。

TRY

挑戦したいこと。試したいこと。

遠方の地域PM/参加した事の無い地域PMに参加する

  • Hokkaido.pm
  • Niigata.pm
  • Fukuoka.pm
  • Kansai.pm
  • Yomitan.pm

英語を勉強する

  • YAPCで英語でトークしたい
    • 外国人と直接コミュニケーションしたい
  • 自分のモチベーション上げる施策考える

YAPC::Asia 2015を最高のYAPC::Asiaにする

最高のYAPC::Asiaにするぞ!!!!! というわけでなにかお手伝いする。

YAPC::Asia Tokyo 2015, Aug 20, 21, 22