Keep on moving

あんまりまとまってないことを書きますよ

Ubuntu 16.04 でiPhone にUSB でインターネット共有する

Ubuntu 15.10 から16.04にアップグレードしたところiPhoneでUSBでつないでインターネット共有できなくなったので
つながるようにした時の作業内容をまとめます

iphethのインストー

これのインストールと有効化がひつようです。

Ubuntu – Details of package ipheth-utils in xenial

sudo apt-get install ipheth-utils
sudo modprobe ipheth

これで iPhoneをインターネット共有したあとでラップトップPCにUSBでつないで、インターネッツにつながれば成功

/etc/modules への登録


起動時に毎回modprobeするのが面倒なそこのあなた!そんな僕みたいなあなたは /etc/modules に以下のように追加しましょう。
ここに記入するときはmodprobeはいりません

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
ipheth



これでUbuntuラップトップでもスタバでどやりんぐできるようになれました

C++11/14でPython3を拡張する(pybind11)

ブログ書くの久しぶりだなぁ。。。
システムプログラムってやつを初めて勉強してるので、まとめときます。

tl;;dr

このライブラリをつかうとBoost::Pythonよりも簡単にC++11/1
でPython3を拡張できる。

github.com

簡単な使い方

TODO 後で書く

CMakeとの連携

TODO 後で書く

まとめ

コード

github.com

回文かどうかを判定する関数を実装して、いろいろ速度計測してみた

回文かどうかを判定する関数を書きたくなりまして、goで実装してみました。
回文 - Wikipedia


さくっとかけてしまったのでなんパターンか書いてみて一番早い書き方を探ってみました。
近頃仕事でJVM言語を書く機会が多いので、久々に違う言語でかくと楽しいもんですよねー

実装案

以下の4実装で比較してみました

  1. reverseして元の文字列と比較
  2. 文字列を最初/最後 => 2番目/後ろから2番目 => ...で比較
  3. ↑をutf8モジュールを使って実装
  4. ↑をutf8モジュール+rangeで回す実装

結果

というわけでutf8モジュール+rangeで回す実装が一番早いみたいです。
もっと良い実装を思いついた方がいましたら、ぜひ教えてください。

ArchLinuxでJava環境を整える

近頃プライベートではMac OS X or Ubuntu で開発することが多いのですが、
たまには気分転換に家の開発環境をArchLinux に変更してみました。

JDKとかを手で入れるしかないのかなーと思ってたら、 @ さんに
pacmanでいれられるコトを聴いたので早速設定してみました

ArchLinuxでのJava の管理法

こちらを参考にする。
Java (日本語) - ArchWiki

java-runtime-common と java-environment-common をインストールすることで使えるようになる
archlinux-java コマンドを使うことで切り替え可能。
ちなみに僕はOpenJDKは仕事ではまったことがあるので使わないことにしてます。

Oracle JDKのインストール

AUR (en) - jdk

こちらを入れる。

AURについてはこちらを参照する。

Arch User Repository (日本語) - ArchWiki

Oracle JDK をインストールすると、上記のarchlinux-java がPATHの設定をうまいことやってくれます。どうやらJAVA_HOMEはforce setting しない様子。

ここまで来るとIDEとかも動くはず。

JVM言語いれたり、プロジェクト管理ツールいれたり

maven , gradle, scala, sbt,clojure, leiningenとかをあとは入れていけばいいだけ
現状、 gradle, leiningen はAURから取得する必要があるけど、ほかはpacman でインストール可能。

まとめ

homebrewのほうが便利だと思ってたけど、Archはここらへんよく出来てました。

2014振り返り

2014も終わることだし今のうちに振り返りを

アウトプットが減った

会社で話して満足しちゃうからかも。あとはTips的なことは書きたくないみたいな気持ちだったからだと思う。来年は心機一転いろいろ書いていくつもりです。

でも結構外で話した。

今年だと、PyConSG(LT), PyConJP, Akka meetup(LT)で話しました。
あとPy婚JP2014ですねー。


Py婚 JP 2014 (PyKon JP 2014) - connpass


PyCon Singapore 2014 - pycon.sg


CH04 Pythonの実装系総ざらい (ja) - YouTube



akka meetup - connpass


JVM言語でたくさんかいた

実はJVM言語って2年くらい書いてないってことは皆さんご存知ないはず。
Scalaを仕事で使ってるんですが、Javaの標準ライブラリとかお作法をしっとく必要が
あるってのがよくわかったので今年はいろいろやりました。
ちなみにClojureがかなり良く出来てるってのがよくわかりましたね


clojure/core.typed · GitHub

仕事でも使えるようにするかな。
あと正直JVMばかり書くのもなんなので、来年は他のをやりたいな。OCamlとかやりたい。

体力作り

ingressで歩いたり、ボルダリングを頑張って体力作りをしました。
後半仕事が忙しくて、手がつかなかったのが悔やまれる

本を読む(技術書、物語とわず)

月一で本を読むようにしてます。ちなみに今年のヒットはこれですね。


役にたつライブラリを書く(いつもは役に立たないものしかOSSでは公開しないし)

Web系の仕事ではないので、あんまり万人受けするものはないんだけど、
今年はこんなライブラリを公開した


masahitojp/java-bloomfilter · GitHub

あんまりみんな使うもんじゃないけど、僕の仕事では何回も使うので書いて公開しました。
これについてはまた別のエントリーで話します。

ちなみに、Java8の習作です。そして同じようなものはたくさんあるんですが、残念ながら速くない....

まー

今年は頑張った気がする。来年は久々に勉強会を開いたりしたいなー。

XCode5.1環境でansibleをいれる

version: 0.1
env:MacOSX Maverics 10.9.2
XCode: 5.1

Ansibleを入れようとしたら、以下のエラーメッセージがでた。

-clang: error: unknown argument: '-mno-fused-madd'


どうやら、そのままでは入らないっぽいです。困ったので検索したらぴったりの記事がありました。

http://stackoverflow.com/questions/22390655/ansible-installation-clang-error-unknown-argument-mno-fused-madd

以下のように実行することで解決。

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install ansible

先人に感謝。