2016/04/24

GitHubで仕事用とプライベート用のアカウントを切り替えて使う

職場ではバージョン管理にGitHubを使用しているのだが、アカウント名がバレるのが嫌で別のアカウントを使っている。しかし、会社でお昼休みや休憩時間に個人の開発を行うときに困ったことが起きた。

会社のPCからgit pushすると、仕事用アカウントとしてpushされてしまうのだ。


ということで、仕事用とプライベート用のアカウントを切り替えて使う方法を調べた。

環境は以下のとおり。
OSXを使用しているが、Windowsでの操作もほぼ変わらないだろう。

  • Mac OSX Yosemite
  • git v2.5.4

※ Windowsの場合は、Git for Windowsをインストールし、Git Bashを使うと便利

2016/04/17

Slack上からさくらのクラウドを操作できるbotをつくった

Slack上からインタラクティブに さくらのクラウド のリソースを操作するbot(sacloud-bot)をつくった。サーバの作成、一覧取得、電源操作ができたのでひとまず公開する。

つくったもの


Slack上のbotと対話しながらサーバ作成などができるbot。

APIを叩くのも面倒だし、コントロールパネルを開くほどでもない。そんなときに使って欲しい。
また、Slack上で完結しているためスマホやタブレットからでも、通信量をほとんど気にせずにサーバの操作ができる。

実装済みの機能

  • サーバの作成(ディスク含む)
  • サーバの一覧取得(全ゾーン対象)
  • サーバの電源操作(起動、停止のみ)

今後したいこと

  • 各リソースに対する操作全般の実装
  • リファクタリング
  • テストの追加

操作全般は全部するのは大変なので、簡単な部分だけを実装したい。
インフラ構成するならコントロールパネル使ったほうが早いし楽だしね!

リファクタリングはいろいろしたいことが山積みだ。
ファイル名やメソッド名の統一やログの出力、そもそもnode.js v0.12.xとかで開発していたのでTypeScriptへ移行するなど...。

問い合わせフォームを作ったら企業から製品レビューの依頼がきた

2月頃にブログ右側に問い合わせフォームを設置した。
するとすぐに、とある問い合わせがきた。

Youのサイトで弊社の製品を紹介していただけないでしょうか?
ご検討よろしくプリーズ

要約するとこんな感じのメッセージだった。

どうやら中国系企業の日本担当の方っぽい。
企業名でググってみると、他のブロガーさんたちにもレビュー依頼をしているらしい。
最初は怪しいと思いつつも、依頼がくるのはブログが評価されているって意味だし嬉しかった。

ということで、先方とやりとりを開始し、メールで3往復したところで依頼を承諾。

2016/04/09

【JavaScript】GMT・UTCとローカル時刻を変換にハマりかけた

サーバサイドではグリニッジ標準時を使っていて、クライアントサイドではローカル時刻(日本なら+09:00)を表示したいときに、どうやって相互変換するか考えているときにハマりかけた。

いろいろ考えた結果、getTimezoneOffsetで時差を求めて、その分時間を進めたり、戻したりすればいいのかという結論にたどり着いたのだが、もっと簡単な方法を見つけたのでまとめておく。

2016/04/03

やめる勇気、断る勇気

以前SIerに勤めていた頃に社内報に寄稿した記事を一部修正して公開いたします。

この時期、新卒でSIerに入社された方もいると思います。
SIerにいると必ず炎上プロジェクトに巻き込まれ「やることが多すぎて時間が足りない」という事態に陥ることでしょう。そんなときにこの記事を思い出してください。



やめる勇気、断る勇気


働けば働くだけ評価される、そんな時代は終わりました。

今のエンジニアに求められていることは「短期間で製品を提供し続ける」ことです。
だからこそ「やめる勇気・断る勇気」が必要なのです。

onLoadとDOMContentLoadedの違いと実行順序

photo by Judit Klein

いままでHTMLの読み込みが完了してから行う初期処理は、すべてonLoadイベントで行っていた。でもHTML5からはDOMContentLoadedというイベントが使えるようになったらしい。


onLoad と DOMContentLoaded


onLoadとDOMContentLoadedの1番の違いは、イベントが実行されるタイミング。

onLoad

onLoadは、すべてのリソースが読み込まれたら発火するイベント

たとえばHTMLにクッソ重い画像が含まれていた場合、その画像の読み込みが終わるまでイベントが発火しない。


DOMContentLoaded

DOMContentLoadedは、HTMLの解釈が終了した時点で発火するイベント

HTMLが読み込まれてさえいれば、リソースを読み込む前に実行される。
だからクッソ重い画像があったとしても、その読み込みを待たずして処理を続行することができる。

用途としては、リソースの読み込みは後回しにして、JavaScriptを読み込みたい時につかう。
ただし、DOMContentLoadedはHTML5から追加されたイベントのため、古いブラウザ(IE8やSafari3.1など)では使用することができないので注意。

2016/04/02

JavaScriptでCSVファイルなどを文字化けさせずに出力する方法

JavaScriptでCSVやテキストファイルなどを出力したとき、環境や見るツールによっては文字化けしてしまう。たとえばCSVで出力して、テキストエディタでは読めるけど、Excelで開くと文字化けするなど。

結論からいうと、テキストの先頭にBOMをつければ解消される。
ということで、各ブラウザ(IE, Safari, Firefox, Chrome, Opera...)でファイルを出力するときに文字化けさせない方法をまとめる。



BOM(Byte Order Mark)とは


そもそもBOMとはなんぞや?

Unicodeの符号化形式で符号化したテキストの先頭につける数バイトのデータのことである。このデータを元にUnicodeで符号化されていることおよび符号化の種類の判別に使用する。

バイトオーダーマーク - Wikipedia

具体的に説明すると、Unicodeが登場したころ各国でいろんな文字コードが使われていた。日本ならSJIS、アメリカならASCIIといった具合に。

そこでUnicodeなのかSJIS,ASCIIなのかを明確に区別する必要があり、テキストの先頭に特定のコードを埋め込み区別できるようにしていた。そのコードがBOM。
ちなみにUTF-8の場合は「0xEF 0xBB 0xBF」という3バイトを先頭につける。