2014年8月5日火曜日

近日リリース!Chrome Extensionで出来るチャットアプリ

タイトルのままです(笑)

匿名性の強いチャットアプリを近日リリースする予定です。

こういったコミュニケーションツールはサーバーの管理を考えると恐怖なので、流行るならじわじわユーザーが増えたら良いなぁという願望を持ちつつ、多分このままじゃ大して広まらないという予想。


一応、起爆剤として、スマホ版も開発しようと思ってます。
今思いついちゃったけど、ウェブビュー使えば一瞬だなー。
まぁこっちはちょっと様子を見て。
これからちょっと忙しくなりますし。


リリースしたら報告します!

2014年8月1日金曜日

JINSの出したウェアラブルに妙に可能性を感じた

ウェアラブルグラスの見方を変えた『JINS MEME』の衝撃

正直僕もこの記者と同じで、読みながらもどんなもんよ?なんて思ってたんですが、これがなかなか良い。

簡単に言うと、かけている人の視線の動き等をキャッチするセンサーを仕込んだというもの。

カメラやディスプレイを外して、外でなく内である使用者から情報を取ろうという完全に逆転の発想。

ついでに電池を食うハードウェアを外しているので連続利用時間まで伸びているという優れものです。


いやー、体との距離が一定に保たれる眼鏡の特性を生かした素晴らしい発想ですよね。


ここで紹介しているマウスや居眠り運転防止以外にも色々な応用が出来そうに思います。埋め込むセンサーで色々な事が出来そう。


なかなか、要チェックですわー

2014年7月24日木曜日

ChromeとAndroidの連携すげーなー。アムロに「そこっ!」って言われた気分w

今日気が付きました。

同じアカウントでログインしてるPCのChromeと自分のAndroidが連携して、PCのChrome上で位置情報が把握されている。

どうやらロケーション履歴を取得しているからのようですが。

GoogleはMapの渋滞情報もAndroidの位置情報使っているらしいし、ここまで考えてAndroidを作って世に出したのだとしたら、すごい壮大な計画ですよねー。

思いついても巨人Googleにしか実行できん(笑)。

PCで位置情報が正確に取れるようになるとなると、また面白いサービスが出来るかも知れませんね。


軍事利用されたら怖いけど…

さくらレンタルサーバーにnode.jsをインストールしてみた

スタンダードさくらインターネットレンタルサーバーにnode.jsをインストールしました。

こだわりゆえに死ぬほど大変でしたが、まとめておきます。

結果から言うと、node.js上でチャットアプリケーションがインターネット上のサービスとしてきちんと動作するところまで確認できました。


こういった事は計画が大事なので、どういう方針でインストールするか書いておきます。
(当然、事前に計画したものではなく、試行錯誤の結果である事は言うまでもない)


  • nvmからのインストールにこだわる
  • 問題が発生しても、安易にソース修正して機能削減を行わず、きちんと足りないライブラリをインストールするようにする
  • 倫理的に問題になりそうな手段はとらない
  • 出来るだけ理解してやる(一部解らないところも出ましたが…)

です。

また結果的に、やらなければいけない事は以下です。

  • nvmのインストール
  • libexecinfoのインストール
  • node.jsのインストール
  • アプリケーションの準備
  • アプリケーションの実行・確認

苦労話は省略して、上記の流れでどうすればいいのかを書いていきます。

nvmのインストール

これはgitで落としてきました。具体的には以下のコマンド

git clone git://github.com/creationix/nvm.git ~/.nvm

これでnvm実行に必要なすべてのファイルが~/.nvmにダウンロードされます。
~/.nvm/nvm.shを実行すればnvmコマンドが使えるようになりますが、ここではまだ実行しません。

libexecinfoのインストール

恐らくここが一番の難関だと思います。

結論から言うと、portsをインストールしてlibexecinfoをダウンロード・展開し、手動でhome/local/に作ったディレクトリにコピーするという手段をとりました。ソースからでも良いのですが、実施時点でFreeBSDの公開URLが解らなくなっておりまして…。正直、できるならソースからの方が楽だと思います。

まずportsのインストールはこちらを参考にさせて頂きました。


