今年1月のInternational CESでお披露目されて以来、出るぞ出るぞと言われて待たされていたIntel Edisonが日本発売されてから一月弱ほど経過しました。技術系のブログを読まれるような方たちには、すでにその名前と存在は浸透してきているのではないでしょうか?ということで、筆者も一つ入手しましたので、これから何かやってみようとする足がかりとなるような投稿をいくつかしてみようかと思います。第1回の今回は導入として、諸々の環境構築を行います。 Intel Edisonとは? EdisonはIntelが市場投入した汎用コンピューティング・プラットフォームでIoTやロボティクスその他もろもろの開発を迅速に行えるように様々な機能が組み込まれています。 Atom SoCが採用され、500MHzで動作するデュアルコア、デュアルスレッドのCPUと100MHz/32ビットのQuarkプロセッサー
OpenGeneraは1990年代にあったsymbolicsのLispMachine環境をDEC ALPHA上で実行可能にしたものです。 このOpenGeneraをLinux 64bit環境上で動作可能にするエミュレータが2006年作成されました。 今回はこのOpenGenera環境をUbuntu上で立ち上げるまでの話をします。 この記事をまとめている際に古いUbuntu環境を結構きれいに再構築できる方法が提供されていることにも気づいたのでそのことを紹介しています。 最初にあえて古いUbuntu環境が必要になった話をしておきます。 Ubuntu10.04以降ではOpenGeneraの起動中にX window をハングアップさせてしまいます。 マウスカーソルは生きてはいますが、マウスクリックや通常キーボードなどの入力は受け付けられない状態になってしまいます。 実際にはmidiffe
9/6、7に開催された日本最大級のScalaカンファレンス 「ScalaMatsuri」 で発表してきました。今年で2回目の当カンファレンスは、Scalaの開発者であるMartin Odersky氏が講演されるということもあり300枚のチケットが完売するという大盛況の中開催されました。Scalaをテーマに、1日目は2会場で 計18の講演 が行われ、2日目には アンカンファレンス が開催されました。TISはScalaMatsuriのスポンサーをさせて頂き、私も1日目に 「SIerに立ちはだかるScalaの壁に進化型ジェネレータで挑む」 というタイトルで、我々が開発した ScalaのScaffold の話をさせて頂きましたので、その内容を紹介します。 Scalable Generator: Using Scala in SIer Business (ScalaMatsuri) from yug
WebRTCを用いた遠隔作業支援システムを作ります。 前回 はスマートグラス(Vuzix M100)とサーバサイド(node.js + express + peerjs-server)の環境構築について説明しました。今回はCoffeeScriptで記述されたモジュールの全体構成と、PeerJS & MediaStreamの初期化処理について解説します。 CoffeeScript WebRTCを用いた遠隔作業支援システムの中心的なロジックは、ブラウザで動作します。今回はコールバックを駆使するそれなりに複雑な処理を実装するため、画面操作をハンドリングするロジック、PeerJSの操作とコールバックをハンドリングするロジック、シグナリング等の共通ロジック、と責務を分割して実装したほうが見通しが良くなるでしょう。 ただしJavaScriptはプロトタイプベースのオブジェクト指向言語のため、Javaや
WebRTCという技術をご存知でしょうか。WebRTCとは「ブラウザ上でリアルタイムコミュニケーションを実現するためのAPI仕様」のことで、Flash等のプラグイン無しにカメラ映像や音声の共有、データの双方向通信を可能とする技術です。このWebRTCとスマートグラスを活用し、遠隔作業支援システムを作ってみましょう。 WebRTCとは WebRTCは "Web Real-Time Communication" から作られた言葉で、ビデオデバイス/オーディオデバイスから得たストリームデータのブラウザ間双方向リアルタイム通信や、テキストデータ・バイナリデータのブラウザ間双方向データ通信などを定めています。WebRTCはHTML5で新しく策定された規格で、WebRTCのAPIレベルでの標準化はW3C、プロトコルレベルでの標準化はIETFで進められています。 WebRTCのコア機能 WebRTCは規
AlchemyAPIを知っていますか? 最近何かと機械学習系のサービスやプロダクトについての話題を聞くことが多くなったと思います。お馴染みのGoogleやIBMといった巨人たちもさることながら、それ以外にも機械学習やそれに類する技術を軸としたサービスを展開するスタートアップ企業なども徐々に市場でのプレゼンスを高めつつあります。 AlchemyAPI もそんな企業の一つです。 AlchemyAPIは米国のコロラド州デンバー発の人工知能系の技術を応用した自然言語処理や文書解析のサービスを、主に法人向けに展開している企業です。設立自体は2005年とすでに9年ほど経っていますが、シリーズAのファンドを受けたのは2013年になってからですし、名前を目にするようになったのは最近になってからです。 もともとの主力サービスはAlchemyLanguageという一連のテキスト処理系のサービス群です。具体的に
serverspecをより柔軟に活用するためには、独自の環境にあわせてカスタマイズして利用することが必要な場面があります。本記事では、そのような場面での対応方法をいくつか紹介します。 前回の記事 で、テストコードを書いてテストを実行するところまでは実施できるようになりました。また、前回の記事で、SSH接続時の処理内容を変更したい場合にはspec_helper.rbをカスタマイズして対応が可能といったことを紹介しましたが、今回は実際のテストの実行内容に関してカスタマイズする方法について紹介します。 serverspecのResourceTypeやMatcherは非常に豊富に実装されているためこれらを活用することで非常に多くのテストコードが作成できます。 しかし、中には、標準で用意されているResourceTypeやMatcherだけではカバーしきれない場合もあります。serverspecはそ
4/25にインフラ環境の構築や構成管理の自動化ツールである「Chef」に関する書籍「Chef活用ガイド」が発売されました。私もこのTech-SketchでChefの記事( 【Chef】Custom LWRPsで独自のResourceを作る方法 )を書いていたこともあり、とても興味があったので読んでみたいと思っていたところ、なんと書籍の監修であるクリエーションライン株式会社様より書籍を頂きました!このようなとても嬉しいサプライズをありがとうございます。僭越ながら書籍の紹介と共に読んだ感想を少し書かせて頂こうと思います。 「Chef活用ガイド」とはどんな本か この「Chef活用ガイド」を手にとった方は誰もがこう思うでしょう。「重いっ!」「分厚いっ!」総ページ数はなんと671ページもあります。ページ数を見るだけでも濃い内容だということが伺えますが、実際に読んでみると、Chefの概要や理念やアーキ
Google I/O 2012で発表された Google Glass (以下、Glass)は、日本では現在のところいつ販売されるか未定の状況です。一方、米国では、定額制音楽ストリーミングサービス「Google Play Music All Access」ユーザにまで範囲を拡大して販売されており、 TwitterやFacebookをはじめとしたアプリケーション の数も増加しています。しかしながら、キャズムを越えるためのキラーアプリケーションとなるほどのものは出現していない、という状況です。 グラス型ウェアラブルデバイスとエンタープライズシステム ところで、エンタープライズシステムの視点でGlassをはじめとしたグラス型のウェアラブルデバイスを見た場合、これまでのスマートデバイスと比較してどのような特徴があるでしょうか。まず、以下のような特徴はグラス型を採用するメリットになるでしょう。 ハンズ
3/4(火)、3/5(水)にChefエンジニア養成特別講座が開催され、参加して来ました。その中の一つにLWRPsを使って独自のResourceを定義する方法について解説があったので、Rubyのバージョン管理ツールであるrbenvのリソースを作ってみたいと思います。 なお、Chefについては過去の記事 Chef の勉強会をやってみた を参照して下さい。 Custom LWRPsとは Chefでは定義されているResourceをrecipe内で使うことでサーバの構成管理を行います。例えば、新規にファイル作成する場合などは下記のようにfile Resourceを使ってrecipeを実装します。 file "/tmp/something" do owner "root" group "root" mode "0755" action :create end 既存のResourceのみでもreci
皆さん、JALやANAのマイレージ番号は持っていますか。持っていらっしゃるエンジニアは、先日の JALマイレージWebサイトに不正アクセス、約2700万人にパスワード変更を依頼 (ITpro 2014/2/3) というニュースを見て、「数字4桁や6桁のパスワードなんてそもそもありえない」「脆弱な実装がとうとう公然化したか」と思ったことでしょう。実際数字6桁のパスワードハッシュなど、ごくシンプルなコードで一瞬で解析できてしまうのです。 「数字6桁パスワードのMD5ハッシュ値を総当たりする」という"お題" 「数字6桁パスワードのMD5ハッシュ値を総当たりする」というお題は、もともと kawasima氏 がQittaに投稿した パスワード問合せシステムを作る(clojureのreducers) に端を発します。 kawasima氏 に感謝を! 今回はこのお題を、Clojureと同じJVM上の言
前回の記事ではHubotのインストール、基本的な使い方やScriptの作成、Herokuへのデプロイの方法を紹介しました。 本記事ではIdobataというチャットサービスとHubot、外部サービスを連携し、チーム開発を円滑にする環境を構築していきます。 まずは導入後の開発環境の全体図を示します。最終的にIdobataでGitHub、Travis CI、New Relicなどのサービスからの通知を受け取り、Idobata上でコマンドを実行することでHubotを通じて外部サービスの情報を表示することが出来るようになります。 今回の環境は、Webアプリケーションをチームで開発するシーンを想定して構築してみました。(記事中では1人ですが...) Webアプリケーションは、Sinatraで作成したアプリケーションをHerokuにデプロイしています。また、前回と同様、HubotはHerokuにデプロ
JavaScriptに対する自動テストツールも充実し、Jenkinsなどを用いてCIをまわす人も増えてきました。 しかし、レスポンシブレイアウトや、Floatのレイアウト崩れなど、人間が見ればすぐに分かる「見た目」に関する問題は、自動テストによる判定がし辛いのが実情です。 この記事では、この問題を解決するために作成した、テスト中にスクリーンキャプチャを取るためのプラグイン「phantom-capture」を紹介します。 現状の問題点 Jasmine や QUnit といったテストフレームワークや、 PhantomJS , sinon.js といったツールの助けを借りることで、JavaScriptの自動テストが行えるようになり、サーバ側だけではなく、クライアント側にも自動テストを適用する人が増えてきています。 ビジネスロジックやバリデーション、DOMの構築結果などは問題なくテストすること
スマートフォンやタブレットなどのスマートデバイスが普及するにつれ、世界中で注目され始めたBaaSをご存知でしょうか? BaaSとは簡単に言ってしまうとサーバサイドの機能を提供するサービスの事を指します。 そのBaaSの一つであるKinveyを使用したAndroidアプリの作成方法を前編後編に分けて説明したいと思います。 この記事ではKinveyを使用する設定と、データストアの使い方を説明します。 はじめに Kinveyを使用したAndroidアプリ作成方法という事で、サンプルとしてスケジュール管理アプリを作成します。 アプリの機能はユーザー管理、データ(スケジュール)登録、Push通知(スケジュール通知)になります。 以下は実際の画面になります。 作成方法を説明する前に、まずはBaaS及びKinveyについて説明したいと思います。 BaaSとは ここ数年で爆発的にシェアを広げてき
先日公開した D3.jsをつかってData-Drivenにリッチなグラフやチャートを作成しよう の記事ではD3.jsをつかってグラフを作成しました。本記事ではD3.jsで作成したSVG形式のグラフをPNG形式の画像として保存する方法をご紹介します。 D3.jsにはCSVやJSONなど 様々なデータ形式を扱う為の便利なメソッド が用意されており、アプリケーションへの組み込みが容易です。しかしアプリケーションへの組み込みとなると、「X月X日の状態のグラフを保存しておきたい」、「グラフを資料に添付したい」といった要望も出てくるのではないでしょうか。 単純に画面のスクリーンショットを取得する以外では Phantom.js を利用してキャプチャを取得する方法や Apache Batik を利用してSVGを変換する方法などが考えられましたが、クライアントサイドだけで完結しない上、実装が少々手間です。
データの見せ方や伝え方の手法の一つに、取得するデータによってリアルタイムに変化していくグラフがあります。 この手法は株価や有害物質の測定値など、値の変化が重要なデータをグラフ化する場合に有効になります。 この記事ではHighCharts.jsというライブラリを用いてリアルタイムに変化していくグラフの実例を示し解説していきます。 はじめに 前回の記事 では D3.js を使用し、Tech-Sketchの記事毎のはてブ数をグラフ化しました。 このグラフは予めはてブ数を取得・加工してから描画しているため、描画以降にはてブ数が変化してもグラフに反映されません。 特定の日付時点でのデータを評価する場合や、値の変化が少ないデータなどは事前にデータを取得・加工し描画する方法で良いのですが、例えば毎日10分置きにグラフの更新を行いたい場合だと、その都度データを取得・加工・再描画という手間が必要にな
最近、ビッグデータ、データサイエンティストという言葉を耳にする機会が増えてきました。そして、統計解析向けプログラミング言語である R にも注目が集まっています。R を使って、データ解析したいというニーズも増えてきています。今回、そのR で簡単なデータ解析した結果を、オープンソースパッケージのrCharts を使って可視化してみたいと思います。 統計解析向けプログラミング言語 R とは <img alt="Rlogo.png" src="http://tech-sketch.jp/Rlogo.png" width=181" height="137" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /> R はオープンソースの統計解析向けのプログラミング言語であり、その開発実行環境でもあります。R が、他の
Webやスマートデバイス、センサーなどあらゆるものから情報を収集出来るようになり、世の中には膨大なデータが溢れかえっています。 また、ビッグデータやデータサイエンティストといったキーワードに注目が集まり、データ活用への期待が高まっています。しかし、単純に収集したデータはそのままでは見づらく、そこから意味を汲み取るのは困難です。 そこで、データの見せ方や伝え方が重要になってきます。 インフォグラフィックスやデータビジュアライゼーションといったキーワードにも注目が集まりつつありますね。 本記事ではD3.jsというJavaScriptのライブラリを利用し、このブログ(Teck-Sketch)のはてなブックマーク数や、世界の国別の人口の比較を視覚的に分かりやすく表現していきたいと思います。 インフォグラフィックス?データビジュアライゼーション? キーワードとしてインフォグラフィックスとデータビ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く