Kubernetesは、数十から数百といったコンテナからなるアプリケーションのデプロイや管理、死活管理といった運用を支える機能を備えています。主な機能や仕組みを紹介します。 コンテナ型仮想化のDockerを管理するフレームワークとして、Googleがオープンソースとして公開したKubernetesが急速に注目を集めています。KubernetesのプロジェクトにはDocker本体はもちろん、マイクロソフトやレッドハット、IBM、VMwareなどが参加を表明しており、事実上の標準になりそうな勢いです。 Kubernetesはどのような機能を持ち、仕組みはどうなっているのか。有志により都内で開催された「第20回 PaaS勉強会」の草間一人氏のセッション「Kubernetesを触ってみた」の内容をダイジェストで紹介します。 NTTコミュニケーションズという会社で、Cloudn PaaSというClo
これからはベクターでアセットを管理!? Asset Catalog では、これまでビットマップ画像しか取り扱うことはできませんでしたが、Xcode 6 からは PDF 形式 と JPEG 形式 がサポートされました。特に新しいのが ベクターが扱えるようになったという点です! ベクターが扱えるようになったということは、いままでのように Retina や Non Retina で別々の画像を用意する必要がなくなったり、イメージを複数のサイズの View に配置したいときに1つのファイルだけ用意すれば良くなるということです。これはきっとプログラマーにとってもデザイナーにとっても嬉しいことですね! ということで使ってみました。 Asset Catalog でベクターを扱うには PDF 形式のアセットデータを用意する Asset Catalog でベクターとして認識できるのは PDF 形式のファイル
前回は、「なぜA/Bテストを行うのか」「ABテストを行う際に気をつけることはなにか」を解説しました。 第14回となる今回は、本連載で開発したチャットアプリケーションを題材として、Kii CloudでA/Bテストを実施する手順を解説します。チャットアプリケーションについては第5回~第12回で詳細に解説しています。興味がある方はこちらもご覧ください。 今回使用したソースコードについては、GitHubで公開しています。こちらもあわせてご覧ください。 https://github.com/KiiPlatform/KiiChat-gihyo/tree/Vol.14 以降ではチャットアプリケーションの実装をある程度知っている前提で解説しています。そのため、第13回までの連載を事前に確認して頂くと分かりやすいと思います。 A/Bテストのシナリオと手順 前回例として示した、チャットアプリケーションの改
MySQL 5.6からの機能であるGTIDを、Facebookの環境に適用した際の流れと主な不具合、そしてそれらの修正点について、Facebookのエンジニアによるまとめ。 by Evan Elias and Santosh Praneeth Banda Global Transaction ID (GTID)は、MySQL 5.6の新機能の中でも最も使わずにはいられない機能の一つだ。このおかげで、フェイルオーバやポイントインタイムリカバリ、階層を持ったレプリケーションなどに非常に有益だし、クラッシュセーフなマルチスレッドレプリケーションの必須条件にもなっている。この数ヶ月で、我々はFacebookの全ての本番用MySQLインスタンスで、GTIDを有効にした。その中で、この機能の適用方法や操作について、たくさんの知見が得られた。たくさんのサーバサイドの修正事項については、WebScaleS
ソースコードにシンタックスに応じた色を付ける code syntax highlighter を golang で書いたので 紹介します。 beni - code syntax highlighter written in golang 皆さんは code syntax highlighter (以下ハイライター)って知ってます? & 使ってますか? github や gist にコードを貼ると、言語の文法に応じてカラフルに表示してくれるアレですね。なのでこの記事を読むような人は、まず使ったことがあるんじゃないでしょうか。 ちなみに git はたぶん pygments です。私はこのサイトなどでは、最近 pure ruby な rouge を使うようになりました。jekyll から使う場合には、 python (しかも2.x限定) に依存してしまう pygments.rb よりは roug
タイトルは煽りです。 『アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで』をご恵贈いただきました。ありがとうございます。 アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで 作者: Tom Stuart,笹田耕一(監訳),笹井崇司出版社/メーカー: オライリージャパン発売日: 2014/09/18メディア: 大型本この商品を含むブログ (2件) を見る 本書の扱う計算理論と呼ばれる分野には、前職の同僚たちがそういうのに詳しかったこともあってずっと興味を持ってはいたものの、いくつかの教科書的な本を繙いては読み進めずに挫折することを繰り返していました。その意味で、監訳者あとがきの「これなら私でも読める」という言葉は、自分自身の思いでもあると感じました(もちろん、笹田さんの「私でも」と、僕のそれとではおおいに異なることはいうまでもあり
これマジ便利wwww万能リモコン うじゃうじゃ増え続けるリモコンをひとまとめにしちゃうスゴイやつです。 ジャンル不問でエアコンもテレビも照明もばっちこいです。 いままでうちにあったリモコンたち •エアコンのリモコン •扇風機のリモコン •テレビのリモコン •メイン照明のリモコン これが全部消えました 4つのリモコンがスマホのアプリたった一個になりましたよwwww 必要なのはコレだけ。 IRKitとかいうものです。8千円弱で購入できます。 仕組みは、非常にかんたん。 スマホからの指示をWi-Fiで受け、赤外線に変換して、動かしたい家電に指示を送ります。 これでうじゃうじゃ増える赤外線リモコンはiPhoneひとつにまとめられます! 一応、詳細な手順 公式アプリをiPhoneにインストール IRKitシンプルリモコン Masakazu Ohtsuka 価格: 0円 posted with sti
** 2014/09/23 24:00 追記*** 想像以上に記事が注目を集めてしまい、私の主観に基づく見解で書かれたT440sとLenovoのイメージが拡散してしまうのは本意ではありませんので、個人的な意見や見解は削除しておきます。よろしくお願いいたします。 --------------------------------------- 度重なるT440sのトラブルに、思うことはあるのですが、Lenovo本家が運用している掲示板でも T440s nightmare というスレッドが立ち上がっており、盛り上がってる感じでした。 この1年間にT440sで発生したことを記録しておきます。 いきなり初期不良品にあたりました。 不良1点目 PC背面のパネルのネジがスカスカで止まらない(受け側にねじ山が無い?)そんな馬鹿な?と思う方もいると思うが、ほかにも同じ症状の方が動画挙げているのでご覧いただき
大分間が空いてしまったが、AVFoundationを使った動画編集について、今回は映像Trackからフレームの静止画を取り出す部分まで試す。 AVReaderWriter for OSXを読む Appleが公式で用意しているサンプル(AVReaderWriter for OSX)に、AV Foundationを使った動画編集に関して、大凡知りたいポイントの基本が詰まっているので、このコードを読んでみるのが良い。 AVReaderWriter for OSXは、 ソースのムービーを読み込み 映像トラックに加工を施し 別の新しいムービーファイルとして書き出す という処理を行っている。 ただし、このサンプルプロジェクトは、昨今のiOSアプリ開発に慣れている人から見ると、コーディングスタイルの古さや、OSXアプリ特有のUI関連/非同期処理関連の都合で若干読みにくいと思う。 そこで、重要な部分だけを
今、「C++のためのAPIデザイン」を読んでます。 テンプレートを使用する際の、テクニックについてまとめてみました。 C++のためのAPIデザイン 目次 テンプレートとは? テンプレートの用語 特殊化 部分的な特殊化 非明示的なインスタンス化のAPI設計 明示的なインスタンス化のAPI設計 テンプレートとは? テンプレートとは、コンパイル時にコードを生成する機能です。 型だけが異なる大量のコードを、生成する時など特に役に立ちます。 良く知られている例として、C++のコンテナクラスがあります。 vector<int> int_vector; // int型を扱うVectorクラスのインスタンス vector<float> float_vector; // float型を扱うVectorクラスのインスタンス vector<string> string_vector; // string型を扱う
iOS 8で追加されたAudio機能に関するメモです AVAudioEngine 接続されたAVAudioNodeのグループを定義 オーディオ信号を生成・加工したり、inputやoutputに信号を流すためにAVAudioNodeを使用する 各AVAudioNodeをそれぞれ作成し、AVAudioEngineに装着する 実行中における、AVAudioNodeに対する操作(接続、接続解除、リムーブ)には多少制限がある ミキサーのupstreamにあるAVAudioNodeである場合のみ再接続できる inputとoutputのchannel数が異なるAVAudioNodeやミキサーをリムーブした場合、graphが壊れてしまう AVAudioFile 読込/書込のために開くことができるオーディオファイルを表すクラス ファイルの実際のフォーマットに関係なく、 AVAudioPCMBufferを使用
Swiftは6月に一度手を出したんですが、2ヶ月以上放置してたらすっかり忘れてしまったので再勉強中です。 今回は、以前から興味のあったBoidを作ってみました。 フレームワークはSprite Kitを利用。 (使ったことない方はSpriteKit.jpをどうぞ。) 完成イメージ この記事の元になったソースコードは以下で公開しています。 tnantoka/boid プロジェクト作成 テンプレートは Game、Game Technologyは SpriteKit を選択します。 GameScene.sksのSKNode inspectorでColorを Black に変更し、SizeはWを 640、Hを 1136 にしておきます。 また、GameScene.swiftを編集してdidMoveToViewの中身、touchesBeganを削除します。 この状態で実行すると、真っ黒の画面が表示され
アジェンダ なぜかスムーズに行かなかったRubymineとVagrantのセットアップ なので、メモとして残しておく Vagrantのセットアップ Box 自分で作成したものを使用。 GitHub fainder / vagrant-rails-starter Vagrant Cloud fainder / ubuntu-rails-starter vagrant upすると以下の内容でubuntuがセットアップされる Ubuntu 14.04 Ruby 2.1.3 rbenv 0.4.0 ruby_build 20140919 rbenv-rehash rbenv-gemset Nodejs 0.10.32 Postgrsql 9.3.5 MySQL 14.14 Redis Server 2.8.15 Vim 7.4.52 Zsh 5.0.2 Oh-my-zsh or Prezto Zs
app.logger.fileConfig('./config.ini') --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-29-70995f52c865> in <module>() ----> 1 app.logger.fileConfig('./config.ini') AttributeError: 'DebugLogger' object has no attribute 'fileConfig' そのため、app.logger.addHandlerでコードでいちいち書かないとだめっぽく感じる。 しかし、app.loggerはloggingをラップした
DB設計をしていて継承っぽいテーブル設計にした方がスマートに実装出来そうな気がしたので、 継承した時のそうでない場合のメリットデメリットを考えてみた。 例) ソシャゲでありがちな課金アイテムとログインなどで獲得できる通常アイテム 普通に設計するならばcharge_items と normal_items テーブルがあります。 ただログインボーナス(1日目にこのアイテムあげる)みたいなテーブルを作ろうとした場合に ログインボーナステーブルには、charge_item_id と normal_item_id を持たなければならなくて、 課金アイテムだけプレゼントする場合はnormal_item_idが0として登録される。 なんか気持ち悪い…もし、特別なアイテムが増えた場合にテーブルが増える可能性があり、 その場合にテーブル追加に加えて,ログインボーナステーブルにレコードを追加しなければならない
The Laws of Reflection(Reflectionの法則について) Introduction(はじめに) コンピューティングにおけるReflectionはプログラム自身が自分の構造(特に型について)を調査するための機能で、メタプログラミングの方式の一つです Reflection in computing is the ability of a program to examine its own structure, particularly through types; it's a form of metaprogramming. It's also a great source of confusion. 本記事はGoにおけるreflectionの動きを説明することによってメタプログラミングについて明らかにできるかを試みています。 In this article we
取得自体はページをスクレイピングすることで行う。 流れは URLからDOMを引っ張ってくる metaタグからサムネイルのURLを抽出する というふうになる。 Javaでやろうと思うとコードは以下の様な感じ。 (HTTP通信にはOkHttpを使用) public class VineScraping private static final String REGEXP_THUMBNAIL = "property=\"og:image\" content=\"(.*?)\""; private static final Pattern PATTERN_THUMBNAIL = Pattern.compile(REGEXP_THUMBNAIL); public static void main(String[] args) { String url = "好きなURLを入れてね"; Request
どうしてもエディタのテーマを[monokai]にしたくて・・・。 探したら、えらい簡単に設定できましたので、皆さんもお試しあれ。 環境は、出たばかりのXcode6です。 1. Alcatrazのインストール Xcodeにプラグインを追加しようとすると、これまでは「目的のプラグインをダウンロードして、ビルドして、~/Library/Application Support/Developer/Shared/…に入れて、…」なんてやっていましたが、Alcatrazはそんな面倒な作業をすべてやってくれます。 インストール方法はとても簡単。公式サイトの言うとおり、ターミナルに1行コピペして実行するだけ。 $ curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
リポジトリは https://github.com/YusukeSuzuki/opencl.d に置いた。 動機と感想 個人的に使用するネイティブオブジェクトを出力するコンパイル言語はD言語に軸足を移そうと考えている。現在D言語のライブラリはC/C++ほどは数がなく充実したCライブラリを有効活用する意味でもCのライブラリを利用する手法を身につける必要があった。 個人的に興味があり、またdubで提供されていないOpenCLをD言語で利用する練習台にした。 OpenCLのC APIはプリミティブな関数の集合であるため実際の利用にはさらに高級なフレームワークを組む必要があるが一旦は使えるようになった。 D言語の場合、整数型のバイト数が言語により規定されているので型周りの書き換えは楽だった。 またOpenCL C APIはほとんどの構造体の実装を隠蔽しているため構造体のアライメントをそろえる部分の
Query Caching チャプター7で紹介した”Running Queries”で紹介したとおりに、BigQueryでは様々な結果が再利用されるように自動キャッシュが使用可能になっている。再度Queryを実行した場合には、すでに結果が出ている場合に透過的に結果を利用するのでとても便利な機能である。アプリ開発者は、別な方の手で素晴らしいユースケースを知っている。(は?ナニコレ)アプリケーションは余計なコストを掛けずに、フレッシュな情報と引き換えに情報をゲットできる。直接キャッシュをマネージメントすることでより積極的にコストを節約することが出来る。様々なwarehousingシステムは、セパレートキャッシュシステムを用いている、例えばMemocachedなどである。Queryエンジンへの読み込みを減らすかフロントエンドのオペレーションレイテンシが増える。Bigqueryでは、一般的に予備調
結論 UIWebViewでUser-Agentを変更する http://takemasa5.tumblr.com/post/3172884263/uiwebview-user-agent ここに書いてあるとおりの方法でよかった UIWebViewControllerのサブクラスを作る MyWebViewControllerとする MyWebViewController.hでUIWebViewDelegateプロトコルを宣言する storybordから1.のクラスを画面のContorllerに指定する storybordからwebViewのdelegateに1.で作ったクラスを指定する MyWebViewController.m で、保管は出ないが気にせずに以下を実装する -(NSURLRequest*) uiWebView:(id)webView resource:(id)identifi
Using Autotools - Gnome Developerより C/C++でのちょっと大きい構成でのMakefileのコンパイル記述法めんどくさいですよね。 それを、簡単にかつ環境に合わせて生成してくれるAutoMake/Autotoolsというのツール群あるのですが、それもさらに複雑でめんどくさいです。 Automake以外にもCMakeやwafと言ったもう少し簡単なツールもあるのですが、どれもそこまで簡単ではないし、世の中の既にAutoMakeで作られているプロジェクトを改変する場合は避けて通れないので、これについてメモ程度に解説を残しておこうかなと思います。自分も毎度調べていて疲れてきたので。 ここでは、以下の2つの実際にあるであろうシチュエーションにわけて説明します。 自分でも結構手の込んだC/C++のプロジェクトを作ろうと思った時 他人の作ったプロジェクトで./confi
こんにちは。 homebrew で動かすことが多い brew コマンド(複数)はまとめてスクリプト化。 #!/usr/bin/ruby require 'yaml' brewcmds_yml = <<EOS - "brew list --versions \| awk '{printf(\\"%-18s %s\\\\n\\",$1,$NF)}'" - "brew cask list \| cut -d' ' -f1 \| xargs -I % bash -c \\"echo -n %' '; ls -C /opt/homebrew-cask/Caskroom/%\\" \| awk '{printf(\\"%-18s\\",$1);$1=\\"\\";print}'" - "brew --config" - "brew tap" - "brew update" - "brew doctor
Railsでテーブルのレコード数を取得したいとなった場合の話。 例えば、以下のようなUser Modelがあったとして
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く