読者です 読者をやめる 読者になる 読者になる

くろねこ日記

ソフトウェアに関する技術メモが多いです.

PyConJP2016に参加しました

はじめに

一年に一度開かれるPyConJP2016に参加してきました. 今回は1日目が仕事だったこともあって2日目の午後のみ参加になりました. 参加した感想を書きます.

場所

今年は早稲田大学でした.居候先から徒歩で行ける距離でした.個人的には来年も新宿付近で開催していただけると助かります(笑)

早稲田大学は二つキャンパスがあり,間違えて会場ではない方のキャンパスに行ってしまいました.ちょうど学祭?が開かれていたようで酒の販売もしていたため,危うく到着前に飲酒するところでした(汗)

講演とポスタセッション

参加が2日目の午後からということもあり時間の都合で多く聞けなかったのですが,印象に残っているものとしては「メタプログラミングPython」でした.

ポスタセッションのほうは僕が居たときには人があまりいませんでした.顔認識のポスタが面白そうだったので詳しく聞いてみたかったのですが,少し残念でした.

オープンスペース

今年はオープンスペースが部屋ごとに区切られていたようで,各部屋で面白そうなことをやっていました.4コマ漫画を自動で作る話を少し聞かせてもらいました.

おやつ

カップケーキとコーヒ美味しかったです.カップケーキにPythonのビスケット?がのっていてかわいらしかったです.

LT

走るルータの話が面白かったです.ハードウェア周りも気になりました(ルータのGPIOから取ってるのかルータとモータ制御に使うマイコンをLANケーブルで繋いでるのか).

ディスプレイもキーボード無い状態でraspberrypiをつかってみた

はじめに

久々にraspberrypiで遊んでみました.raspberrypiはlinux環境がつかえてGPIOも扱える良いマシンだと思うのですが,ディスプレイとキーボードを外付けで用意するのがツラいという問題があります.

いくつかネットの記事を漁っていたところ,ディスプレイもキーボードも無い環境で接続する例が出てきており,なかなか良い方法だったので,メモしておきます.僕が見た限りではraspberrypi B+の話が多くA+などLANコネクタの無いraspberrypiでは試していなかったようでした.今回はmacbook proとraspberrypi A+の間で接続を行なったのでそのことについてメモします.