まずはディレクトリを準備します。参考サイトのコマンドそのままです。
% mkdir ~/local
% cd ~/local
% mkdir work
% mkdir work/ports
% mkdir work/ports/distfiles
% mkdir var
% mkdir var/db
% mkdir var/db/portsnap
% emacs ~/work/ports/portsnap.conf
最後のコマンドでportsnap.confのエディタが開きます。僕はemacsを使いますが、viでも問題ないです。

内容はこちらも参考サイトと同じ内容です。
パスの中のhome下のユーザー名部分の修正だけ注意してください。WORKDIRとPORTSDIRの2か所です。

# Default directory where compressed snapshots are stored.
WORKDIR=/home/(user name)/local/var/db/portsnap

# Default location of the ports tree (target for "update" and  "extract").
PORTSDIR=/home/(user name)/local/work/ports

# Server or server pool from which to fetch updates.  You can change
# this to point at a specific server if you want, but in most cases
# using a "nearby" server won't provide a measurable improvement in
# performance.
SERVERNAME=portsnap.FreeBSD.org

# Trusted keyprint.  Changing this is a Bad Idea unless you've received
# a PGP-signed email from  telling you to
# change it and explaining why.
KEYPRINT=9b5feee6d69f170e3dd0a2c8e469ddbd64f13f978f2f3aede40c98633216c330

# Example of ignoring parts of the ports tree.  If you know that you
# absolutely will not need certain parts of the tree, this will save
# some bandwidth and disk space.  See the manual page for more details.
#
# WARNING: Working with an incomplete ports tree is not supported and
# can cause problems due to missing dependencies.  If you have REFUSE
# directives and experience problems, remove them and update your tree
# before asking for help on the mailing lists.
#
REFUSE arabic chinese french german hebrew hungarian
REFUSE korean polish portuguese russian ukrainian vietnamese
REFUSE x11 x11-clocks x11-drivers x11-fm x11-fonts x11-servers x11-themes x11-toolkits x11-wm
REFUSE palm cad astro

このファイルをportsnapコマンドで読み込めば、portsの準備は完了です。
% portsnap -f ~/ports/portsnap.conf fetch extract update
portsからインストールしたものは、解りやすいように~/local/ports下にインストールするように設定します。

以下のコマンドで、ディレクトリの作成と~/.cshrcの編集を開きます。
% cd ~/local
% mkdir ports
% cd ports/
% mkdir -p bin sbin etc lib tmp/dist tmp/work var/db/pkg var/db/ports var/run
% emacs ~/.cshrc

.cshrcの追加内容は参考サイトとほぼ同じですが、NODE_PATHとNODE_MODULESを削除し、代わりにCPATHを追加しています。cプログラムソース内のincludeがうまく行くようにするためです。念のため、PATHに${HOME}/local/libも追加していますが、これは機能していないかもしれません。

また、SRCCONFの設定も重要ですので忘れずに入れてください。
setenv  PATH    ${PATH}:${HOME}/local/ports/bin:${HOME}/local/lib
setenv  CPATH   
setenv  CPATH   ${CPATH}:${HOME}/local/include
setenv  LD_LIBRARY_PATH
setenv  LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${HOME}/local/lib

setenv  INSTALL_AS_USER yes
setenv  PREFIX  ${HOME}/local/ports
setenv  LOCALBASE   ${HOME}/local/ports
setenv  PKG_DBDIR   ${LOCALBASE}/var/db/pkg
setenv  PKG_TMPDIR  ${LOCALBASE}/tmp/
setenv  PORT_DBDIR  ${LOCALBASE}/var/db/pkg
setenv  DISTDIR ${LOCALBASE}/tmp/dist
setenv  WRKDIRPREFIX    ${LOCALBASE}/tmp/work
setenv  PORTSDIR    ${HOME}/local/work/ports
setenv  PKGTOOLS_CONF   ${LOCALBASE}/etc/pkgtools.conf
setenv  DEPENDS_TARGET  'install clean'

setenv  X11BASE ${LOCALBASE}

setenv  PKG_CONFIG_PATH "$HOME/local/ports/lib/pkgconfig:$HOME/local/ports/libdata/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig:/usr/libdata/pkgconfig"

