Skip to content
API

色んなWebサービスのAPIを使ってみて

色んなWebサービスのAPIを使ってみて published on 色んなWebサービスのAPIを使ってみて へのコメントはまだありません

背景: 沢山のWebサービスのAPIを使ってる

色んなサービスのデータを集めて、横串検索出来るようにしてる

GitHub (issue, PR のコメント, wiki ページ), Slack, Google Drive etc. のデータをAPI経由で集めてきて、横串検索出来るようなサービスを作ってる。

こちら → Commet

経緯はこんな感じ。

  • こんなサービスあったら便利かも。作ってみよう。
  • とりあえず出来た。うん。そこそこ便利。
  • デザインとかできてないけど、ブログで軽く告知してみよう。→ 特に反応無し。
  • まぁ、誰も使ってくれなくても、最悪自分で使ってるし、ちょこちょこ改善して、適当なタイミングでもう一度宣伝しよう
  • 自分で使いつつ、色々修正(長い時間が経過・・・)
  • いい加減、デザインとか綺麗にして、一般公開しよう。← イマココ

ということで、もう少し体裁を整えてから、ちょっと宣伝とかしてみようと思ってる。

が、今回の本題は、技術的な話。

当然、色んなAPIを使ってる

色んなサービスからデータを集めるので、当然、色んな API を使わなければならない。現在、以下のサービスのAPIを使って、データを取ってきている。

  • GitHub (issue, PR, wiki)
  • Slack
  • Bitbucket (issue, wiki)
  • ChatWork
  • Backlog (issue, PR, file)
  • Google (Drive, Gmail)
  • Facebook (グループ)

(その他、webhook 経由で Redmine にも対応しているけど、詳細は省略。)

これだけ色々使ってみると、それぞれの API の癖や、長所・短所などが見えてくるので、そういう事について書いてみる。

Continue reading 色んなWebサービスのAPIを使ってみて

SQL Server 2000 から 2014 に移行

SQL Server 2000 から 2014 に移行 published on SQL Server 2000 から 2014 に移行 へのコメントはまだありません

経緯

以前、Windows Server 2003 上で SQL Server 2000 が動くシステムの構築に関わっていたのだが、Microsoft のサポート切れのため、Windows Server 2012 + SQL Server 2014 に移行することになった。最近は開発の仕事がメインなので、こうしたサーバー構築系の仕事はしてなかったんだけど、元システムの構築に関わった手前、断るのも悪いし、受けることにした。

移行方法概要

基礎知識

SQL Server 2000 から直接移行のパスが用意されているのは SQL Server 2008 R2 まで。SQL Server 2014 などは、一度 2008 R2 以前のバージョンを挟まなければいけない。

Windows も同様で、Windows Server 2003 から Windows Server 2012 に直接アップグレードすることはできず、一度 Windows Server 2008 を挟むか、新規インストールを行う必要がある。

移行対象

移行すべき情報は以下の通り。

  • データベース(ユーザーが作成したもの)
    • テーブル
    • ストアドプロシージャ
    • etc.
  • アカウント情報

移行方法概略説明

データベースの移行に関しては、以下の2通り。

  • データベースのバックアップ&復元を利用する
  • スクリプトとして出力し、移行先でそれを実行

アカウント情報に関しては、こちらの KB246133 にあるように、移行元でストアドプロシージャによりアカウント情報をテキストとして出力して、それを移行先で実行する。ただし、この方法だけではうまくいかなかった。

Continue reading SQL Server 2000 から 2014 に移行

リモート勤務に使えそうなツール10選(2016年版)

リモート勤務に使えそうなツール10選(2016年版) published on リモート勤務に使えそうなツール10選(2016年版) への2件のコメント

以前、リモート勤務に使えそうなツール10選という記事を書いたところ、そこそこ「いいね」やらブクマやらをもらったが、あれから2年近く経って内容が古くなっているので、2016年版を書くことにした。

選定方針は以下の通り。

  • Dropbox や Skype のような、誰でも知っている・使っているものは除外
  • リモートワークに特化している訳でもないものも含む
  • 一般的にどうこうより、自分のワークスタイル・開発スタイルに向いているもの・必要な物を選ぶ

背景

個人的な話

2014年時点では、リモートワークをメインになりつつあったものの、まだやり始めた段階という状況だったが、2016年5月現在は、完全にリモートワークだけの生活になった。1ヶ月に1〜2回程度は対面で打ち合わせとかもするけど、それ以外は、気分転換でたまにカフェに行くのを除くと、全部自宅からの作業となった。

仕事の内容は、ある会社の開発のお手伝いが半分位、残りの半分を受託開発やら自分の作りたいものの開発とかをやっている。その「残りの半分」の仕事は、他のフリーの開発者とかと一緒にチームを組んで進めているが、他の開発者も全てリモート勤務でやっている。

