OSunC Chiba LT Ubuntu 14.04 to 16.04.1 upgrade with ConfigDrive cloud imageNaoto Gohko
![RHEL, CentOS 7 に移行しよう! LT](https://cdn-ak-scissors.b.st-hatena.com/image/square/cfea9c0ecbd32586c6195e960e8cd8ee9672f037/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Frhelcentos720150114lt-150114051744-conversion-gate02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
This document discusses Presto, an open source distributed SQL query engine for interactive analysis of large datasets. It describes Presto's architecture including its coordinator, connectors, workers and storage plugins. Presto allows querying of multiple data sources simultaneously through its connector plugins for systems like Hive, Cassandra, PostgreSQL and others. Queries are executed in a p
前置き - CSS 設計が難しい件について 誤解を恐れずに言うならば、CSS は変数も関数も条件分岐もない、ある種ゆるふわな言語(仕様)といえます。そのためプログラミング言語のように記述ミス一つで全ての挙動が止まるなんてことはありませんし、いくら冗長に記述しようがブラウザ上での挙動に差異が生まれることも殆どありません。ちょっと嗜めばそれっぽいものが作れてしまうので、マークアップエンジニアのいない小規模体制の組織であれば、サーバーサイドエンジニアやデザイナーが片手間で習得して実装してしまうというのも珍しいことではないでしょう。それでも良かったのかもしれません。これまでは…。 片手間で学習した知識というのはなかなか体系化されないものです。CSS も御多分に漏れずプログラミングのテクノロジーは日進月歩なため、その時は最新だった技術が僅か一年も経たないうちに廃れてしまい、バッドノウハウ化してしまう
Nexus 5を常用しているAndroidユーザになってしばらく経つので、そろそろAndroidアプリを作りたい気持ちになってきた。先日、そのためにMacBook Proを新調したほどの、気の入れようである。ちょうど3連休だったので、2日目・3日目を使って、あれこれ調べながら、初めてのAndroidアプリ開発をしてみた。 kentaro/palimpsest · GitHub やりたかったこと まずは簡単なタスク管理ツールを作ってみようと思った。こんな感じ。 毎日習慣的に行いたいタスクがいくつかあるので、ちゃんと習慣的に行えるよう管理したい タスクは、名前と回数からなる(例: 腕立て伏せを30回する、英和辞典を5ページ読む、みたいな) また、ちゃんとしなかった場合は、前日以前の回数が今日の分に加算されるので、ちゃんと毎日やらないと大変なことになる 画面 ほぼ「sqliteのテーブル1つに対
はじめに Vue.jsは、シンプル・軽量・高速という特徴を持つデータバインディングライブラリとして最近注目を集めています。LINE社でもアプリ内WebViewの実装技術の選択肢の一つとしてVue.jsを採用しています。2014年11月27日にリリースされたLINEスケジュールは、Vue.jsを使って実装しているSPA(Single Page Application)の代表例です。 本稿は日本語記事がまだ少ないVue.jsの基本機能の紹介を目的とした「基礎編」として、公式ドキュメントの内容を元に解説します(執筆時点のバージョンであるv0.11の内容です)。 Vue.jsとは Vue.jsは、双方向バインディングによるModelとViewをつなぐ仕組み「ViewModelレイヤー(MVVMパターン)」を提供するJavaScriptのライブラリです。 Vue.jsの基本概念は以下のようになってい
概要 RubyでFutureパターンを実装する 内容 Futureパターンは実行結果を得るまでに時間がかかる処理をする際に 結果の代わりに引換券をもらいます。 例えばドラクエの購入をする際に予約がなければ発売当日にずっと並ばなければなりません。 ここで予約をしておけば予約券を受け取って実際に発売日が来たら受け取ることが可能です。 当日受け取り時間が遅れたとすれば待機することになります。 補足 ※補足実際はこの例より簡単に実装可能。 あくまでパターンの理解を優先してRubyの言語側で 用意してくれている仕組みは利用せずに処理します。 簡易実装版については以下参照 RubyでFutureパターンを実装する(シンプル編) UML plantUMLソース @startuml{future_pattern.png} title Future Pattern class Main class Host
まずは結論 こんな環境が Google Container Engine 上に一発で作れるスクリプトとDocker Imageを作った。 要素技術 Locust Python製OSSの負荷テストツール。分散テストモードがあって、簡単に複数台から負荷をかけるクラスタを構築することができる。今回は、環境変数で master, slave を切り替えられる Docker Image をベースにしている。 Docker Private Registry Google Container Engine で private repository を利用する方法を参照してください。 使い方 事前準備 ビルドサーバに gcloud SDK をインストールし、認証が終わっていること gcloud コマンドでデフォルトの GCP の PROJECT_ID が設定してあること(下記のコマンドでは --proje
ども、cloudpack の かっぱ (@inokara) です。 はじめに 前回、前々回からの続きです。 室内の温度を計測して fluentd を経由してログに出力していましたが、これを DynamoDB Local に突っ込んでみるメモです。 参考 [AWSマイスターシリーズ] Amazon DynamoDB Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪 Dynamic ダイ○マ~ 以下のようなイメージです… fluentd プラグイン fluentd から DynamoDB にデータを送る場合には以下のような Output プラグインがありますが… fluent-plugin-dynamodb fluent-plugin-dynamodb-alt fluent-plugin-dynamodb は DynamoDB Local には対応していない(SDK
アプリケーションエンジニアの id:nobuoka です。 現在は 「少年ジャンプルーキー」 の開発に携わっています。 面白い漫画作品が数多く集まっておりますので、是非ご覧ください! さて、去る 1 月 11 日に 「Jenkins ユーザ・カンファレンス 2015 東京」 が開催されました。 はてなからも 「はてなにおける継続的デプロイメントの現状と Docker の導入」 というタイトルでセッション発表を行いました。 ここに発表資料を公開します。 発表資料 はてなにおける継続的デプロイメントの現状と Docker の導入 from Yu Nobuoka 概要 内容としては次の 3 点です。 はてな全体のサービス開発と Jenkins についての概要 「少年ジャンプルーキー」 の開発プロセスと Jenkins の活用 開発中の機能を確認するための web アプリケーションを Docker
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Bootstrapを使ってWebサイトを手早く作っている人は多いと思います。しかしデフォルトのままではBootstrapの味が強く残ってしまいます。しかし色や線の太さを変えるだけでも印象はずいぶん変わるものです。 そこで使ってみたいのがClucklesです。Clucklesはリアルタイムプレビュー付きのBoostrapテーマエディタです。 Clucklesの使い方 Clucklesを使えば独自のスタイル設定によってBootstrapの構造全体を壊してしまったなんて間違いが防げそうです。プレビューもあるので、その場で色や結果を確認しつつ、テーマを作れるでしょう。設定はJSONで出力もできるので繰り返し変更するのも容易です。 ClucklesはHTML5/JavaScript製のオープ
(翻訳): Ansibleを使ったデプロイに関する一考察¶ (訳注: この記事は Thoughts on deploying with Ansible の翻訳です。著者のRamon de la Fuente さんから許可を得て、翻訳・公開しています。元記事の公開は2014年6月ですが、2015年1月現在にも通用する話だと思います) 私たちのデプロイ手順を簡単にするために Ansible で roleを書きました(以前は Capistrano を使っていました)。このroleは今やかなり完璧で、本番環境に使い始めています。しかし作り始めた当初はいくつかの点で議論する必要がありました。今回みなさんとその議論を共有しようと考えたわけです。 デプロイとは?¶ 最初に "デプロイ" を定義しましょう。デプロイするとき、ユーザーはすでに "Provisioning" を終えており権限なども適切に整って
ウッ ここで詰まる事は往々にしてあります. 特に急いでる時の煩わしさは甚だしいです. どうせならそれっぽい英語を使いたいのでOSSや同僚のコミットメージの語彙の出現確率を調べてみましたら、 もちろんfeatureによってコミットメッセージの付け方など数多あるものの、一定の頻出パターンは見い出せたので筆を取りました. (英語勉強しないと..) 方法 github.com/rails/railsのコミットメッセージ内における各動詞の出現確率を求め、 またOSSと仕事でのコミットメッセージの趣向も変わってくる事も勘案するため、 (仕事でDeprecateとか滅多に使わんし) 同僚に聞きつつ10つあげてみた. 以下列挙 (例は実際の同僚やOSS上でのコミットメッセージです.) Add *A to *B AをBに加える
Tengineはアジア最大級のECサイト「淘宝網」が公開しているWebサーバです。 The Tengine Web Server alibaba/tengine Nginxをベースにいくつかの機能拡張を行い、また開発も続いていて最新のstableバージョンに追従しているようです。 主な機能拡張は上記のサイトにも上がっていますが、興味があるところを上げると、 nginx-1.6.2をベース。nginxと100%互換性がある ダイナミックなモジュールの読み込みをサポート。モジュールの追加にTengineの再ビルドが必要ない SO_REUSEPORT をサポート。接続がnginxの3倍高速化 SPDY v3をサポート upstreamの負荷分散方式の追加。consistent hashやsticky session、upstreamのヘルスチェック、リクエスト処理中のホスト名の名前解決 acce
I'd like to round the corners of a view and also change the color of the view based on the contents at runtime. TextView v = new TextView(context); v.setText(tagsList.get(i)); if(i%2 == 0){ v.setBackgroundColor(Color.RED); }else{ v.setBackgroundColor(Color.BLUE); } v.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); v.setPadding(twoDP, twoDP, twoDP, twoDP); v.
概要 CoreOS上にfleetのunitとしてhubotを立ち上げてみた 複数ホスト間でのLINKとかなければfleetは単純なツールなので使いやすかったという話 前提 Vagrantとvagrant-digitaloceanがインストール済み 手元にDocker開発環境が整備済み やったこと 1. CoreOSを立ち上げる 今回はvagrant経由でdigitalocean上にCoreOSのdropletsを立ち上げます。 Vagrantfileは下記のようになってます。 適宜、pathやファイル名など書き換えて使って下さい。 Vagrant.configure('2') do |config| config.ssh.username = 'core' config.vm.define "core-hubot" do |config| config.vm.provider :digit
チーム内で良くある間違いなどをチェックリストにし、それをコードレビュー時に使う事で、コード自体のレベルを上げつつコードレビューの品質のばらつきをなくす取り組みについて。Trelloなどを開発するFog Creek社のブログの翻訳。 効果的なコードレビューについて書いた我々のブログ記事の中で、チェックリストを使う事を推奨した。チェックリストを使う事で、レビューが継続的にチーム全体でうまくはたらくようにできる。また、ありがちな問題を見つけたり解決したりするのを確実にする、簡単な方法でもある。 ソフトウェア工学研究所の研究によると、プログラマは15から20の良くある間違いをしてしまいがちだという。そういった間違いをチェックリストに追加しておく事で、問題が起こった時にそれを特定し、確実に駆逐するようにできる。 チェックリスト作りに取り掛かるに当たって、一般的な項目は以下のリストのようになるだろう。
[rails][refactoring]railsのボトルネック探しツール railsを実装しているときに、N+1問題回避するためにincludeしたり、処理をかき変えたりするが、やるんだったら最小で最大の効果を上げたい。 むしろ意味の無い所のチューニングには時間を費やしたくない。 そんなときにお薦めなツールをQiitaで見つけたのでご紹介 miniprofiler 各ページ表示やSQLの処理時間を計測し、表示してくれるツール。 class ApplicationController < ActionController::Base protect_from_forgery before_filter :miniprofiler private def miniprofiler if Rails.env.development? || (current_user.try(:role) ==
Photo by Gonzalo Baeza | Flickr - Photo Sharing! RailsでJSONを返すAPIを作成し、また、APIのテスト方法も説明します。 JSONを返すAPIは、RailsのActiveSupportより拡張されたto_jsonメソッドとDMMが開発したjbuilderというGemを使います。 APIのテストにはおなじみのRSpec3を使います。 動作確認 Rails 4.1.7 jbuilder 2.2.6 rspec-rails 3.1.0 factory_girl 4.5.0 目次 1. 前提条件 2. APIの作成 2.1. 1つのコントローラーでHTMLやJSONを返すAPI 2.2. JSONのみを返すAPI 2.3. APIのバージョニング 3. APIのテスト 3.1. テストファイルの準備 3.2. 一覧(index)APIのテス
こんにちは。大阪出身のヨッピーです。 大阪といえばたこ焼き。たこ焼きといえば大阪ですが、いかんせん大阪には死ぬほどたこ焼き屋があるので、他の地域の方が大阪へ遊びに行っても…… 「たこ焼き屋が多すぎて、どこのたこ焼きを食べれば良いのかわからない」 なんて状況に出くわす人も多いのではないでしょうか。 こちらは人口あたりのたこ焼き屋の店舗数ランキング。大阪の赤さよ。 ※NTTタウンページニュースより引用 http://www.ntt-tp.co.jp/news/26_01.html 「大阪に来たらとりあえずたこ焼きでしょ!」みたいな感覚の人がたくさんいるのはもちろん、その流れで近くにあった適当なお店に入ってしまう人も多いはずです。 しかし、大阪出身の僕としては、観光地によくあるたいして美味しくもないたこ焼き屋さんに行列ができているのを見ると「もっと美味しいたこ焼き屋があるのに……」とついつい思っ
参考RailsCastsで紹介されてたフォームがGemになってたので試してみた railscasts.com/episodes/196-nested-model-form-revised?view=asciicast github.com/ryanb/nested_form Rails4で 1対多、多対多関連しているときのフォームを作るなら、Nested Form Gemが便利 前提の環境Modelにhas_manyとaccepts_nested_attributes_forが書いてある 関連するモデルの削除を許すなら allow_destroy: true オプションを付けておく class Project < ActiveRecord::Base has_many :tasks accepts_nested_attributes_for :tasks, allow_destroy: t
こんにちは。エンジニアの山口です。 私のチームでは、マネーフォワードが運営する全 Ruby on Rails アプリケーションの基板となるエンジンの開発を担当しています。 最近、そのエンジンが利用する Rails のバージョンを 4.1.8 から 4.2 にアップグレードしてみました。 エンジンの規模がまだ小さいということもあり特に大きな問題はありませんでしたが、細かい変更が必要でしたので実施した作業を共有したいと思います。 まずは RailsGuides の A Guide for Upgrading Ruby on Rails を読む RailsGuides に「A Guide for Upgrading Ruby on Rails」という記事があります。この記事の「3 Upgrading from Rails 4.1 to Rails 4.2」を読んで、必要な作業を行いました。 ちな
今までJavaScriptでのユニットテストではexpect.jsを使っていたのだけど、 TDDやライオンで有名なtwadaさんのpower-assertが以前から気になっていて、 つい先日ブラウザ版がIE8に対応したらしく、試しにdeepcopy.jsで使ってみた。 初めての導入で、若干つまづいたところや勘違いしていたところがあったのでメモ。 power-assertについて power-assert自体は単なるアサーションライブラリ。 勘違いしていたのだけどpower-assertのリポジトリのREADME.mdにある、 テストが失敗した時の詳細な出力はpower-assertを使っただけでは表示できない。 espower-cliなどテストコードを変換する必要がある。 node.js node.jsでテストする場合に必要な作業。 モジュールのインストール インストールが必要なモジュール
成長している企業はどんな戦略で採用に取り組んでいるのか――。12月に京都で開催された「IVS 2014 Fall」で、「成長企業の採用力」というテーマのパネルディスカッションが行われました。登壇したスマートニュース代表取締役会長共同CEOの鈴木健さんは、「レアルマドリード」と「Google」をモデルにした採用を実践していると言います。以下、鈴木さんの主な発言をまとめました。 メディアではなくエンジニアの会社 スマートニュースは2012年6月、僕と共同創業者の浜本(階生)の2人で始めた会社です。ネット上にあふれる膨大な情報の中から、本当に良質なコンテンツだけをアルゴリズムの力を使って抽出して、たくさんの人に届けることをミッションにしています。 どんな考え方でサービスを運営しているか。1つ言えるのは、「コンテンツを愛しています」ということです。僕自身も、『なめらかな社会とその敵』という本を書い
はじめに VirtualDom - なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita を読んでいる前提で話を進めます。 結局”Flux”なんだったのよ 詳細については過去に自分が覚え書きを書いたのでそっちを読んでいただけると良いと思うけど、あれは 「MVCの変形亜種に、オブザーバーパターンを乗せ、データを単一方向に流すことを規定した」ものに、Facebookが命名したものでしかない。極端に目新しいものでもない。その最大の功績はアーキテクチャそのものではなく、「試行錯誤を踏む中で誰もが一度はやっていたであろう似たようなことを上手く実践法則としてまとめた上で、共通認識としての名前をつけた」こと。概念に名前をつけて共有することで、事前説明が簡略化され、本質的な問題に取り組む時間が増える。これをFacebookのブランド力でねじ伏せるように広めたことこそが重要かつ評価すべきポイン
BIND の DNS Forward で名前解決 概要 BIND の設定を変更し、特定ゾーン (.consul) に対しての問い合わせを Consul に対しておこなえるように変更します。通常の名前解決と Consul の名前解決を同時に行う事ができるため、アプリケーションやインフラ環境に加える必要はありません。また、dnsmasq を併用する手法が使えない環境でも、容易に名前解決が可能です。 Consul の名前解決と課題 Consul には名前解決をおこなうために、DNS インターフェースを備えています。しかし、通常の Consul が提供するインターフェースは、Port 8600 です。そのため、dig やアプリケーション側ではポート番号を明示する必要があります。 $ dig @sakura1.pocketstudio.net -p 8600 web.service.sakura.c
JSer.info #210 - ES6+のコードをES5に変換するツールである6to5の公式サイトがリニューアルされました。 また、同じくES6のコードを変換するツールであるesnextが6to5に合流して、移行していくようです。 6to5 + esnext · 6to5 ちょうどライブラリをES6で書いて公開する所から始めよう | Web Scratchという、6to5を使いES6で書いたライブラリを公開する流れについての記事も公開したので6to5を試してみるといいかもしれません。 JavaScript in 2015 - Glen Maddern: Internet Proという記事では、jspmというパッケージ管理ツールについて紹介しています。 jspmはnpmやGitHubからライブラリをインストールするコマンドラインツールとSystemJSを使ったモジュールローダから成っていま
10月から引き続きAngularJSな日々を送っている先生です。 今回はAngularJSで作ったシングルページアプリケーション(以下SPA)をGoogle Analyticsでトラッキングさせたいと思います。 SPAでのトラッキング問題 Google Analyticsは、タグを埋め込むだけで勝手にトラッキングしてくれる手軽な解析ツールです。しかしAjaxやpushStateなどページ遷移を伴わないSPAでは、トップページしか解析されません。Analyticsではその対策として、任意のタイミングでトラッキングすることができる仕組みを持っています。 // ページビュー ga('send', 'pageview'); // イベントトラッキング ga('send', 'event', 'image1', 'clicked'); 参考:高度な設定 – ウェブ トラッキング(analytics.
クックパッドにおけるアプリのデプロイの資料が非常に興味深いので紹介します.これは @sora_hさんがRubyKaigi 2014で発表 された資料で,100台以上のサーバに短時間でアプリをデプロイする仕組みをどうやって作り上げたのかが説明されています. 以前,スライドの内容を箇条書きにまとめていたのでシェアします.最近では,Jenkins User Coferenceの発表(How We Use Jenkins? // Speaker Deck)でほんの少し引用されていたりします. 内容のまとめ スライドは90枚あります.ざっくりまとめた内容を以下に示します. 概況 140サーバに1日10回のデプロイを実施している(ピーク時) コードベースが大きい モデルだけで約 69K LOC プロダクトコードとテストコードを合わせると約 319K LOC デプロイのルール CIのビルドが成功したリビ
libwebpとlibjpegのGo bindingであるgo-libwebpとgo-libjpegをつくった。 それぞれWebPとJPEGファイルのデコード/エンコードに対応している。どちらもimage.Imageを扱うことが出来てimage/jpegやimage/pngと同じ感覚で使えるインターフェースにしている。たとえばgo-libjpegのサンプルコードは次のような感じ。 package main import ( "bufio" "image/png" "log" "os" "github.com/pixiv/go-libjpeg/jpeg" ) func main() { // Decoding JPEG into image.Image io, _ := os.Open("in.jpg") img, err := jpeg.Decode(io, &jpeg.DecoderOp
「パーティショニング」はリアルタイムシステムや高信頼システムを構築する上で、あると便利なプロセスを隔離する機能です。 今回は「Docker」の内部で使われているLinux軽量コンテナ技術を使って簡易的なパーティショニングを実現します。 DockerはWebの世界で極めて高い注目を集めている強力なコンテナ構築環境です。知能ロボットなど複雑なソフトウェアの組み合わせからなるリアルタイムシステム構築でもその強力な機能が使える可能性を示すことができればと思います。 リアルタイムというと「とにかく処理を速くする」というイメージがあるかもしれませんが、ロボットにおけるリアルタイムとは「処理を決められた時間に始めて決められた時間までに確実に終わらせること」を指します。例えば、自動走行車における操舵やブレーキは時間に遅れてしまうと事故を招きます、これはリアルタイムです。一方で、ビットコインのマイニングのよ
Photo by Flickr: chief_huddleston's Photostream Railsの規模が大きくなると自動テストの実行時間もだんだんと長くなっていきます。素早く開発していくにはテストの実行時間を短くすることが大切です。 RSpecのテストを速くする方法をまとめましたので参考にしてください。 動作確認 Rails 4.1 rspec-rails 3.1.0 test-queue 0.2.9 目次 1. RSpecのパフォーマンス測定 2. test-queueで並列でテストを実行する 3. rspec-guardを使って更新したファイルを自動的にテストする 4. Springを使ってテストのロード時間を短くする 5. ログレベルを変える 6. GCを実行を抑える 7. RSpecファイルのリファクタリングをする 7.1. itを少なくする 7.2. createよりも
皆さんは、The Tweleve-Factor Appをご存知だろうか? これはHerokuの中の人が書いた、Webアプリケーションを使いやすい形でスケーラブルにするための方法論である。簡単にいえばコンテナで動かしたいアプリケーションが守っておくとよいレシピ集であると言える。 http://12factor.net/ (日本語訳) 今回これを取り上げた背景としては、実はDockerコンテナをメインにした本番でのインフラ運用を考えた時に、アプリケーションがこの12の要素を満たしていることが重要だと最近ひしひし感じているから。 実際、自分が働いているところが運営しているサービス Wantedlyは、もともとずっとHerokuで運営していて、最近AWSに移行し、現在Dockerコンテナの上で動いている。この移行を約1ヶ月半で実現できた大きな要因として、Herokuの上に乗っていたことで知らず知ら
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く