# Set user and group variables to ourself
setenv  BINOWN  `whoami`
setenv  BINGRP  `id -G -n ${BINOWN}`
setenv  SHAREOWN    ${BINOWN}
setenv  SHAREGRP    ${BINGRP}
setenv  MANOWN  ${BINOWN}
setenv  MANGRP  ${BINGRP}

# Make sure files are installed with correct default permissions
setenv  BINMODE 744
setenv  SHAREMODE   644
setenv  MANMODE 644

# Make sure we don't really try to become root, but just execute everything as ourselves
setenv  SU_CMD  "sh -c"

# Make sure the systemdefault make.conf is not read
setenv  __MAKE_CONF ${LOCALBASE}/etc/make.conf

# Keep our own version of ldconfig hints
setenv  LDCONFIG    "/sbin/ldconfig -i -f ${LOCALBASE}/var/run/ld-elf.so.hints"
#setenv LDCONFIG    "/sbin/ldconfig -f=${LOCALBASE}/var/run/ld-elf.so.hints -i -R=${LOCALBASE}/etc/ld-elf.so.conf "
setenv  LD_LIBRARY_PATH ${LOCALBASE}/lib
setenv  LD_RUN_PATH ${LOCALBASE}/lib

setenv  PATH    ${LOCALBASE}/bin:${LOCALBASE}/sbin:${PATH}
setenv  MANPATH_MAP ${LOCALBASE}/bin:${LOCALBASE}/man

# Set application specific variables to make sure it doesn't pick up things from the main system
setenv  APXS    ${LOCALBASE}/sbin/apxs
setenv  PERL    ${LOCALBASE}/bin/perl
setenv  PERL5   ${PERL}
setenv  SITE_PERL   ${LOCALBASE}/lib/perl5/site_perl/5.8.8
setenv  SITE_PERL5  ${SITE_PERL}
setenv  PERL_VERSION    5.8.8
setenv  PERL_VER    ${PERL_VERSION}

setenv  SRCCONF     ~/local/ports/etc/src.conf

ファイルを保存したら、上記パスを通したディレクトリの作成と、libexecinfoの展開を手動で行います。

まずはportsからlibexecinfoをmake installします。
先に言っておくと、これはルート権限がないため失敗に終わりますが、その後手動でコピーするため問題ないです。

% cd ~/local/work/ports/devel/libexecinfo
% make install

実行はpermission deniedで失敗に終わりますが、~/local/ports/のincludeとlibには目的のファイルが生成されています。~/local/にユーザー領域内での参照用のディレクトリ、includeとlibを作成し、生成されたファイルをコピーします。

% cd ~/local/
% mkdir -p include lib
% cp ~/local/ports/include/execinfo.h ~/local/include/
% cp ~/local/ports/lib/libexecinfo.* ~/local/lib/


ここまで終わったのち、.cshrcを読み直します。

% source ~/.cshrc


node.jsのインストール

ここまでくればあと一歩ですが、実は大きな問題があります。

落としてくるソースのmksnapshotのコンパイルでlibexecinfoを利用するのですが、ライブラリの参照先が固定で-L/usr/local/libになっているのです。

execinfo.hのincludeはCPATHで対応できるのですが、v8エンジン系のコンパイルで使用しているgypのパラメータファイルに固定で記述された値が使用されており、ここを修正しないとコンパイルが成功しません。

ここで通常はソースからコンパイルを選択すると思いますが、僕はあえてnvmでやりたかったのでnvm.shを書き換え、makeが走る前に自作のシェルが動作するように変更しました。

関数nvm()内、case文の"install" | "i" )下、変数tmpdir、tarballの設定が終わった後のif文

      if (
        [ -n "$tarball" ] && \
        mkdir -p "$tmpdir" && \
        curl -L --progress-bar $tarball -o "$tmptarball" && \
        nvm_checksum "$tmptarball" $sum && \
        tar -xzf "$tmptarball" -C "$tmpdir" && \
        cd "$tmpdir/node-$VERSION" && \
        ./configure --prefix="$NVM_DIR/$VERSION" $ADDITIONAL_PARAMETERS && \
  +     source ~/.nvm/preinstall.add.sh && \
        $make $MAKE_CXX && \
        rm -f "$NVM_DIR/$VERSION" 2>/dev/null && \
        $make $MAKE_CXX install
        )
      then
        nvm use $VERSION
        ...