世間的な話

2014年の記事で予想した通り(?)、その後、リモート勤務を認める会社がIT関連に限らず増えてきて、色んなノウハウが世の中に出てきたと思う。ツールに関しても色々情報が出てきたので、本記事もそうしたものの1つと思ってもらえればと。

では本題。

Continue reading リモート勤務に使えそうなツール10選(2016年版)

remote work

マネジメント側から見たリモートワーク、そして新しい働き方

マネジメント側から見たリモートワーク、そして新しい働き方 published on マネジメント側から見たリモートワーク、そして新しい働き方 へのコメントはまだありません

この記事は、リモートワーク Advent Calendar 2015の6日目の記事です。

12/7が投稿日になっていますが、日本のIT業界では翌日の午前9時までは前日の日付なので良しとしましょう。

今回、過去5日間の記事と、これからの皆さんが書く予定の記事のタイトルを拝見し、それらとは少し違った内容のことを書いたほうが価値があるだろうと思い、タイトルのような内容で書こうと思います。

ここで言う「マネジメント」とは、PM等のいわゆるマネージャーの仕事だけでなく、経営者などのトップマネジメントも含んだ用語として使用しています。

12/11追記:書ききれなかった内容を追記しました。

目次

  • 自己紹介
    • 基本情報
    • リモートワークをやり始めることになった背景
    • どんな仕事をしているか
  • 会社でやっていること
    • リモートワークを世に広めるのがゴール
    • 開発(一括、時間)、自社ソフト・サービス
    • チームメンバーは副業(パートタイム)中心
  • 働く側にとってのリモートワークについても軽くおさらい
  • マネジメント側にとってのリモートワーク
    • 経費削減と多様な人材活用はメリット
    • 自分達自身及び顧客の変化が必要
    • コミュニケーションの課題?→強みに変える
    • マネジメント側のデメリット
    • 向いている人
  • リモートワーク+副業=最強説?
    • 働く側は、お金も経験も得られる(時間があれば)
    • 企業側にも実は色んなメリットがある
  • リモートワークのベストプラクティスを簡単に
    • ツール
    • やってること
  • 書籍等の参考情報

後ろに行くほど細かい話になります。

なんか、目次を考えているうちに、本文が非常に長くなりそうな気がしてきました。というのも、これをテーマにブログ記事を書こうと前から考えていて、今回たまたまAdvent Calendarを人から教えてもらって参加申し込みをしたという経緯なので。もしかしたら、複数回に分けるかもしれません・・・

自己紹介

基本情報

まずは自己紹介から。後がつかえてるのでサラッと行きます。

  • 40前後の男性、既婚、1歳児の父
  • ソフトウェア開発(web系スタートアップ〜SIer)、運用、SE(プリセールスとか)、技術コンサルなど、雑多な経験
  • 一人法人。他のフリーランス開発者などとチームを組んで仕事をしています

リモートワークをやり始めることになった背景

子供が出来たのがきっかけです。

出産の数年前からフリーランスエンジニアでしたが、お客さんのところに行って仕事をすることが多く、それを減らしていきたいなぁと漠然と希望は持っていましたが、仕事はあるだろうか?とかが心配で、あまり実行には移せていませんでした。

ただ、妊娠が分かってからは、出産後に妻に子育てを任せっきりにするのは悪いと思い、徐々に客先での仕事を減らしていき、出産直後は週1日、数カ月後には完全にゼロになりました。

どんな仕事をしているか

以下の3つをしています。

  • ソフトウェアエンジニアとして、他社の開発のお手伝い
  • PM兼プログラマとして、他の開発者とソフト開発
  • チーム・ゼロイチというプロジェクトのCTOとして、サービス・アプリ開発の全般を統括

形式上、上の2つが一人法人が会社として受けている仕事で、3つ目は会社とはあまり関係ないサイドプロジェクトです。サイドプロジェクトをやる意味についても後述します。

他社(仮にA社とします)の開発のお手伝いの仕事は(当然)リモートワークなのですが、今回の本題とは違うので、簡単に触れるだけにしておきます。

  • 社員100人未満
  • 開発拠点は国内2箇所に分散
  • 社員は不定期でリモートワークをしている模様。完全にリモートなのは、(多分)外注の私一人だけ
  • 朝会等、随時ビデオチャットでコミュニケーション

2日目のnaoさんが書いているのと同様、自社の仕事だけだと現状ではキャッシュフローが安定しなくて精神安定上良くないので、こちらの仕事をしています。完全にリモートでやらせてもらって助かっています。

自社の仕事は、次に詳しく書きます。また、3番めのチーム・ゼロイチに関しても後ろのほうで少し触れます。

Continue reading マネジメント側から見たリモートワーク、そして新しい働き方