用意したもの

  • raspberrypi A+(zeroでも良いかもしれない)
  • USBケーブル(タイプAオス- マイクロタイプBオス)
  • USBタイプのEthernetアダプタ(使用したのはこれhttp://logitec.co.jp/products/lan/lantxu2h3a/index.php)
  • macbook pro Retina(2012)
  • Apple Thunderbolt - ギガビットEthernetアダプタ
  • SDカード(使用したのはclass10の32GBタイプのマイクロSDカード(変換アダプタつかわないとそのままmacbookproに挿せませんので注意))
  • LANケーブル

OSインストール手順

すでにSDカードにOSのインストールが完了しており,ssh環境も整っている人はスキップしてください.

raspberrypiではnoobsの使用を推奨しておりますが,noobsではディスプレイとキーボードが必要なため,raspbian wheezyを直接インストールすることにします.この記事ではraspbian wheezyを利用するものとします.

まずはSDカードをマシンに差しましょう.次にraspbian wheezyを取得しましょう.

公式のサイトからダウンロード可能ですがリンクがとても重たいため(僕が試したときには14時間かかると表示されました...),

↓に張ったjaistのミラーリンクを利用すると良いでしょう.

Index of /pub/raspberrypi/raspbian/images

jaistのサーバからOSのつまったzipファイルをダウンロードしたあとは,そのzipファイルを解凍して,imgファイルを取り出しましょう.

僕の環境では2016-05-10-raspbian-jessie.imgという名前imgが/path/to/に保存されていますので,その前提で話を進めます.

SDカードのデバイスがどのように認識されているかを確認するため次のコマンドを叩いて確認しましょう.

df -h

もしわからなければ,SDカードを挿す前と後でdf -hを叩いてその差分を見ましょう.

僕の場合

/dev/disk4

というのがSDカードデバイスでした.各マシンによって異なるので,そこは各自の値に沿って進めてください.ここでは/dev/disk4がSDカードのデバイスであるという前提で話を進めます.

デバイスがわかったらアンマウントしましょう.

diskutil umountDisk /dev/disk4

次にダウンロードして解凍済みのOSをSDカードに書き込む操作をします.注意して欲しいのはofにmacのストレージを指定しないください.ストレージを指定するとOSごとふっとぶ可能性があります.

僕の環境ではSDカードデバイスは/dev/disk4というものなので,OSを書き込む先では/dev/rdisk4になります.diskにrをつけてください.

それではddをつかって書き込みます.

cd /path/to
sudo dd bs=1M if=2016-05-10-raspbian-jessie.img of=/dev/rdisk4

このまま数分放置してください.うんともすんとも言いませんが,問題ありません.

終わると完了メッセージが表示されます.これでOSのインストールは終了です.

デバイスの接続

OSをインストールしたSDカードをraspberrypiに挿しましょう.

次のようにデバイスを接続してください(図1を参考に).

f:id:kuroneko0208:20160516005520p:plain 図1: デバイスの接続図

  • macApple ThunderboltのEthernetアダプタを挿します.

  • raspberrypiにEthernetアダプタを挿します.

  • macとraspberrpiにつながっているEthernetアダプタをLANケーブルで繋ぎます.

  • 一応この段階まで進んだら,システムの設定から共有を選択してインターネット共有のThunderbolt Ethernetも共有できるようにしましょう.

  • 次にraspberrypiの給電ポートにUSBケーブルを挿し,macbookproと繋げて電源を投入しましょう.

  • 電源がはいるとraspberrypiのLEDが点滅を繰替えします.

ssh接続

ifconfigを叩いてEthernetアダプタのIPを知りましょう.

叩くとbridge100というところにEthernetアダプタのブリッジのIPが表示されます.192.168.4.1から192.168.4.255の範囲に収まっていることがわかります.

また,statusがactiveになっており,問題なく接続ができていることがわかります.statusがinactiveのまましばらく変わらない場合は接続の仕方が悪いのかもしれませんので見直しましょう.

bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether ba:f6:b1:41:83:64
        inet 192.168.4.1 netmask 0xffffff00 broadcast 192.168.4.255
        inet6 fe80::b8f6:b1ff:fe41:8364%bridge100 prefixlen 64 scopeid 0x11
        Configuration:
                id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
                maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
                root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
                ipfilter disabled flags 0x2
        member: en4 flags=3<LEARNING,DISCOVER>
                ifmaxaddr 0 port 16 priority 0 path cost 0
        nd6 options=1<PERFORMNUD>
        media: autoselect
        status: active

デバイスの範囲を確認できたら,arp -aを叩いてその範囲にipが存在しているか確認しましょう.

ちなみに僕の環境では192.168.4.3でした.

IPがわかったらsshで繋ぎましょう.

ssh pi@192.168.4.3

こうすると反応があります.パスワードが聞かれたら「raspberry」と入力すればraspberrypiにアクセスできるはずです.

おまけ(i2cを有効化する)

raspberrypiセットアップしたあとsshでアクセスできたまでは良かったのですが,i2cがつかえなかったので,その設定も載せておきます.試行錯誤的に行なったので正しいかは自信ありません...

まずは/etc/modulesに以下を追記しました.

i2c-bcm2708
i2c-dev

もともとi2c-devは存在していたので追記するのはi2c-bcm2708だけで良さそうでした.ただしOSのバージョン?によっても微妙に異なるらしくi2c-devが記載されてないケースもありそうです.もしi2c-devが無ければ追記しておいてください.

次に/boot/config.txtに以下を追記してください(A+,B+のみらしい).

device_tree=bcm2708-rpi-b-plus.dtb
device_tree_param=i2c1=on
device_tree_param=spi=on

なお,この3行の設定はここの書き込みを参考にしました. Arch Linux ARM • View topic - Unable to enable i2c device

ここまでいったら

sudo reboot

してi2c-toolsを以下のようにインストールしましょう.

sudo apt-get install i2c-tools

インストールが終わったら

sudo i2cdetect -y 1

を叩いてみて,表のようなものがでればi2cが扱えるようになっているはずです.

まとめ

raspberrypi A+を動かすためにディスプレイもキーボードも不要な方法を紹介した.

Groongaで学ぶ全文検索 2015-12-18に参加しました-DrillDown-

はじめに

今回はGroongaで学ぶ全文検索という勉強会に参加しました.

場所は渋谷マークシティにあるサイバーエージェントで開かれました. 会場までの道を通っていると焼き鳥の匂いがして焼き鳥の引力に吸い込まれそうになりました(笑)

今回は勉強会の一環でブログを更新しました.

Groongaとは列指向の全文検索エンジンのことです. 今回はdrilldownをテーマにして知識を深めることになりました.

テーマ(Drilldown)

そもそも,ドリルダウン(Drilldown)とは,カテゴリ検索みたいにクリックして集計(絞り込みではないらしいです)ができるもののようです.

Drilldownはカラムごとに集計して実現するため,Groongaのような列指向のデータベースで実現ができます.

こんなことを書いてもイメージがつかないと思うので,ドリルダウンの例をECサイトを想定して示します(表1).

表1:ECサイトの分類とカテゴリ,名前が記載されたデータ f:id:kuroneko0208:20151218212300p:plain

このうちコンピュータで絞りこむと

  • groonga入門 本 コンピュータ
  • go入門 本 コンピュータ

の2件が引っかかるイメージです.列なので縦方向に調べられるのでこのような検索が効率良くできるそうです.

使われ方としては全文検索したあとでドリルダウンをかけるようです.

どのようなところでつかわれているのかというと,図2のようにクリックしていくと候補が減っていくという検索につかわれるみたいです.

f:id:kuroneko0208:20151218234547p:plain 図1: るりまサーチのカテゴライズ結果

まとめ

ドリルダウンについてまとめてみた.

Electronはじめてみた

はじめに

ElectronというGitHubが公開しているデスクトップアプリケーション開発環境があります[1].

特徴としてはWebの知識だけでデスクトップアプリがつくれるところにあります.

今日はざっくりとElectronの導入から実行,パッケージングまでをラーメンタイマを例に上げて紹介します.

Electronとは

ElectronとはGitHubが公開しているデスクトップアプリケーションをNodejsをつかって開発することができる環境のことです.

ライセンスはMITで公開されており,商用にも問題なく利用ができます.

ネイティブなデスクトップアプリケーションを作るには,Windowsなら.Netに対応した言語(たとえばCSharpとか),OSXならCocoaに対応した言語(Swift),LinuxならGTKやQTなどがありますね.

これらに対応するにはそれぞれの言語を習得して使いこなさなければならず開発の手間も非常にかかってしまうという難しさがあります.ElectronはHTMLとJSの知識だけでOSX,Linux,Windowsに対応するネイティブなデスクトップアプリケーションを作ることができ,非常に便利なので今日はそのことについてまとめます.

環境構築

まずはElectron開発に必要な環境を整えましょう.

公式ページを見ても良いですが,qiitaの記事[2]がまとまっていたのでここを参照しつつラーメンタイマ開発環境を整えましょう.

shell

npm -g install electron-prebuilt

これでelectronをインストールします 次に開発するディレクトリを作りましょう

shell

mkdir /path/to/ramentimer

ramentimerというディレクトリ名にしました(笑).

shell

cd /path/to/ramentimer

ramentimerに移動して,

shell

npm init -y

対話シェルでいろいろ聞かれますが,無視してEnterを叩いていくとこれでpackage.jsonというファイルが生成されます.この中身を開くと

package.json

{
  "name": "ramentimer",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

となってます.mainで指定されているのがindex.jsなので,そこにelectronの基本的なコードを書いていくことになります.

ラーメンタイマの実装と実行

それではさっそく/path/to/ramentimerの中で作業をすすめていきましょう.

目標とするラーメンタイマは次のようなものです.見た目は図1と図2に示しました.

  • アプリを立ち上げたら3分カウントダウンして,3分経過したら「完成!」という文字列を表示する.

  • ウィジェット風にしたいので,アプリの背景は透過処理し,閉じるボタンなどは隠す.

f:id:kuroneko0208:20150921021644p:plain 図1: ラーメンタイマがカウントしている様子(中央の98sという文字列がアプリ)

f:id:kuroneko0208:20150921021921p:plain 図2: ラーメンタイマがカウントし終わった様子(「完成!」と表示している)

index.js(アプリの設定を書く)

まずはindex.jsというファイルをつくって次のようにElectronの基本的な設定を次のように書いていきましょう.

index.js

'use strict';

var app = require('app');
var BrowserWindow = require('browser-window');
require('crash-reporter').start();
var mainWindow = null;

app.on('window-all-closed', function(){
  if(process.platform != 'darwin'){
    app.quit();
  }
});
app.on('ready', function(){
  mainWindow = new BrowserWindow({width: 120, height: 80, transparent: true, frame: false});
  mainWindow.loadUrl('file://' + __dirname + '/index.html');
  mainWindow.on('closed', function(){
    mainWindow = null;
  });
});

最初のappやbrowser-windowはelectronが用意しているmodule(ただしい表現か怪しいです)です.

こちらにappやbrowser-windowに関する説明がのってます[3].

とりあえず,上記のコードで見てもらいたいのは

  mainWindow = new BrowserWindow({width: 120, height: 80, transparent: true, frame: false});
  mainWindow.loadUrl('file://' + __dirname + '/index.html');

この2行です.

  mainWindow = new BrowserWindow({width: 120, height: 80, transparent: true, frame: false});

についてはアプリのウィンドウのサイズ(widthとheight)や透過処理(transparent)をOn,閉じるボタンや最小化・最大化ボタン(frame)を消す設定をしてます.

  mainWindow.loadUrl('file://' + __dirname + '/index.html');

こちらではElectronのViewにあたる部分を指定してます.

ここまではざっくりとElectronのチュートリアルにものってますし,[2]のリンクにものっているのでとりあえず書いておくものくらいで留めておきます.

index.html

index.htmlというファイルを実際のアプリの見た目に設定しましたので書いていきましょう.

ラーメンタイマのカウントダウンの値と「完成!」という文字を表示させる部分を含んだhtmlファイルをつぎのようにつくります.

index.html

<html>
  <head>
    <meta charset="UTF-8">
    <title>ラーメンタイマ</title>
    <style>
      body {
        -webkit-app-region: drag;
        -webkit-user-select: none;
      }
    </style>
  </head>
  <body>
    <h1><div id="output"></div></h1>
  </body>
  <script src="ramen.js"></script>
</html>

まずは,index.jsでは透過処理や閉じるボタンを排除したために,そのままだとドラッグや選択ができず不自由なので,そのための設定をcssで表現してます. なお,[4]に詳しい説明が載ってます. 次にカウントダウンの値と「完成!」を表示させるためのoutputというidをもつdiv要素を定義しました. その下ではramen.jsというファイルを読み込むようにしました.ramen.jsというファイルにindex.htmlを動的に変更(カウントダウンしたり)するような処理を書いていきます.

ramen.js

ではカウントダウンして表示するコードをramen.jsに書いていくと,

ramen.js

"use strict";

var i = 180; //3分固定
function count(){
  if(i <= 0){
    document.getElementById("output").innerHTML = "完成!";
  }else{
    document.getElementById("output").innerHTML = i + "s";
  }
  i -= 1;
}
window.onload = function(){
  setInterval("count()", 1000);
};

こんな感じです.htmlの読み込み(windowが立ち上がったら),setIntervalが動作して1sごとにcountという関数を実行させます. countという関数の中ではさきほどdivで定義したoutputというidにinnnerHTMLをつかって,表示してます.

これでとりあえず完成です.

シェルの中で shell

electron .

これでアプリが立ち上がるはずです

ここでは紹介しませんが,html5にはmp3を再生する機能があるので,カレントディレクトリにmp3ファイルを置いて,3分経過したら読み込ませて鳴らしたりすることもできます.Electronはこのあたりのファイルもちゃんと吸収してアプリを起動してくれるのですごいなと思いました.

ロスコンパイル方法

さて,Electronの目玉であるクロスコンパイルについて書いておきます.

ロスコンパイルするためには,次のようなツールをインストールしなければなりません

shell

npm install -g electron-packager

あとは次のコマンドでアプリをつくりましょう.ここではosx,linuxの2つのプラットフォーム向けにコンパイルしてみます.

shell

electron-packager ./ ramentimer --platform=darwin,linux --arch=x64 --version=0.30.0

ここについては[5]のリンクにくわしく書いてあるので読んでみると良いと思います.

このコマンドをたたくことで,それぞれの環境に応じたディレクトリができるので,中身を開いて動かしてみましょう.

まとめとさいごに

Electronをつかった簡易なラーメンタイマを例にしてelectronの開発手順をまとめてみた.

今回のアプリはsinatra sapporoのもくもく会の中でつくりました.sinatra sapporoに感謝!

参照

[1] Electron公式ページ http://electron.atom.io

[2] 30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまで - Qiita http://qiita.com/nyanchu/items/15d514d9b9f87e5c0a29

[3] Electron Documentation http://electron.atom.io/docs/v0.33.0/

[4] Frameless-windowの説明 http://electron.atom.io/docs/v0.33.0/api/frameless-window/

[5] パッケージングツールの説明 https://github.com/maxogden/electron-packager

ハムフェア2015とYAPC2015に参加

はじめに

今日はハムフェアYAPCの両方に参加しました. どちらのイベントも初参加でした. ブログ書き終わるまでがYAPCらしいので,ついでにハムフェアのほうも書いておきます.

ハムフェア2015

ハムフェアは活気があり,多くのハム愛好家が集まっていました.

そのなかでも強く印象にのこったのは次のものです

自作の光通信装置

音声を光に乗せて飛ばすというもの.音声を乗せて実際に動いているのは初めてみました.

LEDで文字列の通信ならやったことがあるものの,照明のノイズが大変だったので,赤外線でやればよかったかなと思ったのを思い出しました.

77GHzのトランシーバ

これだけ高い周波数を扱うという機会はそうないので,未知の物に対する憧れですね.

巨大アンテナタワー

これは見たまま迫力ありました.アンテナタワー建てて運用してみたいものです.

格安ハンディ無線機

5000円ほどで購入できる無線機が売ってました.技的の関係気になるけども...

D-STAR

これはあちこちで見かけました.D-STAR運用という言葉こそ聞いたことがあっても具体的に何が面白いのかよくわかりませんでしたが,webサイトに接続できたりと興味深いものでした.

カンテナ

空き缶にエレメントをつけてアンテナにするというものです.D-STARの周波数なら丁度良さそうで,一つ作りたくなりました.

SDR

他の人がやっているSDRを初めて見かけたので興奮しました.

まとめと全体の感想

ハムフェアは見所たっぷりでした.あちこちディープなことをやっていて,そっちのスキルも伸ばしたいなと思いました.

まずは,コールサイン取るかな...といったところです.

YAPC2015

ハムフェアが終わってからYAPCに向かいました.時間的にも相当押していたこともあったのですが,クロージングまで楽しむことができました.

聞いたトークが「Profiling & Optimizing in Go」とLTのみでした.「Profiling & Optimizing in Go」とLTの感想を書いておきます.

Profiling & Optimizing in Go

Golangは,Go公式のチュートリアルをやったくらいなので,ほとんど知識がありません.しかしながら,とてもわかりやすく,Goのツールの良さについて話していただいたので,最後まで飽きずに聞けました. cpuやメモリ周りの測定があれだけできるというのは羨しいですね.

あとはGoのデータ構造にも触れていて,その解説がわかりやすく良かったです.

今回は翻訳装置を借りたのですが,翻訳が非常にうまく内容が理解しやすくて良かったです.

ここから下はLT

MySQL 5.7の罠があなたを狙っている

5.7になったときに気をつけたほうが良いオプションの話がうまくまとまって良かったです.

しれっとアップデートして済ませて怖い思いをしないようにしないとなと思いました.

吉祥寺.pmというイベントを作った話〜聞きたいトークが有れば自分でイベントを作ろう!〜

自宅から10分で勉強会作るのは楽そうで良いなと思いました.

たしかに会場まで遠いので,近所で開催して人があつまってくれたら良いかも...

命名の話をします

実装するときに名前以上のことをしないというのは納得でした.

buildという名前の中でビルド以外のことをするというのは良くないという考え方はコードを分離する上でも良い考え方ですよね.

botになる技術

これは面白かったです.優秀なプログラマの発言をまとめて,bot化するのは面白いかもと思いました(社内でも似たようなことをしてみたい気もする...).

モダンなクライアントサイド JavaScript に追い付くためのための小さな(しかし大変な)一歩の話

リファクタリング大変ですよね.

1000行以上あるCoffeeScriptリファクタリングするコツのようなものも聞いてみたい気もしました.

Evaluating your stylesheets

このツールは便利そうですね.フロント周りの知見が非常に薄いので,覚えておこうと思います.

Thank you for ${^ENCODING} variable

ちょっとperlすぎでついていけませんでした(汗)

ENCODINGという機能が消えるそうです.

perl後方互換性にこだわっているという話を聞いたことがあったので(素人なのでよくしらない),機能を消すということもやるのかという変なところに関心してしまいました.

本物の "ロック" ってやつを魅せてあげますよ - 分散排他ロック篇

排他的ロックの説明がわかりやすかったです.電話こそロックですね!

コミュ力あげてこ

モールス力上げていきましょう!WebAudioなかなか面白そうでした.

CONBUの道具箱

10人?くらいの人が一斉に行動してセットアップしているのはすごかったです. yapcのような巨大なカンファレンスに耐えられるネットワーク作りスタッフの力に支えられているところがあって,脱帽です.

Vim script静的解析の光と闇

わかりやすくて面白かったです.VimScriptの罠って怖いですね...笑い声が暗黒Vim王さんに思えたのですが,気のせいですか?

クロージング

これでyapcは一先ず終わりのようですが,yapc:asiaという名称自体はフリーなのでまたこういった巨大イベントが主催されるのが楽しみです.

帰り際

@mstshimoさんとお名前聞きそびれた方(rubyist)と3人でビッグサイトの中の喫茶店で雑談してました.

@mstshimoさんは2年ぶりに会いました.

もう一人の方は色々な勉強会に参加していたり,様々な言語をつかっていたこともあって凄いなと思いました.

業界の話,今後のITエンジニアとしての将来など話あえて良かったです.

僕の中ではこういう話はこの業界に入る前までは新鮮でしたが,今は共感できるところも多くあったのが印象的でした.

まとめ

ハムフェアYAPCの感想を書いた.

就職することになりました

はじめに

4/1にエイプリルフールのつもりではてなに入社しましたというブログを書いて,数人の方におめでとうございますと言われて,申し訳ない気持ちになったくろねこです.

土曜日に東京に行くという話だけは本当で,一応,学生兼ITエンジニアという形になります.

会社で働くことになった経緯

今の会社との最初の出会いはIT勉強会でした.その後,簡単に面接を受けて,数ヶ月様子をみてもらうということになりました.

面接ではとりあえず全部正直に,いつもどおりの自分で受けました.落ちてもしかたないかなとは思っていたものの,様子見でありながらも受け入れてくれたことに感謝しています.

仕事始めてみて(社員前(リモート))

12月から1月の後半までAnsibleでサーバ構築するコードを書いて,Djangoをつかったプロジェクトに僅かながらもコミットすることができました.仕事を始める少し前にAnsibleでサーバ構築の方法やDjangoで簡単なアプリケーション開発にもチャレンジしていて,タイミングが良かったなと思ってます.特にAnsibleを導入するとはおもってもいなくて,趣味でやっていただけなのに,仕事で使えるってことをしったときにはちょっと嬉しかったです.

2月に入ってからは受託開発に参加してほしいと言われ,そのときには12月から1月で進めたようなプロジェクトに比べて,僕が進めるだけのタスクがたくさんあって,Djangoの入門サイトを見つつコードを書くことになりました.作業範囲が広くて面白いです(現在進行形).このとき始めて東京に行ってチームメンバと会いました.入社後もこのプロジェクトをそのまま続ける感じになりそうです(というかやりたい)

入社まで

なぜ入社することになったかといえば,会社側が社員になる道を提案してくれたのが大きいです.

これまでのように,札幌で座敷童(ひきこもり)をしながら,仕事をすすめる方法として個人事業主として契約をするという選択もありました(会社側はそういう契約も一応可能だと提案してくれました). ただし,札幌は,勉強会も少なく(自分で開くだけの力はありませんでした),東京の場合は勉強会も豊富で,なんだかんだ学習するには適した環境に思えます.札幌では0件のギークハウスもたくさんあって人との交流もたくさんできそうですし.多少の人脈やらスキルアップも兼てこのような選択をしました.

最後に

社名をべつにあかしても良いのですが(そんなに後ろめたいわけでもないので),個別に教えるかもしれません. 現在はPythonを主力で使っている会社です.他にも積極的に新しい技術を採用しているようです.

「欲しいものリスト」をリンクに張っておくので,良かったら送っていただけると嬉しいです.

www.amazon.co.jp

リアルな僕が東京にいくので,twitter繋りの人ともどこかでお会いする機会もありそうですね. 札幌での勉強会も面白くためになったので,ただでさえ少ない参加頻度から,さらに参加できなくなるのは残念ですが,たびたび大学には顏を出すので,そのついでに参加するかもしれません.

学生についてももうちょっと詳しく書いてみたものの,こっちはこっちで長くなりそうなので省きました. 社会人といっても学生と兼業する形になるので,現在も,研究を進めて,論文を書いたりと休みの無い毎日を過ごしております. ただまあ仕事と研究の両立はなかなか難しいですね.学生プロジェクトをやっていたときの状態になりつつあるようです(汗) これについてはまた日を改めます.

株式会社はてなに入社しました

4月1日づけで株式会社はてなに入社しました.

今週の土曜日に本社に向かいます.

みなさま、どうぞよろしくお願いいたします.

株式会社はてなに入社しました - hitode909の日記

4月1日はエイプリルフール