追加したシェルスクリプト~/.nvm/preinstall.add.shの内容は以下です。

#!/bin/sh

function vercomp () {
if [[ $1 == $2 ]]
then
return 0
fi
local IFS=.
local ver1=($1) ver2=($2)
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
do
ver1[i]=0
done
for ((i=0; i<${#ver1[@]}; i++))
do
if [[ -z ${ver2[i]} ]]
then
ver2[i]=0
fi
if (( 10#${ver1[i]} > 10#${ver2[i]} ))
then
return 1
fi
if (( 10#${ver1[i]} < 10#${ver2[i]} ))
then
return 2
fi
done
return 0
}

local_vsn=${VERSION/v/}

local -i check
`vercomp $local_vsn "0.10.28"`
check=$?

if [[ $check = 1 ]]
then
fileadd="host"
else
fileadd="target"
fi

sed -i".org" -e "685s/-L\/usr\/local\/lib/-L\/usr\/local\/lib -L$\{HOME\}\/local\/lib/" "$tmpdir/node-$VERSION"/deps/v8/tools/gyp/v8.gyp

sed -i".mid" -e "696s/-L\/usr\/local\/lib/-L\/usr\/local\/lib -L$\{HOME\}\/local\/lib/" "$tmpdir/node-$VERSION"/deps/v8/tools/gyp/v8.gyp

sed -i".mid" -e "707s/-L\/usr\/pkg\/lib -Wl,-R\/usr\/pkg\/lib/-L\/usr\/pkg\/lib -Wl,-R\/usr\/pkg\/lib -L$\{HOME\}\/local\/lib/" "$tmpdir/node-$VERSION"/deps/v8/tools/gyp/v8.gyp

sed -i".mid" -e "682s/{/\{'include_dirs+':['$\{HOME\}\/local\/include'],/" "$tmpdir/node-$VERSION"/deps/v8/tools/gyp/v8.gyp

sed -i".mid" -e "693s/{/\{'include_dirs+':['$\{HOME\}\/local\/include'],/" "$tmpdir/node-$VERSION"/deps/v8/tools/gyp/v8.gyp

sed -i".mid" -e "704s/{/\{'include_dirs+':['$\{HOME\}\/local\/include'],/" "$tmpdir/node-$VERSION"/deps/v8/tools/gyp/v8.gyp


sed -i"org" -e "117s/-L\/usr\/local\/lib/-L\/usr\/local\/lib -L$\{HOME\}\/local\/lib/" "$tmpdir/node-$VERSION"/out/deps/v8/tools/gyp/mksnapshot."$fileadd".mk

sed -i"org" -e "117s/-L\/usr\/local\/lib/-L\/usr\/local\/lib -L$\{HOME\}\/local\/lib/" "$tmpdir/node-$VERSION"/out/deps/v8/tools/gyp/v8_shell."$fileadd".mk

sed -i"org" -e "162s/-L\/usr\/local\/lib/-L\/usr\/local\/lib -L$\{HOME\}\/local\/lib/" "$tmpdir/node-$VERSION"/out/node.target.mk


恐らくFreeBSD部分だけ修正すればよいと思われますが、/usr/local/lib/を直接指定している部分はすべて変更してあります。

※異なる(特にv0.10.29以降)のバージョンをインストールする場合には、一度ダウンロードして変更対象ファイルの内容を確認し、sedの行数指定などを見直す必要があります。全面的な見直しも必要かもしれません。

このシェルスクリプトには作業当時の最新バージョンであるv0.10.29のgyp関連の設定ファイル名が変更されている事への対応が入っていますが、実際この作業をしている時点でv0.10.29のインストールは出来ませんでした。
uv.h内の変数addr, address6について'xxx' has incomplete typeのエラーが出ていたためで、これはこちらで対処する範囲外と判断し、v0.10.28のインストールを実施しています。


ここまでの修正を実施して、nvm install v0.10.28を実行すればnode.jsがインストールされるはずです。

% bash
$ source ~/.nvm/nvm.sh
$ nvm install v0.10.28

アプリケーションの準備、実行・確認

ここまで来れば後はアプリケーションを動作させるだけ!と思っていたのですが、実はここまで自分が全く考慮していなかった問題があることが解りました。

解放されているポートってあるのかな…?

さくらインターネットスタンダードに関して調べてみたところ、ポートはこれ以外は閉めてまっせ、とのこと。


正直、これを見る前に闇雲にやってみて他にも空いてそうなポートが無きにしも非ずだったのですが、とりあえず開けてまっせ、とのたもうておられるWebDAVの9800で起動してみたところ、アプリケーションは問題なく動作していることが確認できました。

本番稼働は別として、デモや研究などには利用できそうに思っています。



2014年7月9日水曜日

店舗用プリンタなどのハードウェアがこんなに進化してたなんて知らなかった自分が恥ずかしい

今はHTTPやWebSocket on HTTPで印刷からキャッシュドロアなどのデバイスのコントロールまで出来ちゃうらしいです。


知らなかった~。

つまり、PCやタブレットなどのスマートデバイスに表示されたウェブアプリケーションでPOS周りのコントロールが出来ちゃうんです。

しかも、JavaScriptでシリアル制御信号を送るプログラムも組み込めるので、POSだけに留まらない、店舗全体で統一されたIT環境を作ることだってできちゃうはず!


しかし、自分が研究していた技術がこんなところで素敵に応用されているとは。。


まるで回し者のように宣伝すると、EPSONのインテリジェンスレシートプリンタに搭載されている、ePOS-PrintとePOS-Device。

【概要】

要はePOSサーバーと言っていいですかね。これを搭載したプリンタをLAN内に置いておくと、そこにHTTPやWebSocketで命令を送信することで印刷やドロアオープンなどの命令を肩代わりしてくれるというもの。

しかもePOS-Print APIとePOS-Device APIという形でJavaScriptで簡単に起動できるのでnodejs知ってる人なら見ただけで構築イメージが湧いちゃいます。

JavaScriptが都合悪い場合でもSOAPの口を用意してくれているので、ブラウザアプリ以外からでも同じ経路で命令を出すこともできます。

デバイスの登録もスクリプトのセットもプリンタ側のウェブUIで簡単に出来るので、設置の方も問題なし。

さらに、ちょっとしたデータサーバーもWebSocketで用意されているので、あるデバイスで発生したイベントをチャットのように他のデバイスで拾い、しかもさらに別のデバイスの状態に応じて動きを変えるなんてこともできそう。


店内の誰かのハッピーバースデーで動画を流したり、入店待ちの客の人数に応じて、長居してるお客さんにメッセージを流したりできそうかなー。


なんか色々考えちゃいますねー

2014年6月29日日曜日

Googleが空間認識するタブレットを作成するそうです

6月27日のニュースにこんなのがありました。


空間認識タブレット発売へ=米グーグル、来年初旬にも


今僕が研究しているAR(拡張現実)の中にも奥行などの空間を認識する技術があるのですが、おそらくこれをもっとハードウェアレベルで精緻にして端末に初期搭載し、開発者向けにゲームその他アプリ開発のプラットフォームを提供しようというもの。


この技術自体は面白いのです。

カメラのフレームに入った空間を認識することで、より自然なキャラクターなどの配置が行えますので、現実をベースにしたリアリティのあるコンテンツが提供できるのです。


ただ、これ研究してて本当に難しいのが、「どんなコンテンツを乗せると面白いのか」と言うところ。


何乗せてもある程度面白いものが出来るのですが、なかなか面白いアイディアが浮かばないんですよね。


今回のGoogleの取り組みで、より多くの技術者が参画して面白いアイディアが出ると良いなと思います。

2014年6月22日日曜日

GoogleのWeb Starter Kitが良さげ

Web作成するうえで必ず書かなければならないコードってありますよね?

最近ではモバイル端末も意識しなければならないので、非常に多くのコードとレイアウトへの意識が必要になりました。


それらをドキュメンテーションも含めてテンプレート化しちゃったものがこちら

Google Web Starter Kit


さっそくダウンロードしてみました。


結論からいって、なかなか良さげです。さすがGoogle。

めんどくさーいレスポンシブも含めてある程度のデザインがclass指定だけで出来ちゃう。

アイコンとかもセットになってる。


依存するライブラリもないみたいなので、bootstrapなんかとも共存できるんじゃないかな?


詳しい使い方は同梱のstyle guideで確認できます。メニューは以下。


  1. Typography
  2. Buttons
  3. Lists
  4. Links
  5. Icons
  6. Breadcrumbs
  7. Table
  8. Grid
  9. Colors
  10. Highlights
  11. Editorial header
  12. Article section
  13. Guides section
  14. Page header
  15. Quote
  16. Featured icons
  17. Featured spotlight
  18. Featured list
  19. Featured block
  20. Article navigation

雰囲気はこんな




今度うちのサイトをこれ使ってリニューアルしてみようかなー

2014年6月20日金曜日

量子コンピュータがあぁぁぁ!

ついに商用化されましたね!

第一号のユーザーはロッキードマーチンだとか。何に使うんだろう?

これの何がすごいって、うん。俺説明できるほど知識ありません、残念ながら(笑)。


普通のコンピュータは入力データをアルゴリズムを通して出力データに変えます。

つまり、何某かの現象の答えをコンピュータに出させるには、その現象を間違わずに表現した「アルゴリズム」が必要になるのです。

それに対して量子コンピュータはそんなもの必要としません。

数あるパターンの中から最適なものを抽出してくれるのが量子コンピュータだからです。


今はまだここまでですねー。

これから「何に使うのか?」を考えていって、それが世の中を劇的に変えていったら、「量子コンピュータは凄い!」という事になるんじゃないでしょうか?

まぁでも間違いなく近々そんな日が来ると思いますけど。



いやー胸熱だなー。ロマンの塊ですやん、量子コンピュータって!


良い世の中に生まれました(笑)

2014年6月19日木曜日

LINEを韓国国情院が傍受しているというニュースで思う事

事の発端はFACTA ONLINEが報じたニュース

韓国国情院がLINE傍受

「通信の秘密」を守る法律がない韓国では問題にならないため、あっさり認めたというもの。

これに対してLINEの森川社長は「きちんと通信を暗号化してるのでありえません」といった趣旨の反論をブログで行った。


この社長、実は過去にやらかしたことがある。LINE上の通話において、電話番号の詐称が実際可能であるにもかかわらず、問題ないから安心して使ってくださいといった発言をした。

それもあって、この反論を聞いても手放しで安心できないという人が多いという事なんだろう。


僕が思うに、これ実際やってると思います。

通信を暗号化しているからとか言っていますが、全区間暗号化しているとは思えませんし、実際やろうと思えば何だってできちゃいます。サーバーハックして秘密鍵抜くなんて方法から、ハードディスクを繋いでるコードをネットワークだ!って言いきってしまう力技だって存在します。

傍受したデータを欧州のサーバーにおいて解析しているという話からして真実味があります。


じゃあもうLINE使わない方が良いのか?と聞かれたらケースバイケース…と答えるかな?


僕自身、こんな可能性はLINEが出たころからずーっと考えていたことで、最初っから使わないようにしていましたが、今では周りのみんなが使うので使っています。

友達との日常会話や連絡には便利ですからね。


なんで使うのかというと、恐らく実害はないだろうという希望的観測があるからです。


実はテキストデータの解析って非常に難しい分野で、テキストマイニングという統計技術を実際に導入しても効果の得られる変数を設定しない限りあまり意味のないものになってしまいます。

統計データですらこんなですから、その天文学的数量になる個人の1データなんて解析する余裕はほとんどないはず。特に無名の1個人であれば彼らにとって追跡するメリットがない上、ものすごいコストがかかってしまうため、やる意味はないかなと。


政治家や影響力のある著名な方は別ですが、個人が韓国の国益に関しない情報を発信する分には、それほど大きな問題にはならないかと思います。個人にとっては。


ただ、とはいえ統計で「日本の動き」を解析されている訳ですから、少なからず国益を損ねていることは確か。

愛国の士のみなさんは無視できない問題でしょう。

ならば、絶対安心な「完全に日本にローカライズされたLINE」を作ってみてはどうでしょうか?と思ったりしました。



2014年6月18日水曜日

もひとつブログ作りましたー

なんかやっぱりどうしても更新が少ないなーと思っていました。


で、考えたんですけど、僕が今興味を持っている事って、実はIT技術以外だったりするからなのではないかと…。


もちろん生業ですし、これからも続けていきますし、このブログも更新したいと思ってます。


でもなんかあのAndroidが出たころの興奮と情熱がないんですよね。。


Firefox OSの開発端末買ったらまた違うのかもしれませんけど(笑)。
※ってか買う予定


あと、今iPhoneアプリもやってますので、何某かの記録を残したいと思います。みんなが躓きそうなコアな情報を出せたらいいな。



はい、本題に戻ります。

主に時事ネタを取り扱う予定のブログを開設しました。

タイトルは「自分なりに本気です」


自分なりに本気です


ネーミングセンスなどはノー突込みでよろしく(笑)


しばらくはこっちの方が更新されそうだな



2014年6月17日火曜日

Docker が気になる

GoogleのApp EngineもDockerをサポート、オープンソースのコンテナ管理ツールを提供


これを見て、Dockerが来るような気がした。
各クラウドサービス間の移行まで出来るようになったら無敵じゃない?


色々なところで、色々な環境で開発をしてきましたが、サーバー増強やデプロイで失敗している人たちのどれほど多い事か…。

これは多くの場合、「開発側と管理者側のコミュニケーション不足」が原因となっていると思うんだけど、開発側でDockerにしておけば必要なコミュニケーション量が大幅に減るので問題が激減するような気がする。

リリース以降のしょーもないミスが減ればみんなハッピーなんじゃないかと。


ただ、俺まだこれ使った事ないんです。。
なのでホントにこれで解決出来るのかわからないのだな(笑)!


いつか試したい。


2014年5月29日木曜日

日付入力を行うjQueryプラグインを作ってみた

DatePickerを良く使っていたのだけれど、サジェスト機能とか欲しいなと感じておりました。

5って入力したら今月の5日とか簡単に入力出来たらいいなと。


DatePickerにアドオンすることも考えたのですが、まぁせっかくなので一から作ったのがこれ。


[Dater]
http://nolib.jp/dater.html

見た目シンプルにーとか思ったんだけど、白すぎ?


フォーム部品なので、送信のテストはちゃんとやったつもりです(笑)

動きも一連の動きでは問題ないはず

スマホだとカレンダーの選択がムズイかなー。ちっちゃくて。

2014年3月29日土曜日

久々です。近況など

だいぶ更新してなかったですねー。

2月の半ばから2週間ほどタンザニアに出張しておりましたがゆえに、その準備と帰国後の各方面へのごあいさつ等々で非常に忙しい毎日でした。

タンザニアはどんなとこだったかと言うと、こんな感じ








食べ物も自分は好きでしたし(ホテルでは色んな食事が出ます。パスタもあります)、人も良いしとても良かったですよ!

ただ、遠いのが難点ですねー。ドバイまで11時間、トランジット(行き5時間、帰り2時間)、タンザニアまで5時間ですから、さすがに疲れます(笑)。

で、まぁ帰ってきて次のプロジェクトが始まり、土日は色んな人に会いとやっていたらあっという間に二か月。


でも最近、やっとフリーランスらしくなってきました。

この仕事以外にも請負が一つとスタートアップが一つ。あと個人的にやりたいと思ってた2つのソリューションが進み始めています。


今までは自身の技術力で何とかしようと思っていた所があったのですが、ちょっと考え方を変えました。

色々な人に作業を依頼していって、輪を広げていく方が良いなと。

盛り上がりって大事で、それってきっと人が集まるから生まれるところもあるなーと思うようになりました。

そんな感じで文化祭ノリを出して行けたらなぁと思う今日この頃です。

2014年2月6日木曜日

決算!一区切り ~フリーランスへの道

ついに終えました。決算。

e-Taxは言われたとおりにやってもカードリーダーとの接続が不安定だしもうあきらめ、結局郵送と言う手段を取りました。

断言します。
freeeで会計入れてって決算書をpdfで出して印刷し、郵送。

これが一番楽。

あれからどんな事があったか書いておきます。


初めてのe-Taxが失敗に終わった後、色々模索してました。会計手伝ってくれてる妹と相談しながら、そもそもやる事が解ってない事がだんだんと明らかに。。。

取りあえずこの後は会計データをきれいにする事に注力していました。うちの場合は現金がマイナスになっていて、そこから会社のお金と自分のお金が会計データ上ではっきり分けられていなかったことを学びました。

これから独立する人、絶対に会社の財布を用意した方が良いです。何でもよいので。

そこから自分の財布に入れたら事業主貸し、自分の財布からそこに入れたら事業主借り。経費で落とすものはすべて会社の財布から出す。

後は交通費など、契約上払ってもらえるものの立替金で苦戦しましたね。
これも財布を作っていなかったからなんですが。

自分はなかったのですが、源泉徴収された報酬をもらった場合も面倒そうでした。


実際、会計はこれくらいであっさり終わったんです。
問題はその後でした。

1月半ばくらいに税務署から青色申告に必要な書類一式が送られてきました。

自分はこれを知らなかった!やるべきことはここに全て書いてあったのです!

中身はとっても解りにくいのですが、脱サラして個人事業主になった人の最初の申告はこんな感じの書類が必要になります。

まず、決算書。
うちは今回freeeの決算書を印刷できない事情があったので書き写しましたが、実際はA4のペーパーに印刷して送っても大丈夫なんだそうです。これはほとんど問題なし。

次に確定申告書B。
ここには決算書の収入とサラリーマン時代の収入・保険控除、源泉徴収の内容、さらに独立後に払った保険料を記載します。ここを理解するのに苦戦しましたー。どこにも書いてないんだもん!

最後にサラリーマン時代の源泉徴収票
台紙にはっつけて同封します。


ちなみにうちは今回控えも同封しました。
こうすると向こうで検収印だかを押して返してくれるらしく、これがあると銀行から融資を受ける際に収入がある証拠として使えるのだそうです。

うちは金を借りる事はないと思いますが、やってみたかったので同封してみました。


まぁまだ突っ返される可能性はありますが、とりあえずこれで独立開業もひと段落!


フリーランスへの道シリーズもとりあえず今回で終了します。


なんかあったらまた書きますけど。

2014年1月29日水曜日

目まぐるしい忙しさ

またまた時間が空いてしまいました。。

前に書いていたタンザニア向けのシステムのリリースが近づき、作業も佳境になってきたところで、ネットワーキングの方がうまくいって、請け負っている案件が一つ増えたり、また他の引き合いもあったりと何だか嘘みたいな忙しさです。

タンザニアシステムの方は今日ユーザーレビューを受け、特に大きな問題も発生せず、現地スタッフとの確認を経た後にタンザニアへGo!です。

いや、実際この忙しさから逃れられるかと思うと早くあっち行きたい…(笑)


他にも決算やら友達の結婚式やらで、このままだとあっという間に2014年終わりそうな気すらしております。


このブログの本懐である、技術的な記事もさすがに書いていきたいとも一応思ってるんですよ?


とりあえず、今を乗り切るために頑張ります!

2014年1月9日木曜日

仕事順調っすー

久しぶりの更新になりました。

最近ちょっと忙しいんですよねー。
公私ともに。

そうそう、ついに委託の仕事をいただきました。
今お世話になっているところとは違うつながりです。

祝!やっとフリーランスらしい仕事!(笑)
こんな仕事増やしたいです。


あと、今の仕事が実はタンザニアの会社向けのシステム開発なんですけど、2月近辺でタンザニア行きがほぼ決定しました。トレーニングのためです。


フリーランスを海外(しかもアフリカ)出張させるとか太っ腹ですよねー。
喜んで手を上げちゃいました。絶対旅行じゃ行かないし(笑)


という訳で、パスポートやら予防接種やら順調に準備整え中です。


出来たらレポート書きたいですね。折角ですし。