石巻ハッカソンに参加してきた

石巻ハッカソンに参加してきた published on 石巻ハッカソンに参加してきた への2件のコメント

7/24(金)〜7/26(日)にかけて、石巻で開催されたハッカソンに参加してきました。帰宅してブログ書くまでがハッカソンらしいので、簡単にブログにまとめました。

石巻?ハッカソン?

石巻市とは:宮城県第2の都市。でも、地元の人からは、広域合併で人口が2番目になっただけ、という声も。

ハッカソンとは:プログラマーとかデザイナーとかが集まって、その場で即席でチームを組んで、期間内(1日〜数日が多い)に何かプログラムを作り上げるイベント。詳しくはWikipediaでもみてほしい。

参加した理由

  1. 普段使わない新しい技術とかを試してみるいい機会だと思った
  2. 関東圏以外のエンジニア、特にフリーのエンジニアと交流を持ちたかった

1に関して:仕事だと納期の関係とかもあり、割と慣れた技術を使うことが多いので、こういうイベントの時に使ったことない技術を試してみるというのは、まぁまぁよくやってる。

2に関して:自分自身はフリーのエンジニアで、最近は以下のテーマを掲げて、周りのフリーのエンジニア数名でリモート開発のチームを作って仕事をしてます。

  • リモート開発チームに最適化した開発プロセスの確立
  • それをサポートするツールの開発

なので、リモートで仕事をするというニーズが強いと思われる、東京から離れた地域のエンジニアの方々とつながりを作りたいと思った、というのが2つ目の理由。

とはいえ、石巻出身の高橋さんが、石巻ハッカソンに興味はあるもののぼっち参加は嫌だし一緒に出ない?と誘ってくれたのが直接のきっかけ。

お断り

あまり写真とか撮ってないので(新幹線を除く)、文章ばっかですみません。

Continue reading 石巻ハッカソンに参加してきた

PostgreSQL のバックアップツール? wal-e が便利

PostgreSQL のバックアップツール? wal-e が便利 published on PostgreSQL のバックアップツール? wal-e が便利 へのコメントはまだありません

PostgreSQL のバックアップをしたい

今自分たちで作っているサービスでは、成り行き上 PostgreSQL を使っている。で、最近バックアップの設定をしたんだけど、今までと同じく pg_dump をどっか別の場所に保存するってのだとつまらないなと思ってちょっとぐぐってみたら wal-e ってのがあった。結論から書くと、これかなり便利。

ただし、ドキュメントはあまり分かりやすいとは言えない。

wal-e がやってくれること

大雑把には

要は PITR (Point In Time Recovery) のためのバックアップが取得できる。PostgreSQL の PITR に関しては、公式サイトのページを参照。

具体的には、

  • ベースバックアップの取得
  • WAL (Write Ahead Log) の取得

をしてくれる。で、それを Amazon S3, Windows Azure Blob Service, OpenStack Swift に保存することができる。

リストアも、最新へのリストア、あるいは過去へのリストアが出来る。

少し細かい仕組みなど

ベースバックアップは、ユーザーがコマンドで起動するもので、通常は crontab などに設定する。ベースバックアップの取得前後で、begin backup, end backup を実行してくれ、また、ベースバックアップの内容はS3などに自動的に送ってくれる。

次に WAL だが、WAL のコピーは、postgresql.conf に記載した archive_command の設定に従って行われるので、ここに wal-e のコマンドを指定しておく。

リストアに関しては後述。

Continue reading PostgreSQL のバックアップツール? wal-e が便利

VPSでOpenStack Swiftを試してみる

VPSでOpenStack Swiftを試してみる published on VPSでOpenStack Swiftを試してみる へのコメントはまだありません

OpenStack は VPS でも動かせる

ちょっとした理由で、 OpenStack を試してみようと思った。でも、物理サーバーとか用意したりするのだりーとか思ってたら、VPSでも動かせるということを知って、俄然やる気になった。

(ちなみに、自分の OpenStack の前提知識はゼロスタートなので、本文中におかしな部分とかがあれば、是非つっこみを)

調べたところ、とりあえず選択肢としてはこの辺らしい。

  • DevStack
  • PackStack

実は、最初に DevStack を試してみたけど、全然簡単じゃなかったので、とりあえずもう一つの PackStack を試してみた。

やりたいこと

あまり使っていないVPSが何台かあるので、それらをファイル置き場にしたい。

scp とかでも良かったんだけど、何か新しいことをしたいと思って、OpenStack Swift を使うことにした。

環境

  • CentOS 7.0
  • お名前.com の VPS、メモリ2G (!!)

そもそも、最初は CentOS 6.6 だったので、CentOS 7へのアップグレードを試みたけどうまくいかなかったので、CentOS 7.0 をクリーンインストールした。

Continue reading VPSでOpenStack Swiftを試してみる

ISSF architecture overview

複数サービスを一括検索できるサービスを作りました

複数サービスを一括検索できるサービスを作りました published on 複数サービスを一括検索できるサービスを作りました へのコメントはまだありません

きっかけ

いきなり自分の話で申し訳ないですが、基本的には自宅でしか作業しないフリーのエンジニアで、スタートアップのお手伝いやら受託開発などしてます。

色んなプロジェクトに関わっていると、必然的に色んなwebサービスを使うことになるのですが、後から「あれ、あの情報どこにあったっけ?」ということがしばしば発生します。それを解決するために、複数のサービスをまとめて検索するシステムを作り始めたんですが、段々便利になってきたので、色々手直しして一般公開することにしました。

http://issf.hidebu.info/

(サイト名とかドメイン名は適当なんで、これから変わる予定です)

できる事

GitHub, Slack 等の色んなサービスからAPI経由でデータを取ってきて、Elasticsearch に保存して、まとめて検索できるようにした、ただそれだけです。

 

システムの概要はこんな感じです。

ISSF architecture overview

対応している外部サービス

現在取ってこられるデータは以下のものです。

  • GitHub の issue、コメント
  • GitHub の wiki ページ
  • Slack への書き込み、添付ファイル
  • Gmail

まだ対応していないんですが、自分たちがよく使う以下のようなサービスにも今後対応予定です。

  • Google Drive
  • Bitbucket の issue、wiki ページ
  • ChatWork のチャット内容
  • Backlog のチケット、ファイル

使い方

登録

まずは、Facebook, Slack, GitHub, Gmail のいずれかのアカウントでログインしてください。

組織の作成 or 加入

次に、「組織」を作りましょう。プロジェクトチームだったり、会社だったりの名前をつけるといいと思います。システム内のデータは組織単位で管理されています。既に誰かが「組織」を作っていて、そこから招待が来ている場合には、そちらに加入しましょう。

取り込み設定(組織管理者のみ)

画面上部のプルダウンから、設定したい組織を選択します。

ISSF switch organization

左側のメニューから、各サービスの設定画面を選択し、データを取り込む対象(GitHubレポジトリ、Facebookグループ、Slackチーム)を選択します。

ISSF side menu

例えば、GitHubの場合は以下のような画面ですので、データを取得したいレポジトリを選択して、「追加」ボタンをクリックして下さい。

issf-admin-github

組織への招待(組織管理者のみ)

左側のメニューから「メンバー管理」を選択します。「ユーザーを組織に招待する」以下の各ボタンで、メンバーを組織に招待しましょう。

この機能は、既にISSFに登録しているユーザーを組織に招待するもので、勝手にメールやFacebookメッセージが送られることはありません。

ISSFに登録していない人に対しては、FacebookやTwitterなどで教えてあげましょう。

検索

ISSFは、シンプルな検索サービスです。検索ボックスに文字を入れて検索してみましょう。

以下のような検索結果が出ると思います。
issf-search

お願い

バグ報告とか要望があれば、以下までお願いします。

  • Twitter: @k4200jp
  • mail: issf あっとまーく hidebu.info

デザインがしょぼいんで、直してくれる人も募集中です。

Vagrant + Ansible で簡単に開発環境を provision する

Vagrant + Ansible で簡単に開発環境を provision する published on Vagrant + Ansible で簡単に開発環境を provision する へのコメントはまだありません

開発環境構築自動化の動機

ちっちゃなwebシステムを受託でやることもちょこちょこあるんだけど、以下のような理由から、開発環境の自動化をすることにした。

  • 使うフレームワークは大体同じ(CakePHP, Ruby on Rails, Play! framework のいずれか)なのに、毎回同じような環境構築をやるのも面倒くさい
  • 経験の浅いメンバーは、環境構築で詰まりがちなので、その辺は飛ばしていきなり実装に入れるようにしたい

使う技術

最近、メインでやっているプロジェクトで Ansible を使ってデプロイとかをするようにして、ある程度慣れてきたので、今回は Ansible を使うことにした。

開発環境用の仮想環境(VM)作成は、みんな大好き vagrant を使う。

Continue reading Vagrant + Ansible で簡単に開発環境を provision する

GitHub organization にレポジトリを移動

GitHub organization にレポジトリを移動 published on GitHub organization にレポジトリを移動 へのコメントはまだありません

意外にすんなり終わった。

やったこと。

  • organization を作成
  • レポジトリの所有権をorganizationに移行
  • GitHubアプリの所有権をorganizationに移行
  • CircleCIで、移行先のレポジトリをビルド対象に追加(移行前のは、自動的に 404 になってた)
  • ローカルのレポジトリの .git/config の origin を、organization の方に向ける

これくらい。